@charset "UTF-8";

/* リセットCSS */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  color: #333;
  line-height: 1.45;
}

a {
  font-family: "Noto Sans JP", sans-serif;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s ease;
}

img {
  max-width: 100%;
  height: auto;
}

/* リストのリセット */
ul,
ol {
  list-style: none;
}

dl,
dd {
  margin-bottom: 0;
}

li {
  list-style-type: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: 0;
}

p {
  margin-bottom: 0;
}

/* ベース */
html {
  scroll-behavior: smooth;
  /* スムーズスクロールを有効化 */
  scroll-padding-top: 96px;
  /* ヘッダーの高さ */
}

@media (max-width: 990px) {
  html {
    scroll-padding-top: 73px;
  }
}

body.active {
  overflow: hidden;
}

button.splide__arrow {
  border-color: transparent !important;
}

/* 予約 */
.header.edel-flex.edel-flex-end {
  margin-top: 10px;
}


/* 旅ともCSS */
/* SP・PC表示/非表示 */
@media (max-width: 768px) {
  .sp_hidden {
    display: none !important;
  }
}

.sp_visible {
  display: none !important;
}

@media (max-width: 768px) {
  .sp_visible {
    display: block !important;
  }
}

@media (min-width: 990px) {
  .pc_hidden {
    display: none !important;
  }
}

@media (max-width: 990px) {
  .tab_hidden {
    display: none !important;
  }
}

/* レイアウト */
.l-inner {
  max-width: 1080px;
  margin: 0 auto;
  box-sizing: content-box;
  padding: 0 6%;
}

@media (max-width: 990px) {
  .l-inner {
    padding: 0 3%;
  }
}

@media (max-width: 768px) {
  .l-inner {
    padding: 0 5.33%;
  }
}

@media (max-width: 768px) {
  .l-narrow {
    padding: 0 4.26%;
  }
}

.l-section {
  padding-block: 80px;
}

.l-section.--low {
  padding-block: 50px;
}

.l-section.--faq {
  display: flex;
  flex-direction: column;
  gap: 100px;
}

@media (max-width: 768px) {
  .l-section.--faq {
    gap: 40px;
  }
}

.l-section.--front-faq {
  padding-bottom: 160px;
}

@media (max-width: 768px) {
  .l-section.--front-faq {
    padding-bottom: 80px;
  }
}

@media (max-width: 768px) {
  .l-section {
    padding-block: 40px;
  }

  .l-section.--low {
    padding-block: 40px;
  }

  .l-section.--icon {
    padding-block: 90px 40px;
  }
}

.l-faq-section {
  padding-block: 50px;
}

@media (max-width: 768px) {
  .l-faq-section {
    padding-block: 30px;
  }
}

.l-faq-contents {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

@media (max-width: 768px) {
  .l-faq-contents {
    gap: 30px;
  }
}

.l-contents {
  display: flex;
  flex-direction: column;
  gap: 50px;
}

@media (max-width: 768px) {
  .l-contents {
    gap: 30px;
  }
}

.l-contents.--staff {
  gap: 80px;
}

@media (max-width: 768px) {
  .l-contents.--staff {
    gap: 30px;
  }
}

/* 共通パーツ */
.c-title {
  color: #333;
  font-size: 32px;
  font-weight: 700;
  text-align: center;
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}

.c-title.--left {
  margin-inline: 0 auto;
}

@media (max-width: 768px) {
  .c-title {
    font-size: 24px;
  }

  .c-title.--left {
    margin-inline: auto;
  }
}

.c-title.--sub {
  color: #000;
  text-align: center;
  font-size: 24px;
  font-weight: 700;
}

@media (max-width: 768px) {
  .c-title.--sub {
    font-size: 20px;
    padding-left: 34px;
  }
}

.c-title.--small {
  font-size: 24px;
  font-weight: 700;
  color: #044b98;
  padding-block: 12px;
}

.c-title.--icon {
  padding-left: 43px;
  position: relative;
}

.c-title.--icon02 {
  padding-left: 50px;
}

.c-title.--icon::before,
.c-title.--icon02::before,
.c-title.--icon03::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 40px;
  height: 40px;
}

.c-title.--icon03 {
  padding-left: 50px;
}

@media (max-width: 768px) {
  .c-title.--icon03 {
    padding-left: 34px;
  }
}

@media (max-width: 768px) {
  .c-title.--icon03::before {
    width: 24px;
    height: 24px;
  }
}

.c-title.--tour-schedule::before {
  background-image: url(../images/front/icon-time.svg);
}

.c-title.--tour-accommodation::before {
  background-image: url(../images/front/icon-ger.svg);
}

.c-title.--tour-voice::before {
  background-image: url(../images/front/voice-title.png);
}

.c-title.--tour-travel-note {
  position: absolute;
  top: 5%;
  left: 0;
}

@media (max-width: 768px) {
  .c-title.--tour-travel-note {
    position: relative;
  }
}

.c-title.--tour-travel-note::before {
  background-image: url(../images/front/icon-book.svg);
}

.c-title.--tour-experience::before {
  background-image: url(../images/front/icon-star.svg);
}

.c-title.--tour-tabitomo span {
  color: #c62728;
}

.c-title.--tour-tabitomo::before {
  background-image: url(../images/front/icon-tabitomo.png);
}

.c-title.--faq::before {
  background-image: url(../images/front/icon-faq.svg);
}

.c-title.--faq01::before {
  background-image: url(../images/faq/faq-look.png);
}

.c-title.--faq02::before {
  background-image: url(../images/faq/faq-calendar.png);
}

.c-title.--faq03::before {
  background-image: url(../images/faq/faq-flag.png);
}

.c-title.--faq04::before {
  background-image: url(../images/faq/faq-pass.png);
}

.c-title.--faq05::before {
  background-image: url(../images/faq/faq-car.png);
}

.c-title.--faq06::before {
  background-image: url(../images/faq/faq-money.png);
}

.c-title.--faq07::before {
  background-image: url(../images/faq/faq-bed.png);
}

.c-title.--faq08::before {
  background-image: url(../images/faq/faq-gel.png);
}

.c-title.--faq09::before {
  background-image: url(../images/faq/faq-gel.png);
}

.c-title.--faq10::before {
  background-image: url(../images/faq/faq-tent.png);
}

.c-title.--faq11::before {
  background-image: url(../images/faq/faq-horse.png);
}

.c-title.--faq12::before {
  background-image: url(../images/faq/faq-clothes.png);
}

.c-title.--faq13::before {
  background-image: url(../images/faq/faq-airplane.png);
}

.c-title.--faq14::before {
  background-image: url(../images/faq/faq-cancel.png);
}

.c-title.--tour-ranking::before {
  background-image: url(../images/front/ranking-title.png);
}

.c-title.--contact::before {
  background-image: url(../images/contact/icon-mail.png);
}

.c-title.--tag-search {
  padding-inline: 66px;
  position: relative;
  margin-bottom: 24px;
}

@media (max-width: 768px) {
  .c-title.--tag-search {
    font-size: 14px;
    padding-inline: 34px;
  }
}

.c-title.--tag-search::before {
  background-image: url(../images/front/tag-title.png);
  content: "";
  position: absolute;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 56px;
  height: 59px;
}

@media (max-width: 768px) {
  .c-title.--tag-search::before {
    width: 28px;
    height: 29px;
  }
}

.c-title.--tag-search::after {
  background-image: url(../images/front/tag-title.png);
  position: absolute;
  content: "";
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 56px;
  height: 59px;
}

@media (max-width: 768px) {
  .c-title.--tag-search::after {
    width: 28px;
    height: 29px;
  }
}

@media (max-width: 768px) {
  .c-title.--youtube {
    padding-left: 0;
  }
}

