@charset "utf-8";
/*+++++++++++++++++++++++++++++++++++++++++
  　root
*+++++++++++++++++++++++++++++++++++++++++*/
:root {
  --gray02: #333333;
  --gray03: #4c4c4c;
  --gray04: #666666;
  --gray04_5: #7f7f7f;
  --gray05: #999999;
  --gray06: #b2b2b2;
  --gray07: #cccccc;
  --gray07_5: #d9d9d9;
  --gray09: #f2f2f2;
  --gray09: #f2f2f2;
  --gray10: #f7f7f7;
  --gray11: #fafafa;

  --gold: #bf9224;
  --gold01: #90783c;
  --gold03: #a69363;
  --gold04: #b1a076;
  --gold05: #bcae8a;
  --gold06: #c7bb9d;
  --gold09: #e9e4d8;
  --gold10: #f4f2ec;
  --gold10_5: #f9f8f5;
  --gold11: #e9e4d8;

  --desert09: #e5e2dc;
  --desert10: #f2f1ee;
  --desert10_5: #f8f8f6;

  --red01: #eb5757;
  --red10: #feefef;

  --white: #ffffff;
  --black: #000000;

  --f_weight-400: 400;
  --f_weight-500: 500;
  --f_weight-700: 700;

  --basis-width: 1080;
}

/*+++++++++++++++++++++++++++++++++++++++++
  　base
*+++++++++++++++++++++++++++++++++++++++++*/
* {
  box-sizing: border-box;
  min-height: 0;
  min-width: 0;
}

html {
  scroll-behavior: smooth;
  overscroll-behavior: none;
}

body {
  color: var(--text-main-color);
  font-size: min(1.39vw, 15px);
  line-height: 1.5;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: var(--f_weight-400);
  color: var(--gray03);
  overscroll-behavior: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  flex-shrink: 0;
}
.sp__view {
  display: none;
}

@media (max-width: 767px) {
  /* SP */
  body {
    font-size: 13px;
  }
  .sp__view {
    display: block;
  }
  .pc__view {
    display: none;
  }
}

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

/*+++++++++++++++++++++++++++++++++++++++++
  　component
*+++++++++++++++++++++++++++++++++++++++++*/
/* font
=================================*/
.fn-n_sans {
  font-family: "Noto Sans JP", sans-serif;
}
.fn-cg {
  font-family: "Cormorant Garamond", serif;
}
.fn-n_serif {
  font-family: "Noto Serif JP", serif;
}
.fn-lcd {
  font-family: "Libre Caslon Display", serif;
}

.fw-n {
  font-weight: var(--f_weight-400);
}
.fw-sb {
  font-weight: var(--f_weight-500);
}
.fw-b {
  font-weight: var(--f_weight-700);
}

/* color
=================================*/

/* style
=================================*/
.lineH-1 {
  line-height: 1;
}
.lineH-18 {
  line-height: 1.8;
}

.letterS-4 {
  letter-spacing: 0.04em;
}

.tx-center {
  text-align: center;
}
.tx-right {
  text-align: right;
}
.tx-left {
  text-align: left;
}

@media (max-width: 767px) {
  .lineH-18 {
    line-height: 1.6;
  }
}

/* 背景
=================================*/
.bg {
  padding: min(7.41vw, 80px) 0;
}
.bg--be {
  background: var(--desert10);
}

@media (max-width: 767px) {
  .bg {
    padding: 55px 0;
  }
}

/* コンテナ
=================================*/
:where(section:nth-of-type(2)) {
  margin-top: min(5.93vw, 64px);
}
:where(section.section_min:nth-of-type(2)) {
  margin-top: min(5.09vw, 55px);
}
:where(section:nth-of-type(n + 3)) {
  margin-top: min(7.41vw, 80px);
}
:where(section.section_min:nth-of-type(n + 3)) {
  margin-top: min(6.76vw, 73px);
}
.inner {
  width: 100%;
  max-width: min(91.25vw, 1168px);
  margin: 0 auto;
}

@media (max-width: 767px) {
  :where(section:nth-of-type(2)) {
    margin-top: 40px;
  }
  :where(section.section_min:nth-of-type(2)) {
    margin-top: 35px;
  }
  :where(section:nth-of-type(n + 3)) {
    margin-top: 56px;
  }
  :where(section.section_min:nth-of-type(n + 3)) {
    margin-top: 67px;
  }
}

