
.slick-dots li button:before {
    font-family: 'slick';
    font-size: 10px;
    line-height: 20px;
    position: absolute;
    top: 0;
    left: 0;
    width: 20px;
    height: 20px;
    content: '•';
    text-align: center;
    opacity: .25;
    color: black;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
blockquote, q {
    quotes:none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}

a {
    margin:0;
    padding:0;
    border:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

/* End Reset CSS */



header{
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2% 15%;
    position: sticky;
    top: 0;
    left: 0;
    z-index: 2147483647;
    background-color: #fff2e1;
    box-shadow: 5px 10px 20px rgba(0,0,0,0.20);

}
#free, #service, #feeding, #charter, #booking-banner, #access{
    scroll-margin-top: 200px; /* sticky headerの高さ分調整 */
}
.logo{
    width: 190px;
    height: auto;
}
.logo img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.btnone{
    width: 50px;
    height: 50px;
    border: 2px solid #039de7;
    cursor: pointer;
    z-index: 999;
    position: relative;
}
.btnone span{
    display: inline-block;
    width: 50%;
    height: 3px;
    background-color: #039de7;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    position: absolute;
    transition: all 0.2s;
}
.btnone span:nth-of-type(1){
    top: 15px;

}
.btnone span:nth-of-type(2){
    top: 23px;
    
}
.btnone span:nth-of-type(3){
    top: 31px;
    
}
#menu{
    width: 100%;
    height: 60vh;
    background-color: #fff2e1;
    z-index: 998;
    position: fixed;
    top: -100%;
    left: 0;
    transition: all 0.6s;
    box-shadow: 5px 10px 20px rgba(0,0,0,0.20);
}
#menu ul{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    list-style: none;
    text-align: center;

}
#menu ul li a{
    display: inline-block;
    text-decoration: none;
    color: #039de7;
    padding: 10px;
    font-size: 20px;
    white-space: nowrap;
}
#menu.is-active{
    top: 0;
}
.btnone.is-active span:nth-of-type(1){
    transform: translate(-11px,8px) rotate(-45deg);

}
.btnone.is-active span:nth-of-type(2){
    display: none;
    
}
.btnone.is-active span:nth-of-type(3){
    transform: translate(-11px,-8px) rotate(45deg);
    
}
.slider{
    visibility: hidden;/* 要素の表示と非表示を切り替えられる */
}
.slider img{
    width: 100%;
    height: auto;
}

.slider.slick-initialized{
    visibility: visible;/*スライダーの準備ができたらスライダーに対して付与されるよ  */
}
.slick-prev, .slick-next{
    z-index: 1;
}
.slick-next{
    right: 10px;
}
.slick-prev{
    left: 10px;
}
.slider div{
    width: 100%;
    height: 80vh;

}
.slider .img img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

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

}

.scroll-infinity__wrap {/* カルーセル全体を囲っているdiv */
    display: flex;
    overflow: hidden;
    margin-bottom: 10%;
}
.scroll-infinity__list {/* ulの名前 */
    display: flex;
    list-style: none;
    padding: 0
}
.scroll-infinity__list--left {/* ulにつけたアニメーション名 */
    animation: infinity-scroll-left 60s infinite linear 0.5s both;
}
.scroll-infinity__item {
    width: 200px;
    height: 200px;
    margin-right: 20px;
}
.scroll-infinity__item:nth-of-type(2n){
    margin-top: 70px;
}
.scroll-infinity__item>img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    border: 2.4px solid #019fe9;
}
@keyframes infinity-scroll-left {
    from {
      transform: translateX(0);
    }
      to {
      transform: translateX(-100%);
    }
}
  
/* animation-name: loop-slide;/* アニメーション名 
animation-duration: 20s;/* 開始から終了までの所要時間 
animation-iteration-count: infinite;/* アニメーションのループ回数 
animation-timing-function: linear;/* 動きの加減速 */
/*animation-delay: 1s アニメーションが開始するまでの遅延時間 
animation-fill-mode: both;/* アニメーション開始前・終了後の挙動 */ 
.intro{
    margin: 10% auto 5% auto;
    width: 80%;
    margin-right: auto;
    margin-left: auto;
}
.bannerarea h2{
    font-size: 32px;
    color: #039de7;
    padding-top: 1%;
    margin-bottom: 5%;
    font-weight: 600;
    font-feature-settings: "palt";
    text-align: left;
}