.c-title.--youtube::before {
  background-image: url(../images/front/youtube-title.png);
  width: 40px;
  height: 40px;
}

@media (max-width: 768px) {
  .c-title.--youtube::before {
    top: -50px;
    left: 50%;
    transform: translate(-50%, 0);
  }
}

.c-title.--voice::before {
  background-image: url(../images/front/voice-icon.png);
  width: 40px;
  height: 40px;
  top: 50%;
  transform: translateY(-50%);
}

.c-btn {
  border-radius: 100px;
  border: 2px solid #044b98;
  background: #fff;
  display: flex;
  width: 335px;
  padding-block: 16px;
  padding-inline: 36px 44px;
  justify-content: center;
  align-items: center;
  color: #044b98;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  position: relative;
  transition: all 0.3s ease;
}

@media (max-width: 768px) {
  .c-btn {
    display: flex;
    width: 234px;
    height: 56px;
    padding-inline: 8px 36px;
    font-size: 14px;
  }
}

@media (any-hover: hover) {
  .c-btn:hover {
    opacity: 0.7;
  }
}

.c-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 14px;
  width: 30px;
  height: 30px;
  background-image: url(../images/front/btn-arrow.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

@media (max-width: 768px) {
  .c-btn::before {
    width: 24px;
    height: 24px;
    right: 12px;
  }
}

.c-btn.center {
  margin-inline: auto;
}

.c-btn.line {
  background-color: #06c755;
  border-color: #06c755;
  color: #fff;
  padding-inline: 66px 44px;
}

.c-btn.line::after {
  content: "";
  position: absolute;
  width: 40px;
  height: 40px;
  background-image: url(../images/front/icon-line.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  left: 22px;
  top: 50%;
  transform: translateY(-50%);
}

.c-btn.line::before {
  background-image: url(../images/front/line-arrow.svg);
}

@media (max-width: 768px) {
  .c-btn.--tel {
    color: #c62728;
    font-family: Inter;
    font-size: clamp(1.25rem, -0.932rem + 10.91vw, 1.625rem);
    font-weight: 900;
    letter-spacing: 0.05em;
    line-height: 0.9;
    padding-inline: 70px 22px;
    border-color: #c62728;
  }
}

@media (max-width: 768px) {
  .c-btn.--tel::before {
    display: none;
  }
}

@media (max-width: 768px) {
  .c-btn.--tel::after {
    content: "";
    position: absolute;
    width: 38px;
    height: 38px;
    background-image: url(../images/front/icon-tel_sp.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    left: 22px;
    top: 50%;
    transform: translateY(-50%);
  }
}

.c-btn.--reservation {
  border-color: #c62728;
  background-color: #c62728;
  color: #fff;
  width: 328px;
}

@media (max-width: 768px) {
  .c-btn.--reservation {
    padding-inline: 24px 44px;
  }
}

.c-btn.--reservation::before {
  background-image: url(../images/front/arrow-red.svg);
  width: 30px;
  height: 30px;
}

.c-btn.--tabitomo {
  padding-inline: 14px 44px;
  width: 328px;
}

@media (max-width: 768px) {
  .c-btn.--tabitomo {
    padding-inline: 14px 44px;
  }
}

.c-btn.--tabitomo::before {
  width: 30px;
  height: 30px;
}

@media (max-width: 768px) {
  .c-btn.--footer_btn {
    width: 100%;
    max-width: 335px;
    margin-inline: auto;
  }
}

.c-btn.--faq {
  flex-wrap: wrap;
  /* width: 234px; */
  width: calc(33% - 14px);
  padding-inline: 11px 44px;
}

@media (max-width: 768px) {
  .c-btn.--faq {
    width: calc(50% - 8px);
    padding-inline: 12px 46px;
    flex-wrap: nowrap;
    white-space: nowrap;
  }
}

.c-btn.--faq.--sub {
  flex: 1;
  max-width: 254px;
}

@media (max-width: 768px) {
  .c-btn.--faq.--sub {
    width: 155px;
  }
}

.c-btn.--faq::before {
  width: 30px;
  height: 30px;
  background-image: url(../images/faq/dawn-arrow.svg);
}

.c-btn.--thinking {
  background-color: transparent;
  border-color: #fff;
  color: #fff;
  padding-inline: 14px 44px;
}

@media (max-width: 768px) {
  .c-btn.--thinking {
    padding-inline: 12px 40px;
    width: 285px;
  }
}

.c-btn.--thinking::before {
  background-image: url(../images/front/btn-arrow-w.svg);
}

.c-btn.--customize {
  padding-inline: 14px 44px;
}

@media (max-width: 768px) {
  .c-btn.--customize {
    width: 100%;
    max-width: 335px;
  }
}

.c-btn.--customize::before {
  background-image: url(../images/front/icon-link.svg);
  width: 24px;
  height: 24px;
  right: 24px;
}

@media (max-width: 768px) {
  .c-btn.--customize::before {
    right: 20px;
  }
}

@media (max-width: 768px) {
  .c-btn.--questionnaire {
    width: 100%;
    max-width: 343px;
  }
}

.c-tel {
  color: #333;
  font-family: Inter;
  font-size: 32px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 1.28px;
  display: flex;
  flex-direction: column;
  padding-left: 50px;
  position: relative;
}

.c-tel::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  background-image: url(../images/front/icon-tel.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 44px;
  height: 44px;
}

.c-tel span {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
}

.c-tel .ja {
  font-size: 14px;
  font-family: "Noto Sans JP";
}

.c-tour__tag {
  display: inline-flex;
  padding-inline: 20px 10px;
  padding-block: 4px;
  /* padding: 4px 10px; */
  align-items: center;
  border-radius: 100px;
  border: 1px solid #044b98;
  background: #fff;
  color: #044b98;
  text-align: center;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  /* 12px */
  position: relative;
}

@media (any-hover: hover) {
  .c-tour__tag:hover {
    background-color: #044b98;
    color: #fff;
  }
}

@media (max-width: 768px) {
  .c-tour__tag {
    font-size: 10px;
    padding-inline: 18px 10px;
  }
}

@media (max-width: 768px) {
  .c-tour__tag.--header {
    font-size: 12px;
    border: none;
    background-color: transparent;
  }
}

.c-tour__tag.no-link {
  pointer-events: none;
}

.c-tour__tag::before {
  content: "＃";
  position: absolute;
  display: inline-block;
  font-size: 12px;
  left: 8px;
  top: 50%;
  transform: translateY(-50%);
}

@media (max-width: 768px) {
  .c-tour__tag::before {
    font-size: 10px;
  }
}

.c-tour__date {
  color: #5287c1;
  text-align: center;
  font-family: Inter;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}

.u-title-wrap {
  padding-block: 50px;
}

@media (max-width: 768px) {
  .u-title-wrap {
    padding-block: 30px;
  }
}

/* メルマガフォーム */
.guest-subscribe-wrapper {
  margin-inline: 0;
  margin-block: 13px 0;
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 8px;
}

.guest-subscribe-wrapper input[type=email] {
  flex: 1 1 auto;
  min-width: 0;
  height: 43px;
}

.guest-subscribe-wrapper input[type=submit] {
  flex: 0 0 auto;
  width: 110px;
  min-width: 0;
  height: 43px;
  padding: 0 12px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background-color: #044b98;
  border: 0;
  border-radius: 4px;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: opacity 0.2s ease;
}

.guest-subscribe-wrapper input[type=submit]:hover {
  opacity: 0.85;
}

@media (max-width: 768px) {
  .guest-subscribe-wrapper input[type=submit] {
    width: 96px;
    font-size: 13px;
    padding: 0 8px;
  }
}

/*MV*/
.l-main {
  background-color: #fff;
  overflow: hidden;
}

.l-main.--faq {
  margin-top: 90px;
}

@media (max-width: 990px) {
  .l-main.--faq {
    margin-top: 50px;
  }
}

@media (max-width: 768px) {
  .l-main.--faq {
    margin-top: 64px;
  }
}

.l-main.--page {
  margin-top: 60px;
}

@media (max-width: 768px) {
  .l-main.--page {
    margin-top: 30px;
  }
}

.l-main.--home {
  margin-top: 64px;
}

@media (max-width: 990px) {
  .l-main.--home {
    margin-top: 70px;
  }
}

.l-main.--contact {
  margin-top: 64px;
}

@media (max-width: 990px) {
  .l-main.--contact {
    margin-top: 36px;
  }
}

@media (max-width: 768px) {
  .l-main.--contact {
    margin-top: 60px;
  }
}

.l-main.--form {
  margin-top: 120px;
}

@media (max-width: 990px) {
  .l-main.--form {
    margin-top: 100px;
  }
}

/* ぱんくず */
.breadcrumb {
  position: -webkit-sticky;
  position: sticky;
  top: 96px;
  left: 0;
  width: 100%;
  z-index: 9;
  transition: translate 0.5s ease;
  padding: 11px 0;
}

@media (max-width: 990px) {
  .breadcrumb {
    top: 70px;
  }
}

@media (max-width: 768px) {
  .breadcrumb-title {
    display: inline-block;
    width: 180px;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }
}

.breadcrumb ul {
  flex-wrap: nowrap;
  white-space: nowrap;
  overflow-x: scroll;
}

.breadcrumb ul::-webkit-scrollbar {
  display: none;
}

.container-fluid {
  max-width: 1200px;
}

.breadcrumb.js-slide-up {
  translate: 0 -270%;
}

.breadcrumb ul li {
  font-size: 14px;
}

/* ヘッダー */
.p-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 96px;
  padding: 0 clamp(0.625rem, -10.144rem + 16.83vw, 5rem);
  background-color: #fff;
  z-index: 11;
  transition: translate 0.5s ease;
  box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
  /* overflow-y: clip; */
}

.p-header.js-slide-up {
  translate: 0 -50%;
}

@media (max-width: 990px) {
  .p-header {
    height: 73px;
    overflow-y: visible;
  }
}

/* 固定ヘッダーが表示されたときのスタイル */
#js-header.is-show {
  top: 0;
  /* 隠していたヘッダーを表示 */
}

.p-header__wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: inherit;
}

