@charset "UTF-8";

/*==========================================
 全デバイス共通［common］
===========================================*/
/*footerを下部に固定*/
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

footer {
  margin-top: auto;
}

.headerWrap {
  position: relative;
}

/*==========================================
 PC［1024px~］
===========================================*/
/*------------
 h1見出しタイトルエリア
------------*/
#ttlArea {
  margin: 50px auto;
  width: 100%;
  position: relative;
  border-bottom: solid 1px var(--line-color);
}

:is(.page, .single-plan-list, .post-type-archive-plan-list) #ttlArea {
  border: none;
}

#ttlArea h1 {
  margin: 0 0 0 auto;
  width: 95%;
  font-size: clamp(1.25rem, 1.081rem + 0.847vw, 1.875rem);
  letter-spacing: 0;
  line-height: 1.5;
  font-weight: 700;
}

:is(.page, .single-plan-list, .post-type-archive-plan-list) #ttlArea h1 {
  color: #fff;
}

.headerImgArea {
  margin: 0 0 0 auto;
  width: 100%;
  height: 330px;
  position: absolute;
  top: -191px;
  z-index: -1;
}

.headerImgArea img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  display: block;
}

.page-id-22 .headerImgArea img {
  object-position: center;
}

.headerImgArea::before {
  content: '';
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, .5);
  position: absolute;
  top: 0;
  left: 0;
}

/*------------
 breadcrumb
------------*/
#breadcrumb {
  margin: 0 0 2em auto;
  width: 95%;
  overflow-x: scroll;
  white-space: nowrap;
}

#breadcrumb::-webkit-scrollbar {
  display: none;
}

.breadcrumb {
  margin: 0 5% 0 0;
  display: flex;
  justify-content: flex-end;
}

.breadcrumb li {
  margin: 0;
  padding: 0;
}

.breadcrumb li:after {
  content: 'ー';
  padding: 0 7px;
  font-size: 11px;
  color: var(--sub-color);
}

.breadcrumb li:last-child:after {
  content: none;
}

.breadcrumb li:before {
  content: none;
}

.breadcrumb li,
.breadcrumb a {
  font-size: 11px;
  color: var(--text-color);
}

:is(.page, .single-plan-list, .post-type-archive-plan-list) .breadcrumb :is(li, a) {
  color: #fff;
}

.breadcrumb li:last-child a {
  pointer-events: none;
}

.breadcrumb li a {
  padding: 0;
  width: inherit;
}

/*------------
 本文見出し
------------*/
:where(#contentArea) h2 {
  margin: 0 0 .5em;
  font-size: clamp(30px, 5vw, 35px);
  line-height: 1.25;
  letter-spacing: .15em;
  text-align: left;
}

:where(#contentArea) h3 {
  margin: 0 auto .5em;
  font-size: clamp(25px, 5vw, 35px);
  line-height: 1.25;
  position: relative;
  letter-spacing: .15em;
  text-align: left;
}

:where(#contentArea) h4 {
  margin: 0 auto .75em;
  padding: 0;
  font-size: clamp(18px, 5vw, 25px);
  line-height: 1.5;
  letter-spacing: .15em;
  text-align: left;
}

:where(#contentArea) h5 {
  margin: 0 auto .5em;
  font-size: clamp(16px, 5vw, 20px);
  line-height: 1.5;
  letter-spacing: .15em;
  text-align: left;
}

/*------------
 コンテンツエリア
------------*/
#contentArea {
  margin: auto;
  position: relative;
  z-index: 1;
  font-weight: 400;
  font-size: clamp(15px, 5vw, 16px);
  line-height: 1.8;
}

/*2カラム*/
.hbn-col-2 {
  margin: 0 auto 60px;
  width: min(90%, 1200px);
  flex-direction: row;
}

.hbn-col-2 #ttl-area {
  width: 100%;
}

.hbn-col-2 main {
  width: calc(100% - 250px);
}

.hbn-col-2 #contentArea {
  padding: 0 50px 0 0;
}

.hbn-col-2 aside {
  padding: 0 0 0 50px;
  width: 250px;
  border-left: solid 1px var(--line-color);
}

#sideArea {
  position: sticky;
  top: 100px;
  max-height: 90vh;
  overflow-y: scroll;
}

#sideArea::-webkit-scrollbar {
  display: none;
  /*Google Chrome、Safari、Microsoft Edge対応のスクロールバー非表示コード*/
}

