@charset "utf-8";
/* CSS Document */

/*------------------------------------------------------------------
--------------------------------------------------------------------
旅行情報ナビページ共通css
--------------------------------------------------------------------
------------------------------------------------------------------*/
a {
    text-decoration:none;
}
a img{
    backface-visibility: hidden;
}
/* PCで表示・SPで非表示 */
.br_pc { display:block; }
.br_sp { display:none; }

/*------------------------------------------------------------------
特集記事共通：チェックアイコン寸法（.checkbox_icon と p-check-icon で共有）
共通CSS・UA 既定で checkbox の実寸がズレる場合の基準にも使う（ID に依存しない）
------------------------------------------------------------------*/
:root {
    --article-check-box: 22px;
    --article-check-border: 2px;
    --article-check-radius: 4px;
    --article-check-color: #65AE06;
    --article-check-after-w: 12px;
    --article-check-after-h: 5px;
    --article-check-after-stroke: 2px;
}

/*------------------------------------------------------------------
見出し
------------------------------------------------------------------*/
.post-section ol{
  margin-top: 3rem;
}
.post-section ol li{
  line-height: 1.4;
  list-style: decimal inside;
}
.post-section ol li+li{
  margin-top: 0.8rem;
}
.section .fw-modal-header h3:before {
	content: none;
}
.section .fw-modal-body h4 {
	color: #14171d;
	border-bottom: 0;
}
.section .rdrDateDisplay {
	margin: 0.833em !important;
}

/*------------------------------------------------------------------
記事
------------------------------------------------------------------*/
/* post-head */
.post-head{
    position: relative;
    margin-top: 2rem;
    margin-bottom: 5rem;
}
.post-head .ttl{
    text-align: left;
    font-size: 3.2rem;
    font-weight: 700;
    margin: 0;
    padding-bottom: 1.5rem;
    border-bottom: 4px solid #398AD0;
}
/* post-mv（単一画像・横幅1000px・PC/SP出し分けなし） */
.post-mv{
    margin-bottom: 5rem;
}
.post-mv .main-img img {
    max-width: 100%;
    height: auto;
}
/* post-body */
.post-body{
    max-width: 80rem;
    display: block;
    margin: 0 auto 10rem;
}
/* post-anklist */
.post-anklist{
    margin-top: 5rem;
    border: 5px solid #EFEFEF;
    padding: 3.5rem 4rem;
    margin-bottom: 7rem;
    counter-reset: num;
}
.post-anklist .item{
    display: flex;
    align-items: flex-start;
}
.post-anklist .item:before{
    font-size: 1.6rem;
    font-weight: 700;
    counter-increment: num;
    content: counter(num)".";
    padding-right: 0.5rem;
    flex-shrink: 0;
}
.post-anklist .item.no-number:before{
    content: none;
    counter-increment: none;
}
.post-anklist .item +.item{
    margin-top: 1.8rem;
}
.post-anklist .item a{
    color: #333333;
    font-weight: 700;
    font-size: 1.6rem;
    line-height: 1.5;
    padding-right: 2rem;
    position: relative;
    flex: 1;
    transition: all .2s ease;
}
.post-anklist .item a:hover{
    color: #398AD0;
}
/* article-lead-box（この記事を読むとわかること・リードボックス） */
.section .article-lead-box {
    border: 1px solid #000;
    padding: 2rem 2.5rem;
}
.section .article-lead-box__ttl {
    font-size: 1.6rem;
    font-weight: 700;
    margin: 0 0 1.2rem;
}
.section .article-lead-box__list {
    margin: 0;
    padding-left: 2rem;
    list-style: disc;
}
.section .article-lead-box__list li {
    line-height: 1.6;
    margin-top: 0.5rem;
}
.section .article-lead-box__list li:first-child {
    margin-top: 0;
}
.section .article-lead-box__list + p {
    margin: 1rem 0 0;
    padding-left: 0;
    line-height: 1.6;
}
/* 注記は本文より一段小さく（.post-section p 等の継承より確実に効かせる） */
.section .article-lead-box p.smallTxt {
    font-size: 1.2rem;
    line-height: 1.55;
}

/* h4 + ListItem の行間を詰める（記事ブロック内のみ／ページIDに依存しない） */
.page-wrap > .section .post-section h4 + ul.ListItem {
    margin-top: 0.5rem;
}
.page-wrap > .section .post-section ul.ListItem {
    margin-bottom: 1rem;
}
.page-wrap > .section .post-section ul.ListItem li {
    line-height: 1.4;
    margin-top: 0.3rem;
}
.page-wrap > .section .post-section ul.ListItem li:first-child {
    margin-top: 0;
}

/* 入れ子リスト（ul ul）は黒丸 */
.page-wrap > .section .post-section ul ul li:before {
    background: #000;
}

.post-anklist .item a:after {
    content: '\e902';
    font-family: 'jttweb' !important;
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 1.2rem;
    color: #398AD0;
    transform: rotate(90deg);
    vertical-align: middle;
}
/* sub-item-wrapを含む親itemは折り返しを許可 */
.post-anklist .item:has(.sub-item-wrap) {
    flex-wrap: wrap;
}
.post-anklist .item:has(.sub-item-wrap) > a {
    flex: 1;
    min-width: 0;
}
/* sub-item-wrap内のリストは連番から除外してインデント */
.post-anklist .sub-item-wrap {
    margin-left: 2rem;
    margin-top: 1rem;
    width: 100%;
    flex-basis: 100%;
}
.post-anklist .sub-item-wrap .item:before {
    content: none;
}

/*------------------------------------------------------------------
目次：.post-anklist--toc（背景・区切り線・色はチケット記事準拠、矢印はグレー枠版と同じ a:after インライン）
※ .post-anklist 単体（グレー枠）は変更しない。--toc のみ上書き。
------------------------------------------------------------------*/
.post-anklist.post-anklist--toc {
    counter-reset: num;
    color: #3D9BB9;
    background: #FCFBF6;
    margin-top: 5rem;
    margin-bottom: 7rem;
    padding: 3.5rem 4rem;
    border: none;
    border-radius: 0;
}
/* nklist-title 相当 */
.post-anklist.post-anklist--toc::before {
    content: "記事の目次";
    display: block;
    font-weight: bold;
    color: #333333;
    font-size: 1.6rem;
    line-height: 1.5;
    border-bottom: 1px solid rgba(39, 40, 39, 0.2);
    padding-bottom: 0.9rem;
    margin-bottom: 0;
}
/* nklist 内 ul.post-anklist と同じ（先頭行の上余白） */
.post-anklist.post-anklist--toc > .item:first-child {
    margin-top: 1rem;
}
.post-anklist.post-anklist--toc > .item + .item {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(39, 40, 39, 0.2);
}
/* サブナビ付きブロックの直後は余白が重なるので margin-top のみ半分 */
.post-anklist.post-anklist--toc > .item:has(.sub-item-wrap) + .item {
    margin-top: 0.5rem;
}
.post-anklist.post-anklist--toc > .item:nth-of-type(4) {
    margin-top: 0.5rem;
}
.post-anklist.post-anklist--toc .item {
    display: flex;
    align-items: flex-start;
    padding-bottom: 0;
    border-bottom: 0;
}
.post-anklist.post-anklist--toc .item:has(.sub-item-wrap) {
    flex-wrap: wrap;
}
/* サブナビ付きブロック：番号＋親リンク行の直下に余白（サブ一覧 ul 側ではない） */
.post-anklist.post-anklist--toc .item:has(.sub-item-wrap) > a {
    flex: 1;
    min-width: 0;
    padding-bottom: 0.85rem;
}
.post-anklist.post-anklist--toc .item:before {
    font-size: 1.6rem;
    font-weight: 700;
    color: #3D9BB9;
    counter-increment: num;
    content: counter(num) ".";
    padding-right: 0.5rem;
    flex-shrink: 0;
}
.post-anklist.post-anklist--toc .item.no-number:before {
    content: none;
    counter-increment: none;
}
/* サブナビ行は連番不要（.item:before より後に置いて上書き） */
.post-anklist.post-anklist--toc .sub-item-wrap .item:before {
    content: none;
    counter-increment: none;
}
/* グレー枠の .post-anklist と同じく、矢印は a:after でテキスト直後にインライン配置 */
.post-anklist.post-anklist--toc .item a {
    color: #3D9BB9;
    font-weight: 700;
    font-size: 1.6rem;
    line-height: 1.5;
    padding-right: 2rem;
    position: relative;
    flex: 1;
    min-width: 0;
    transition: all .2s ease;
}
.post-anklist.post-anklist--toc .item a:hover {
    color: #3D9BB9;
    opacity: 0.7;
    text-decoration: none;
}
.post-anklist.post-anklist--toc .item a:after {
    content: '\e902';
    font-family: 'jttweb' !important;
    display: inline-block;
    margin-left: 0.5rem;
    font-size: 1.2rem;
    color: #398AD0;
    transform: rotate(90deg);
    vertical-align: middle;
}
.post-anklist.post-anklist--toc .sub-item-wrap a {
    margin-left: 1.7rem;
}
/* サブ行どうし：下線で区切る（li+li の上線より確実に「1行目の下の線」が出る） */
.post-anklist.post-anklist--toc .sub-item-wrap li:not(:last-child) {
    border-bottom: 1px solid rgba(39, 40, 39, 0.2);
    padding-bottom: 0.5rem;
    margin-bottom: 0.5rem;
}
.post-anklist.post-anklist--toc .sub-item-wrap {
    margin-left: 0;
    margin-top: 1rem;
    width: 100%;
    border-top: 1px solid rgba(39, 40, 39, 0.2);
    padding-top: 0.5rem;
}
/* サブ内 li.item は .post-anklist .item + .item にもマッチするため、2行目に不要な margin-top が乗るのを防ぐ */
.post-anklist.post-anklist--toc .sub-item-wrap .item + .item {
    margin-top: 0;
}