@media (max-width: 990px) {
  .p-header__wrap {
    display: block;
  }
}

.p-header__logo {
  display: flex;
  align-items: center;
  height: inherit;
  transition: transform 0.5s ease;
  transform-origin: left center;
}

.p-header__logo.js-slide-up {
  transform: translateY(20%) scale(0.6);
}

.p-header__logo a {
  display: block;
}

@media (max-width: 990px) {
  .p-header__logo img {
    width: 175px;
    height: 60px;
  }
}

.p-header__nav {
  display: flex;
  align-items: center;
  height: inherit;
  transition: transform 0.5s ease;
}

@media (max-width: 990px) {
  .p-header__nav {
    opacity: 0;
    visibility: hidden;
    flex-direction: column;
    width: 100vw;
    margin-inline: calc(50% - 50vw);
    height: calc(100svh - 73px);
    overflow-y: scroll;
    background-color: #fff;
  }
}

@media screen and (min-width: 991px) {
  .p-header__nav.js-slide-up {
    transform: translateY(20%);
  }
}

.p-header__nav.active {
  opacity: 1;
  visibility: visible;
}

.p-header__list {
  display: flex;
  align-items: center;
  height: inherit;
  margin-bottom: 0;
}

@media (max-width: 990px) {
  .p-header__list {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto auto;
    gap: 16px;
    height: auto;
    padding-block: 24px;
    padding-inline: 24px;
    background-color: #ffffd4;
  }
}

.p-header__item {
  height: inherit;
  position: relative;
}

.p-header__item.--tabitomo {
  position: relative;
}

.p-header__item.--tabitomo::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background-image: url(../images/tabitomo/tabitomo.webp);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 86px;
  height: 39px;
}

@media (max-width: 990px) {
  .p-header__item.--tabitomo::before {
    display: none;
  }
}

.p-header__item a {
  height: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #333;
  font-family: "Noto Sans";
  font-size: clamp(0.75rem, 0.135rem + 0.96vw, 1rem);
  font-weight: 700;
  line-height: 1.5;
  padding-inline: 16px;
}

@media (max-width: 990px) {
  .p-header__item a {
    border-radius: 100px;
    border: 2px solid #044b9b;
    background: #fff;
    padding: 10px 16px;
    gap: 2px;
    color: #044b98;
    text-align: center;
    font-size: clamp(0.688rem, -0.813rem + 7.5vw, 0.875rem);
    justify-content: flex-start;
  }
}

.p-header__item a span {
  flex: 1;
  font-family: "Noto Sans JP", sans-serif;
}

@media (max-width: 990px) {
  .p-header__item a span {
    white-space: nowrap;
  }
}

.p-header__item a .red {
  color: #c62728;
}

@media (max-width: 990px) {
  .sp_order1 {
    order: 1;
  }
}

@media (max-width: 990px) {
  .sp_order2 {
    order: 2;
  }
}

@media (max-width: 990px) {
  .sp_order3 {
    order: 3;
  }
}

@media (max-width: 990px) {
  .sp_order4 {
    order: 4;
  }
}

@media (max-width: 990px) {
  .sp_order5 {
    order: 5;
  }
}

@media (max-width: 990px) {
  .sp_order6 {
    order: 6;
  }
}

.p-header__sub-list {
  position: absolute;
  width: 300px;
  top: 75px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #fff;
  border-radius: 10px;
  filter: drop-shadow(0px 2.672px 6.68px rgba(0, 0, 0, 0.25));
  z-index: 20;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.p-header__sp-list {
  display: none;
}

@media (max-width: 990px) {
  .p-header__sp-list {
    display: block;
    width: 100%;
    padding-inline: 24px;
    padding-top: 32px;
    margin-bottom: 0;
  }
}

.p-header__item.--sub>a {
  position: relative;
  padding-right: 32px;
}

@media (max-width: 990px) {
  .p-header__item.--sub>a {
    padding-right: 16px;
  }
}

.p-header__item.--sub>a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background-image: url(../images/front/open-arrow.svg);
  width: 24px;
  height: 24px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

@media (max-width: 990px) {
  .p-header__item.--sub>a::after {
    display: none;
  }
}

.p-header__item.--sub:hover .p-header__sub-list {
  opacity: 1;
  visibility: visible;
}

.p-header__sub-list::after {
  content: "";
  position: absolute;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 6px 10.4px 6px;
  border-color: transparent transparent #ffffff transparent;
  z-index: 10;
}

@media (max-width: 990px) {
  .p-header__sub-list::after {
    display: none;
  }
}

.p-header__sub-item {
  border-bottom: 1px dashed #5287c1;
  position: relative;
}

.p-header__sub-item::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  background-image: url(../images/front/white-arrow.svg);
  width: 24px;
  height: 24px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.p-header__sub-item:last-of-type {
  border-bottom: none;
}

.p-header__sub-item a {
  padding: 8px 16px;
  justify-content: flex-start;
}

@media (max-width: 990px) {
  .p-header__sub-item a {
    display: flex;
    color: #333;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
  }
}

.p-header__blog-list {
  display: none;
}

@media (max-width: 990px) {
  .p-header__blog-list {
    display: block;
    width: 100%;
    margin-top: 32px;
    padding-inline: 24px;
    margin-bottom: 0;
  }
}

.p-header__blog-item {
  border-bottom: 1px dashed #5287c1;
  position: relative;
}

.p-header__blog-item::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  background-image: url(../images/front/white-arrow.svg);
  width: 24px;
  height: 24px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

@media (max-width: 990px) {
  .p-header__blog-item a {
    display: block;
    color: #333;
    font-family: "Noto Sans";
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    padding: 8px 16px;
    justify-content: flex-start;
  }
}

.p-header__tag {
  display: flex;
  align-items: flex-start;
  align-content: flex-start;
  gap: 20px;
  align-self: stretch;
  flex-wrap: wrap;
  padding-inline: 24px;
  background-color: #fff;
  padding-top: 32px;
}

.p-header__tag-list {
  margin-bottom: 0;
}

.p-header__tag-title {
  color: #333;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 20px;
}

@media screen {
  .p-header__tag-title {
    margin-bottom: 0;
  }
}

.p-header__btn {
  height: inherit;
  padding-inline: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP", sans-serif;
}

@media (max-width: 990px) {
  .p-header__btn {
    height: auto;
    padding-inline: 24px;
    justify-content: flex-start;
    width: 100%;
    background-color: #fff;
    padding-top: 32px;
  }
}

.p-header__btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Noto Sans";
  font-size: clamp(0.75rem, 0.135rem + 0.96vw, 1rem);
  font-weight: 700;
  line-height: 1.5;
  background-color: #044b98;
  padding-inline: 16px;
  padding-block: 8px;
  border-radius: 100px;
}