#sideArea h3 {
  margin: 0 0 1.5em;
  padding: 0 0 10px 0;
  font-size: clamp(18px, 5vw, 20px);
  line-height: 1.5;
  letter-spacing: .15em;
  border-bottom: solid 1px var(--line-color);
  font-family: 'NotoSerifJP';
}

.sideMenu {
  margin-bottom: 50px;
}

.sideMenu li {
  margin-bottom: 5px;
}

.sideMenu li a {
  position: relative;
  padding: 5px 0;
  display: block;
  color: var(--text-color);
  text-decoration: none;
  line-height: 1.25;
}

.sideMenu li a:hover {
  color: var(--main-color);
}

.sideMenu li a:hover::after {
  left: 12px;
}

.sideMenu li.current-cat a {
  font-weight: bold;
  color: var(--main-color);
}

#sideArea select {
  margin: .5em 0;
  width: 100%;
  max-width: 400px;
  height: 40px;
  padding: 0 30px 0 10px;
  border-radius: 0;
  background: var(--bg-color);
  font-size: 13px;
  border: none;
  background-image: url(../images/icon_arrow.png);
  background-repeat: no-repeat;
  background-size: 12px 10px;
  background-position: right 10px center;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

#sideArea select::-ms-expand {
  display: none;
}

/*END2カラム*/
#contentArea .inner {
  margin: 0 auto;
}

main p {
  margin-bottom: 1em;
  text-align: justify;
}

:where(#contentArea) a:not([href*="tel:"]) {
  text-decoration: underline;
  position: relative;
}

/*コンテンツ内アンカー*/
.anchorArea {
  margin-bottom: 5%;
  justify-content: space-between;
  display: flex;
  flex-wrap: wrap;
}

.anchorArea::after {
  content: '';
  width: 30%;
  display: block;
}

.anchorArea li {
  margin-bottom: 1em;
  padding: 0;
  width: 30%;
}

.anchorArea li::before {
  content: none;
}

.anchorArea li a {
  padding: 10px 20px 10px 10px;
  width: 100%;
  display: flex;
  align-items: center;
  position: relative;
  text-decoration: none;
  background: var(--main-color);
  color: #fff;
  font-weight: bold;
}

.anchorArea li a:hover {
  background: var(--sub-color);
  color: #fff;
}

.anchorArea li a::after {
  content: '';
  width: 10px;
  height: 10px;
  background-image: url("../images/icon_arrow-wh.png");
  position: absolute;
  right: 5px;
  top: 45%;
  background-size: contain;
  background-repeat: no-repeat;
}

/*------------
 ulのスタイル
------------*/
/*スタイルa*/
:where(#contentArea) ul {
  line-height: 1.5;
}

:where(#contentArea) ul li {
  padding: 0 0 .5em 18px;
  position: relative;
}

:where(#contentArea) ul li::before {
  content: '';
  width: 10px;
  height: 10px;
  background-color: var(--main-color);
  position: absolute;
  top: 10px;
  left: 0;
}

/*------------
 olのスタイル
------------*/
:where(#contentArea) ol {
  margin: 10px 0 20px;
  counter-reset: count 0;
  line-height: 1.5;
}

:where(#contentArea) ol li {
  padding: 0 0 .5em 18px;
  position: relative;
}

:where(#contentArea) ol li:last-child {
  margin-bottom: 0;
}

:where(#contentArea) ol>li::before {
  content: counter(count) " ";
  counter-increment: count 1;
  color: var(--main-color);
  font-weight: bold;
  position: absolute;
  left: 0;
}

/*------------
 imgのスタイル
------------*/
.blocks-gallery-grid,
.wp-block-gallery {
  justify-content: center;
}

.carousel.slick-slider {
  margin-bottom: 60px;
}

.carousel .slick-slide {
  aspect-ratio: 3 / 2;
}

.carousel img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/*slickの設定*/
.carousel .slick-dots {
  display: flex;
}

/*slickの矢印*/
.carousel .slick-arrow {
  width: 35px;
  height: 35px;
  background: #fff;
  border: solid 1px var(--line-color);
  border-radius: 50%;
  position: absolute;
  right: 10px;
  bottom: 0;
  transition-duration: .1s;
}

.carousel .slick-prev.slick-arrow {
  right: inherit;
  z-index: 1;
  left: 10px;
}

.carousel .slick-arrow::before,
.carousel .slick-prev.slick-arrow::before {
  content: '';
  width: 10px;
  height: 10px;
  border-top: solid 1px var(--line-color);
  border-right: solid 1px var(--line-color);
  position: absolute;
  left: 10px;
  top: 12px;
  transform: rotate(45deg);
}