/* PCのみ：サブナビ1行目まわりの余白を SP（999px以下）と同程度に（max-width 999px ブロックはそのまま） */
@media screen and (min-width: 1000px) {
    .post-anklist.post-anklist--toc .item:has(.sub-item-wrap) > a {
        padding-bottom: 0.5rem;
    }
    .post-anklist.post-anklist--toc .sub-item-wrap {
        margin-top: 0.45rem;
        padding-top: 0.4rem;
    }
}

/* 登録商標R（ディズニー等）下付き表示 */
.tm-sub {
    vertical-align: sub;
    font-size: 1.4em;
    position: relative;
    top: 0.25em;
    white-space: nowrap;
}
.tm-sub::after {
    content: "\00A0";
}
.nowrap-tm {
    white-space: nowrap;
}
.post-section h2 .tm-sub {
    margin-top: 0;
    align-self: auto;
}
.post-section h3 .tm-sub {
    align-self: flex-end;
    margin-top: 0;
}


/*------------------------------------------------------------------
アコーディオン
------------------------------------------------------------------*/
.acd-check {
    display: none;
}
.acd-label {
    display: block;
    position: relative;
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: rgb(57, 138, 208);
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgb(57, 138, 208);
}
.acd-label__inner {
    width: 100%;
    display: block;
    position: relative;
    z-index: 5;
}
.acd-label:after {
    box-sizing: border-box;
    content: '＋';
    display: block;
    font-family: "Font Awesome 5 Free";
    padding: 10px 20px;
    position: absolute;
    right: -14px;
    top: -12px;
    font-size: 2rem;
}
.acd-content {
    display: block;
    opacity: 0;
    padding: 0 10px;
    transition: .5s;
    height: 0;
    visibility: hidden;
}
.acd-check:checked+.acd-label:after {
    content: '－';
}
.acd-check:checked+.acd-label+.acd-content {
    opacity: 1;
    padding: 10px;
    height: auto;
    visibility: visible;
}

/* 施設情報：開閉しないver（常に開いた状態） */
.facility--open .acd-label:after {
    display: none;
}
.facility--open .acd-content {
    opacity: 1;
    padding: 10px;
    height: auto;
    visibility: visible;
}

/*------------------------------------------------------------------
post-section
------------------------------------------------------------------*/
.post-section{
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.post-section+.post-section{
    margin-top: 8rem;
}
.post-section img{
    margin-top: 3rem;
}
.post-section p{
    margin-top: 2.5rem;
    line-height: 1.72;
}
.post-section *:first-child,
.post-section h2 + *,
.post-section h3 + *,
.post-section h4 + *{
    margin-top: 0;
}
.post-section a{
    color: #337AB7;
    text-decoration: underline;
}
.post-section a:hover{
    text-decoration: none;
}
.post-section ul{
    margin-top: 3rem;
}
.post-section ul li{
    padding-left: 1.2rem;
    line-height: 1.4;
    position: relative;
}
.post-section ul li:before{
    position: absolute;
    top: 0.6rem;
    left: 0;
    content: "";
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #398AD0;
}
.post-section ul li+li{
    margin-top: 0.8rem;
}
.post-section ol ul li{
    list-style: none;
}
.post-section .search-app ul.tab {
	list-style: none;
	margin-top: 0;
	padding-left: 0;
}
.post-section .search-app ul.tab li:before {
	content: none;
	display: none;
}
.post-section .search-app ul.tab li + li {
	margin-top: 0;
}
/*
 * .post-section ul li の padding-left / .post-section img の margin-top /
 * .post-section p の line-height・margin が検索窓に掛かり座席ページとずれるため打ち消し
 */
@media screen and (min-width: 1000px) {
    /* plan .search-app .tab li の padding 全体を再指定（.post-section ul li の padding-left 打ち消し） */
    .post-section .search-app ul.tab > li.tab-btn {
        padding: 10px;
    }
}
@media screen and (max-width: 999px) {
    .post-section .search-app ul.tab > li.tab-btn {
        padding-left: 0;
    }
}
.post-section .search-app ul.tab > li.tab-btn > img {
    margin-top: 0;
}
.post-section .search-app .seach-box img {
    margin-top: 0;
}
.post-section .search-app .seach_fukidashi p {
    margin-top: 0;
    line-height: 1.4;
}
.post-section .search-app .gadget_box ul {
	list-style: none;
	margin-top: 0;
	padding-left: 0;
}
.post-section .search-app .gadget_box ul li {
	padding-left: 0;
}
.post-section .search-app .gadget_box ul li:before {
	content: none !important;
	display: none !important;
}
.post-section .search-app .gadget_box ul li + li {
	margin-top: 0;
}

/*------------------------------------------------------------------
見出しスタイル
------------------------------------------------------------------*/
/* h2（PC・SPとも同じブロック表示でレイアウトを安定） */
.post-section h2{
    font-size: 2.4rem!important;
    font-weight: 700!important;
    color: #398AD0!important;
    padding-bottom: 1.8rem;
    border-bottom: 2px solid #E6E6E6;
    margin-bottom: 3rem!important;
    position: relative;
    margin-top: 4rem;
    text-align: left!important;
    display: block !important;
    overflow-wrap: normal;
    word-break: normal;
}
.post-section h2:before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 5rem;
    height: 2px;
    background: #398AD0;
}
/* h3 */
.post-section h3{
    font-size: 1.8rem !important;
    padding-left: 2rem;
    position: relative;
    margin-bottom: 1.5rem  !important;
    color: #003f6c;
    display: flex;
    align-items: center;
    font-weight: bold;
    margin-top: 2.8em;
    flex-wrap: nowrap;
    min-width: 0;
}
.post-section h3 nobr {
    white-space: nowrap;
    flex-shrink: 0;
}
.post-section h3.no-flex{
    font-size: 1.8rem !important;
    padding-left: 2rem;
    position: relative;
    margin-bottom: 1.5rem  !important;
    color: #003f6c;
    display: block;
    font-weight: bold;
    margin-top: 2.8em;
}
.post-section h3.no-flex:before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    width: 0.9rem;
    height: 0.9rem;
    margin-top: -0.45rem;
    background: #398AD0;
}
/* FAQのA本文：太字にしない（strong 等を含めて統一） */
.post-section p.faq-a,
.post-section p.faq-a strong {
    font-weight: normal;
}
.post-section h3:before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    width: 0.9rem;
    height: 0.9rem;
    margin-top: -0.45rem;
    background: #398AD0;
}
/* h4 h5 */
.post-section h4, .post-section h5{
    margin-top: 2rem;
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: #398AD0;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #398AD0;
}

/*------------------------------------------------------------------
total
------------------------------------------------------------------*/
.post-section.total{
    border-top: 4px solid #398AD0;
    background: #F9FBFE;
    padding: 3rem;
}
.post-section.total h2{
    color: #000;
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 2rem;
    font-size: 1.8rem;
    font-weight: 700;
    padding-left: 2rem;
    position: relative;
    margin-bottom: 1.5rem;
}
.post-section.total h2:before{
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    width: 0.9rem;
    height: 0.9rem;
    margin-top: -0.45rem;
    background: #398AD0;
}

/*------------------------------------------------------------------
ボタン
------------------------------------------------------------------*/
.btn {
    color: #003f6c !important;
    text-decoration: auto !important;
}
.section .section-bottom a {
    position: relative;
}
.section .section-bottom a:after {
    font-family: 'jttweb' !important;
    content: '\e902';
    position: absolute;
    font-size: 0.9em;
    right: 1rem;
    top: 50%;
    margin-top: -1rem;
}
.section .section-bottom .plan-btn {
	background: #cc0000;
    color: #fff !important;
    font-weight: bold;
    padding: 6px 1em;
    border-radius: 5px;
	width: 320px;
    text-decoration: none !important;
}
/* オレンジ・強角丸（座席記事ページのEX旅パックCTAに合わせる） */
.section .section-bottom .plan-btn.plan-btn--orange {
    background: #ff7d01;
    border: 2px solid #ff7d01;
    border-radius: 50px;
    padding: 6px 2.5em 6px 1.5em;
    box-sizing: border-box;
}
.section .section-bottom .plan-btn.plan-btn--orange:hover {
    background: #fff !important;
    color: #ff7d01 !important;
    border-color: #ff7d01;
}
/* 赤plan-btnと同形（角丸5px・枠なし）、色のみオレンジ */
.section .section-bottom .plan-btn.plan-btn--orange-flat {
    background: #ff7d01;
}
.section .section-bottom .setplan-btn {
  background: #cc0000;
  color: #fff !important;
  font-weight: bold;
  padding: 6px 2.8em;
  border-radius: 5px;
  width: 75%;
  text-decoration: none !important;
  line-height: 20px;
  position: relative;
}
.section .section-bottom .setplan-btn:before {
	content: "";
	background-image: url(/plan/tokushu/season/off/images/ic01.webp);
    position: absolute;
    width: 27px;
    height: 27px;
    top: 50%;
    left: 10px;
    -webkit-background-size: contain;
    background-size: contain;
    background-repeat: no-repeat;
	transform: translateY(-50%) rotate(-35deg);
}
.section .section-bottom .setplan-btn:hover {
  cursor: pointer;
}
.section .section-bottom .setplan-btn:after {
  font-family: 'jttweb' !important;
  content: '\e902';
  position: absolute;
  font-size: 0.9em;
  right: 1rem;
  top: 50%;
  margin-top: -1rem;
}
.section .btn-more {
    text-align: left;
	text-decoration: underline !important;
	display: block;
	width: 460px;
	margin: 0 auto;
	padding: 10px 2em 10px 4.4em;
	border: 1px solid #ccc;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, 0.12);
    position: relative;
}
.section .btn-more:before {
	content: "";
	background-image: url(/plan/tokushu/season/off/images/ic04.webp);
    position: absolute;
    width: 35px;
    height: 35px;
    top: 50%;
    transform: translateY(-50%);
	left: 15px;
    -webkit-background-size: contain;
    background-size: contain;
    background-repeat: no-repeat;
}
.section .btn.btn-more:hover {
	text-decoration: none!important;
	opacity: 1;
	box-shadow: none;
}
.section .line-btn-wrap .plan-btn{
    width: 420px;
    background: #01B050!important;
}
.section .line-btn-wrap .plan-btn span{
   font-size: 1.6rem;
}
.section .round-btn {
    font-weight: bold;
    text-align: center;
}
.section .round-btn a {
    padding: 5px 10px;
    background: #ff7d01;
    color: #fff;
    border-radius: 50px;
    position: relative;
    display: block;
    border: 2px solid #ff7d01;
    transition: 0.3s;
    text-decoration: none;
    max-width: 400px;
    margin: 0 auto;
}
.section .round-btn a:hover {
    background: #fff;
    color: #ff7d01;
}
.section .round-btn a:after {
    content: "";
    position: absolute;
    width: 7px;
    height: 7px;
    border-top: 3px solid;
    border-right: 3px solid;
    top: 50%;
    right: 12px;
    transform: translateY(-50%) rotate(45deg);
}