@media (max-width: 990px) {
  .p-header__btn a {
    padding: 10px 16px;
    font-size: 14px;
    width: 154px;
  }
}

/* ドロワー */
.c-drawer-icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 30px;
  width: 24px;
  height: 24px;
  padding: 5px 2px 6px 2px;
  transition: transform 0.5s ease;
  cursor: pointer;
}

@media (min-width: 991px) {
  .c-drawer-icon {
    display: none;
  }
}

.c-drawer-icon.js-slide-up {
  transform: translateY(20%);
}

.c-drawer-icon span {
  display: block;
  width: 20px;
  height: 2px;
  background-color: #333;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  transition: all 0.3s ease;
}

.c-drawer-icon span:nth-of-type(1) {
  top: 5px;
}

.c-drawer-icon span:nth-of-type(2) {
  top: 50%;
  transform: translate(-50%, -50%);
}

.c-drawer-icon span:nth-of-type(3) {
  bottom: 5px;
}

.c-drawer-icon.active span:nth-of-type(1) {
  transform: translateX(-50%) rotate(45deg);
  top: 11px;
}

.c-drawer-icon.active span:nth-of-type(2) {
  opacity: 0;
}

.c-drawer-icon.active span:nth-of-type(3) {
  transform: translateX(-50%) rotate(-45deg);
  bottom: 11px;
}

/* フロー
   背景画像は WebP 優先(173KB vs PNG 1.5MB)、image-set 非対応の古いブラウザは PNG にフォールバック */
.p-flow {
  background: url(../images/home/bg-steps.png) 50% 50%/cover no-repeat;
  background-image: -webkit-image-set(
    url(../images/home/bg-steps.png.webp) type("image/webp"),
    url(../images/home/bg-steps.png) type("image/png")
  );
  background-image: image-set(
    url(../images/home/bg-steps.png.webp) type("image/webp"),
    url(../images/home/bg-steps.png) type("image/png")
  );
}

@media (max-width: 768px) {
  .p-flow {
    background: url(../images/front/bg-steps_sp.png) 50% 50%/cover no-repeat;
    background-image: -webkit-image-set(
      url(../images/front/bg-steps_sp.png.webp?v=20260922) type("image/webp"),
      url(../images/front/bg-steps_sp.png) type("image/png")
    );
    background-image: image-set(
      url(../images/front/bg-steps_sp.png.webp?v=20260922) type("image/webp"),
      url(../images/front/bg-steps_sp.png) type("image/png")
    );
  }
}

.p-flow__heading {
  color: #fff;
}

@media (max-width: 768px) {
  .p-flow__wrap {
    overflow-x: scroll;
    width: 100vw;
    margin-inline: calc(50% - 50vw);
    padding-inline: 5.33% 0;
  }
}

.p-flow__list {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 48px;
}

@media (max-width: 768px) {
  .p-flow__list {
    width: 1080px;
    padding-right: 5.33%;
    box-sizing: content-box;
  }
}

.p-flow__item {
  background-color: #e5edf5;
  border-radius: 20px;
  padding: 16px 20px;
  display: flex;
  padding: 16px 20px;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex: 1;
  position: relative;
}

@media (max-width: 768px) {
  .p-flow__item {
    width: 234px;
  }
}

.p-flow__item:not(:first-of-type)::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-10%);
  left: -34px;
  background-image: url(../images/front/flow-arrow.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 24px;
  height: 30px;
}

.p-flow__item img {
  margin-inline: auto;
}

.p-flow__item h3 {
  color: #103a58;
  text-align: center;
  font-size: 24px;
}

@media (max-width: 768px) {
  .p-flow__item h3 {
    font-size: 20px;
  }
}

.p-flow__item p {
  color: #333;
  text-align: justify;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .p-flow__item p {
    font-size: 14px;
  }
}

.p-flow__item p span {
  color: #757575;
  font-size: 14px;
}

@media (max-width: 768px) {
  .p-flow__item p span {
    font-size: 12px;
  }
}

.p-flow__item:last-of-type {
  background-color: #f4f98b;
}

/* フッター */
.p-footer {
  background-color: #fff;
  padding-block: 50px;
  border-top: 1px solid #dadada;
}