.carousel .slick-prev.slick-arrow::before {
  transform: rotate(-135deg);
  left: 14px;
}

.carousel .slick-arrow:hover {
  background: var(--sub-color);
  cursor: pointer;
}

.carousel .slick-arrow:hover::before,
.carousel .prev.slick-arrow:hover::before {
  border-top: solid 1px #fff;
  border-right: solid 1px #fff;
}

/*dot*/
.carousel .slick-dots li::before {
  content: none;
}

.carousel .slick-dotted.slick-slider {
  margin-bottom: 0;
}

.carousel .slick-dots li {
  height: 2px;
  width: 30px;
}

.carousel .slick-dots li button {
  margin: 0 10px 0 0;
  padding: 0;
  height: 100%;
  width: 100%;
}

.carousel .slick-dots li button::before {
  content: '';
  opacity: 1;
  background: var(--line-color);
  height: 100%;
  width: 100%;
}

.carousel .slick-dots li.slick-active button::before {
  background: var(--main-color);
}

/*------------
 テーブルのスタイル
------------*/
table {
  margin: 1em 0;
  width: 100%;
  line-height: 1.8;
}

.wp-block-table thead {
  border: none;
}

.wp-block-table th {
  padding: 1em;
  vertical-align: middle;
  font-weight: bold;
  border: none;
  border-bottom: solid 1px var(--line-color);
  background: var(--bg-color);
  text-align: left;
}

.wp-block-table td {
  padding: 1em;
  border: none;
  border-bottom: solid 1px var(--line-color);
  vertical-align: middle;
}

.wp-block-table td:last-child {
  border-right: none;
}

.wp-block-table tr:last-child :is(th, td) {
  border-bottom: none;
}

.wp-block-table table p:last-child {
  margin-bottom: 0;
}

/*プランのtable*/
.single-plan-list table {
  margin: 0 0 1em;
}

/*--------
　テキストのスタイル関連
---------*/
/*インデント*/
.indentback {
  text-indent: -1em;
  padding-left: 1em;
}

/*iframe*/
.iframe {
  aspect-ratio: 16 / 9;
  width: 100%;
}

.iframe iframe {
  width: 100%;
  height: 100%;
}

/*------------
 imgのスタイル
------------*/
.img100 {
  width: 100%;
  height: auto;
}

.img30 {
  padding-left: 20px;
  width: 30%;
  min-width: 250px;
  height: auto;
}

.img_block {
  display: block;
  margin: 0 auto;
}

.float_right {
  margin: 10px 0 10px 10px;
  float: right;
  z-index: 1;
  position: relative;
}

.cf::after {
  content: "";
  display: block;
  clear: both;
}

/*------------
 周辺観光
------------*/
h3:is(#kuji, #noda, #tanohata, #iwaizumi, #miyako, #yamada, #ootsuchi, #kamaishi, #oohunato, #rikuzentakata) {
  margin: 2em 0 1em;
  position: relative;
  display: inline-block;
}

h3#kuji {
  margin: 0 0 1em;
}

h3#kuji::after {
  background: url("../images/sightseeing/kuji.svg");
}

h3#noda::after {
  background: url("../images/sightseeing/noda.svg");
}

h3#tanohata::after {
  background: url("../images/sightseeing/tanohata.svg");
}

h3#iwaizumi::after {
  background: url("../images/sightseeing/iwaizumi.svg");
}

h3#miyako::after {
  background: url("../images/sightseeing/miyako.svg");
}

h3#yamada::after {
  background: url("../images/sightseeing/yamada.svg");
}

h3#ootsuchi::after {
  background: url("../images/sightseeing/otsuchi.svg");
}

h3#kamaishi::after {
  background: url("../images/sightseeing/kamaishi.svg");
}

h3#oohunato::after {
  background: url("../images/sightseeing/ofunato.svg");
}

h3#rikuzentakata::after {
  background: url("../images/sightseeing/rikuzentakata.svg");
}

h3:is(#kuji, #noda, #tanohata, #iwaizumi, #miyako, #yamada, #ootsuchi, #kamaishi, #oohunato, #rikuzentakata)::after {
  content: '';
  width: 300px;
  height: 100px;
  object-fit: cover;
  display: block;
  position: absolute;
  top: 0;
  right: -300px;
  opacity: .3;
  background-repeat: no-repeat;
}

.spotArea.wp-block-columns {
  margin-bottom: 0;
}

.spotArea .wp-block-column:nth-child(even) {
  margin-top: 5em;
}

.spotImg {
  width: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
}

