/* ◆全体の余白をリセット◆ */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box; /* paddingを含めたサイズ計算にする */
}
body {
	width: 100%;
	overflow-x: hidden;
}



/* ◆ヘッダー◆ */
#fv {
	width: 100%;
	line-height: 0; /* 画像の下に隙間ができるのを防ぐ */
}
#fv img {
	width: 100%;
	height: auto;
	display: block;
}



/* ◆CTA◆ */
#cta-buttons {
	padding: 20px 5%;
	background: #fff;
}
.cta-container {
	display: flex;
	flex-direction: column;
	gap: 15px;
	max-width: 1200px;
	margin: 0 auto;
}
.btn {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
	text-decoration: none;
	color: #fff;
	font-weight: bold;
	border-radius: 20px; /* 少し丸めて親しみやすく */
	transition: transform 0.2s, box-shadow 0.2s;
	font-size: 1.1rem;
}
.btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.btn i {
	margin-right: 12px; /* アイコンと文字の隙間 */
	font-size: 1.4rem;
}

/* 各カラー設定 */
.btn-tel { background-color: #e63946; }
.btn-line { background-color: #06c755; }
.btn-insta { background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); }
.btn-ship { background-color: #1d3557; } /* 船っぽく紺色 */

/* --- レスポンシブ (PC) --- */
@media (min-width: 768px) {
	.cta-container {
		flex-direction: row;
		flex-wrap: wrap; /* 4つある場合は2列にするか、幅を調整 */
	}

	.btn {
		flex: 1;
		min-width: 200px;
	}
}



/* ◆スケジュール カレンダー◆ */
#schedule {
	padding: 40px 2%;
	max-width: 1200px;
	margin: 0 auto;
}
.section-title {
	text-align: center;
	margin-bottom: 30px;
	padding: 6px 0;
	color:#fff;
	background-color:#0044cc;
	border-radius:4px;
}
.calendar-agenda {
	margin-bottom: 50px;
}
.calendar-months {
	display: flex;
	flex-direction: column; /* スマホでは縦 */
	gap: 40px;
}
.month-item h3 {
	margin-bottom: 15px;
	padding-left: 10px;
	border-left: 5px solid #616161;
}
/* iframe共通の設定 */
#schedule iframe {
    width: 100%;
    height:500px;
    max-width: 100%;
}
.calendar-nav {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
	margin-bottom: 30px;
	font-size: 1.2rem;
	font-weight: bold;
}

.calendar-nav button {
	background: #004488;
	color: white;
	border: none;
	padding: 10px 15px;
	border-radius: 5px;
	cursor: pointer;
	transition: 0.3s;
}
.calendar-nav button:hover {
	background-color: #0066cc;
}
#calendar-label {
	min-width: 200px;
	text-align: center;
}
.cal_year {
	margin: auto 4px;
	font-size: 0.8rem;
	font-weight: bold;
}

@media (min-width: 992px) { /* PC画面 */
	.calendar-months {
		flex-direction: row;
		gap: 20px;
	}
	.month-item {
		flex: 1;
	}
	.cal_year {
		font-size: 1.2rem;
		font-weight: bold;
	}
}



/* ◆夜の体験セクション◆ */
.night-fishing {
	padding: 80px 20px;
	background-color: #001d3d;
	color: #fff;
	text-align: center;
}
.night-fishing .section-title {
	color: #ffd60a;/
	font-size: 1.8rem;
	margin-bottom: 25px;
	line-height: 1.4;
}
.night-fishing .section-intro {
	max-width: 800px;
	margin: 0 auto 40px;
	line-height: 1.8;
}
/* 画像ギャラリー（3列×2段、スマホでは2列×3段） */
.photo-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin-bottom: 40px;
}
.photo-card {
	position: relative;
	overflow: hidden;
	border-radius: 12px;
	box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}