.l-footer__contents {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

@media (max-width: 990px) {
  .l-footer__contents {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    gap: 30px;
  }
}

.p-footer__list {
  display: flex;
  align-items: stretch;
  flex-direction: column;
  gap: 24px;
}

@media (max-width: 768px) {
  .p-footer__list {
    gap: 16px;
  }
}

@media (max-width: 990px) {
  .p-footer__list:nth-of-type(1) {
    grid-column: 1/2;
  }
}

@media (max-width: 990px) and (max-width: 768px) {
  .p-footer__list:nth-of-type(1) {
    grid-column: 1/3;
  }
}

@media (max-width: 990px) {
  .p-footer__list:nth-of-type(2) {
    grid-column: 2/3;
  }
}

@media (max-width: 768px) {
  .p-footer__list:nth-of-type(2) {
    grid-column: 1/2;
  }
}

@media (max-width: 990px) {
  .p-footer__list:nth-of-type(3) {
    grid-column: 1/3;
  }
}

@media (max-width: 768px) {
  .p-footer__list:nth-of-type(3) {
    grid-column: 2/3;
  }
}

.p-footer__link {
  color: #333;
  font-family: "Noto Sans";
  font-size: 14px;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.p-footer__link.--bold {
  font-weight: 700;
  font-size: 16px;
}

.p-footer__link.--icon {
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-footer__link.--in {
  padding-left: 18px;
  position: relative;
}

.p-footer__link.--gray {
  color: #757575;
  font-size: 12px;
}

@media (max-width: 768px) {
  .p-footer__link.--gray {
    font-size: 10px;
  }
}

.p-footer__link.--in::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 10px;
  height: 1px;
  background: #044b98;
}

.p-footer__icon-wrap {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: 24px 40px;
}

@media (max-width: 768px) {
  .p-footer__icon-wrap {
    grid-template-columns: repeat(1, 1fr);
    gap: 16px;
  }
}

.p-footer__link-wrap {
  display: flex;
  align-items: center;
  gap: 40px;
}

@media (max-width: 990px) {
  .p-footer__link-wrap {
    gap: 16px;
  }
}

@media (max-width: 768px) {
  .p-footer__link-wrap {
    display: flex !important;
    flex-direction: column;
    margin-top: 40px;
  }
}

.p-footer__bottom {
  padding-block: 48px;
  background-color: #e5edf5;
}

@media (max-width: 768px) {
  .p-footer__link-wrap.bottom {
    display: none !important;
  }
}

.l-footer__bottom {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}

@media (max-width: 768px) {
  .l-footer__bottom {
    flex-direction: column;
    gap: 30px;
  }
}

.p-footer__bottom-logo {
  display: block;
}

@media (max-width: 768px) {
  .p-footer__bottom-logo {
    width: 94%;
    order: 1;
  }
}

.p-footer__left {
  display: flex;
  flex-direction: column;
  gap: 38px;
}

@media (max-width: 768px) {
  .p-footer__left {
    display: contents;
  }
}

.p-footer__right {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

@media (max-width: 768px) {
  .p-footer__right {
    display: contents;
  }
}

@media (max-width: 768px) {
  .p-footer__mail {
    order: 5;
  }
}

.p-footer__btn-wrap {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 24px;
}

@media (max-width: 768px) {
  .p-footer__btn-wrap {
    order: 3;
    gap: 16px;
  }
}

@media (max-width: 768px) {
  .p-footer__bottom-info {
    order: 2;
  }
}

.p-footer__bottom-info p,
.p-footer__bottom-info a {
  color: #333;
  font-size: 16px;
  font-weight: 400;
  font-family: "Mgen+ 1p";
}

.p-footer__bottom-info p span {
  font-weight: 500;
}

p.p-footer__bottom-tel span {
  color: #333;
  font-size: 16px;
  font-weight: 400;
  font-family: "Mgen+ 1p";
  display: inline-block;
  text-decoration: underline;
}

.p-footer__bottom-info p span.small {
  font-size: 16px;
}

.p-footer__bottom-sns {
  display: flex;
  align-items: center;
  gap: 24px;
}

@media (max-width: 768px) {
  .p-footer__bottom-sns {
    order: 4;
  }
}

.p-footer__bottom-sns p {
  color: #044b98;
  text-align: center;
  font-family: Inter;
  font-size: 16px;
  font-weight: 700;
  white-space: pre;
}

.p-footer__bottom-sns a {
  display: block;
}

@media (max-width: 768px) {
  .p-footer__tel-caption {
    color: #c62728;
    text-align: center;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    margin-top: -6px;
  }
}

@media (max-width: 768px) {
  .p-footer__tel-caption span {
    font-family: Inter;
  }
}

.p-footer__caption {
  margin-bottom: 32px;
  max-width: 335px;
  margin-inline: auto;
  padding-block: 10px;
  border-top: 1px solid #757575;
  border-bottom: 1px solid #757575;
}

@media (max-width: 768px) {
  .p-footer__caption {
    margin-bottom: 0;
    max-width: -webkit-fit-content;
    max-width: -moz-fit-content;
    max-width: fit-content;
  }
}

.p-footer__caption li {
  position: relative;
  padding-left: 14px;
  color: #757575;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .p-footer__caption li {
    font-size: 12px;
  }
}

.p-footer__caption li::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}

/* コピーライト */
.p-copyright {
  background-color: #044b98;
  padding-block: 30px;
}

@media (max-width: 768px) {
  .p-copyright {
    padding-block: 20px;
  }
}

.p-copyright small {
  color: #fff;
  font-family: "Noto Sans JP";
  font-size: 14px;
  font-weight: 400;
  display: block;
  text-align: center;
}

@media (max-width: 768px) {
  .p-copyright small {
    font-size: 10px;
  }
}

/* =========================================================
   Privacy Policy
   page template: page_privacy.php
   Append this block to css/common.css (or include as a new file).
   既存の `.p-blue__header` `.c-title` `.l-main` `.l-section`
   `.l-inner` `.l-narrow` を継承して使用しています。
   ========================================================= */

/* タイトル（共通の青ヘッダー上で使用） */
.p-privacy__title {
  /* `.c-title` を踏襲。サイズ・余白だけ微調整したい場合に使用 */
}

/* セクション本体 */
.p-privacy {
  padding-top: 80px;
  padding-bottom: 120px;
}

/* リード文（青のアクセントライン） */
.p-privacy__lede {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.95;
  color: #333;
  background: #f8fbff;
  border-left: 3px solid #044b98;
  padding: 24px 28px;
  border-radius: 0 4px 4px 0;
  margin: 0 0 40px;
}

/* 目次 */
.p-privacy__toc {
  border: 1px solid #e6e6e6;
  padding: 24px 32px;
  margin-bottom: 64px;
}

.p-privacy__toc-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .18em;
  color: #7a8aa0;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.p-privacy__toc-title::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e6e6e6;
}

.p-privacy__toc ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 40px;
  row-gap: 4px;
}

.p-privacy__toc a {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #333;
  padding: 8px 0;
  text-decoration: none;
  transition: color .15s;
}

.p-privacy__toc a:hover {
  color: #044b98;
}

.p-privacy__toc a:hover .num {
  color: #044b98;
}

.p-privacy__toc .num {
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #9aa6b8;
  width: 28px;
}

/* 各セクション */
.p-privacy__list {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.p-privacy__item {
  display: flex;
  gap: 32px;
  align-items: flex-start;
  scroll-margin-top: 120px;
}

.p-privacy__num {
  flex: 0 0 64px;
  font-family: "Inter", sans-serif;
  font-weight: 700;
  font-size: 34px;
  line-height: 1;
  color: #044b98;
  position: relative;
  padding-top: 2px;
}

.p-privacy__num::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -10px;
  width: 24px;
  height: 2px;
  background: #044b98;
}

.p-privacy__body {
  flex: 1;
  min-width: 0;
}

.p-privacy__heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c2a3d;
  letter-spacing: .04em;
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid #bdbdbd;
}

.p-privacy__body p {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.95;
  color: #333;
}

.p-privacy__bullets {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-privacy__bullets li {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14.5px;
  line-height: 1.8;
  color: #333;
  padding-left: 18px;
  position: relative;
}

.p-privacy__bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .78em;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #044b98;
}

/* お問い合わせカード */
.p-privacy__contact {
  margin: 18px 0 0;
  padding: 24px 28px;
  background: #fbfbfb;
  border: 1px solid #e6e6e6;
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 28px;
  row-gap: 10px;
}

.p-privacy__contact dt {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .06em;
  color: #5b6473;
  align-self: center;
}

.p-privacy__contact dd {
  margin: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  color: #333;
}

.p-privacy__contact dd a {
  color: #044b98;
  text-decoration: none;
  font-family: "Inter", "Noto Sans JP", sans-serif;
}

.p-privacy__contact dd a:hover {
  text-decoration: underline;
}

/* ============== SP ============== */
@media (max-width: 768px) {
  .p-privacy {
    padding-top: 50px;
    padding-bottom: 80px;
  }

  .p-privacy__lede {
    font-size: 14px;
    padding: 18px 18px;
    margin-bottom: 32px;
  }

  .p-privacy__toc {
    padding: 18px 18px;
    margin-bottom: 40px;
  }

  .p-privacy__toc ul {
    grid-template-columns: 1fr;
    column-gap: 0;
  }

  .p-privacy__list {
    gap: 36px;
  }

  .p-privacy__item {
    flex-direction: column;
    gap: 12px;
  }

  .p-privacy__num {
    flex: none;
    font-size: 28px;
  }

  .p-privacy__num::after {
    bottom: -6px;
  }

  .p-privacy__heading {
    font-size: 17px;
  }

  .p-privacy__body p {
    font-size: 14px;
  }

  .p-privacy__bullets li {
    font-size: 13.5px;
  }

  .p-privacy__contact {
    grid-template-columns: 1fr;
    row-gap: 4px;
    padding: 18px;
  }

  .p-privacy__contact dt {
    font-size: 12px;
    color: #7a8190;
    padding-top: 10px;
  }

  .p-privacy__contact dt:first-child {
    padding-top: 0;
  }

  .p-privacy__contact dd {
    font-size: 14px;
  }
}