.bannerarea {
    width: 650px;
    margin: 10% auto;
    padding: 0 10px;
}

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

.slidertwo{
    padding-bottom: 3%;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    position: relative;
    height: auto;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0;
    -webkit-overflow-scrolling: touch; /* スマホでスムーズなスクロール */
}

.slidertwo li{
    flex: 0 0 auto;
    width: 60%;
    height: 100%;
    margin-right: 20px;
    margin-bottom: 0;
    box-shadow: 1px 5px 10px 0px #a9a9a9;
    transition: 0.2s ease-in-out;
    list-style: none;
} 

.slidertwo li img{
    width: 100%;
    height: auto;
}


.slidertwo li:hover{
    box-shadow: none;
    transition: 0.2s ease-in-out;
}

.slidertwo li img{
    width: 100%;
    height: auto;
    object-fit: cover;
    cursor: pointer;
    vertical-align: bottom;
    
    
}
.intro{
    width: 80%;
    margin-right: auto;
    margin-left: auto;
    position: relative;
  
}

.birdtwo{
    width: 20vw;
    height: auto;
    position: absolute;
    top: 61%;
    left: 21%;
    transform: rotate(30deg);
    animation: bounce 1s infinite alternate;
}

.birdtwo img{
    width: 100%;
    height: auto;
}
.birdone{
    width: 20vw;
    height: auto;
    position: absolute;
    top: 34%;
    left: 58%;
    animation: bounce 1s infinite alternate;
}

.birdone img{
   width: 100%;
   height: auto;
}
.freeservice{
    margin-top: 8%;
}
.timetable{
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
    margin: 1vw auto;
}
.timetable tr{
    background-color: #fff;
    font-weight: 600;
}
.timetable tr:nth-child(even){
    background-color:#d3f4ff;
    font-weight: 600;
}

.timetable th, .timetable td {
    text-align: center;
    width: calc(100% / 3);
    padding: 16px 0;
    font-size: 16px;
}
.timetable td:nth-of-type(3n) {
    font-size: 16px;
    font-weight: 600;
}
@keyframes bounce {
    0% {
      transform: translateY(0); /* 開始位置 */
    }

    100% {
      transform: translateY(-10px); /* 開始位置 */
    }
}

.intro h2{
    text-align: center;
    font-size: 34px;
    margin-bottom: 20px;
    font-weight: 600;
    color: #039de7;
}
.boat-otaru{
    line-height: 1.8;
    text-align: center;
}
.boat-otaru p{
    font-size: 18px;
    font-feature-settings: "palt";
}


.spbr{
    display: none;
}
.service{
    width: 70%;
    margin-right: auto;
    margin-left: auto;
}
table {
    width: 100%;
    margin: 20px auto;
    border-collapse: collapse;
    background-color: #ffffff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

th, td {
      padding: 12px 16px;
      border: 1px solid #ccc;
      text-align: center;
      font-size: 16px;
}

th {
    background-color: #e0f0ff;
    font-weight: 500;
}

th:nth-of-type(3n){
    font-weight: bold;
}

td {
      font-size: 16px;
}
td:nth-of-type(3n){
    font-size: 24px;
    font-weight: 600;
}
h5{
    margin-bottom: 3%;
    font-weight: 500;
}
.service h3{
    font-size: 32px;
    margin-bottom: 16px;
    color: #039de7;
    font-weight: 600;
}
.coupon{
    font-size: 24px;
    font-weight: 500;
}
h4{
    font-size: 24px;
    font-weight: 500;
}
h4:nth-of-type(2){
    margin-bottom: 32px;
}
.plan{
    font-size: 24px;
    margin-bottom: 1%;
    border-left: 5px solid #039de7;
    padding: 2px 8px;/* 余白の設定 */
    font-weight: 500;
}
.plan:nth-of-type(2){
    margin-top: 8%;
}
.campaign-box {
    width: 100%;
    margin: 0 auto;
    margin-top: 8%;
  }

  .campaign-title {
    background-color: #039de7;
    color: #fff;
    padding: 0.4em 0.8em;
    border-radius: 6px;
    display: inline-block;
    font-size:  16px;
    margin-bottom: 1em;
  }



  table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1em;
  }

  
  .price {
    font-weight: bold;
    font-size: 20px;
  }