/* flex / Grid
=================================*/
/* grid */
.grid {
  display: grid;
  column-gap: min(5.19vw, 56px);
  row-gap: min(6.85vw, 74px);
}

.grid--2 {
  grid-template-columns: 1fr 1fr;
}
.grid--2.grid--2_top1 > :is(li, div):first-child {
  width: 100%;
  grid-row: 1 / 2;
  grid-column: 1 / 3;
}

.grid--3 {
  grid-template-columns: 1fr 1fr 1fr;
}

.gird__cnt dt {
  margin-top: min(1.2vw, 13px);
  font-weight: var(--f_weight-700);
  font-size: min(1.67vw, 18px);
}
.gird__cnt dd {
  margin-top: min(0.37vw, 4px);
}
.gird__cnt dd .btn {
  margin-top: min(3.15vw, 34px);
}
@media (max-width: 767px) {
  .grid--2,
  .grid--3 {
    grid-template-columns: 1fr;
    gap: 51px;
  }
  .grid--2.grid--2_top1 > :is(li, div):first-child {
    grid-column: 1 / 1;
  }
  .grid--2.grid--2_top1 > :is(li, div):first-child .slick-list {
    width: 100vw;
    margin-left: calc((min(91.25vw, 1168px) - 100vw) / 2);
  }
  .grid--2.grid--2_top1 > :is(li, div):first-child img {
    max-width: 100vw;
    margin-left: calc((min(91.25vw, 1168px) - 100vw) / 2);
    width: 100vw;
  }
  .grid--2.grid--2_top1 > :is(li, div):first-child .slick-list img {
    margin: 0;
    width: 100%;
    max-width: 100%;
    object-fit: cover;
  }

  .gird__cnt dt {
    margin-top: 18px;
    font-size: 15px;
  }
  .gird__cnt dd {
    margin-top: 6px;
  }
  .gird__cnt dd .btn {
    margin-top: 24px;
  }
}

/* ボタン
=================================*/
.btn {
  padding: 0 min(2.5vw, 27px);
  display: flex;
  align-items: center;
  width: 100%;
  max-width: min(25.93vw, 280px);
  height: min(8.15vw, 88px);
  border: 1px solid var(--gray04);
  cursor: pointer;
}

.btn--outline {
  border-color: var(--gold04);
  background: var(--white);
  color: var(--gold01);
  font-weight: var(--f_weight-500);
  position: relative;
  transition: ease 0.2s;
}
.btn--outline__transparent {
  background: transparent;
}
.btn--outline::after {
  content: url(../images/icon/arrows_gold.svg);
  width: min(2.22vw, 24px);
  height: min(2.22vw, 24px);
  position: absolute;
  top: calc(50% - 12px);
  right: min(2.5vw, 27px);
  z-index: 3;
}
.btn--outline:hover,
.btn--outline__transparent:hover {
  background: var(--gold04);
  color: var(--white);
}
.btn--outline:hover::after {
  content: url(../images/icon/arrows_white.svg);
}

.btn--pdf::after {
  content: url(../images/icon/pdf_gold.svg);
}
.btn--pdf:hover::after {
  content: url(../images/icon/pdf_white.svg);
}

.btn--default {
  padding-right: min(5.56vw, 60px);
  background: var(--gold01);
  border-color: var(--gold01);
  position: relative;
  color: var(--white);
  transition: ease 0.2s;
}
.btn--default::after {
  content: url(../images/icon/arrows_white.svg);
  width: min(2.22vw, 24px);
  height: min(2.22vw, 24px);
  position: absolute;
  top: calc(50% - 12px);
  right: min(2.5vw, 27px);
  z-index: 3;
}
.btn--default:hover {
  background: var(--gold);
  border-color: var(--gold);
}

.btn--otherlink::after {
  content: url(../images/icon/otherlink_gold.svg);
}
.btn--otherlink--w::after {
  content: url(../images/icon/otherlink_white.svg);
}
.btn--otherlink:hover::after {
  content: url(../images/icon/otherlink_white.svg);
}

@media (max-width: 767px) {
  .btn {
    padding: 22px;
    max-width: 219px;
    height: 72px;
  }

  .btn--default {
    padding-right: 60px;
  }
  .btn--default::after,
  .btn--outline::after {
    top: calc(50% - 12px);
    right: 22px;
    width: 24px;
    height: 24px;
  }
}