/* =========================================================
   旅行約款 (page_terms.php) — .p-terms
   既存の `.p-blue__header` `.c-title` `.l-main` `.l-section`
   `.l-inner` `.l-narrow` を継承して使用しています。
   p-privacy と同じ基本デザインに加え、約款特有の
   番号付きリスト(.p-terms__ol)・サブリスト(.p-terms__ol-sub)・
   注釈(.p-terms__note) を追加しています。
   ========================================================= */

/* タイトル */
.p-terms__title {
  /* `.c-title` を踏襲。サイズ・余白だけ微調整したい場合に使用 */
}

/* セクション本体 */
.p-terms {
  padding-top: 80px;
  padding-bottom: 120px;
}

/* リード文（青のアクセントライン） */
.p-terms__lede {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.95;
  color: #333;
  background: #f8fbff;
  border-left: 3px solid #044b98;
  padding: 24px 28px;
  border-radius: 0 4px 4px 0;
  margin: 0 0 40px;
}

/* 目次 */
.p-terms__toc {
  border: 1px solid #e6e6e6;
  padding: 24px 32px;
  margin-bottom: 64px;
}

.p-terms__toc-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: .18em;
  color: #7a8aa0;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.p-terms__toc-title::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e6e6e6;
}

.p-terms__toc ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 40px;
  row-gap: 4px;
}

.p-terms__toc a {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #333;
  padding: 8px 0;
  text-decoration: none;
  transition: color .15s;
}

.p-terms__toc a:hover {
  color: #044b98;
}

.p-terms__toc a:hover .num {
  color: #044b98;
}

.p-terms__toc .num {
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #9aa6b8;
  width: 28px;
}

/* 各セクション */
.p-terms__list {
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.p-terms__item {
  display: flex;
  gap: 32px;
  align-items: flex-start;
  scroll-margin-top: 120px;
}

.p-terms__num {
  flex: 0 0 64px;
  font-family: "Inter", sans-serif;
  font-weight: 700;
  font-size: 34px;
  line-height: 1;
  color: #044b98;
  position: relative;
  padding-top: 2px;
}

.p-terms__num::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -10px;
  width: 24px;
  height: 2px;
  background: #044b98;
}

.p-terms__body {
  flex: 1;
  min-width: 0;
}

.p-terms__heading {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c2a3d;
  letter-spacing: .04em;
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid #bdbdbd;
}

.p-terms__body p {
  margin: 0 0 14px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.95;
  color: #333;
}

.p-terms__body p:last-child {
  margin-bottom: 0;
}

.p-terms__body a {
  color: #044b98;
  text-decoration: underline;
  word-break: break-all;
}

.p-terms__body a:hover {
  text-decoration: none;
}

/* 注釈（※ 行） */
.p-terms__note {
  margin-top: 14px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13.5px;
  line-height: 1.8;
  color: #6a6a6a;
  background: #fafafa;
  border-left: 2px solid #cfd5df;
  padding: 12px 16px;
}

/* 中黒（・）ブレット */
.p-terms__bullets {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-terms__bullets li {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14.5px;
  line-height: 1.8;
  color: #333;
  padding-left: 18px;
  position: relative;
}

.p-terms__bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .78em;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #044b98;
}

/* 1) 2) 3) … の番号付きリスト */
.p-terms__ol {
  list-style: none;
  counter-reset: terms-ol;
  margin: 14px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.p-terms__ol > li {
  counter-increment: terms-ol;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.95;
  color: #333;
  padding-left: 36px;
  position: relative;
}

.p-terms__ol > li::before {
  content: counter(terms-ol) ")";
  position: absolute;
  left: 0;
  top: 0;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 600;
  color: #044b98;
  min-width: 28px;
}

/* (a)(b)(c) … サブリスト */
.p-terms__ol-sub {
  list-style: none;
  counter-reset: terms-sub;
  margin: 10px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.p-terms__ol-sub > li {
  counter-increment: terms-sub;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 14.5px;
  line-height: 1.9;
  color: #444;
  padding-left: 36px;
  position: relative;
}

.p-terms__ol-sub > li::before {
  content: "(" counter(terms-sub, lower-alpha) ")";
  position: absolute;
  left: 0;
  top: 0;
  font-family: "Inter", "Noto Sans JP", sans-serif;
  font-weight: 500;
  color: #6a7689;
  min-width: 28px;
}

/* ============== SP ============== */
@media (max-width: 768px) {
  .p-terms {
    padding-top: 50px;
    padding-bottom: 80px;
  }

  .p-terms__lede {
    font-size: 14px;
    padding: 18px 18px;
    margin-bottom: 32px;
  }

  .p-terms__toc {
    padding: 18px 18px;
    margin-bottom: 40px;
  }

  .p-terms__toc ul {
    grid-template-columns: 1fr;
    column-gap: 0;
  }

  .p-terms__list {
    gap: 36px;
  }

  .p-terms__item {
    flex-direction: column;
    gap: 12px;
  }

  .p-terms__num {
    flex: none;
    font-size: 28px;
  }

  .p-terms__num::after {
    bottom: -6px;
  }

  .p-terms__heading {
    font-size: 17px;
  }

  .p-terms__body p {
    font-size: 14px;
  }

  .p-terms__bullets li {
    font-size: 13.5px;
  }

  .p-terms__ol > li {
    font-size: 14px;
    padding-left: 30px;
  }

  .p-terms__ol-sub > li {
    font-size: 13.5px;
    padding-left: 32px;
  }

  .p-terms__note {
    font-size: 12.5px;
    padding: 10px 14px;
  }
}

/* =========================================================
   会社概要 (page_company.php) — .p-company
   既存の `.p-blue__header` `.c-title` `.l-main` `.l-section`
   `.l-inner` `.l-narrow` を継承して使用しています。
   構成: 青ヘッダー + ヒーロー画像 + 会社概要テーブル
   ========================================================= */

/* タイトル */
.p-company__title {
  /* `.c-title` を踏襲。サイズ・余白だけ微調整したい場合に使用 */
}

/* セクション本体 */
.p-company {
  padding-top: 80px;
  padding-bottom: 120px;
}

/* ヒーロー画像 */
.p-company__hero {
  width: 250px;
  max-width: 100%;
  margin: 0 auto 48px;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: 0 4px 20px rgba(4, 75, 152, 0.08);
  aspect-ratio: 500 / 626;
}

.p-company__hero picture,
.p-company__hero img {
  display: block;
  width: 100%;
  height: auto;
}

/* テーブルラッパー（SP横スクロール抑止 + 横幅制御） */
.p-company__table-wrap {
  width: 100%;
}

/* 会社概要テーブル */
.p-company__table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #e6e6e6;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.85;
  color: #333;
}

.p-company__table tr {
  border-bottom: 1px solid #e6e6e6;
}

.p-company__table th {
  width: 200px;
  padding: 22px 24px;
  background: #f8fbff;
  text-align: left;
  vertical-align: top;
  font-weight: 700;
  color: #044b98;
  letter-spacing: .04em;
  white-space: nowrap;
}

.p-company__table td {
  padding: 22px 24px;
  vertical-align: top;
  word-break: break-word;
}

.p-company__table td a {
  color: #044b98;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .2s ease;
}

.p-company__table td a:hover {
  border-bottom-color: #044b98;
}

/* ============== SP ============== */
@media (max-width: 768px) {
  .p-company {
    padding-top: 50px;
    padding-bottom: 80px;
  }

  .p-company__hero {
    width: 220px;
    margin: 0 auto 32px;
    border-radius: 4px;
  }

  .p-company__table {
    font-size: 14px;
    line-height: 1.8;
    border-top: none;
  }

  .p-company__table tr {
    display: block;
    border-bottom: 1px solid #e6e6e6;
    padding: 14px 0;
  }

  .p-company__table tr:first-child {
    border-top: 1px solid #e6e6e6;
  }

  .p-company__table th,
  .p-company__table td {
    display: block;
    width: 100%;
    padding: 4px 12px;
    white-space: normal;
  }

  .p-company__table th {
    background: transparent;
    font-size: 13px;
    padding-bottom: 6px;
  }
}

/* =========================================================
   サイトマップ (page_sitemap.php) — .p-sitemap
   既存の `.p-blue__header` `.c-title` `.l-main` `.l-section`
   `.l-inner` `.l-narrow` を継承して使用しています。
   サイトマップ本体は All in One SEO (AIOSEO) プラグインの
   `[aioseo_html_sitemap]` 出力をターゲットに装飾しています。
   想定マークアップ:
     .aioseo-html-sitemap
       └ .aioseo-html-page-sitemap (h4 + ul > li > a)
       └ .aioseo-html-tour-sitemap (h4 + ul > li > a)
   ========================================================= */

/* タイトル */
.p-sitemap__title {
  /* `.c-title` を踏襲。サイズ・余白だけ微調整したい場合に使用 */
}

/* セクション本体 */
.p-sitemap {
  padding-top: 80px;
  padding-bottom: 120px;
}

/* リード文（青のアクセントライン） */
.p-sitemap__lede {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 15px;
  line-height: 1.95;
  color: #333;
  background: #f8fbff;
  border-left: 3px solid #044b98;
  padding: 24px 28px;
  border-radius: 0 4px 4px 0;
  margin: 0 0 48px;
}

/* AIOSEO 出力のラッパ */
.p-sitemap__body .aioseo-html-sitemap {
  display: flex;
  flex-direction: column;
  gap: 56px;
}

/* 各セクション（固定ページ／ツアー） */
.p-sitemap__body .aioseo-html-page-sitemap,
.p-sitemap__body .aioseo-html-tour-sitemap {
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: 6px;
  padding: 40px 48px;
  box-shadow: 0 4px 20px rgba(4, 75, 152, 0.04);
}

/* セクション見出し（h4） */
.p-sitemap__body .aioseo-html-sitemap h4 {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 22px;
  letter-spacing: .04em;
  color: #044b98;
  margin: 0 0 28px;
  padding: 0 0 16px 18px;
  border-bottom: 1px solid #e6e6e6;
  position: relative;
}

.p-sitemap__body .aioseo-html-sitemap h4::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 22px;
  width: 4px;
  background: #044b98;
  border-radius: 2px;
}