.anchor {
    padding-top: 190px;
    margin-top: 190px;
}

  .note {
    font-size: 16px;
    color: #666;
    font-feature-settings: "palt";
    line-height: 1.8;
    margin-top: 16px;
    
  }
.tax{
    font-size: 10px;
  }
.sp{
    display: none;
}



td p{
    text-align: left;
    line-height: 1.8;
}
.head{
    font-weight: 500;
}
.plan-table{
    width: 100%;

}

.carimg{
    width: 100%;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    margin-top: 3%;
}
.carimg img{
    width: 30vw;
    height: 30vw;
    object-fit: cover;
    border-radius: 50%;
}
.carimg p{
   font-size: 16px;
   color: #333;
}
.time-required{
    width: 70%;
    margin-right: auto;
    margin-left: auto;
    margin-top: 8%;
}
.time-required p{
    font-size: 16px;
}
  .info-box {
      width: 100%;
      margin: 10% auto;
      background-color: #ffffff;
      padding: 2em;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    }



    .section {
      margin-bottom: 16px;
    }

    .section h3 {
      color: #333;
      font-size: 20px;
      margin-bottom: 0.5em;
      border-left: 5px solid #039de7;
      padding-left: 0.5em;
    }

    .section p {
      line-height: 1.6;
      font-size: 16px;
      color: #333;
      font-feature-settings: "palt";
    }

    .section p span {
      color: #e60033;
      font-weight: bold;
    }
    .payment-box {
        width: 100%;
        margin: 10% auto;
        background-color: #ffffff;
        padding: 2em;
        box-shadow: 0 4px 12px rgba(0,0,0,0.1);
      }


.payment-box li{
    font-size: 16px;
    font-feature-settings: "palt";
    color: #333;
}

.payment-group {
        margin-bottom: 1.8em;
}
  
.payment-title {
    font-size: 1.2em;
    color: #333;
    border-left: 5px solid #039de7;
    padding-left: 0.5em;
    margin-bottom: 0.6em;
}
  
.payment-list {
    list-style: disc;
    padding-left: 1.5em;
    color: #333;
}
  
.payment-list li {
    margin-bottom: 0.5em;
    line-height: 1.6;
}

.info-box {
    max-width: 100%;
    margin-top: 10%;
    margin-right: auto;
    margin-left: auto;
    background-color: #fff;
    padding: 2em;
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  }

  .info-box h2 {
    text-align: center;
    color: #333;
    font-size: 1.8rem;
    position: relative;
    margin-bottom: 8%;
  }


  .info-box h2::after{
    content: "";
    background-color: #039de7;
    width: 80px;
    height: 5px;
    margin-right: auto;
    margin-left: auto;
  
    position: absolute;
    bottom: -20px;
    right: 0;
    left: 0;

  }

  .info-group {
    margin-bottom: 2em;
  }

  .info-title {
    font-size: 1.2em;
    color: #333;
    border-left: 5px solid #039de7;
    padding-left: 0.6em;
    margin-bottom: 0.6em;
  }

  .info-list {
    padding-left: 1.4em;
    list-style: disc;
    color: #333;
  }

  .info-list li {
    margin-bottom: 0.6em;
    line-height: 1.6;
}
/* 必要に応じてカスタマイズ */
.swiper-button-next,
.swiper-button-prev {
  color: #fff; /* 矢印の色 */
  cursor: pointer;

  
}
.booking-banner {
    background: #fff;
    padding: 2em;
    text-align: center;
    font-family: sans-serif;
  }

.booking-banner h2 {
    font-size: 1.8em;
    color: #333;
    margin-bottom: 64px;
    position: relative;
}