/*------------------------------------------------------------------
レイアウト・ユーティリティ
------------------------------------------------------------------*/
.flex-list{
    display: flex;
    align-items: initial;
    gap: 20px;
}
.img-flex {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: stretch;
    gap: 10px;
    margin-top: 10px;
}
.spot-first {
    margin-top: 4rem !important;
}
.spot + .spot {
    margin-top: 6rem;
}
.mt0 {
    margin-top: 0 !important;
}
.tCenter {
    text-align: center;
}
.text-red {
    color: red;
}
.small {
    font-size: 80%;
}
.smallTxt {
    font-size: 80%;
}
.bgLine {
    background:linear-gradient(transparent 50%, #ffff99 50%);
}
.bgLine2 {
    background:linear-gradient(transparent 50%, #f6020224 50%);
}

/* 文頭チェックマーク（.section 内の .post-section で汎用）
   構造: input + .p-check-icon__head（太字見出し1行）+ .p-check-icon__body（続き）
   アイコンは見出し行の縦中央（全体ブロックの中央ではない） */
.section .post-section p.p-check-icon {
    display: grid;
    grid-template-columns: var(--article-check-box) 1fr;
    column-gap: 6px;
    row-gap: 0;
    padding-left: 0;
    position: relative;
    align-items: start;
}
.section .post-section p.p-check-icon > input.checkbox_icon {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    width: var(--article-check-box);
    flex: none;
    margin-top: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;
}
.section .post-section p.p-check-icon > input.checkbox_icon:checked {
    margin-right: 0 !important;
}
.section .post-section p.p-check-icon > .p-check-icon__head {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    padding-left: 0 !important;
    margin-left: 0 !important;
}
.section .post-section p.p-check-icon > .p-check-icon__body {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    display: block;
}

/*------------------------------------------------------------------
コンテンツSEO関連
------------------------------------------------------------------*/
#contents {
    max-width: inherit;
}
.post-head {
    margin-top: 5rem;
}
.spotImg {
    text-align: center;
}
.spotImg a {
    display: inline-block;
    transition: 0.5s;
}
.spotImg a:hover {
    opacity: 0.7;
}
.spotImg .provide {
    margin-left: 10px;
}

/*------------------------------------------------------------------
spot CTAボックス（薄いピンク背景・オレンジボタン）
------------------------------------------------------------------*/
.spot-cta-box {
    background-color: #fdf5f8;
    padding: 2.5rem 2rem;
}
/* 通常版：ピンク背景なし（見出し・ボタンは同じスタイル） */
.spot-cta-box--default {
    background-color: transparent;
}
.spot-cta-box__heading {
    text-align: left;
    font-weight: bold;
    font-size: 1.8rem;
    margin: 0 0 2rem;
    line-height: 1.5;
}
.spot-cta-box__heading .highlight {
    background-color: #ffdd00;
    padding: 0.2em 0.4em;
    border-radius: 4px;
}
.spot-cta-box__heading--pink {
    color: #dd6a94;
}
.spot-cta-box__heading--pink .highlight {
    background: none;
    padding: 0;
}
.spot-cta-box__btns {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.2rem;
    margin-bottom: 0;
}
.spot-cta-box__btns .btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem 2.8em 1rem 2rem;
    border-radius: 5em;
    font-weight: bold;
    font-size: 1.5rem;
    color: #fff !important;
    text-decoration: none !important;
    transition: opacity 0.3s;
    position: relative;
}
.spot-cta-box__btns .btn-cta:hover {
    opacity: 0.9;
}
.spot-cta-box__btns .btn-cta::after {
    font-family: 'jttweb' !important;
    content: '\e902';
    position: absolute;
    font-size: 0.9em;
    right: 1rem;
    top: 50%;
    margin-top: -1rem;
}
.btn-cta-orange {
    background-color: #ff9933;
}
.btn-cta-blue {
    background-color: #66b3e6;
}
.spot-cta-box__note {
    text-align: left;
    font-size: 1.4rem;
    margin: 2rem 0 1rem;
    line-height: 1.6;
}
.spot-cta-box__note--above-btn {
    margin: 0 0 1.5rem;
}
.spot-cta-box__intro {
    text-align: left;
    font-size: 1.4rem;
    line-height: 1.6;
    margin: 0 0 1rem;
}
.spot-cta-box__disclaimer {
    text-align: center;
    font-size: 1.2rem;
    color: #555;
    margin: 0;
}

.facility {
    margin-top: 20px;
}
.facility_table {
    width: 100%;
}
.facility_table th {
    white-space: nowrap;
    width: 6em;
    padding: 10px 0;
    text-align: left;
    vertical-align: top;
}
.facility_table td {
    padding: 10px;
}
.section .fw-top .fw-modal-container {
	margin-top: -40px;
}

/*------------------------------------------------------------------
モーダルウィンドウ
------------------------------------------------------------------*/
#ranking .modal-window {
	display: none;
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: auto;
	height: auto;
	background-color: #fff;
	border-radius: 5px;
	z-index: 1005;
}
#ranking .gadget {
	padding: 0 30px 23px;
}
#ranking .button-close {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 999;
}
#ranking .button-close span {
	display: block;
	width: 100%;
	padding-right: 10px;
    padding-top: 2px;
	border-radius: 5px 5px 0 0;
	font-size: 3.0rem;
	font-weight: bold;
	text-align: right;
	background-color: #fff;
	cursor: pointer;
}
#ranking .modal-window h3 {
  display: flex;
}
#ranking .overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.5);
	width: 100%;
	height: 100%;
	z-index: 1002;
}

/*------------------------------------------------------------------
写真提供
------------------------------------------------------------------*/
figcaption .provide {
  font-size: 1.2rem;
}

/*------------------------------------------------------------------
カラムレイアウト
------------------------------------------------------------------*/
input[type=checkbox] + span::before{
    display: none;
}
input[type=checkbox] + span::after{
    display: none;
}
input[type=checkbox]:checked + span:after{
    display: none;
}

/*------------------------------------------------------------------
チェックボックスリスト
------------------------------------------------------------------*/
.section .checkbox-list{
    display: block;
    margin-top: 2rem;
}
.section .checkbox-list label{
    display: flex;
    align-items: flex-start;
    font-size: 1.6rem;
}
.section .checkbox-list label + label{
    margin-top: 1rem;
}
.section .checkbox-list label span{
    padding-left: 0;
    cursor: initial;
    color: #333333;
}
.section .checkbox-list label span .note{
    color: #333333;
    font-weight: normal;
}
.section input[type=checkbox].checkbox_icon:checked {
    display: block;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    width: var(--article-check-box) !important;
    height: var(--article-check-box) !important;
    min-width: var(--article-check-box) !important;
    min-height: var(--article-check-box) !important;
    max-width: var(--article-check-box) !important;
    max-height: var(--article-check-box) !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    border: var(--article-check-border) solid var(--article-check-color) !important;
    border-radius: var(--article-check-radius) !important;
    margin-right: 12px;
    position: relative;
    background-color: var(--article-check-color);
    flex-shrink: 0;
}
.section input[type=checkbox].checkbox_icon:checked::after {
    display: block;
    color: #fff;
    content: '';
    position: absolute;
    top: 45%;
    left: 50%;
    width: var(--article-check-after-w);
    height: var(--article-check-after-h);
    border-left: var(--article-check-after-stroke) solid white;
    border-bottom: var(--article-check-after-stroke) solid white;
    transform: translate(-50%, -60%) rotate(-45deg);
}
.post-section .checkbox-list + p {
    margin-top: 0.8rem;
}