/* リスト全体（2カラムグリッド） */
.p-sitemap__body .aioseo-html-sitemap > div > ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 32px;
  row-gap: 4px;
}

/* 各項目 */
.p-sitemap__body .aioseo-html-sitemap > div > ul > li {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

/* リンク */
.p-sitemap__body .aioseo-html-sitemap a {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14.5px;
  line-height: 1.7;
  color: #333;
  padding: 10px 0 10px 18px;
  text-decoration: none;
  border-bottom: 1px dashed #eee;
  transition: color .15s, background .15s;
  position: relative;
}

.p-sitemap__body .aioseo-html-sitemap a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 6px;
  height: 6px;
  border-top: 2px solid #044b98;
  border-right: 2px solid #044b98;
  transition: transform .15s ease, border-color .15s;
}

.p-sitemap__body .aioseo-html-sitemap a:hover {
  color: #044b98;
  background: #f5faff;
}

.p-sitemap__body .aioseo-html-sitemap a:hover::before {
  transform: translateY(-50%) translateX(2px) rotate(45deg);
}

/* 入れ子のリスト（reservation 配下など） */
.p-sitemap__body .aioseo-html-sitemap ul ul {
  list-style: none;
  margin: 4px 0 12px;
  padding: 8px 0 8px 22px;
  border-left: 2px solid #f0f0f0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  grid-column: 1 / -1; /* 2カラムから外す */
}

.p-sitemap__body .aioseo-html-sitemap ul ul a {
  font-size: 13.5px;
  color: #555;
  padding: 6px 0 6px 16px;
  border-bottom: none;
}

.p-sitemap__body .aioseo-html-sitemap ul ul a::before {
  width: 5px;
  height: 5px;
  border-width: 1.5px;
  border-color: #9aa6b8;
}

.p-sitemap__body .aioseo-html-sitemap ul ul a:hover::before {
  border-color: #044b98;
}

/* AIOSEO が ul と ul の間に挿入する <br/> を非表示 */
.p-sitemap__body .aioseo-html-sitemap br {
  display: none;
}

/* ============== SP ============== */
@media (max-width: 768px) {
  .p-sitemap {
    padding-top: 50px;
    padding-bottom: 80px;
  }

  .p-sitemap__lede {
    font-size: 14px;
    padding: 18px 18px;
    margin-bottom: 32px;
  }

  .p-sitemap__body .aioseo-html-sitemap {
    gap: 36px;
  }

  .p-sitemap__body .aioseo-html-page-sitemap,
  .p-sitemap__body .aioseo-html-tour-sitemap {
    padding: 24px 20px;
  }

  .p-sitemap__body .aioseo-html-sitemap h4 {
    font-size: 18px;
    margin-bottom: 18px;
    padding: 0 0 12px 14px;
  }

  .p-sitemap__body .aioseo-html-sitemap h4::before {
    bottom: 18px;
  }

  .p-sitemap__body .aioseo-html-sitemap > div > ul {
    grid-template-columns: 1fr;
    column-gap: 0;
  }

  .p-sitemap__body .aioseo-html-sitemap a {
    font-size: 13.5px;
    padding: 10px 0 10px 16px;
    line-height: 1.6;
  }

  .p-sitemap__body .aioseo-html-sitemap ul ul {
    margin: 2px 0 8px;
    padding: 6px 0 6px 16px;
  }

  .p-sitemap__body .aioseo-html-sitemap ul ul a {
    font-size: 12.5px;
    padding: 5px 0 5px 14px;
  }
}

/* =========================================================
   ツアー詳細ページ - 宿泊数別ツアー比較テーブル (.p-tour-compare)
   single-tour.php「旅とも」直下／「スケジュール」アンカー直上
   ACFの _tour_schedules 各エントリを列として動的に展開
   ========================================================= */
.p-tour-compare {
  padding-top: 24px;
  padding-bottom: 24px;
}

.p-tour-compare__scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 6px rgba(4, 75, 152, .08);
}

.p-tour-compare__table {
  width: 100%;
  min-width: 720px;
  border-collapse: separate;
  border-spacing: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.7;
  color: #333;
  table-layout: fixed;
}

.p-tour-compare__table th,
.p-tour-compare__table td {
  padding: 18px 20px;
  vertical-align: middle;
  border-bottom: 1px solid #e6eef7;
  border-right: 1px solid #e6eef7;
  word-break: break-word;
}

.p-tour-compare__table tr:last-child th,
.p-tour-compare__table tr:last-child td {
  border-bottom: none;
}

.p-tour-compare__table th:last-child,
.p-tour-compare__table td:last-child {
  border-right: none;
}

/* ヘッダー行（宿泊数 + 各スケジュールタイトル）
   WCAG AA 確保のため #abc5e0 + #044b98（コントラスト比 ~6.0:1）を採用 */
.p-tour-compare__head-row .p-tour-compare__th {
  background: #abc5e0;
  color: #044b98;
  font-weight: 700;
  text-align: center;
  letter-spacing: .04em;
  white-space: nowrap;
}