.booking-banner h2::after{
    content: "";
    background-color: #039de7;
    width: 80px;
    height: 5px;
    margin-right: auto;
    margin-left: auto;
    position: absolute;
    bottom: -20px;
    right: 0;
    left: 0;

  }

  .booking-btn {
    display: inline-block;
    background-color:#E94B00;
    color: #fff;
    padding: 0.8em 2em;
    font-size: 1.2em;
    border-radius: 8px;
    text-decoration: none;
    font-weight: bold;
    box-shadow: 0 0 0 rgba(200, 131, 82, 0.6);
    animation: pulse 1.8s infinite;
    transition: background-color 0.3s ease, transform 0.3s ease;
    margin-bottom: 8px;
  }

  .booking-btn:hover {
    background-color:#E94B00;
    transform: scale(1.05);
  }

  @keyframes pulse {
    0% {
      box-shadow: 0 0 0 0 #E94B00;
    }
    70% {
      box-shadow: 0 0 0 15px rgba(0, 120, 212, 0);
    }
    100% {
      box-shadow: 0 0 0 0 rgba(0, 120, 212, 0);
    }
  }

  .tel-info {
    margin-top: 2em;
    color: #333;
    white-space: nowrap;
  }

  .tel-info a {
    color: #003366;
    text-decoration: none;
  }

  .en {
    margin-top: 4%;
  }
  .payment-box h2 {
    text-align: center;
    color: #333;
    font-size: 1.8rem;
    margin-bottom: 8%;
    position: relative;
}
.payment-box h2::after{
    content: "";
    width: 80px;
    height: 5px;
    background-color: #039de7;
    margin-right: auto;
    margin-left: auto;
    position: absolute;
    bottom: -20px;
    left: 0;
    right: 0;
}

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

header{
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 3%;
    position: sticky;
    top: 0;
    left: 0;
    z-index: 2147483647;
    background-color: #fff2e1;
}

.bannerarea,
.intro{
    margin: 10% auto 10% auto;
    width: 90%;
    margin-right: auto;
    margin-left: auto;
}
.bannerarea h2{
    text-align: center;
    font-size: 24px;
    color: #039de7;
    padding-top: 5%;
    margin-bottom: 5%;
    font-weight: 600;
    font-feature-settings: "palt";
    text-align: left;
    white-space: nowrap;
    
}

.slidertwo{
    padding-bottom: 3%;
    width: 100%;
    position: relative;
    height: auto;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0;
}
.slidertwo li{
    flex: 0 0 auto;
    width: 80vw;
    height: 100%;
    margin-right: 20px;
    margin-bottom: 0;
    box-shadow: 1px 5px 10px 0px #a9a9a9;
    list-style: none;
} 

.slidertwo li img{
    width: 100%;
    height: auto;
}

.intro{
    width: 80%;
    margin-right: auto;
    margin-left: auto;
    white-space: nowrap;
}

.birdtwo{
    width: 180px;
    height: auto;
    position: absolute;
    top: 72%;
    left: 10%;
    transform: rotate(30deg);
    animation: bounce 2s infinite alternate;
}

.birdtwo img{
    width: 100%;
    height: auto;
}

.birdone{
    width: 180px;
    height: auto;
    position: absolute;
    top: 27%;
    left: 60%;
    animation: bounce 3s infinite alternate;
}

.birdone img{
   width: 100%;
   height: auto;
}

@keyframes bounce {
    0% {
      transform: translateY(0); /* 開始位置 */
    }
    100% {
      transform: translateY(-10px); /* 移動先の位置 */
    }
}

.intro h2{
    text-align: center;
    font-size: 24px;
    margin-bottom: 20px;
    font-weight: 600;
    color: #039de7;
    white-space: nowrap;
}
h3{
    white-space: nowrap;
}
.boat-otaru{
    line-height: 2;
    text-align: center;
}
.boat-otaru p{
    font-size: 15px;
    white-space: nowrap;
}
.spbr{
    display: block;
}

table, th, td {
    font-size: 15px;
    white-space: nowrap;
    font-feature-settings: "palt";
}
td:nth-of-type(3n){
    font-size: 24px;
    font-weight: 600;
}
.service{
    width: 90%;
    padding: 4%;
}

.service h3{
    font-size: 24px;
    margin-bottom: 16px;
    color: #039de7;
    font-weight: 600;
    white-space: nowrap;
}

h4{
    font-size: 18px;
}
h4:nth-of-type(2){
    margin-bottom: 32px;
}
.plan{
    font-size: 20px;
    margin-bottom: 1%;
    border-left: 5px solid #039de7;
    padding: 2px 8px;/* 余白の設定 */
    white-space: nowrap;
    font-feature-settings: "palt";
}
.coupon{
    font-size: 16px;
    font-feature-settings: "palt";
    font-weight: 600;

}