.contBox {
  background: var(--bg-color);
  width: 90%;
  margin: -2em auto 0;
  padding: 2em 1.5em;
  z-index: 1;
  position: relative;
}

.spotTime {
  background: #fff;
  padding: .25em .5em .25em 2.2em;
  border-radius: 20px;
  border: solid 1px var(--main-color);
  display: inline-block;
  margin: 0 0 1em;
  color: var(--main-color);
  font-size: 12px;
  position: relative;
}

.spotTime::before {
  content: '';
  width: 13px;
  height: 13px;
  background: url("../images/icon-car.svg");
  background-repeat: no-repeat;
  position: absolute;
  top: 10px;
  left: .7em;
}

.spotDl dt {
  margin: 1em 0;
  width: 100px;
  text-align: center;
  background: var(--main-color);
  color: #fff;
  border-radius: 20px;
  align-self: center;
  font-size: 14px;
}

.spotDl dd {
  padding: 1em 0;
  width: calc(100% - 120px);
  position: relative;
}

.spotDl dd:nth-child(1) {
  padding-top: 0;
}

.spotDl dd::before {
  content: '';
  width: calc(100% + 120px);
  height: 1px;
  background: var(--line-color);
  position: absolute;
  left: -120px;
  bottom: 0;
}

.spotDl .gmap::after {
  content: url("../images/icon-pin-maincolor.svg") !important;
  transform: scale(0.6) translateY(-7px);
  display: inline-block;
  position: absolute;
}

.spotDl .gmap {
  padding-right: 5px;
}

.spotDl a {
  color: var(--text-color);
  display: inline-block;
}

.spotDl a:hover {
  opacity: .7;
}

/*==========================================
 tb［481px-1000px以下］
===========================================*/
@media screen and (max-width: 1000px) {

  /*------------
	 コンテンツエリア
	------------*/
  /*2カラム*/
  .hbn-col-2 {
    flex-direction: column;
  }

  .hbn-col-2 main {
    margin-bottom: 60px;
    width: 100%;
  }

  .hbn-col-2 aside {
    width: 100%;
    border-left: none;
  }

  .hbn-col-2 #contentArea {
    padding: 0;
  }

  .hbn-col-2 aside {
    padding: 0;
  }

  /*END2カラム*/
  /*コンテンツ内アンカー*/
  .anchorArea li {
    width: 48%;
  }
}

/*------------
 周辺観光
------------*/
@media screen and (max-width: 782px) {
  .spotArea .wp-block-column:nth-child(even) {
    margin-top: 0;
  }

  .spotArea.wp-block-columns {
    margin-bottom: 2em;
  }
}

/*==========================================
 sp［480px以下］
===========================================*/
@media screen and (max-width: 480px) {

  /*------------
	 h1見出しタイトルエリア
	------------*/
  #ttlArea {
    margin: 100px auto 50px;
  }

  #ttlArea::before {
    left: 20%;
  }

  #ttlArea h1 {
    margin-bottom: 1em;
  }

  .ttlAreaImg {
    height: 250px;
  }

  /*------------
	 breadcrumb
	------------*/
  .breadcrumb li:after {
    padding: 0 5px;
  }

  .breadcrumb a {
    font-size: 10px;
  }

  /*------------
	 テーブルのスタイル
	------------*/
  /*th td 100%*/
  .sp-th100 table :is(th, td) {
    display: block;
    width: 100%;
  }

  .wp-block-table tr th {
    padding: .5em;
    border-bottom: solid 1px var(--line-color);
    border-right: solid 1px var(--line-color);
  }

  .sp-th100.wp-block-table tr th {
    border: none;
  }

  .wp-block-table:not(.sp-th100) th:last-child {
    border-right: none;
  }

  .wp-block-table td {
    border-right: solid 1px var(--line-color);
  }

  .sp-th100.wp-block-table td {
    padding: .5em;
  }

  /*------------
	 周辺観光
	------------*/
  h3:is(#kuji, #noda, #tanohata, #iwaizumi, #miyako, #yamada, #ootsuchi, #kamaishi, #oohunato, #rikuzentakata) {
    margin: 1em 0 2em;
  }

  h3:is(#kuji, #noda, #tanohata, #iwaizumi, #miyako, #yamada, #ootsuchi, #kamaishi, #oohunato, #rikuzentakata)::after {
    width: 230px;
    right: -180px;
  }

  .spotDl dt {
    margin: 1em 0 .5em;
    width: 100%;
  }

  .spotDl dd {
    padding: 0 0 1em;
    width: 100%;
  }

  .spotDl dd::before {
    width: 100%;
    left: 0;
  }

}