/* 見出し
=================================*/
.title01 {
  font-size: min(5.74vw, 62px);
  letter-spacing: 0.04em;
}
.title02 {
  font-size: min(2.5vw, 27px);
  letter-spacing: 0.04em;
}
.title03 {
  font-size: min(2.04vw, 22px);
  letter-spacing: 0.04em;
}
.title04 {
  font-size: min(1.67vw, 18px);
  letter-spacing: 0.04em;
}
.title05 {
  font-size: min(1.39vw, 15px);
  letter-spacing: 0.04em;
}
@media (max-width: 767px) {
  .title01 {
    font-size: 24px;
  }
  .title02 {
    font-size: 21px;
  }
  .title03 {
    font-size: 18px;
  }
  .title04 {
    font-size: 14px;
  }
  .title05 {
    font-size: 13px;
  }
}

/* パンくず
=================================*/
.breadcrumbs {
  margin-top: min(14.44vw, 156px);
  padding: min(1.94vw, 21px) 0;
  padding-left: calc(50vw - (min(91.25vw, 1168px)) / 2);
  background: var(--gray10);
  border-top: 1px solid var(--gray07_5);
}
.breadcrumbs__scroll {
  overflow-x: scroll;
}
.breadcrumbs ol {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  white-space: nowrap;
}
.breadcrumbs ol li {
  font-size: min(1.11vw, 12px);
  color: var(--gray05);
  position: relative;
  height: 24px;
  vertical-align: middle;
  flex-shrink: 0;
}
.breadcrumbs ol :is(li, a) {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.breadcrumbs ol li:first-of-type {
  width: 16px;
}
.breadcrumbs ol li:nth-of-type(n + 2) {
  padding-left: 32px;
}
.breadcrumbs ol li:nth-of-type(n + 2):after {
  content: "";
  background: url(../images/icon/arrows_gray.svg) no-repeat;
  display: block;
  width: 16px;
  height: 16px;
  position: absolute;
  left: 0;
}
.breadcrumbs ol li:last-of-type {
  padding-right: 20px;
  color: var(--gold01);
}
.breadcrumbs ol li span {
  display: flex;
  flex-direction: row;
  align-items: center;
}
.breadcrumbs ol li a {
  width: 100%;
  height: 100%;
}
.breadcrumbs ol a:hover {
  opacity: 0.6;
}
.breadcrumbs__home {
  width: 24px;
}
@media (max-width: 767px) {
  .breadcrumbs {
    margin-top: 118px;
    padding-top: 23px;
    padding-bottom: 23px;
  }
  .breadcrumbs__home {
    width: 16px;
  }
  .breadcrumbs ol {
    gap: 6px;
  }
  .breadcrumbs ol li {
    height: 16px;
    font-size: 11px;
  }
  .breadcrumbs ol li:nth-of-type(n + 2) {
    padding-left: 22px;
  }
}

.guide ~ .breadcrumbs {
  margin-top: 0;
}

/* テキスト デザイン
=================================*/
.note {
  margin-top: -3px;
  padding-left: 1rem;
  font-size: 13px;
  position: relative;
}
.note::before {
  content: "※";
  position: absolute;
  top: 0;
  left: 0;
}
@media (max-width: 767px) {
  .note {
    font-size: 12px;
    line-height: 1.4;
  }
}

/*+++++++++++++++++++++++++++++++++++++++++
  　下層ページ共通
*+++++++++++++++++++++++++++++++++++++++++*/
/* KV
=================================*/
.page__head {
  padding-top: min(7.41vw, 80px);
  height: min(29.66vw, 320px);
  background-color: var(--desert10_5);
  border-bottom: 1px solid var(--gray07_5);
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
.page__head--box {
  margin-top: min(-0.93vw, -10px);
  text-align: center;
}
.page__head-subtitle {
  font-size: min(5.75vw, 62px);
  letter-spacing: 0.04em;
}
.page__head-title {
  margin-top: min(1.3vw, 14px);
  font-size: min(1.85vw, 20px);
  letter-spacing: 0.06em;
}

/* 写真
--------------------------------- */
.page__head-photo {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  border-bottom: 0;
}
.page__head-photo .page__head--box {
  color: var(--white);
}

@media (max-width: 767px) {
  .page__head {
    padding-top: 60px;
    height: 282px;
  }
  .page__head--box {
    margin-top: 8px;
  }
  .page__head-subtitle {
    font-size: 38px;
  }
  .page__head-title {
    margin-top: 9px;
    font-size: 16px;
  }
}

/* テキスト（左寄せ）
--------------------------------- */
.page__head-text {
  padding-top: 80px;
  background-color: var(--desert10_5);
  border-bottom: 1px solid var(--gray07_5);
}
.page__head-text--box {
  display: flex;
  align-items: center;
  height: min(18.43vw, 199px);
}
.page__head-text-title {
  font-size: min(2.78vw, 30px);
  color: var(--gray03);
  font-weight: var(--f_weight-700);
  letter-spacing: 0.04em;
}
@media (max-width: 767px) {
  .page__head-text {
    padding-top: 60px;
  }
  .page__head-text--box {
    height: 136px;
    align-items: flex-end;
    padding-bottom: 35px;
  }
  .page__head-text-title {
    font-size: 24px;
  }
}

/* intro
=================================*/
.page__intro {
  line-height: 1.8;
}
@media (max-width: 767px) {
  .page__intro {
    line-height: 1.6;
  }
}

/* slick
=================================*/
.slider .slick-dots {
  position: absolute;
  right: 0;
  bottom: -7px;
  top: auto;
  height: 1px;

  display: flex;
  flex-direction: row;
  gap: 2px;
}
.slider .slick-dots button {
  padding: 0;
  color: transparent;
  outline: none;
  width: min(1.85vw, 20px);
  border: unset;
  height: 1px;
  display: block;
  background: var(--gray03);
  opacity: 0.3;
  cursor: pointer;
}
.slider .slick-dots .slick-active button {
  opacity: 1;
}
.slider .slide_target {
  pointer-events: none;
}
@media (max-width: 767px) {
  .slider .slick-dots button {
    width: 20px;
  }
}

/* お知らせ形の一覧
=================================*/
.newsList li {
  border-top: 1px solid var(--gray07_5);
}
.newsList li:last-of-type {
  border-bottom: 1px solid var(--gray07_5);
}
.newsList li a {
  padding: min(2.41vw, 26px) min(4.44vw, 48px) min(2.41vw, 26px) 0;
  display: flex;
  flex-direction: row;
  gap: min(2.22vw, 24px);
  position: relative;
}
.newsList li a::after {
  content: url(../images/icon/arrows_black.svg);
  position: absolute;
  top: calc(50% - min(1.11vw, 12px));
  right: 0;
  width: min(2.22vw, 24px);
  height: min(2.22vw, 24px);
}
.newsList li a:hover {
  opacity: 0.6;
}
.newsList__date {
  width: min(11.11vw, 120px);
}
@media (max-width: 767px) {
  .newsList__date {
    width: 100%;
  }
  .newsList li a::after {
    top: calc(50% - 12px);
    width: 24px;
    height: 24px;
  }
}

/* 2カラムの表
=================================*/
.twoList {
  row-gap: 0;
}
.twoList :is(li:first-of-type, li:nth-of-type(2)) {
  border-top: 1px solid var(--gray07_5);
}
.twoList li {
  padding: min(1.76vw, 19px) 0;
  border-bottom: 1px solid var(--gray07_5);
}
.twoList li > dl {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  font-weight: var(--f_weight-700);
}
.twoList li dt span {
  margin-left: min(0.74vw, 8px);
  font-weight: var(--f_weight-400);
  font-size: min(1.2vw, 13px);
  letter-spacing: 0.04em;
}
@media (max-width: 767px) {
  .twoList li {
    padding: 19px 0;
  }
  .twoList li:nth-of-type(2) {
    border-top: none;
  }
  .twoList li > dl {
    width: 100%;
  }
  .twoList li dt span {
    display: block;
    font-size: 12px;
    margin-left: 0;
  }
}

/* アンカーリンク
=================================*/
.anchorlink {
  row-gap: min(2.13vw, 23px);
}
.anchorlink a {
  padding-bottom: min(1.67vw, 18px);
  padding-right: min(2.96vw, 32px);
  display: block;
  width: 100%;
  border-bottom: 1px solid var(--gold09);
  font-weight: var(--f_weight-500);
  position: relative;
}
.anchorlink a::after {
  content: url(../images/icon/arrows_bottom_gold.svg);
  width: min(2.22vw, 24px);
  height: min(2.22vw, 24px);
  position: absolute;
  top: calc(50% - min(1.85vw, 20px));
  right: 0;
}
.anchorlink a:hover {
  opacity: 0.6;
}
@media (max-width: 767px) {
  .anchorlink {
    row-gap: 17px;
  }
  .anchorlink a {
    padding-bottom: 18px;
    padding-right: 40px;
    font-size: 14px;
    letter-spacing: 0.04em;
  }
  .anchorlink a::after {
    width: 24px;
    height: 24px;
    top: calc(50% - 20px);
    right: 8px;
  }
}

/* タブ切り替え
=================================*/
.tab-panel {
  display: none;
  transition: 0.3s;
}
.tab-panel.is-show {
  display: block;
}
.tab {
  cursor: pointer;
}
.tab.is-active {
  cursor: auto;
}

/* セレクトボックスデザイン
=================================*/
.select__style {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: min(25.93vw, 280px);
  height: min(5.93vw, 64px);
  border: 1px solid var(--gray07_5);
  position: relative;
  transition: ease 0.2s;
  cursor: pointer;
}
.select__style::after {
  content: url(../images/icon/arrows_bottom_gray.svg);
  width: 24px;
  height: 24px;
  position: absolute;
  top: calc(50% - 12px);
  right: 26px;
  z-index: -1;
  display: block;
  transition: 0.3s;
}
.select__style:hover {
  border: var(--gold) solid 1.5px;
}
.select__style select {
  width: 100%;
  height: 100%;
  padding: 0 min(2.5vw, 27px);
  cursor: pointer;
}
@media (max-width: 767px) {
  .select__style {
    max-width: 164px;
    height: 56px;
  }
  .select__style select {
    padding: 0 25px;
  }
  .select__style::after {
    right: 15px;
  }
}

/* ページネーション
=================================*/
.pagenation {
  margin-top: min(calc(100vw/var(--basis-width) * 125),125px);
  display: flex;
  justify-content: center;
  gap: min(calc(100vw/var(--basis-width) *24),24px);
}
.pagenation li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(calc(100vw/var(--basis-width) *64),64px);
  height: min(calc(100vw/var(--basis-width) *64),64px);
  position: relative;
}
.pagenation li a {
  display: block;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pagenation li span {
  font-weight: var(--f_weight-500);
  position: relative;
}
.pagenation__prev,
.pagenation__next{
  border: var(--gray07_5) solid 1px;
  outline: transparent solid 1px;
  display: block;
  cursor: pointer;
}
:is(.pagenation__prev, .pagenation__next )::after {
  position: absolute;
  right: calc(50% - 12px);
  top: calc(50% - 12px);
}
.pagenation__prev::after {
  content: url(../images/icon/pagenation_arrow_l.svg);
}
.pagenation__next::after {
  content: url(../images/icon/pagenation_arrow_r.svg);
}
:is(.pagenation__prev, .pagenation__next ):hover {
  border-color: var(--gold);
  outline-color: var(--gold);
}

.pagenation .pagenation__now {
  color: var(--gold01);
}
.pagenation .pagenation__now::after {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 2px;
  background: var(--gold);
  bottom: 0;
  z-index: 15;
}
.pagenation .pagenation__nam {
  position: relative;
}
.pagenation .pagenation__nam:not(.pagenation__now):hover {
  opacity: 0.6;
}

@media (max-width: 767px) {
  .pagenation {
    margin-top: 64px;
    gap: 8px;
  }
  .pagenation li {
    width: 28px;
    height: 48px;
  }
  .pagenation li:is(.pagenation__prev, .pagenation__next) {
    width: 48px;
  }
}

/* アコーディオン
=================================*/
.common__accordion .accordion__title {
  cursor: pointer;
  position: relative;
  transition: 0.3s;
}
.common__accordion .accordion__title:hover {
  opacity: 0.6;
}
.common__accordion .accordion__title::before,
.common__accordion .accordion__title::after {
  content: "";
  background-image: url(../images/header/header_minus.svg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  display: inline-block;
  position: absolute;
  width: min(2.22vw, 24px);
  height: min(2.22vw, 24px);
  transition: all 0.3s;
  right: 0;
  top: 0;
}
.common__accordion .accordion__title::after {
  transform: rotate(90deg);
}
.common__accordion .accordion__title.show::after {
  transform: rotate(0);
}

/* 電話番号発信なし
=================================*/
.notel {
  pointer-events: none;
  text-decoration: none;
  border-bottom: none;
}