.photo-card img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
	transition: transform 0.5s;
}
.photo-card:hover img {
	transform: scale(1.1);
}
/* 画像の上のバッジ */
.photo-badge {
	position: absolute;
	bottom: 10px;
	right: 10px;
	background-color: rgba(230, 57, 70, 0.9);
	color: #fff;
	padding: 5px 12px;
	border-radius: 20px;
	font-size: 0.85rem;
	font-weight: bold;
}
.experience-desc {
	font-size: 1.1rem;
	margin-bottom: 50px;
}
/* インスタ誘導ボタン */
.insta-link-box {
	background: rgba(255, 255, 255, 0.1);
	padding: 30px;
	border-radius: 20px;
	border: 1px solid rgba(255, 255, 255, 0.2);
}
.insta-catch {
	color: #ffd60a;
	font-weight: bold;
	margin-bottom: 20px;
}
.btn-insta {
	display: inline-block;
	background: linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
	color: #fff;
	padding: 18px 40px;
	border-radius: 50px;
	text-decoration: none;
	font-weight: bold;
	font-size: 1.2rem;
	transition: 0.3s;
	box-shadow: 0 4px 15px rgba(225, 48, 108, 0.4);
}
.btn-insta:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(225, 48, 108, 0.6);
}
.insta-sub {
	margin-top: 20px;
	font-size: 0.9rem;
	opacity: 0.8;
}

/* レスポンシブ対応 */
@media (max-width: 900px) {
	.photo-gallery {
		grid-template-columns: repeat(2, 1fr);
		gap: 15px;
	}
}
@media (max-width: 600px) {
	.night-fishing .section-title {
		font-size: 1.4rem;
	}
	.photo-card img {
		height: 160px;
	}
}



/* ◆料金案内◆ */
#price {
	padding: 40px 20px;
}
.price-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 20px;
}
.price-table th,
.price-table td {
	padding: 15px;
	border-bottom: 1px solid #eee;
	text-align: left;
}

.price-table th {
	font-weight: bold;
	color: #333;
}
.price-table td {
	text-align: right;
	font-weight: bold;
	color: #d81b60; /* アクセントカラー */
}
.tax-note {
	font-size: 0.8rem;
	font-weight: normal;
	margin-left: 5px;
}
/* キャンセル */
.cancel-policy {
	margin: 20px 1rem auto 1rem;
	padding: 15px;
	border: 1px solid #eee;
	border-radius: 8px;
	background-color: #fdfdfd;
}
.cancel-policy h3 {
	font-size: 1rem;
	margin: 0 0 10px 0;
	color: #333;
}
.cancel-policy p {
	font-size: 0.9rem;
	margin: 0;
	line-height: 1.5;
}

/* ◆設備・船内紹介◆ */
#facilities {
	padding: 40px 20px;
}
.facility-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 20px;
}
.facility-item {
	display: flex;
	align-items: center;
	gap: 15px;
	background: #f9f9f9;
	border-radius: 8px;
	overflow: hidden;
}
.facility-img {
	width: 100px;
	height: 100px;
	flex-shrink: 0;
}
.facility-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.facility-info {
	padding-right: 15px;
}
.facility-info h3 {
	margin: 0 0 5px 0;
	font-size: 1.1rem;
	color: #0044cc;
}
.facility-info p {
	margin: 0;
	font-size: 0.9rem;
	color: #666;
}
/* セクションの区切り線 */
.section-divider {
	border: none;
	border-top: 1px solid #eee;
	margin: 0 20px;
}

/* PC用の横並び設定 */
@media (min-width: 768px) {
	.flex-container {
		display: flex;
		gap: 40px; /* セクション間の余白 */
		padding: 0 20px;
		align-items: flex-start; /* 上揃え */
	}
	#price, #facilities {
		flex: 1; /* 50%ずつ分け合う */
		padding: 40px 0; /* 横並び時は左右パディングを調整 */
	}
}
/* スマホ用の微調整 */
@media (max-width: 767px) {
	#price, #facilities {
		padding: 40px 20px;
	}
}



/* ◆アクセス◆ */
#access {
	padding: 40px 20px;
}
.access-container {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 20px;
}
.access-info {
	text-align:center;
}
.address-box h3 {
	font-size: 1.2rem;
	margin-bottom: 5px;
	color: #333;
}
.map-link {
	display: inline-block;
	padding: 10px 20px;
	background-color: #f8f9fa;
	border: 1px solid #0044cc;
	color: #0044cc;
	text-decoration: none;
	border-radius: 5px;
	font-weight: bold;
	margin-top: 15px;
	transition: 0.3s;
}
.map-link:hover {
	background-color: #0044cc;
	color: #fff;
}