/*------------------------------------------------------------------
block-contents（新幹線チケットページ等のプロモカード）
https://travel.jr-central.co.jp/plan/tokushu/shinkansen/ticket/ 相当
.section .block-contents 内のみにスコープ（.column-contents と競合回避）
------------------------------------------------------------------*/
.section .block-contents {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}
.section .block-contents .contents-item {
    border: #65AE06 solid 3px;
    border-radius: 20px;
    padding: 20px;
    max-width: 525px;
    width: 100%;
}
.section .block-contents .contents-item a.banner-image {
    display: block;
    transition: all .3s ease;
}
.section .block-contents .contents-item a.banner-image:hover {
    opacity: 0.7;
}
.section .block-contents .contents-item a.banner-image img {
    max-width: 100%;
    height: auto;
    vertical-align: top;
}
.section .block-contents .checkbox-list:not(.checkbox-list--recommend) {
    display: block;
    margin-top: 2rem;
}
.section .block-contents .checkbox-list:not(.checkbox-list--recommend) label {
    display: flex;
    align-items: flex-start;
    font-size: 1.6rem;
}
.section .block-contents .checkbox-list:not(.checkbox-list--recommend) label + label {
    margin-top: 1rem;
}
.section .block-contents .checkbox-list:not(.checkbox-list--recommend) label span {
    padding-left: 0;
    cursor: initial;
    font-weight: bold;
    color: #65AE06;
}
.section .block-contents .checkbox-list:not(.checkbox-list--recommend) label span .note {
    color: #333333;
    font-weight: normal;
}
/* おすすめプラン（.recommend-plans）：共通 .block-contents .checkbox-list とは別枠。ラベル 1.5rem */
.recommend-plans .checkbox-list--recommend {
    display: block;
    margin-top: 2rem;
}
.recommend-plans .checkbox-list--recommend label {
    display: flex;
    align-items: flex-start;
    font-size: 1.5rem;
}
.recommend-plans .checkbox-list--recommend label + label {
    margin-top: 1rem;
}
.recommend-plans .checkbox-list--recommend label span {
    padding-left: 0;
    cursor: initial;
    font-weight: bold;
    color: #65AE06;
}
.recommend-plans .checkbox-list--recommend label span .note {
    color: #333333;
    font-weight: normal;
}
/* オレンジCTA：.column-contents（チケット記事テンプレ）と同一指定 */
.section .block-contents .contents-btn_wrap {
    position: relative;
    padding-top: 2rem;
    margin-top: 1rem;
}
.section .block-contents .contents-btn_ttl {
    color: #FF6E14;
  text-align: center;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 150%;
  padding: 4px 16px;
  border-radius: 90px;
  border: 1px solid #FF6E14;
  background: #FFF;
  position: absolute;
  margin-top: -50px;
}
.section .block-contents .contents-btn_ttl img {
    width: 10px;
}
.section .block-contents .contents-btn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border-radius: 100px;
    background: #EB7F1B;
    box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.15);
    width: 100%;
    transition: all .3s ease;
}
.section .block-contents .contents-btn a.contents-btn_link,
.section .block-contents .contents-btn a.contents-btn_link span {
    color: #FFF !important;
    text-decoration: none !important;
    font-size: 1.4rem;
    font-weight: 700;
}
.section .block-contents .contents-btn a.contents-btn_link {
    position: relative;
    text-align: center;
    padding: 12px 0 8px 0;
    max-width: 415px;
    width: 100%;
    box-sizing: border-box;
}
.section .block-contents .contents-btn a.contents-btn_link::after {
    content: "";
    position: absolute;
    width: 7px;
    height: 7px;
    border-top: 3px solid #FFF;
    border-right: 3px solid #FFF;
    top: 50%;
    right: 12px;
    transform: translateY(-50%) rotate(45deg);
}
.section .block-contents .contents-btn:hover {
    opacity: 0.7;
}
.section .block-contents .contents-note {
    margin-top: 0.7rem;
    font-size: 80%;
}
.section .block-contents .contents-note small {
    font-size: inherit;
}
.section .block-contents .contents-note a {
    color: #337AB7;
    text-decoration: underline;
}
.section .block-contents .contents-note a:hover {
    text-decoration: none;
}

@media (max-width: 767px) {
    /* .section .block-contents：PC と同一スタイル（レイアウト用のみ追加） */
    .section .block-contents {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        gap: 20px;
    }
    .section .block-contents .contents-item {
        max-width: 100%;
        margin-top: 0;
        border: #65AE06 solid 3px;
        border-radius: 20px;
        padding: 20px;
    }
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) {
        display: block;
        margin-top: 2rem;
    }
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label {
        display: flex;
        align-items: flex-start;
        font-size: 1.6rem;
    }
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label + label {
        margin-top: 1rem;
    }
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label span {
        padding-left: 0;
        cursor: initial;
        font-weight: bold;
        color: #65AE06;
    }
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label span .note {
        color: #333333;
        font-weight: normal;
    }
    .section .block-contents .contents-btn_wrap {
        position: relative;
        padding-top: 2rem;
        margin-top: 1rem;
    }
    .section .block-contents .contents-btn_ttl {
        color: #FF6E14;
        text-align: center;
        font-size: 1.2rem;
        font-weight: 700;
        line-height: 150%;
        padding: 4px 16px;
        border-radius: 90px;
        border: 1px solid #FF6E14;
        background: #FFF;
        position: absolute;
        margin-top: -50px;
    }
    .section .block-contents .contents-btn {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 8px;
        border-radius: 100px;
        background: #EB7F1B;
        box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.15);
        width: 100%;
        transition: all .3s ease;
    }
    .section .block-contents .contents-btn a.contents-btn_link,
    .section .block-contents .contents-btn a.contents-btn_link span {
        color: #FFF !important;
        text-decoration: none !important;
        font-size: 1.4rem;
        font-weight: 700;
    }
    .section .block-contents .contents-btn a.contents-btn_link {
        position: relative;
        text-align: center;
        padding: 16px 0 10px 0;
        max-width: 415px;
        width: 100%;
        box-sizing: border-box;
    }
    .section .block-contents .contents-btn a.contents-btn_link::after {
        content: "";
        position: absolute;
        width: 7px;
        height: 7px;
        border-top: 3px solid #FFF;
        border-right: 3px solid #FFF;
        top: 50%;
        right: 12px;
        transform: translateY(-50%) rotate(45deg);
    }
    .section .block-contents .contents-btn:hover {
        opacity: 0.7;
    }
    .section .block-contents .contents-note {
        margin-top: 0.7rem;
        font-size: 80%;
        line-height: 190%;
    }
    .section .block-contents .contents-note small {
        font-size: inherit;
    }
}

/*------------------------------------------------------------------
おすすめプラン（column-contents・共通テンプレ）
IDに依存せず .column-contents とその親でスコープ
------------------------------------------------------------------*/
/* .column-contents を直接子に持つ要素内の .plan-title（ブロック見出し） */
:has(> .column-contents) > .plan-title{
    font-size: 1.8rem;
    margin-bottom: 0;
}
/* おすすめプラン：座席記事（block-contents）と同じ見た目のまま、2列＋下段1列を CSS のみで再現（checkbox-list は修飾クラスで別指定） */
:has(> .recommend-plans) > .plan-title {
    font-size: 1.8rem;
    margin-bottom: 0;
}
.recommend-plans {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
    /* プロモ枠のチェック：記事本文 22px より一段小さく（参考ページの block-contents 相当） */
    --article-check-box: 20px;
    --article-check-after-w: 10px;
    --article-check-after-h: 4px;
}
.recommend-plans > .column-title {
    text-align: center;
    font-size: 1.3rem;
    line-height: 1.5;
    margin-bottom: 0;
    margin-top: 0;
}
.recommend-plans > .column-title strong {
    font-size: 1.5rem;
}
/* .section .block-contents より詳細度を上げ、align-items を stretch に（同一行カードの高さ揃え） */
.section .recommend-plans > .block-contents {
    width: 100%;
    min-width: 0;
    height: 100%;
    align-items: stretch;
    justify-content: flex-start;
}
/* 同一行のカード枠の高さを揃える（グリッド行の高さに合わせて伸長） */
.section .recommend-plans > .block-contents > .contents-item {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.section .recommend-plans .contents-item .contents-btn_wrap {
    margin-top: auto;
    padding-top: 3.5rem;
}
.section .recommend-plans .contents-btn_ttl {
    font-size: 1rem;
    padding: 3px 12px;
}
/* 上段：見出し2＋カード2（DOM 順 p,div,p,div に合わせて配置） */
.recommend-plans > .column-title:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
}
.recommend-plans > .block-contents:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
}
.recommend-plans > .column-title:nth-child(3) {
    grid-column: 2;
    grid-row: 1;
}
.recommend-plans > .block-contents:nth-child(4) {
    grid-column: 2;
    grid-row: 2;
}
/* 下段：3枚目を中央1列（.column-contents の 3 列目相当） */
.recommend-plans > .column-title:nth-child(5) {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-self: center;
    width: 100%;
    max-width: calc(50% - 10px);
}
.recommend-plans > .block-contents:nth-child(6) {
    grid-column: 1 / -1;
    grid-row: 4;
    justify-self: center;
    width: 100%;
    max-width: calc(50% - 10px);
}
@media (max-width: 767px) {
    .recommend-plans {
        grid-template-columns: 1fr;
    }
    .section .recommend-plans > .block-contents {
        height: auto;
        justify-content: flex-start;
    }
    .recommend-plans > .column-title:nth-child(1),
    .recommend-plans > .block-contents:nth-child(2),
    .recommend-plans > .column-title:nth-child(3),
    .recommend-plans > .block-contents:nth-child(4),
    .recommend-plans > .column-title:nth-child(5),
    .recommend-plans > .block-contents:nth-child(6) {
        grid-column: 1 / -1;
        grid-row: auto;
        justify-self: stretch;
        max-width: none;
    }
    .recommend-plans > .column-title {
        font-size: 1.5rem;
    }
    .recommend-plans > .column-title strong {
        font-size: 1.7rem;
    }
    .section .recommend-plans .contents-btn_ttl {
        font-size: 1.2rem;
    }
}