.plan-table{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  
}
.plan-table .table{
    width: 1000px;
    border-collapse: collapse;
    margin-right: auto;
    margin-left: auto;
    table-layout: fixed;/*「table-layout: fixed;」というCSSプロパティは、テーブルの列幅を均等に調整する際に非常に便利です。これを使用すると、テーブルのレイアウト処理がブラウザによってより高速に行われ、特に大きなテーブルで顕著なパフォーマンス改善が見られます。 */
}
.sp{
    display: block;
}
#benefit-box {
    margin-top: 8%;
    width: auto;
    
}

.carimg{
    width: 100%;
    height: auto;
    display: flex;
    flex-direction: column;
    margin-top: 3%;
}
.carimg img{
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 0%;
}
.carimg p{
    display: block;
   font-size: 16px;
   color: #333;
   margin-right: auto;
}
.time-required{
    width: 90%;
    margin-right: auto;
    margin-left: auto;
    margin-top: 8%;
}
.info-box h2 {
    text-align: center;
    color: #333;
    font-size: 24px;
    margin-bottom: 48px;
}
.payment-box h2 {
    text-align: center;
    color: #333;
    font-size: 24px;
    margin-bottom: 38px;
}


.booking-btn {
    display: inline-block;
    background-color:#E94B00;
    color: #fff;
    padding: 0.8em 2em;
    font-size: 1.2em;
    border-radius: 8px;
    text-decoration: none;
    font-weight: bold;
    box-shadow: 0 0 0 rgba(200, 131, 82, 0.6);
    animation: pulse 1.8s infinite;
    transition: background-color 0.3s ease, transform 0.3s ease;
    margin-bottom: 16px;
}

/* フッター */



.title2 {
    font-size: 2.5vw;
    font-weight: 500;
    color: #019fe9;
    margin-top: 0%;
    margin-bottom: 3%;
    text-align: center;
    font-family: "Noto Sans JP", serif;
}

.flex2{
    display: flex;
    flex-direction: column;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    padding: 3%;
}

.framemap{
    font-feature-settings: "palt";
    width: 100%;
    height: auto;
    object-fit: cover;
    margin-right: auto;
    margin-left: auto;
    vertical-align: bottom;
    

}

.framemap iframe{
    display: block;
    aspect-ratio: 16 / 9;
    max-width: 1000px;
    width: 100%;
    height: auto;
}


.onethird{
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    
}
.onethird img{
    display: block;
    width: 100%;
}
.onethird p{
    text-align: center;
    font-size: 16px;
}
.onethird2{
    width: 100%;
    margin-right: 16px;
    margin-left: 16px;
    margin-bottom: 3%;
}
.onethird3{
    width: 100%;
    margin-bottom: 3%;
}
.onethird3 img{/* 左側の余白を消している */
    width: 100%;
    display: block;
    margin-left: auto;
}
.onethird3 p{
    text-align: right;
    font-size: 16px;
}

.primary{
    width: 100%;
    
}


.primary a:hover {
    text-decoration: underline;
}


  
  
  /* footer-logo */
  
.ebisu {/* 会社名を囲っているpタグ */
    padding: 0;
    margin-top: 3%;
    width: 100%;
    

}

.ebisu a{
    color: #019fe9;
    font-size: 20px;
    font-weight: bold;
}
 
  
  /* address */
  
.address {
    margin: 3% 0%;
    padding: 0;
    font-style: normal;
    font-family: "Noto Sans JP", serif;
    line-height: 1.8;
    font-size: 16px;
    color: #555;
    
}
 
  
  /* navi */
#secondary {
    background: #019fe9;
    width: 100%;
    
    
}
.navi-row {
    display: flex;
}

#footer .navi {
    margin: 0;
    padding: 0;
    list-style: none;
    
}






.secondary {
    width: 100%;
    display: flex;
    flex-direction: column;
    list-style: none;
    padding: 3%;
    margin-right: auto;
    margin-left: auto;
}

.sitenavi{
    display: flex;
    justify-content: center;
    margin-right: auto;
    margin-left: auto;
    width: 100%;
    margin-bottom: 16px;
    text-align: center;
}

.sitenavi li {
    display: block;
    width: calc(100%/3);
    padding: 0;
    text-align: center;
    margin-left: 0vw;
}


.sitenavi li a{
    color: #EFFBFF;
    font-size: 14px;
    margin-left: 0;
}

  


}