.map-frame {
	width: 100%;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

/* PC用の横並び設定 */
@media (min-width: 768px) {
	.access-container {
		flex-direction: row;
		align-items: center;
	}
	.access-info {
		flex: 1;
		text-align:center;
	}
	.map-frame {
		flex: 1.5; /* 地図を少し広めに */
	}
}



/* ◆船長紹介◆ */
#captain {
	background-color: #333; /* 画像ロードまでの背景色 */
	background-image: url('../img/captain-bg.png'); 
	background-size: cover;
	background-position: right 160px; /* 画像位置 */
	background-attachment: fixed; 
	padding: 40px 20px; 
	color: #fff;
	position: relative;
	overflow: hidden;
}
/* 画像の上に半透明の膜を張って、文字を読みやすくする */
#captain::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.3); /* 黒の30%透明 */
	z-index: 1;
}
.captain-inner {
	position: relative;
	z-index: 2; /* 文字を膜の上に持ってくる */
	max-width: 800px;
	margin: 0 auto;
}
.captain-title {
	font-size: 2rem;
	margin-bottom: 20px;
	display: inline-block;
	text-shadow: 2px 2px 4px rgba(0,0,0,0.9); /* 文字に影をつける */
}
.captain-text-box p {
	line-height: 1.8;
	margin-bottom: 15px;
	text-shadow: 2px 2px 4px rgba(0,0,0,0.9); /* 文字に影をつける */
}



/* ◆コピーライト◆ */
#footer {
	background-color: #333;
	color: #fff;
	padding: 30px 15px;
	text-align: center;
}
.footer-tel a {
	display: inline-block;
	color: #fff;
	text-decoration: none;
	font-size: 1.5rem;
	font-weight: bold;
	margin-top: 10px;
	color: #ffeb3b;
}
.footer-tel i {
	margin-right: 8px;
	font-size: 1.8rem;
}

/* --- スマホ用調整 --- */
@media (max-width: 480px) {
	.footer-location {
		font-size: 0.8rem;
	}
	.footer-tel a {
		font-size: 1.4rem;
		color: #ffeb3b;
	}
}



/* ◆画面上部固定ボタン◆ */
#fixed-reserve {
	position: fixed;
	top: 20px;
	right: -400px; /* 隠れている位置 */
	display: flex;
	flex-direction: row; /* 横並び */
	gap: 10px;
	z-index: 1000;
	transition: right 0.4s ease;
}
/* 表示された時の位置 */
#fixed-reserve.is-show {
	right: 2px;
}
#fixed-reserve a {
	display: flex;
	align-items: center;
	white-space: nowrap;
	padding: 10px 18px;
	border-radius: 6px;
	color: #fff;
	text-decoration: none;
	font-size: 0.85rem;
	box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.btn-tel { background-color: #ff9800; }
.btn-line { background-color: #06c755; }

.btn-tel i, .btn-line i {
	margin-right: 8px;
	font-size: 1.1rem;
}

/* スマホで横並びがキツい場合の微調整 */
@media (max-width: 480px) {
	#fixed-reserve {
		top: 20px;
		right: -400px;
		gap: 5px;
	}
	#fixed-reserve.is-show {
		right: 10px;
	}
	#fixed-reserve a {
		padding: 8px 12px;
		font-size: 0.75rem;
	}
}



/* ◆TOPに戻るボタン◆ */
#page-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	display: flex;
	flex-direction: column; /* 矢印とTOPを縦に並べる */
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	background-color: #333;
	color: #fff;
	text-decoration: none;
	border-radius: 50%; /* 丸いボタン */
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s;
	box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

/* 表示状態 */
#page-top.is-show {
	opacity: 1;
	visibility: visible;
}

#page-top i {
	font-size: 1.2rem;
	line-height: 1;
}

#page-top span {
	font-size: 0.7rem;
	font-weight: bold;
	margin-top: -2px;
}

/* ホバー時に少し浮く演出 */
#page-top:hover {
	background-color: #555;
	transform: translateY(-5px);
}