.column-contents .contents-note{
    margin-top: 0.5rem;
    font-size: 1.2rem;
}
.column-contents .contents-note a{
    color: #337AB7;
    text-decoration: underline;
}
.column-contents .contents-note a:hover{
    text-decoration: none;
}
.column-contents .contents-item a.banner-image{
    display: block;
    transition: all .3s ease;
}
.column-contents .contents-item a.banner-image:hover{
    opacity: 0.7;
}
.column-contents .contents-item a.banner-image img{
    max-width: 100%;
    height: auto;
    vertical-align: top;
}
.column-contents .contents-btn_wrap{
    position: relative;
    padding-top: 2rem;
    margin-top: 1rem;
}
.column-contents .contents-btn_ttl{
    color: #FF6E14;
    text-align: center;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.5;
    padding: 4px 16px;
    border-radius: 90px;
    border: 1px solid #FF6E14;
    background: #FFF;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-top: -45px;
    white-space: nowrap;
}
.column-contents .contents-btn{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0;
    border-radius: 100px;
    background: #EB7F1B;
    box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.15);
    width: 100%;
    min-height: 48px;
    transition: all .3s ease;
}
.column-contents .contents-btn a.contents-btn_link,
.column-contents .contents-btn a.contents-btn_link span{
    color: #FFF !important;
    text-decoration: none !important;
    font-size: 1.4rem;
    font-weight: 700;
}
.column-contents .contents-btn a.contents-btn_link{
    position: relative;
    text-align: center;
    padding: 12px 32px 8px 0;
    max-width: 415px;
    width: 100%;
    box-sizing: border-box;
}
.column-contents .contents-btn a.contents-btn_link::after{
    content: "";
    position: absolute;
    width: 7px;
    height: 7px;
    border-top: 3px solid #FFF;
    border-right: 3px solid #FFF;
    top: 50%;
    right: 12px;
    transform: translateY(-50%) rotate(45deg);
}
.column-contents .contents-btn:hover{
    opacity: 0.7;
}

/* カラムレイアウト（3カラム） */
.column-contents{
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 20px;
}
.column-contents .column-item_wrap{
    flex: 1 1 300px;
    max-width: 100%;
}
.column-contents .column-title{
    text-align: center;
    font-size: 1.3rem;
    line-height: 1.5;
    margin-bottom: 0;
}
.column-contents .column-title strong{
    font-size: 1.5rem;
}
.column-contents .contents-item{
    margin-top: 1.5rem;
    padding: 2rem;
    border: 2px solid #8BC34A;
    border-radius: 8px;
    background: #fff;
    box-sizing: border-box;
    box-shadow: none;
}
.column-contents .contents-item .banner-image{
    display: block;
    margin-bottom: 1.5rem;
}
.column-contents .contents-item .banner-image img{
    max-width: 100%;
    height: auto;
    vertical-align: top;
    border-radius: 4px;
}
.column-contents .checkbox-list{
    margin-top: 2rem;
}
.column-contents .checkbox-list label.checkbox-box{
    display: flex;
    align-items: flex-start;
    font-size: 1.5rem;
    color: #333;
    margin-top: 1rem;
}
.column-contents .checkbox-list label.checkbox-box:first-child{
    margin-top: 0;
}
.column-contents .checkbox-list label.checkbox-box span{
    color: #65AE06;
    font-weight: bold;
}
.column-contents .contents-btn_ttl{
    font-size: 1rem;
    margin-top: -60px;
}
.column-contents .contents-btn a.contents-btn_link,
.column-contents .contents-btn a.contents-btn_link span{
    font-size: 1.2rem;
}
.column-contents input[type=checkbox].checkbox_icon{
    flex-shrink: 0;
}
.column-contents input[type=checkbox].checkbox_icon:checked{
    width: 20px;
    height: 20px;
}
.column-contents input[type=checkbox].checkbox_icon:checked::after{
    width: 11px;
    height: 4px;
}

@media (min-width: 768px){
    .column-contents{
        display: grid;
        gap: 20px;
        align-items: stretch;
        grid-template-columns: repeat(2, 1fr);
    }
    .column-contents .column-item_wrap{
        flex: none;
        max-width: none;
        display: flex;
        flex-direction: column;
    }
    /* 3つ目は下段中央に1つ */
    .column-contents .column-item_wrap:nth-child(3){
        grid-column: 1 / -1;
        justify-self: center;
        max-width: calc(50% - 10px);
    }
    .column-contents .contents-item{
        display: flex;
        flex-direction: column;
        min-height: 480px;
        flex: 1;
    }
    .column-contents .contents-item .checkbox-list{
        flex: 1;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 7;
        -webkit-box-orient: vertical;
    }
}

@media (max-width: 767px){
    .column-contents{
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    .column-contents .column-item_wrap{
        width: 100%;
        max-width: 100%;
    }
    .column-contents .column-title{
        font-size: 1.5rem;
    }
    .column-contents .column-title strong{
        font-size: 1.7rem;
    }
    .column-contents .contents-item{
        display: block;
        min-height: auto;
    }
    .column-contents .contents-item .checkbox-list{
        overflow: visible;
        display: block;
        -webkit-line-clamp: none;
    }
    .column-contents .checkbox-list label.checkbox-box{
        font-size: 1.4rem;
    }
    .column-contents .contents-btn_ttl{
        font-size: 1.2rem;
        margin-top: -45px;
    }
    .column-contents .contents-btn a.contents-btn_link,
    .column-contents .contents-btn a.contents-btn_link span{
        font-size: 1.4rem;
    }
    .column-contents input[type=checkbox].checkbox_icon:checked{
        width: 22px;
        height: 22px;
    }
    .column-contents input[type=checkbox].checkbox_icon:checked::after{
        width: 12px;
        height: 5px;
    }
}

/*------------------------------------------------------------------
FAQ
------------------------------------------------------------------*/
.question h3 {
    font-size: 1.8rem;
    font-weight: bold;
    color: #003f6c;
    padding-left: 0!important;
    margin-top: 0;
}
.question h3::before {
    display: none;
}
.question h3:not(:first-of-type) {
    margin-top: 20px;
}
.question h3 + p {
    margin-top: 10px;
}

/*------------------------------------------------------------------
アクセス情報
------------------------------------------------------------------*/
.access_wrap {
	position: relative;
	margin: 43px 0 32px!important;
	padding: 30px 20px 16px;
	border: 1px solid #0069B8;
	border-radius: 3px;
}
.access_wrap dt {
	position: absolute;
	top: -19px;
	left: 16px;
	padding: 8px 14px;
	border-radius: 3px;
	color: #fff;
	background: #0069B8;
	font-weight: bold;
}
.access_wrap dt:before {
	position: absolute;
	top: calc(100% - 6px);
	left: 20px;
	content: "";
	width: 0;
	height: 0;
	border: 8px solid transparent;
	border-top: 13px solid #0069B8;
}
.access_wrap dd p {
	margin-top: 7px;
}
.access_wrap dd .access {
	padding-left: 30px;
	background-repeat: no-repeat;
	background-position: left center;
	background-size: auto 23px;
	font-weight: bold;
}
.access_wrap dd .access.walk {
	background-image: url(/plan/tokushu/season/off/images/ic03.webp);
}
.access_wrap dd .access.train {
	background-image: url(/plan/tokushu/season/off/images/ic02.webp);
}
.access_wrap dd .access.bus {
	background-image: url(/plan/tokushu/season/off/images/ic04.webp);
}
.access_wrap dd .access.train.bus {
	position: relative;
	padding-left: 68px;
	background-image: url(/plan/tokushu/season/off/images/ic01.webp),url(/plan/tokushu/season/off/images/ic04.webp);
	background-repeat: no-repeat, no-repeat;
	background-position: left center, left 38px center;
	background-size: auto 23px, auto 23px;
}
.access_wrap dd .access.train.bus:before {
	position: absolute;
	left: 24px;
	top: 50%;
	transform: translateY(-50%);
	content: "＋";
	font-size: 1.2rem;
}

/*------------------------------------------------------------------
ワンポイント枠（添付デザイン準拠・本文左アイコンなし）
------------------------------------------------------------------*/
.onepoint-wrap {
	position: relative;
	margin: 4.2rem 0 3.2rem;
	padding: 3.2rem 2rem 2rem;
	border: 1px solid #0069B8;
	border-radius: 4px;
	background-color: #ffffff;
	box-sizing: border-box;
}
.onepoint-wrap dt {
	position: absolute;
	top: -1.9rem;
	left: 1.6rem;
	margin: 0;
	padding: 0.8rem 1.4rem;
	border-radius: 4px 4px 0 0;
	color: #ffffff;
	background-color: #0069B8;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	max-width: calc(100% - 3.2rem);
	box-sizing: border-box;
}
/* タブ下のしっぽ（吹き出し・下向き三角） */
.onepoint-wrap dt::before {
	position: absolute;
	top: calc(100% - 0.1rem);
	left: 2rem;
	content: "";
	width: 0;
	height: 0;
	border: 0.8rem solid transparent;
	border-top: 1.3rem solid #0069B8;
}
.onepoint-wrap dd {
	margin: 0;
}
.onepoint-wrap dd p {
	margin: 0;
	padding: 0;
	font-weight: normal;
	font-size: 1.4rem;
	line-height: 1.75;
	color: #333333;
}
.onepoint-wrap dd p + p {
	margin-top: 1rem;
}
.onepoint-wrap dd ul.ListItem {
	margin-top: 0;
	margin-bottom: 0;
}
.onepoint-wrap dd ul.ListItem li {
	font-size: 1.4rem;
	line-height: 1.75;
	color: #333333;
}

/*------------------------------------------------------------------
メディア＋テキスト2カラム（左3：右7・特集記事共通）
------------------------------------------------------------------*/
.media-text-row {
	display: grid;
	grid-template-columns: 3fr 7fr;
	gap: 1.6rem 2.4rem;
	align-items: start;
	margin-top: 1.2rem;
	margin-bottom: 3rem;
}
.media-text-row__media {
	min-width: 0;
}
.post-section .media-text-row__media figure.spotImg {
	margin-top: 0;
	margin-bottom: 0;
}
.post-section .media-text-row img {
	margin-top: 0;
	width: 100%;
	height: auto;
	vertical-align: bottom;
	display: block;
}
.media-text-row__text {
	min-width: 0;
}
.media-text-row__text p {
	margin-top: 0;
}

/*------------------------------------------------------------------
アクセステーブル
------------------------------------------------------------------*/
.access-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 2rem;
    background-color: #ffffff;
    border: 1px solid #e6e6e6;
}
.access-table th,
.access-table td {
    padding: 1.2rem 1.5rem;
    text-align: left;
    border: 1px solid #e6e6e6;
}
.access-table th {
    background-color: #f8f9fa;
    font-weight: 700;
    color: #333333;
    white-space: nowrap;
}
.access-table td {
    color: #555555;
    line-height: 1.6;
}

