@charset "utf-8";
/* CSS Document */

/* 共通 
body {
  background:#0b0b0d;
  color: #333;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  line-height: 1.8;
}*/

/* 共通 */
body {
  background:#FFFFFF;
  color: #333;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  line-height: 2.2;
font-size: 18px;
}


main {
  padding: 30px 60px;
  max-width: 1100px; /*  */
  margin-left: auto;
  margin-right: auto;
background-color: #FFFFFF;
}


figcaption{
	font-size: 80%;
}

h1,h2,h3 {line-height:1.4;}
h2 {font-size:1.4rem; margin-bottom:12px;}
section h3 {

  font-size: 1.3rem;
  margin-bottom: 12px;
  padding-left: 12px;
  border-left: 5px solid #006B3E;
  color: #222;
margin-top: 2rem;
}

li{
	margin-bottom: 6px;
}

/* 日付・重要表示（.day）を強調 */
.day {font-size:1.25rem; font-weight:900; color:#006B3E; margin:8px 0;}

/* 表のレスポンシブ対応 */
.table-wrap {overflow:auto; -webkit-overflow-scrolling:touch; border-radius:8px; margin-bottom:14px; box-shadow:0 6px 16px rgba(0,0,0,0.04);}
table {width:100%; border-collapse:collapse;  background:#fff;}
th,td {padding:10px 6px; border:1px solid #e6e6e6; text-align:left; vertical-align:top;}
th {background:#fafafa; font-weight:700;}

.pay td{
	vertical-align: middle;
}

/* spot images */
.spot{
	margin-top: 1rem;
}
.spot_image {display:flex; gap:12px;}
.spot_image figure {flex:1 1 calc(50% - 12px); background:#fff; border-radius:8px; overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,0.04);}
.spot_image img {display:block; width:100%; height:auto; object-fit:cover;}
.spot_name {font-weight:700; font-size:1.12rem; margin-bottom:8px; color:#e60033;}
.spot_name span {display:inline-block; background:#e60033; color:#fff; font-size:0.9rem; padding:2px 8px; margin-right:8px; border-radius:4px;}

/* small screens adjust */
@media (max-width:900px) {
  .spot_image figure {flex-basis:100%;}
  
}

/* small screens adjust */
@media (max-width:600px) {
.spot_image {display:block;}
}


/* conditions dl */
.conditions dl {background:#fff; border:1px solid #eee; padding:15px 30px; border-radius:8px;}
.conditions dt{font-weight:700; margin-top:12px;}
.conditions dd{margin-left:16px; margin-bottom:12px;}
.conditions table {width:100%; border-collapse:collapse; margin-top:10px;}
.conditions table td {border:1px solid #e6e6e6; padding:10px;}

/* application steps */
.application .step {background:#fff; border-radius:10px; padding:18px 30px; box-shadow:0 6px 16px rgba(0,0,0,0.04); margin-bottom:12px;}
.application .step.arrow {background:transparent; box-shadow:none; text-align:center;}
.application .arrow-icon {font-size:1.3rem; color:#e60033; display:inline-block; transform:translateY(-6px);}
.step_title {text-align:center; font-weight:900; font-size:1.05rem; color:#fff; background-color:#494747; display:block; padding:8px 14px; border-radius:8px; position:relative;  margin:0 auto 10px;}
.step_title::before {content:""; position:absolute; inset:-6px; background:linear-gradient(90deg,#e60033,#ff7b9b); z-index:-1; border-radius:10px; opacity:0.95;}

/* CTA */
.center-cta {text-align:center; margin-top:30px;margin-bottom: 20px;}
.cta-button {display:inline-block; background:linear-gradient(90deg,#ff416c,#ff7300); color:#fff; padding:14px 26px; border-radius:40px; font-weight:800; box-shadow:0 8px 24px rgba(255,80,100,0.18); transition:transform .16s ease; border: none;width: 80%!important;font-size: 1.4rem;text-decoration: none!important;}
.cta-button:hover, .cta-button:focus {transform:translateY(-3px); outline:none;}

/* footer */
footer {background:#00582d; color:#fff; padding:20px 10px; text-align:center; font-size:0.9rem;}
footer a {color:#fff; opacity:0.9;}

/* header small */
header.scrolled {box-shadow:0 6px 20px rgba(0,0,0,0.08);}
@media (max-width:520px) {

  .top-title h1 {font-size:1.05rem;}
}

/* --- global readability overrides --- */
.container { max-width: 1050px; margin-left:auto; margin-right:auto; padding-left:20px; padding-right:20px; }
body { line-height:1.75; }
.section { padding-top:36px; padding-bottom:36px; }

@media (max-width:600px){
  body { line-height:1.6; font-size:15px; }
  .top .top-title h1 { font-size:22px; }
  .top-slider .slide { height:300px; }
}

/* Spot photos: 2 columns on desktop, single column on mobile */
.spot-gallery { display:flex; flex-wrap:wrap; gap:16px; }
.spot-gallery .spot { flex:1 1 calc(50% - 16px); min-width:260px; }
.spot-gallery .spot img { width:100%; height:auto; display:block; }
@media (max-width:800px){
  .spot-gallery .spot { flex-basis:100%; }
}

/* ==============================
   リスト・リンク
============================== */
ul {
  list-style: disc;
  margin-left: 1.5em;
}
ol {
  list-style: decimal;
  margin-left: 1.5em;
}

li{
	margin-bottom: 6px;
}

a {
  color: #06c;
  text-decoration: underline;
}

.conditions ul,.conditions ol{
	margin-left: 0.7em;
	text-align: justify;
}
/* ==============================
   出発日・金額（重要情報）
============================== */
.info p.day {
  font-weight: bold;
  color: #e60033;
  margin: 10px 0;
  font-size: 1.2rem;
}

/* ==============================
   テーブル
============================== */
/* ==============================
   テーブル
============================== */
/* 共通：schedule以外 */
table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px 0;
}
th, td {
  border: 1px solid #ccc;

}
th {
  background: #f6f6f6;
  font-weight: bold;
  text-align: center;
}
td {
  text-align: center;
}


.pay th{
	vertical-align: middle!important;
}

/* schedule専用 */
.schedule {
  overflow-x: auto;
	min-width: 600px!important;
}
.schedule table {
  min-width: 600px!important;
}
.schedule th {
  text-align: center;
vertical-align: middle;
border: 2px solid #ccc!important;
}
.schedule td {
  text-align: left;
padding: 10px;
font-size: 100%;
border-right: 2px solid #ccc!important;
border-left: 2px solid #ccc!important;
border-top: 1px 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
}
.border-t{
	border-top: 2px solid #ccc!important;
}

.border-b{
	border-bottom: 2px solid #ccc!important;
}

.bgy{
	background-color: #FFF3C4;
}

/* torikeshi */

.torikeshi td {
  vertical-align: middle!important;
}

.application button {
  display: inline-block;
  margin-top: 20px;
  padding: 18px 50px;
  font-size: 1.3rem;
  font-weight: bold;
  background: #e60033;
  color: #fff;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: background 0.3s;
}
.application button:hover {
  background: #c10029;
}

.t-c{text-align: center!important;	
}

.t-l{text-align: left!important;
	
}

.t-r{text-align: right!important;}
.pink{
	color: #ff416c;
}
.fwb{
	font-weight: bold;
}

.small{font-size: 85%;
	
}

.pc{
	display: block!important;
}
.sp{
	display: none!important;
}

@media (max-width:600px){
	main{
		padding: 20px;
	}
	.conditions dl,.step {
		padding: 18px!important;
	}
	
.pc{
	display: none!important;
}
.sp{
	display: block!important;
}
}

/* YES/NOボタン共通 */
.yes_no {
  display: flex;
  justify-content: center;
  gap: 24px; /* ボタンの間隔を広めに */
  margin: 28px 0 12px;
}

.mokofo {
  display: inline-block;
  padding: 16px 40px; /* 大きめサイズ */
  font-size: 1.6rem;
  font-weight: 600;
  text-decoration: none;
  color: #fff;
  border-radius: 10px;
  transition: background 0.2s ease, transform 0.2s ease;
  text-align: center !important;
  width: 300px;
  box-sizing: border-box; /* パディングを含めて幅計算 */
}

/* 色指定 */
.mokofo.yes {
  background: #007bff; /* 青 */
}

.mokofo.no {
  background: #dc3545; /* 赤 */
}

.mokofo:hover {
  transform: translateY(-3px);
  opacity: 0.9;
}

/* 説明文 */
.yes_no-caption {
  text-align: center;
  font-size: 1rem;
  color: #555;
}

/* スマホでは縦並び */
@media (max-width: 600px) {
  .yes_no {
    flex-direction: column;
    align-items: center; /* 子要素を中央揃え */
    gap: 16px;
    width: 100%;
    padding: 0 15px; /* 左右に余白を追加 */
    box-sizing: border-box;
  }
  
  .mokofo {
    text-align: center;
    width: 70%;
    max-width: 280px; /* 最大幅を制限 */
    margin: 0 auto; /* 念のため中央揃え */
  }
}

/* より小さなスマホ対応 */
@media (max-width: 480px) {
  .yes_no {
    padding: 0 20px; /* 余白を増やす */
  }
  
  .mokofo {
    width: 80%; /* 幅を少し広げる */
    max-width: 250px;
    padding: 14px 30px; /* パディングを少し小さく */
    font-size: 1.2rem; /* フォントサイズを少し小さく */
  }
}

/* 超小型スマホ対応 */
@media (max-width: 360px) {
  .yes_no {
    padding: 0 10px;
  }
  
  .mokofo {
    width: 90%;
    max-width: 220px;
    padding: 12px 20px;
    font-size: 1.1rem;
  }
}
.bank{
	border: dotted darkgray 1px;
	margin: 10px auto;
	padding: 10px;
	
}

strong{
	color: #004DA0!important;
}
.red{
	color: red;
	font-weight: bold;
}

.fp {font-size:1.1rem; font-weight:600; color:#e60033;}

.vc{
	vertical-align: middle;
}


/* ツアータイトル部分 */
.tour-header {
margin-top: 30px;
margin-bottom: 20px;
  background: #FFFFFF;
  padding: 60px 20px 20px;
  text-align: center!important;
  color: #fff;
  position: relative;
  overflow: hidden;
}


/* タイトル文字 */
.tour-title {
  font-size: 6rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.3;
  position: relative;
  display: inline-block;
  z-index: 1;
  background: linear-gradient(90deg, #c72b6b 0%, #5db3ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: fade-in 1.4s ease-out forwards;
font-family: 'Shippori Mincho B1', 'Hiragino Mincho ProN', 'Yu Mincho', serif;
}

/* サブタイトル */
.tour-title .subtitle {
  display: block;
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-top: 6px;
  background: linear-gradient(90deg, #c72b6b 0%, #5db3ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 小さなフェード演出 */
@keyframes fade-in {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 幅調整 */
.title-wrap {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

@media (max-width: 700px) {
	.tour-title{
		font-size: 3rem;
	}
	.tour-title .subtitle{font-size: 1.3rem;}
}

.fs80{
	font-size: 80%;
}

.fs70{
	font-size: 70%;
}

.kome ul {
      list-style-type: none;
    }

.kome li {
  padding-left: 1.6em; /* リストマーカーを「※」の代わりに表示するためのスペースを確保 */
  text-indent: -0.75em; /* 最初の行を左に移動させる */
}

.kome li::before {
      content: "※"; /* ここに表示したい文字を入れる */
      display: inline-block;
      padding-right: 0.4em; /* 適切なマージンを設定 */
    }

.kaisei-decol-regular {
  font-family: "Kaisei Decol", serif;
  font-weight: 400;
  font-style: normal;
}

.kaisei-decol-medium {
  font-family: "Kaisei Decol", serif;
  font-weight: 500;
  font-style: normal;
}

.kaisei-decol-bold {
  font-family: "Kaisei Decol", serif;
  font-weight: 700;
  font-style: normal;
}
.kiwi-maru-light {
  font-family: "Kiwi Maru", serif;
  font-weight: 300;
  font-style: normal;
}

.kiwi-maru-regular {
  font-family: "Kiwi Maru", serif;
  font-weight: 400;
  font-style: normal;
}

.kiwi-maru-medium {
  font-family: "Kiwi Maru", serif;
  font-weight: 500;
  font-style: normal;
}
.yusei-magic-regular {
  font-family: "Yusei Magic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.margin20{
	margin: 20px 0;
}

/* デスクトップ用テーブル */
.desktop-table {
  display: block;
}

.mobile-schedule {
  display: none;
}

/* デスクトップ用テーブル */
.desktop-table {
  display: block;
}

.mobile-schedule {
  display: none;
}

/* モバイル用縦型スケジュール */
.mobile-schedule {
  background: #fff;
  border-radius: 8px;
  padding: 25px;
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
  margin-bottom: 25px;
}

.schedule-date {
  text-align: center;
  margin-bottom: 30px;
  padding-bottom: 20px;
  border-bottom: 2px solid #f0f0f0;
}

.schedule-date h4 {
  font-family: 'Kaisei Decol', serif;
  font-size: 1.4rem;
  color: #00582d;
  margin-bottom: 15px;
  font-weight: 700;
}

.meal-info {
  display: flex;
  justify-content: center;
  gap: 15px;
  flex-wrap: wrap;
}

.meal-item {
  background: linear-gradient(135deg, #f8f9fa, #e9ecef);
  padding: 8px 15px;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 600;
  color: #495057;
  border: 1px solid #dee2e6;
}

/* タイムライン */
.timeline {
  position: relative;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 35px;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, #00582d, #ffd700);
  border-radius: 2px;
}

.timeline-item {
  position: relative;
  margin-bottom: 25px;
  padding-left: 85px;
}

.timeline-item.highlight::before {
  display: none;
}

.time {
  position: absolute;
  left: 0;
  top: 0;
  font-family: 'Kaisei Decol', serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #00582d;
  background: linear-gradient(135deg, #fff, #faf8f3);
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid #e0e0e0;
  min-width: 65px;
  text-align: center;
  line-height: 1.2;
}

/* timeline-content に変更（contentから変更） */
.timeline-content {
  background: linear-gradient(135deg, #fafafa, #f5f5f5);
  padding: 15px 20px;
  border-radius: 4px;
  border: 2px solid #dee2e6;
}

.timeline-item.highlight .timeline-content {
  background: linear-gradient(135deg, #fff8e1, #fff3c4);

}

.location {
  font-family: 'Kaisei Decol', serif;
  font-size: 1.1rem;
  font-weight: 600;
  color: #00582d;
  margin-bottom: 8px;
}

.transport {
  font-size: 0.9rem;
  color: #666;
  background: #e3f2fd;
  padding: 4px 10px;
  border-radius: 10px;
  display: inline-block;
  margin-top: 8px;
}

.description {
  font-size: 1rem;
  line-height: 1.6;
  color: #333;
  margin-bottom: 0;
}

.highlight-text {
  color: #00582d;
  font-weight: 700;
}

.note {
  font-size: 0.85rem;
  color: #666;
  font-style: italic;
}

/* レスポンシブ切り替え */
@media (max-width: 768px) {
  .desktop-table {
    display: none;
  }
  
  .mobile-schedule {
    display: block;
  }
  

}

/* 小型スマートフォン調整 */
@media (max-width: 480px) {
  .mobile-schedule {
    padding: 20px 15px;
    border-radius: 6px;
  }
  
  .timeline-item {
    padding-left: 75px;
    margin-bottom: 20px;
  }
  
  .timeline::before {
    left: 30px;
  }
  
  .time {
    font-size: 1rem;
    min-width: 60px;
    padding: 6px 8px;
    border-radius: 5px;
  }
  
  .timeline-content {
    padding: 12px 15px;
    border-radius: 6px;
  }
  
  .meal-info {
    gap: 10px;
  }
  
  .meal-item {
    padding: 6px 12px;
    font-size: 0.85rem;
    border-radius: 8px;
  }
  
  .transport {
    border-radius: 8px;
  }
}