.p-tour-compare__head-row .p-tour-compare__th.--label {
  background: #abc5e0;
  color: #044b98;
  width: 140px;
}

/* 左端ラベル列（ツアー代金 / 主な行き先 / 乗馬距離） */
.p-tour-compare__row-label {
  width: 140px;
  background: #f0f6fc;
  color: #044b98;
  font-weight: 700;
  text-align: center;
  letter-spacing: .04em;
  white-space: nowrap;
}

/* セル */
.p-tour-compare__td {
  background: #fff;
  text-align: left;
}

.p-tour-compare__td.--price {
  text-align: center;
  white-space: nowrap;
}

.p-tour-compare__price {
  color: #c62728;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .02em;
}

.p-tour-compare__price-unit {
  color: #c62728;
  font-size: 13px;
  font-weight: 700;
  margin-left: 2px;
}

/* 主な行き先 */
.p-tour-compare__destinations {
  list-style: disc;
  padding-left: 18px;
  margin: 0;
}

.p-tour-compare__destinations li {
  font-size: 14px;
  line-height: 1.8;
  color: #333;
}

/* 乗馬距離 */
.p-tour-compare__distance-row {
  margin: 0;
  text-align: center;
  white-space: nowrap;
}

.p-tour-compare__distance-num {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  letter-spacing: .02em;
}

.p-tour-compare__distance-unit {
  font-size: 13px;
  color: #333;
  margin-left: 2px;
}

.p-tour-compare__distance-note {
  margin: 2px 0 6px;
  font-size: 11px;
  color: #888;
  text-align: center;
  line-height: 1.4;
}

.p-tour-compare__empty {
  display: inline-block;
  color: #bbb;
  font-size: 14px;
}

/* ============== SP ============== */
@media (max-width: 768px) {
  .p-tour-compare {
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .p-tour-compare__table {
    font-size: 13px;
    min-width: 640px;
  }

  .p-tour-compare__table th,
  .p-tour-compare__table td {
    padding: 12px 12px;
  }

  .p-tour-compare__head-row .p-tour-compare__th.--label,
  .p-tour-compare__row-label {
    width: 96px;
    font-size: 12px;
  }

  .p-tour-compare__price {
    font-size: 17px;
  }

  .p-tour-compare__price-unit {
    font-size: 12px;
  }

  .p-tour-compare__destinations li {
    font-size: 12.5px;
  }

  .p-tour-compare__distance-num {
    font-size: 17px;
  }

  .p-tour-compare__distance-unit,
  .p-tour-compare__distance-note {
    font-size: 11px;
  }
}

/* ============================================================
 * p-tour-pickup : ツアー詳細ページ 送迎情報ブロック (2026-05-13)
 * 1日目(往路)は最初のアクティビティ説明欄内、最終日(復路)は最後のアクティビティ説明欄内に表示
 * ============================================================ */
.p-tour-pickup {
  margin: 0 0 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* p-course__text-box 内ネスト時、送迎情報の直後に活動説明テキストが続く場合は余白を持たせる */
.p-course__text-box > .p-tour-pickup + .p-course__text {
  margin-top: 14px;
}

.p-tour-pickup__lead {
  margin: 0 0 4px;
  font-size: 14px;
  line-height: 1.7;
  color: #333;
}

.p-tour-pickup__box {
  background: #eaf3fb;
  border: 1px solid #cfe1f0;
  border-radius: 8px;
  padding: 14px 18px;
}

.p-tour-pickup__title {
  font-size: 16px;
  font-weight: bold;
  color: #1d4f8b;
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.p-tour-pickup__icon {
  font-size: 16px;
  line-height: 1;
}

.p-tour-pickup__time {
  margin: 0 0 6px;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 14px;
  color: #1d4f8b;
  font-size: 14px;
}

.p-tour-pickup__time-label {
  font-weight: bold;
  margin: 0;
}

.p-tour-pickup__time-value {
  margin: 0;
  font-weight: bold;
  letter-spacing: 0.02em;
}

.p-tour-pickup__note {
  margin: 0;
  font-size: 13px;
  line-height: 1.7;
  color: #333;
}

.p-tour-pickup__option-text {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.7;
  color: #333;
}

.p-tour-pickup__option-label {
  display: inline-block;
  margin-right: 6px;
  font-weight: bold;
  color: #1d4f8b;
}

/* 市内お迎え先（固定）カード — edel v2.0.272/273 の設定が ON のとき往路のみ表示 (2026-07-19)
 * 件数が多いため <details> のアコーディオン(閉じた状態が既定)で表示する */

/* はみ出しの真因対策: .p-course__text-box は flex:1 の flexアイテムで min-width:auto のため、
 * 補足内の長いURL(改行不能)が min-content を押し上げ、行から最大186pxはみ出していた。
 * min-width:0 で縮小を許可し、長URLは overflow-wrap/word-break で折り返す。 */
.p-course__item > .p-course__text-box {
  min-width: 0;
}

.p-tour-pickup__fixed-note {
  overflow-wrap: anywhere;
}

.p-tour-pickup__fixed-note a {
  word-break: break-all;
}
.p-tour-pickup__fixed-acc {
  margin-top: 10px;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden; /* Safariのdetails内部レイアウトが親幅を超えるのを封じる */
}

.p-tour-pickup__fixed-summary {
  display: flex; /* floatを使わずに「▼ 開く」を右端へ(Safariのはみ出し対策) */
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  width: 100%;
  cursor: pointer;
  list-style: none;
  padding: 8px 12px;
  border: 1px solid #d9c48a;
  background: #fffaf0;
  border-radius: 6px;
  font-weight: bold;
  font-size: 13px;
  color: #8a6d1f;
  user-select: none;
  -webkit-user-select: none;
}

.p-tour-pickup__fixed-summary::-webkit-details-marker {
  display: none;
}

.p-tour-pickup__fixed-summary::marker {
  content: "";
}

.p-tour-pickup__fixed-summary::after {
  content: "▼ 開く";
  margin-left: 12px; /* flex gapは旧Safari非対応のためmarginで */
  white-space: nowrap;
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: normal;
}

.p-tour-pickup__fixed-acc[open] > .p-tour-pickup__fixed-summary {
  border-radius: 6px 6px 0 0;
}

.p-tour-pickup__fixed-acc[open] > .p-tour-pickup__fixed-summary::after {
  content: "▲ 閉じる";
}

/* 開いたときの一覧はリスト内スクロール(最大高さ)にして、枠から溢れないようにする */
.p-tour-pickup__fixed-body {
  max-height: 420px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-right: 4px;
}

.p-tour-pickup__fixed {
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid #d9c48a;
  background: #fffaf0;
  border-radius: 6px;
  box-sizing: border-box;
  max-width: 100%;
  overflow-wrap: break-word;
}

.p-tour-pickup__fixed-name {
  margin: 0 0 2px;
  font-weight: bold;
  font-size: 14px;
  color: #333;
}

.p-tour-pickup__fixed-address,
.p-tour-pickup__fixed-note {
  margin: 0 0 2px;
  font-size: 13px;
  line-height: 1.7;
  color: #333;
}

.p-tour-pickup__fixed-image {
  margin-top: 6px;
  display: block;
  border-radius: 4px;
}

@media (max-width: 768px) {
  .p-tour-pickup {
    margin-bottom: 18px;
  }

  .p-tour-pickup__box {
    padding: 12px 14px;
  }

  .p-tour-pickup__title {
    font-size: 14.5px;
  }

  .p-tour-pickup__lead,
  .p-tour-pickup__time {
    font-size: 13px;
  }

  .p-tour-pickup__note {
    font-size: 12.5px;
  }
}