/*------------------------------------------------------------------
バナー
------------------------------------------------------------------*/
.section .bottom_bnr {
    text-align: center;
    margin-top: 20px
}
.section .bottom_bnr h3 {
    margin: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    padding-left: 0 !important;
    font-size: inherit !important;
    font-weight: normal !important;
    line-height: inherit;
    color: inherit !important;
    display: block !important;
    text-align: center!important;
    position: static !important;
}
.section .bottom_bnr h3::before {
    display: none !important;
    content: none !important;
}
.section .bottom_bnr h3:hover {
    opacity: 0.8;
}
.section .bottom_bnr .bnr_txt {
    display: inline-block;
    padding: 0 10px;
    position: relative;
    margin-bottom: 3px;
    font-weight: bold;
}
.section .bottom_bnr .bnr_txt:before,
.section .bottom_bnr .bnr_txt:after {
    position: absolute;
    content: "";
    width: 0.1em;
    height: 17px;
    background: #333;
    top: 4px;
}
.section .bottom_bnr .bnr_txt:before {
    left: 0;
    transform: rotate(-30deg);
}
.section .bottom_bnr .bnr_txt:after {
    right: 0;
    transform: rotate(30deg);
}
.section .bottom_bnr .spotImg {
    margin-top: 3px;
}

/*------------------------------------------------------------------
　検索窓
　※ 座席記事 plan/tokushu/shinkansen/seat/css_js/css/style.css および style_sp.cssの検索窓ブロック
------------------------------------------------------------------*/
/* plan 共通 .search-app{margin-top:22px} を記事内では打ち消し */
.section .post-search #search-app.search-app {
    margin-top: 0 !important;
}

/* 新幹線パックを探す：h2 のまま見た目を .post-search h3 に合わせる */
.section .post-section.mt50 > h2.mt50 {
    font-size: 1.8rem !important;
    font-weight: bold !important;
    color: #003f6c !important;
    padding-left: 2rem;
    padding-bottom: 0 !important;
    border-bottom: none !important;
    margin-bottom: 1.5rem !important;
    margin-top: 2.8em !important;
    display: flex !important;
    align-items: center;
    position: relative;
    text-align: left !important;
    line-height: 1.4 !important;
}
.section .post-section.mt50 > h2.mt50:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    bottom: auto !important;
    width: 0.9rem !important;
    height: 0.9rem !important;
    margin-top: -0.45rem;
    background: #398AD0;
}
.section .post-section.mt50 > h2.mt50 + .post-search {
    margin-top: 0 !important;
}

/* --- 以下、座席 style.css「検索窓」ブロックと同一 --- */
.post-search {
    margin-top: 2.8em;
}
.post-search h3 {
    font-size: 1.8rem !important;
    padding-left: 2rem;
    position: relative;
    margin-bottom: 1.5rem !important;
    color: #003f6c;
    display: flex;
    align-items: center;
    font-weight: bold;
}
.post-search h3:before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 50%;
    width: 0.9rem;
    height: 0.9rem;
    margin-top: -0.45rem;
    background: #398AD0;
}
.new_plan_flex {
    align-items: end;
    display: flex;
    display: -webkit-flex;
    margin: 50px 0 -10px;
}
.search_new_plan {
    width: 50%;
    text-align: -webkit-center;
    margin: 0;
}
.search_new_plan p {
    width: calc(100% - 0%);
    position: relative;
    width: fit-content;
    padding: 12px 20px;
    border-radius: 5px;
    background: #fff;
    border: 2px solid #1c4e9c;
    z-index: 1;
}
.search_new_plan p:before {
    content: "";
    position: absolute;
    bottom: -5px;
    left: 50%;
    width: 15px;
    height: 15px;
    box-sizing: border-box;
    background: #fff;
    transform: rotate(135deg);
    translate: -50%;
    z-index: -3;
}
.search_new_plan p:after {
    content: "";
    position: absolute;
    bottom: -8px;
    left: 50%;
    width: 15px;
    height: 15px;
    box-sizing: border-box;
    border: 2px solid #1c4e9c;
    border-color: #1c4e9c #1c4e9c transparent transparent;
    transform: rotate(135deg);
    translate: -50%;
}
.search_new_plan .nomal {
    background: none;
    color: #333;
    font-weight: normal;
    font-size: 1.3rem;
}
#search-app .tab .tab-btn {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center;
    height: 60px;
    font-size: 1.4rem;
    font-weight: bold;
    line-height: 1.1;
}
#search-app .tab .tab-btn img {
    width: auto;
    height: 32px;
    margin-right: 20px;
    flex-shrink: 0;
    display: block;
}
#search-app .tab .tab-btn p {
    margin-top: 5px;
    line-height: 1.1;
}
.section .search-app .gadget_box.dp,
.section .search-app .gadget_box.tour {
    margin-top: 15px;
}
.section .fw-top .fw-search-top__item--date {
    margin: 0;
}
.section .fw-top .fw-search-top__footer {
    margin-top: 20px;
}
.section .fw-top .fw-modal-overlay {
    height: 100%;
}
/* 吹き出し */
.seach_fukidashi p {
    text-align: center;
}
.seach_fukidashi span {
    font-size: 1.6rem;
    font-weight: bold;
    position: relative;
    border: 2px solid #e13232;
    border-radius: 5px;
    padding: 6px 50px;
    background: #e13232;
    color: #fff;
    z-index: 1;
}
.seach_fukidashi p span:before {
    position: absolute;
    content: '';
    top: -6px;
    left: 15%;
    width: 15px;
    height: 15px;
    box-sizing: border-box;
    background-color: #e13232;
    transform: rotate(135deg);
    translate: -50%;
    z-index: -1;
}
.seach_fukidashi p span:after {
    content: "";
    position: absolute;
    top: -8px;
    left: 15%;
    width: 15px;
    height: 15px;
    box-sizing: border-box;
    border: 2px solid;
    border-color: #e13232 #e13232 transparent transparent;
    transform: rotate(-45deg);
    translate: -50%;
}

/*------------------------------------------------------------------
その他
------------------------------------------------------------------*/
/* h5.area-detail-tit：本文pと同じ見た目・アンダーラインなし */
.post-section h5.area-detail-tit {
    font-size: 1.6rem;
    font-weight: bold;
    color: #333;
    margin-top: 1em;
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
    text-decoration: none;
}
.area-detail-list {
    margin: 0.5em 0 1em!important;
}

/* スポットCTA枠（画像・テキスト・赤ボタン） */
.spot-cta-box-wrap {
    display: block;
}
.spot-cta-box {
    border: 1px solid #e0e0e0;
    background: #fff;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}
.spot-cta-box:last-child {
    margin-bottom: 0;
}
.spot-cta-box__inner {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1rem;
}
.spot-cta-box__img {
    flex-shrink: 0;
    width: 200px;
}
.spot-cta-box__img img {
    width: 100%;
    height: auto;
    vertical-align: top;
}
.spot-cta-box__caption {
    font-size: 1.1rem;
    color: #666;
    margin: 0.5em 0 0!important;
    line-height: 1.4;
    text-align: center;
}
.img-w80 {
    width: 80% !important;
    max-width: 80%;
    height: auto;
}
/* PC：このクラスを付けたセクション内の.spotImgを70%幅に */
.spotImg-pc70 .spotImg {
    width: 70%;
    max-width: 70%;
    margin-left: auto;
    margin-right: auto;
}
.spotImg-pc70 .spotImg img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto;
}
.spot-cta-box__txt {
    flex: 1;
    min-width: 0;
}
.spot-cta-box__lead {
    font-size: 1.2rem;
    margin: 0 0 0.3em;
    color: #333;
}
.spot-cta-box__tit {
    font-size: 1.4rem;
    font-weight: bold;
    margin: 0 0 0.3em!important;
    color: #333;
}
.spot-cta-box__desc {
    font-size: 1.2rem;
    margin: 0!important;
    line-height: 1.5;
    color: #333;
}
.spot-cta-box__btns {
    margin-top: 1rem!important;
    text-align: center;
}
.spot-cta-box__btns .plan-btn {
    width: 100%;
    max-width: none;
    display: block;
    box-sizing: border-box;
    text-align: center;
}

/* PC：スポットCTA枠を60%幅に */
@media screen and (min-width: 1000px) {
    .spot-cta-box-wrap {
        width: 80%;
        max-width: 80%;
        margin-left: auto;
        margin-right: auto;
    }
}

.course_box {
    margin-top: 2.5rem;
}
.course_box-list {
    list-style: none;
    padding-left: 1.5em;
    margin: 0;
}
.course_box-list li {
    margin-top: 0.3em;
}
/* 黒丸：:before で上書き */
.post-section .course_box .course_box-list li:before {
    background: #000 !important;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
}
.course_box-sublist {
    list-style: none;
    padding-left: 1.5em;
    margin: 0.5em 0 0 1em!important;
}
.course_box-sublist li {
    margin-top: 0.2em;
}
/* 白丸（枠だけ）：:before で上書き */
.post-section .course_box .course_box-sublist li:before {
    background: transparent !important;
    border: 2px solid #000;
    width: 0.5rem;
    height: 0.5rem;
    box-sizing: border-box;
}

