@charset "utf-8";
/*-------------------------------------------------

共通設定

-------------------------------------------------*/
* {
	margin: 0;
	padding: 0;
}
body,html{
	min-width:1040px;
}
html {
	height:100%;
	overflow-y:scroll;/* filter:expression(document.execCommand("BackgroundImageCache",false, true));*/
}
body {
	color: #263445;
	font-family:"Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
	font-size: 16px;
	line-height: 1.8;
	word-wrap: break-word;
	-webkit-text-size-adjust: 100%;
}
img {
	max-width:100%;
	height:auto;
	width /***/:auto;
	border: none;
	vertical-align: text-bottom;
}
table {
	width: 100%;
	border-spacing: 0;
	border-collapse: collapse;
}
ul li {
	list-style-type: none;
}
ol{
	padding-left:1.5em;
}
.indent {
	padding-left:1em;
	text-indent:-1em;
}
ul.list_dics li{
	list-style-type:disc;
	padding-left:0;
	margin-left:1.3em;
}
ul.indentList li{
	list-style-type:disc;
	padding-left:0;
	margin-left:1.3em;
}
.indent1 {
	padding-left:1em !important;
}
.indent2 {
	padding-left:2em !important;
}
.indent3 {
	padding-left:3em !important;
}
sup,
.super {
	font-size: 0.5em;
	vertical-align: super;
	margin: 0 !important;
}
i{
	margin:0 0.5em 0 0;
}
.small {
	font-size: 0.8em !important;
}
.middle {
	font-size: 1.2em !important;
}
.large {
	font-size: 1.4em !important;
}
.white{
	color: #FFFFFF !important;
}
.red {
	color: #D23C3C !important;
}
.bold {
	font-weight: bold !important;
}
.clear {
	clear: both !important;
}
.center {
	text-align: center !important;
}
.left {
	text-align: left !important;
}
.right {
	text-align: right !important;
}
.radius {
	border-radius: 5px;         /* CSS3 */
	-moz-border-radius: 5px;    /* Firefox */
	-webkit-border-radius: 5px; /* Safari,Chrome */
	border-bottom-right-radius: 5px;         /* CSS3 */
	border-bottom-left-radius: 5px;         /* CSS3 */
	-moz-border-radius-bottomright: 5px;    /* Firefox */
	-moz-border-radius-bottomleft: 5px;    /* Firefox */
	-webkit-border-bottom-right-radius: 5px; /* Safari,Chrome */
	-webkit-border-bottom-left-radius: 5px; /* Safari,Chrome */
}
.shadow {
	-webkit-box-shadow: 0px 0px 5px rgba(0,0,0,0.2);
	box-shadow: 0px 0px 5px rgba(0,0,0,0.2);
	text-shadow:1px 1px 0 rgba(0, 0, 0, 0.5);
}
input, select, textarea, button {
	color: #263445;
	font-family: "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS P Gothic", "Osaka", Verdana, Arial, Helvetica, sans-serif;
	font-size: 14px;
	padding: 0.3em 0.3em;
	border: 1px solid #D2D2D2;
	box-sizing: border-box;
}
option {
	color: #263445;
	font-family: "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS P Gothic", "Osaka", Verdana, Arial, Helvetica, sans-serif;
	font-size: 14px;
}
textarea {
	resize: vertical;
	width: 100%;
}
input[type="radio"], input[type="checkbox"] {
	border: none;
	-webkit-transform: scale(1);
	transform: scale(1);
}
.sp{
	display:none;
}
.mt_s{
	margin-top:1rem !important;
}
.mb_xs{
	margin-bottom:0.5rem !important;
}
.mb_s{
	margin-bottom:1rem !important;
}
.mb_m{
	margin-bottom:3rem !important;
}
.mb_l{
	margin-bottom:5rem !important;
}
.mb_xl{
	margin-bottom:7rem !important;
}
.mb_n{
	margin-bottom:0 !important;
}
.pb_m{
	padding-bottom:3rem !important;
}
.pa_m{
	padding:2rem !important;
}
.ptb_s{
	padding-top:1rem !important;
	padding-bottom:1rem !important;
}
.ptb_m{
	padding-top:3rem !important;
	padding-bottom:3rem !important;
}
.ptb_l{
	padding-top:5rem !important;
	padding-bottom:5rem !important;
}
@media screen and (max-width:720px) {
body,html{
	min-width:inherit;
}
body {
	font-size:14px;
	line-height:1.6;
	-moz-box-sizing:border-box;
}
input, select, textarea {
	max-width:100%;
}
.pc{
	display:none;
}
.sp{
	display:block;
}
}
/*-------------------------------------------------

リンク

-------------------------------------------------*/
a {
	color: #263445;
	text-decoration: underline;
	transition: opacity 0.3s ease;
}
a:hover {
	opacity: 0.7;
}
@media screen and (max-width:720px) {
}
/*-------------------------------------------------

ラップ

-------------------------------------------------*/
.wrap {
	clear: both;
	position: relative;
	width: 1000px;
	padding: 0 20px;
	margin: 0 auto;
}
@media screen and (max-width:720px) {
.wrap {
	width: 90%;
	padding:0;
}
}
/*-------------------------------------------------

ヘッダー

-------------------------------------------------*/
header {
	padding:1rem 2.5%;
}
header .logo{
	width:200px;
}
@media screen and (max-width:720px) {
header .logo{
	width:30%;
	max-width:200px;
}
}
/*-------------------------------------------------

メイン

-------------------------------------------------*/
h1 img{
	display:block;
}
h2{
	font-family:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", sans-serif;
	font-size:2.4rem;
	font-weight:normal;
	line-height:1.4;
}
.icn_plane::before,
.icn_check::before,
.icn_flag::before,
.icn_calendar::before,
.icn_file::before {
	color: #1A94AE;
	font-weight:normal;
	margin-right: 0.5em;
	font-family: "FontAwesome";
	content: "\f072";
}
.icn_check::before {
	content: "\f046";
}
.icn_check::before {
	content: "\f046";
}
.icn_flag::before {
	content: "\f024";
}
.icn_calendar::before {
	content: "\f073";
}
.icn_file::before {
	content: "\f0f6";
}
h3{
	color:#1A94AE;
	font-size:1.8rem;
	font-weight:normal;
	line-height:1.4;
}
h4{
	font-size:1.2rem;
	font-weight:normal;
	line-height:1.4;
}
.bg_green{
	background-color: #ECF7F2; /* グラデーション非対応時の保険 */
	background-image:
		radial-gradient(circle at 85% 10%, rgba(255, 236, 196, 0.7) 0%, rgba(255, 236, 196, 0) 40%), /* 右上：南国の日差し */
		linear-gradient(170deg, #D6F1EE 0%, #ECF7F2 45%, #FBF8F1 100%); /* 海 → 砂浜 */
}
.bg_white {
	background-color: #FFFFFF;
	background-image:
		radial-gradient(circle at 0% 0%, rgba(26, 148, 174, 0.08) 0%, rgba(26, 148, 174, 0) 35%),
		radial-gradient(circle at 100% 100%, rgba(255, 210, 44, 0.12) 0%, rgba(255, 210, 44, 0) 35%);
}
.box_line{
	padding:2rem;
	border:1px solid #C5D3D6;
	border-radius:1.4rem;
	background: #FFFFFF;
}
.box_yellow{
	padding:2rem;
	border-radius:1.4rem;
	background: #FFF2E9;
}
ol.flex_rows{
	--gap: 2rem;               /* カード同士の間隔 */
	--arrow-color: #1A94AE;    /* 矢印の色 */
	--num-size: 4rem;          /* 番号の丸の大きさ */
	--num-bg: #1A94AE;         /* 番号の背景色 */
	--num-color: #FFFFFF;      /* 番号の文字色 */
	--card-bg: #FFFFFF;        /* カード背景 */
	--card-border: #C5D3D6;    /* カードの枠線 */

	display: flex;
	flex-wrap: wrap;
	gap: var(--gap);
	list-style: none;
	margin-left: 0;
	padding: calc(var(--num-size) / 2) 0 0; /* 飛び出た番号ぶんの余白 */
	counter-reset: step;
}
ol.flex_rows > li {
	position: relative;
	flex: 1 1 calc((100% - 4rem) / 3);
	min-width: 0;
	box-sizing: border-box;
	padding: 2rem;
	background: var(--card-bg);
	border: 1px solid var(--card-border);
	border-radius: 1.4rem;
	counter-increment: step;
}
ol.flex_rows > li::before {
	content: counter(step);
	position: absolute;
	top: -2rem;
	left: -1rem;
	width: var(--num-size);
	height: var(--num-size);
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--num-bg);
	color: var(--num-color);
	font-weight: 700;
	font-size: 2rem;
	line-height: 1;
}
ol.flex_rows.flow > li:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(var(--gap) / -2);
	transform: translate(50%, -50%);
	width: 1rem;
	height: 1.6rem;
	background: var(--arrow-color);
	clip-path: polygon(0 0, 100% 50%, 0 100%); /* 右向き三角 */
}
div.flex_rows{
	--gap: 2rem;               /* カード同士の間隔 */
	--card-bg: #FFFFFF;        /* カード背景 */
	--card-border: #C5D3D6;    /* カードの枠線 */

	display: flex;
	flex-wrap: wrap;
	gap: var(--gap);
}
div.flex_rows > figure {
	flex: 2;
}
div.flex_rows > figure img{
	border:4px solid #C5D3D6;
}
div.flex_rows > p {
	flex: 3;
}
.tbl_vertical{
	border-right:1px solid #C5D3D6;
	border-bottom:1px solid #C5D3D6;
}
.tbl_vertical th{
	width:30%;
	padding:0.8rem;
	border-left:1px solid #C5D3D6;
	border-top:1px solid #C5D3D6;
	background:#D4EBEF;
}
.tbl_vertical td{
	padding:0.8rem;
	border-left:1px solid #C5D3D6;
	border-top:1px solid #C5D3D6;
	background:#FFFFFF;
}
.tbl_schedule{
	border-right:1px solid #C5D3D6;
	border-bottom:1px solid #C5D3D6;
	background:#FFFFFF;
}
.tbl_schedule th{
	text-align: center;
	padding:0.8rem;
	border-left:1px solid #C5D3D6;
	border-top:1px solid #C5D3D6;
}
.tbl_schedule td{
	text-align: center;
	padding:0.8rem;
	border-left:1px solid #C5D3D6;
	border-top:1px solid #C5D3D6;
}
.col-day  { width: 1%; }
.col-date { width: 1%; }
.col-am   { width: 36%; }
.col-pm   { width: 40%; }
.col-stay { width: 10%; }
.col-meal { width: 13%; }
table.tbl_schedule tr > *:first-child,
table.tbl_schedule td:nth-child(2) {
	white-space: nowrap;
}
.col-am { background: #FFF8E6; }
.col-pm { background: #E6F4F7; }

.tbl_schedule .cell-flight {
	background: #F0F8EB;
}

.tbl_schedule tr:first-child th {
	color: #FFFFFF;
	white-space: nowrap;
	background: #1A94AE;
}
.btn_green{
	display: inline-block;
	min-width:60%;
	color:#FFFFFF;
	font-size: 2rem;
	font-weight: bold;
	text-decoration:none;
	padding: 1rem 2rem;
	border-radius: 10rem;
	background: #1A94AE;
}
.btn_orange{
	display: inline-block;
	min-width:60%;
	font-size: 2rem;
	font-weight: bold;
	text-decoration:none;
	padding: 1rem 2rem;
	border-radius: 10rem;
	background: #FFD22C;
}
.btn_green::after,
.btn_orange::after {
	margin-left: 0.5em;
	font-family: "FontAwesome";
	content: "\f105";
}
.btn_green::after {
	color: #FFFFFF;
}
@media screen and (max-width:720px) {
h2{
	font-size:1.6rem;
}
h3{
	font-size:1.4rem;
}
h4{
	font-size:1.1rem;
}
ol.flex_rows {
	--gap: 3rem;
}
ol.flex_rows > li {
	flex-basis: 100%;
}
ol.flex_rows.flow > li:not(:last-child)::after {
	top: auto;
	right: auto;
	bottom: calc(var(--gap) / -2);
	left: 50%;
	transform: translate(-50%, 50%);
	width: 1.6rem;
	height: 1rem;
	clip-path: polygon(0 0, 100% 0, 50% 100%); /* 下向き三角 */
}
div.flex_rows > figure {
	flex-basis: 100%;
}
div.flex_rows > p {
	flex-basis: 100%;
}
.tbl_vertical th{
	display:block;
	width:auto;
}
.tbl_vertical td{
	display:block;
}
.scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.scroll table {
	min-width: 700px;
	border-collapse: collapse;
}
.btn_green,
.btn_orange{
	font-size: 1.4rem;
}
}
/*-------------------------------------------------

footer

-------------------------------------------------*/
footer {
	padding: 2rem 0;
}
@media screen and (max-width:720px) {
}