/*------------------------------------------------------------------
--------------------------------------------------------------------
メディアクエリ：タブレット以下 (999px以下)
--------------------------------------------------------------------
------------------------------------------------------------------*/
@media screen and (max-width: 999px) {
    .br_pc {
        display:none;
    }
    .br_sp {
        display:inline-block;
    }

    /* post-head */
    .post-head{
        margin-top: 0;
        margin-bottom: 3rem;
    }
    .post-head .ttl{
        font-size: 2.2rem;
        padding-bottom: 1rem;
        border-bottom: 2px solid #398AD0;
        margin-bottom: 2rem;
    }
    /* post-mv */
    .post-mv{
        margin: 0 -14px 3rem
    }
    /* post-body */
    .post-body{
        margin: 0 auto 5rem;
    }
    /* post-anklist */
    .post-anklist{
        border: 2px solid #EFEFEF;
        padding: 2rem;
        margin-bottom: 3.5rem;
    }
    .post-anklist .item{
        display: flex;
        align-items: flex-start;
    }
    .post-anklist .item:before{
        font-size: 1.4rem;
        flex-shrink: 0;
    }
    .post-anklist .item.no-number:before{
        content: none;
        counter-increment: none;
    }
    .post-anklist .item +.item{
        margin-top: 1rem;
    }
    .post-anklist .item a{
        font-size: 1.4rem;
        line-height: 1.5;
        padding-right: 0;
        position: relative;
        flex: 1;
    }
    .post-anklist .item a:hover{
        color: #333333;
        text-decoration: none;
    }
    .post-anklist .item a:after {
        content: '\e902';
        font-family: 'jttweb' !important;
        display: inline-block;
        margin-left: 0.5rem;
        font-size: 1.2rem;
        color: #398AD0;
        transform: rotate(90deg);
        vertical-align: middle;
    }
    .post-anklist .item:has(.sub-item-wrap) {
        flex-wrap: wrap;
    }
    .post-anklist .item:has(.sub-item-wrap) > a {
        flex: 1;
        min-width: 0;
    }
    .post-anklist .sub-item-wrap {
        margin-left: 1.5rem;
        margin-top: 0.8rem;
        width: 100%;
        flex-basis: 100%;
    }
    .post-anklist .sub-item-wrap .item:before {
        content: none;
    }

    /* post-anklist--toc：チケット記事 nklist-wrap / nklist-title と同じ（SP） */
    .post-anklist.post-anklist--toc {
        margin-top: 5rem;
        margin-bottom: 3.5rem;
        padding: 2rem;
        border: none;
        border-radius: 0;
    }
    .post-anklist.post-anklist--toc::before {
        font-size: 1.4rem;
        margin-bottom: 0;
    }
    .post-anklist.post-anklist--toc > .item:first-child {
        margin-top: 1rem;
    }
    .post-anklist.post-anklist--toc .item:before {
        font-size: 1.4rem;
        flex-shrink: 0;
    }
    .post-anklist.post-anklist--toc .item a {
        font-size: 1.4rem;
        line-height: 1.5;
        padding-right: 0;
        flex: 1;
        min-width: 0;
    }
    .post-anklist.post-anklist--toc .item a:hover {
        color: #3D9BB9;
        text-decoration: none;
    }
    .post-anklist.post-anklist--toc .item a:after {
        content: '\e902';
        font-family: 'jttweb' !important;
        display: inline-block;
        margin-left: 0.5rem;
        font-size: 1.2rem;
        color: #398AD0;
        transform: rotate(90deg);
        vertical-align: middle;
    }
    .post-anklist.post-anklist--toc .sub-item-wrap {
        margin-top: 0.45rem;
        padding-top: 0.4rem;
    }
    .post-anklist.post-anklist--toc .sub-item-wrap li:not(:last-child) {
        padding-bottom: 0.45rem;
        margin-bottom: 0.45rem;
    }
    .post-anklist.post-anklist--toc .item:has(.sub-item-wrap) > a {
        padding-bottom: 0.5rem;
    }

    /* post-section */
    .post-section{
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    .post-section+.post-section{
        margin-top: 4rem;
    }
    /* h2：SPではh3同様ブロック表示でレイアウト崩れを防ぐ */
    .post-section h2{
        font-size: 1.8rem!important;
        padding-bottom: 1.2rem;
        border-bottom: 2px solid #E6E6E6;
        margin-bottom: 2rem!important;
        margin-top: 3rem;
        overflow-wrap: normal;
        word-break: normal;
        display: block !important;
    }
    .section .post-section.mt50 > h2.mt50 {
        color: #003f6c !important;
        padding-left: 2rem;
        padding-bottom: 0 !important;
        border-bottom: none !important;
        margin-bottom: 1.5rem !important;
        display: flex !important;
        align-items: center;
    }
    .section .post-section.mt50 > h2.mt50:before {
        bottom: auto !important;
        width: 0.9rem !important;
        height: 0.9rem !important;
    }
    /* h3：SPではflexをやめてブロックにしレイアウト崩れを防ぐ */
    .post-section h3{
        font-size: 1.5rem;
        padding-left: 1.8rem;
        margin-bottom: 1rem;
        text-align: left !important;
        display: block !important;
        overflow-wrap: normal;
        word-break: normal;
    }
    /* h4 h5 */
    .post-section h4, .post-section h5{
        margin-top: 2rem;
        font-size: 1.4rem;
        margin-bottom: 1rem;
    }
    .post-section img{
        margin-top: 2.5rem;
    }
    .post-section p{
        margin-top: 2rem;
    }
    .post-section .checkbox-list + p {
        margin-top: 0.7rem;
    }
    /* SPではh2・h3内の®は余白をなくしレイアウトを安定させる */
    .post-section h2 .tm-sub,
    .post-section h3 .tm-sub{
        margin-top: 0;
        align-self: auto;
    }

    /* total */
    .post-section.total{
        border-top: 3px solid #398AD0;
        padding: 2rem;
    }
    .post-section.total h2 {
        font-size: 1.5rem;
        padding-left: 1.8rem;
        margin-bottom: 1rem;
    }
    .post-section.total p {
        margin: 0;
    }
    .post-section .acd-label__inner {
      padding-right: 2.5rem;
    }

    /* ボタン（999px以下で赤・オレンジとも幅いっぱい） */
    .section .section-bottom .plan-btn {
      width: 100%;
    }
    .section .section-bottom .setplan-btn {
      width: 95%;
    }
    .section .section-bottom .setplan-btn:before {
        top: 50%;
        transform: translateY(-50%) rotate(-35deg);
    }

    /* レイアウト */
    .flex-list {
        flex-direction: column;
        gap: 0;
    }
    .flex-list .spot + .spot {
        margin-top: 30px !important;
    }

    /* コンテンツSEO関連 */
    .facility_table th {
        width: auto;
    }
    .facility_table td {
        word-break: break-all;
    }
	.spotImg .provide {
		margin-left: 0;
	}
	.spotImg .provide:before {
		content: "\A" ;
		white-space: pre ;
	}
	/* SP：.spotImg-pc70セクション内のスポット画像 */
	.spotImg-pc70 .spotImg {
		width: auto;
		max-width: none;
	}
	.spotImg-pc70 .spotImg img {
		width: 80% !important;
		max-width: 80% !important;
	}

    /* spot-cta-box SP */
    .spot-cta-box {
        padding: 2rem 1.5rem;
    }
    .spot-cta-box__inner {
        gap: 0.5em;
    }
    .spot-cta-box__img {
        flex: 0 0 50%;
        width: 50%;
        box-sizing: border-box;
    }
    .spot-cta-box__txt {
        flex: 0 0 50%;
        width: 50%;
        min-width: 0;
        box-sizing: border-box;
    }
    .spot-cta-box__heading {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
    }
    .spot-cta-box__btns {
        flex-direction: column;
        gap: 1rem;
    }
    .spot-cta-box__btns .btn-cta {
        width: 100%;
        max-width: 100%;
        font-size: 1.4rem;
        padding: 1.2rem 2.8em 1.2rem 1.5rem;
    }
    .spot-cta-box__note {
        font-size: 1.3rem;
        margin: 1.5rem 0 1rem;
    }
    .spot-cta-box__disclaimer {
        font-size: 1.1rem;
    }

    /* チェックボックスリスト */
    .section .checkbox-list label {
        font-size: 1.4rem;
    }
    /* SP/タブ：上記より詳細度を上げ block-contents 内は PC と同じ（1.4rem にされない） */
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label {
        font-size: 1.4rem;
    }
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label + label {
        margin-top: 1rem;
    }
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label span {
        font-weight: bold;
        color: #65AE06;
    }
    .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label span .note {
        color: #333333;
        font-weight: normal;
    }
    /* 緑チェック：UA・共通CSS上書き対策で block-contents 内のみ :root 寸法を再指定 */
    .section .block-contents input[type=checkbox].checkbox_icon:checked {
        display: block !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        -moz-appearance: none !important;
        width: var(--article-check-box) !important;
        height: var(--article-check-box) !important;
        min-width: var(--article-check-box) !important;
        min-height: var(--article-check-box) !important;
        max-width: var(--article-check-box) !important;
        max-height: var(--article-check-box) !important;
        padding: 0 !important;
        box-sizing: border-box !important;
        border: var(--article-check-border) solid var(--article-check-color) !important;
        border-radius: var(--article-check-radius) !important;
        margin-right: 12px;
        position: relative;
        background-color: var(--article-check-color) !important;
        flex-shrink: 0;
    }
    .section .block-contents input[type=checkbox].checkbox_icon:checked::after {
        display: block !important;
        color: #fff;
        content: '';
        position: absolute;
        top: 45%;
        left: 50%;
        width: var(--article-check-after-w);
        height: var(--article-check-after-h);
        border-left: var(--article-check-after-stroke) solid white;
        border-bottom: var(--article-check-after-stroke) solid white;
        transform: translate(-50%, -60%) rotate(-45deg);
    }

    /* アクセステーブル */
    .access-table-wrapper {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      margin: 2rem 0;
      margin-bottom: 1rem;
    }
    .access-table-wrapper::-webkit-scrollbar {
        height: 5px;
        -webkit-appearance: none;
    }
    .access-table-wrapper::-webkit-scrollbar-thumb {
        background: #888;
        border-radius: 10px;
    }
    .access-table {
      min-width: 500px;
      border-collapse: separate;
      border-spacing: 0;
      border: 0.5px solid #e6e6e6;
    }
    .access-table .sticky-col{
        position: sticky;
        left: 0;
        z-index: 5;
        background-color: #ffffff;
        border-right: 1px solid #e6e6e6;
        border-left: 1px solid #e6e6e6;
    }
    .access-table th.sticky-col{
        background-color: #f8f9fa;
    }
    .access-table th,
    .access-table td {
      padding: 1rem 1.2rem;
      font-size: 1.4rem;
      white-space: nowrap;
      border: 0.5px solid #e6e6e6;
    }
    .access-table.table-station {
      min-width: 600px;
      width: auto;
      border-collapse: separate;
      border-spacing: 0;
      border: 0.5px solid #e6e6e6;
    }
    .access-table.table-station th,
    .access-table.table-station td {
      padding: 1rem 1.2rem;
      font-size: 1.4rem;
      white-space: nowrap;
      border: 0.5px solid #e6e6e6;
    }
    .access-table.table-station thead th {
      position: sticky;
      top: 0;
      z-index: 10;
      background-color: #f8f9fa;
    }
    .access-table.table-station .sticky-col {
      position: sticky;
      left: 0;
      z-index: 5;
      background-color: #ffffff;
      border-right: 1px solid #e6e6e6;
    }
    .access-table.table-station thead th.sticky-col {
      position: sticky;
      left: 0;
      top: 0;
      z-index: 15;
      background-color: #f8f9fa;
      border-right: 1px solid #e6e6e6;
    }
    .access-table.table-station th.narrow-col,
    .access-table.table-station td.narrow-col {
      width: 120px;
      max-width: 120px;
      white-space: normal;
      word-break: break-word;
    }
}

/*------------------------------------------------------------------
--------------------------------------------------------------------
メディアクエリ：スマホ (736px以下)
--------------------------------------------------------------------
------------------------------------------------------------------*/
@media screen and (max-width: 736px) {
  /* 参考サイト https://travel.jr-central.co.jp/plan/tokushu/shinkansen/ticket/ 相当 */
  .section .checkbox-list label + label {
    margin-top: 8px;
  }
  .section .block-contents .checkbox-list:not(.checkbox-list--recommend) label + label {
    margin-top: 8px;
  }
  .recommend-plans .checkbox-list--recommend label + label {
    margin-top: 8px;
  }

  /* 参考サイト（736px以下）：プロモ枠内チェックを 20px（:root 22px・767px 22px 上書き） */
  .section .column-contents input[type="checkbox"].checkbox_icon:checked {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
  }
  .section .column-contents input[type="checkbox"].checkbox_icon:checked::after {
    width: 11px;
    height: 4px;
  }
  .section .block-contents input[type="checkbox"].checkbox_icon:checked {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
  }
  .section .block-contents input[type="checkbox"].checkbox_icon:checked::after {
    width: 10px;
    height: 3px;
  }
  /* .recommend-plans：上記 20px を一段小さく（参考に近づける） */
  .section .recommend-plans .block-contents input[type="checkbox"].checkbox_icon:checked {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    max-width: 18px !important;
    max-height: 18px !important;
  }
  .section .recommend-plans .block-contents input[type="checkbox"].checkbox_icon:checked::after {
    width: 9px;
    height: 3px;
  }

  /* モーダルウィンドウ */
  #ranking .modal-window {
    width: 100%;
    height: 100%;
    overflow-y: auto;
  }
  #ranking .gadget {
    padding: 0 20px 20px;
  }
  .fw-top .fw-modal-calendar .fw-calendar .rdrCalendarWrapper,
  .fw-top .fw-modal-calendar .fw-calendar .rdrMonth {
    width: 100%;
  }
  .fw-top .fw-modal-container .fw-modal-btn-footer {
      background-color: #fff;
  }
  #ranking .rdrMonth {
    width: auto;
  }
  #ranking .button-close span {
      padding: 5px 15px 0 0;
  }
  .section .fw-top .fw-modal-container {
    margin-top: 0px;
  }

  /* ボタン */
  .spot-cta-box__btns .btn-cta {
      width: 100%;
      max-width: 100%;
  }
  .section .section-bottom .plan-btn {
      background: #cc0000;
      color: #fff !important;
      font-weight: bold;
      padding: 6px 2.8em;
      border-radius: 5px;
      width: 100%;
  }
  .section .section-bottom .plan-btn.plan-btn--orange {
      background: #ff7d01;
      border: 2px solid #ff7d01;
      border-radius: 50px;
      padding: 6px 2.8em 6px 1.5rem;
  }
  .section .section-bottom .plan-btn.plan-btn--orange-flat {
      background: #ff7d01;
  }
  .section .btn-more {
      width: 100%!important;
  }
  .section .line-btn-wrap .plan-btn{
      max-width: 350px;
      width: 100%;
      padding: 6px 2.5em;
      font-size: 1.2rem;
  }
  .section .line-btn-wrap a:after {
      margin-top: 0;
      transform: translateY(-50%);
  }
  .section .line-btn-wrap .plan-btn span{
      font-size: 1.3rem;
  }

  /* アクセステーブル */
  .access-table {
    min-width: 450px;
  }
  .access-table th,
  .access-table td {
    padding: 0.8rem 1rem;
    font-size: 1.3rem;
  }
  .access-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 2rem 0;
    margin-bottom: 1rem;
    max-width: 100%;
  }
  .access-table-wrapper::-webkit-scrollbar {
    height: 5px;
    -webkit-appearance: none;
  }
  .access-table-wrapper::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 10px;
  }
  .access-table.table-station{
      min-width: 600px;
      width: auto;
      border-collapse: separate;
      border-spacing: 0;
      border: 0.5px solid #e6e6e6;
  }
  .access-table.table-station th,
  .access-table.table-station td {
      padding: 0.8rem 1rem;
      font-size: 1.3rem;
      white-space: nowrap;
      border: 0.5px solid #e6e6e6;
  }
  .access-table.table-station thead th {
      position: sticky;
      top: 0;
      z-index: 10;
      background-color: #f8f9fa;
  }
  .access-table.table-station .sticky-col {
      position: sticky;
      left: 0;
      z-index: 5;
      background-color: #ffffff;
      border-right: 1px solid #e6e6e6;
  }
  .access-table.table-station thead th.sticky-col {
      position: sticky;
      left: 0;
      top: 0;
      z-index: 15;
      background-color: #f8f9fa;
      border-right: 1px solid #e6e6e6;
  }
  .access-table.table-station th.narrow-col,
  .access-table.table-station td.narrow-col {
      width: 120px;
      max-width: 120px;
      white-space: normal;
      word-break: break-word;
  }

  /* ワンポイント枠 */
  .onepoint-wrap {
    margin: 5rem 0 2.5rem;
    padding: 2.4rem 1.4rem 1.6rem;
  }
  .onepoint-wrap dt {
    left: 1rem;
    max-width: calc(100% - 2rem);
    font-size: 1.3rem;
    padding: 0.65rem 1rem;
    top: -1.65rem;
    white-space: normal;
  }
  .onepoint-wrap dt::before {
    left: 1.4rem;
  }

  .media-text-row {
    grid-template-columns: 1fr;
    gap: 1.2rem;
    margin-bottom: 2.5rem;
  }
}


/*------------------------------------------------------------------
--------------------------------------------------------------------
メディアクエリ：小さいスマホ (380px以下)
--------------------------------------------------------------------
------------------------------------------------------------------*/
@media screen and (max-width: 380px) {
    .section .line-btn-wrap .plan-btn{
        padding: 6px 1.9rem;
        font-size: 3.4vw;
    }
    .section .line-btn-wrap .plan-btn span{
        font-size: 3.4vw;
    }
    .tm-sub {
        top: 0.25em;
    }
}

/*------------------------------------------------------------------
 検索窓 SP（座席記事 style_sp.css と同一）
------------------------------------------------------------------*/
@media screen and (max-width: 999px) {
    #search-app .tab .tab-btn {
        font-size: 1.4rem;
    }
    .search-app .seach-box {
        padding: 18px 10px;
    }
    .seach-box.tour {
        padding: 18px 15px 25px;
    }
}
@media screen and (max-width: 700px) {
    #search-app .tab .tab-btn {
        -webkit-flex-direction: column;
        flex-direction: column;
        height: 70px;
    }
    #search-app .tab .tab-btn img {
        height: 30px;
        margin-right: 0;
    }
}
@media screen and (max-width: 599px) {
    .new_plan_flex {
        margin: 40px 0 -10px;
    }
    .search_new_plan p {
        padding: 5px;
    }
    .search_new_plan .nomal {
        font-size: 1.1rem;
    }
    #search-app .tab .tab-btn p {
        font-size: 1.1rem;
    }
    .seach_fukidashi p span {
        font-size: 1.3rem;
        display: block;
        padding: 5px;
    }
    .bnr_area {
        margin-top: 30px;
    }
    .bnr_title {
        font-size: 2.0rem;
    }
    .section .btn-more {
        width: 100%;
        padding-left: 4em;
    }
    .section .btn-more:before {
        width: 32px;
        height: 32px;
        left: 12px;
    }
}
@media screen and (max-width: 320px) {
    #search-app .tab .tab-btn p {
        font-size: 1.0rem;
    }
}
