@charset "UTF-8";

/* ============================================ */
/* 汎用パーツ */
/* ============================================ */
:root {
  --main-color: #a7041a;
  --main-dark-color: #006934;
  --sub-color: #f0951b;
  --accent-color: #f2d42c;
  --base-color: #f2efeb;
  --font-size: 1.6rem;
  --line-height: 1.7;
  --font-mincho: 'Yu Mincho Light','YuMincho','Yu Mincho','游明朝体','ヒラギノ明朝 ProN','Hiragino Mincho ProN', 'Noto Serif JP', serif;
}
@media screen and (max-width: 800px) {
  :root {
    --font-size: 1.4rem;
  }
}



/* js アニメーション */
/* ============================================ */
.js-scroll_animation.fadeIn,
.js-scroll_animation.fadeIn_up,
.js-scroll_animation.fadeIn_down,
.js-scroll_animation.fadeIn_left,
.js-scroll_animation.fadeIn_right {
  opacity: 0;
  transition: 1s ease-out;
  transition-delay: .1s;
  transition-property: opacity, transform;
}
.js-scroll_animation.fadeIn {
  transition-delay: .3s;
}
.js-scroll_animation.fadeIn_up {
  transform: translateY(50px);
}
.js-scroll_animation.fadeIn_down {
  transform: translateY(-50px);
}
.js-scroll_animation.fadeIn_left {
  transform: translateX(-100px);
}
.js-scroll_animation.fadeIn_right {
  transform: translateX(100px);
}
.js-scroll_animation.fadeIn.is-show,
.js-scroll_animation.fadeIn_up.is-show,
.js-scroll_animation.fadeIn_down.is-show,
.js-scroll_animation.fadeIn_left.is-show,
.js-scroll_animation.fadeIn_right.is-show {
  transform: translate(0, 0);
  opacity: 1;
}
.js-scroll_animation.delay01 { transition-delay: .1s; }
.js-scroll_animation.delay02 { transition-delay: .3s; }
.js-scroll_animation.delay03 { transition-delay: .5s; }
.js-scroll_animation.delay04 { transition-delay: .7s; }
.js-scroll_animation.delay05 { transition-delay: .9s; }
.js-scroll_animation.delay06 { transition-delay: 1.1s; }
.js-scroll_animation.delay07 { transition-delay: 1.3s; }
.js-scroll_animation.delay08 { transition-delay: 1.5s; }
.js-scroll_animation.delay09 { transition-delay: 1.7s; }
.js-scroll_animation.delay10 { transition-delay: 1.9s; }


@media screen and (max-width: 1250px) { .pc_1250px { display: none!important; } }
@media screen and (min-width: 1251px) { .sp_1250px { display: none!important; } }

@media screen and (max-width: 970px) { .pc_970px { display: none!important; } }
@media screen and (min-width: 971px) { .sp_970px { display: none!important; } }


.font_round {
  font-family: 'M PLUS Rounded 1c', sans-serif;
}
.noto_sans {
  font-family: 'Noto Sans JP', sans-serif;
}
.noto_serif {
  font-family: 'Noto Serif JP', serif;
}
.oswald {
  font-family: 'Oswald', sans-serif;
}
.mincho {
  font-family: 'Yu Mincho Light','YuMincho','Yu Mincho','游明朝体','ヒラギノ明朝 ProN','Hiragino Mincho ProN', 'Noto Serif JP', serif;
}


.inner {
  max-width: 1130px;
  margin: 0 auto;
  padding: 0 15px;
}
@media screen and (max-width: 800px) {
}



iframe {
  max-width: 100%;
}



.copyright {
  text-align: center;
}



.posi_absolute {
  position: absolute;
}
.posi_relative {
  position: relative;
}


.maincolor {
  color: var(--main-color);
}
.main_darkcolor {
  color: var(--main-dark-color);
}
.subcolor {
  color: var(--sub-color);
}
.sub_darkcolor {
  color: var(--sub-dark-color);
}
.accentcolor {
  color: var(--accent-color);
}
.sub_accentcolor {
  color: var(--sub-accent-color);
}
.color_white {
  color: #fff;
}
.color_gray {
  color: var(--base-color);
}
.color_rightblue {
  color: var(--rightblue-color);
}



.bg_maincolor {
  background-color: var(--main-color);
}
.bg_main_darkcolor {
  background-color: var(--main-dark-color);
}
.bg_subcolor {
  background-color: var(--sub-color);
}
.bg_sub_darkcolor {
  background-color: var(--sub-dark-color);
}
.bg_accentcolor {
  background-color: var(--accent-color);
}
.bg_sub_accentcolor {
  background-color: var(--sub-accent-color);
}
.bg_cream_color {
  background-color: var(--cream-color);
}
.bg_white {
  background-color: #fff;
}
.bg_gray {
  background-color: var(--base-color);
}
.bg_right_gray {
  background-color: #a1a1a1;
}
.bg_light_gray {
  background-color: #ededee;
}
.bg_rightblue {
  background-color: var(--rightblue-color);
}


.round_10px {
  border-radius: 10px;
}
.round_5px {
  border-radius: 5px;
}
.round_4px {
  border-radius: 4px;
}
.round_2px {
  border-radius: 2px;
}
.round_100px {
  border-radius: 100px;
}
.round_100per {
  border-radius: 100%;
}
@media screen and (max-width: 800px) {
  .round_5px {
    border-radius: 3px;
  }
  .round_2px {
    border-radius: 1px;
  }
}



.bold {
  font-weight: 600;
}
.font_weight400 {
  font-weight: 400;
}



.border_subcolor {
  border-color: var(--sub-color);
}
.border_main_darkcolor {
  border-color: var(--main-dark-color) !important;
}
body .border_accentcolor {
  border-color: var(--accent-color);
}
.border_2px {
  border-width: 2px !important;
}
.border_3px {
  border-width: 3px !important;
}
.border_5px {
  border-width: 5px !important;
}
.border {
  border: 1px solid var(--base-color);
}
.border_top {
  border-top: 1px solid var(--base-color);
}
.border_dot {
  border-style: dotted;
}
.border_sub_accentcolor {
  border-color: var(--sub-accent-color) !important;
}
.border_maincolor {
  border-color: var(--main-color) !important;
}
.border_btm {
  border-right: none;
  border-left: none;
  border-top: none;
  border-bottom: 1px solid var(--base-color);
}
.border_btm.border_top {
  border-right: none;
  border-left: none;
  border-top: 1px solid var(--base-color);
  border-bottom: 1px solid var(--base-color);
}
.border_btm.border_5px.normal_ttl {
  width: 100%;
  position: relative;
  margin: 0 0 0.5em;
  border: none;
}
.border_btm.border_5px.normal_ttl::before,
.border_btm.border_5px.normal_ttl::after {
  position: absolute;
  content: "";
  height: 5px;
  left: 0;
  bottom: 0.4em;
}
.border_btm.border_5px.normal_ttl::before {
  width: 100px;
  background-color: var(--main-color);
  z-index: 1;
}
.border_btm.border_5px.normal_ttl::after {
  width: 100%;
  background-color: var(--sub-color);
}
.border_btm.border_2px.normal_ttl {
  padding-bottom: 0.3em;
}

@media screen and (max-width: 800px) {
  .border_btm.border_5px.normal_ttl::before {
    width: 2.8em;
  }
  .border_btm.border_2px.normal_ttl {
    padding-bottom: 0.5em;
  }
}

@media screen and (max-width: 480px) {
  .border_5px {
    border-width: 4px !important;
  }
  .round_10px {
    border-radius: 5px;
  }
  .border_2px {
    border-width: 1px !important;
  }
}



*::before,
*::after {
  pointer-events: none;
}



.btn {
  min-height: 3.13em;
  display: inline-grid;
  align-items: center;
  padding: 0.3em 1em;
  margin: auto;
  max-width: 100%;
  transition: .3s all ease-out;
  transition-property: filter, background, border, color;
}
.btn_wrap .btn {
  margin: 0.6em;
}
.btn:hover,
.hover_bright:hover {
  filter: brightness(110%);
}
.btn_wide {
  min-height: 3em;
  padding: 0.3em 2em;
}
.btn_round {
  border-radius: 100px;
}
.btn_icon {
  padding-left: 1.3em;
}
body .btn_icon_mail::before {
  background-image: url(../img/cmn/ico_mail_white.svg);
  width: 0.7em;
  left: 0.2em;
}
body .btn_icon_map::before {
  background-image: url(../img/cmn/ico_map_white.svg);
  width: 0.7em;
  left: 0.2em;
}


.bg_image,
.btn_icon,
.bg_color,
.icon_txt {
  position: relative;
}
.bg_image::before,
.bg_image::after,
.btn_icon::before,
.bg_color::before,
.icon_txt::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  top: 0;
  bottom: 0;
  margin: auto;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.icon_txt::before {
  width: 1em;
  background-position: 0 50%;
}
*::before,
*::after {
  pointer-events: none;
}
.bg_color::before {
  background-color: #fff;
  width: 1000px;
  max-width: 87%;
  margin: auto;
  left: 0;
  right: 0;
  z-index: -1;
}
.icon_txt {
  margin: 0 auto;
}
body .icon_txt {
  padding-left: 1.68em;
}
body .icon_txt.icon_txt_right {
  padding-left: 0;
  padding-right: 1.6em;
}
body .icon_txt.icon_txt_right::before {
  left: unset;
  right: 0.44em;
}

@media screen and (max-width: 800px) {
  body .icon_txt.icon_txt_house {
    padding-left: 1.4em;
  }
  body .icon_txt_house::before {
    width: 1em;
    left: 0;
  }
  body .icon_txt_tel::before {
    width: 0.77em;
    left: 0.6em;
    top: 1px;
  }
  body .icon_txt_mail::before {
    width: 0.9em;
    left: 0.35em;
  }
  body .icon_txt_window::before {
    width: 0.87em;
    left: 0.35em;
    margin-top: 0.03em;
  }
  body .icon_plants_green::before {
    width: 1em;
  }
}


.vertical {
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
}


.flex {
  display: flex;
}
.inline_flex {
  display: inline-flex;
}
.flex_between {
  justify-content: space-between;
}
.grid {
  display: grid;
}

@media screen and (max-width: 800px) {
  .sp_column {
    flex-direction: column;
  }
  .sp_flex {
    display: flex;
  }
}


.marker {
  display: inline;
  background: linear-gradient(transparent 0%, #fff 0%);
  padding: 0.24em 0.5em;
  margin: 0 auto 0.28em 0;
  line-height: 1.5;
  letter-spacing: 0.16em;
}
.marker.marker_yellow {
  padding: 0.13em 0.3em;
  background: linear-gradient(transparent 0%, var(--accent-color) 0%);
  letter-spacing: 0.1em;
}
.marker_image {
  position: relative;
  line-height: 1.84;
  padding: 0 0 0.18em;
}
.marker_image::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 5px;
  bottom: 0;
  left: 0;
  background-repeat: repeat-x;
  background-image: url(../img/page/img_marker_line.png);
}
@media screen and (max-width: 800px) {
  .marker {
    padding: 0.04em 0.3em;
    margin: 0 auto 0.3em 0;
    line-height: 1.5;
    letter-spacing: 0.22em;
  }
}



.txt_shadow {
  text-shadow: 0 0 6px rgb(85 85 85 / 80%);
}
.txt_underline {
  text-decoration: underline;
}
small {
  font-size: 85%;
}
strong {
  font-size: 120%;
  line-height: 1.6;
}
.box_shadow {
  box-shadow: 0 0 10px rgb(210 210 210 / 80%);
}
.line_height_narrow {
  line-height: 1.4;
}
.ttl strong.subcolor {
  font-size: 3.4rem;
}

@media screen and (max-width: 800px) {
  .font_2x {
    line-height: 0.75;
  }
  .txt_shadow {
    text-shadow: 0 0 6px rgb(35 35 35 / 80%);
  }
}



.ttl {
  font-size: 2.5rem;
  padding: 0 0 0.5em;
  letter-spacing: 0.12em;
}
.ttl small {
  font-size: 70%;
}
.normal_ttl {
  font-size: 2.4rem;
}
.small_ttl {
  font-size: 2.1rem;
}
body .big_ttl {
  font-size: 3.5rem;
  letter-spacing: 0.108em;
}
.bg_color_ttl {
  position: relative;
  display: inline-block;
  border-radius: 100px;
  padding: 0.49em 2em;
  font-size: 2.5rem;
  transform: translateX(-2em);
  letter-spacing: 0.23em;
  margin: 0 auto 0.8em 0;
}
.bg_color_ttl::before {
  position: absolute;
  content: "";
  width: 100vw;
  height: 100%;
  top: 0;
  left: 0;
  transform: translateX(-96%);
  z-index: -1;
}
.bg_color_ttl.bg_subcolor::before {
  background-color: var(--sub-color);
}
.bg_color_ttl.bg_maincolor::before {
  background-color: var(--main-color);
}
.bg_ttl {
  font-size: 1.8rem;
  margin: 0 auto;
  display: inline-block;
  padding: 0 1em;
}

@media screen and (max-width: 800px) {
  .ttl {
    font-size: 2.6rem;
    padding: 0 0 0.2em;
    font-weight: 500;
    letter-spacing: 0em;
  }
  body .normal_ttl {
    font-size: 1.8rem;
    font-weight: 600;
  }
  body .small_ttl {
    font-size: 2rem;
    font-weight: 600;
  }
  body .big_ttl {
    font-size: 2.5rem;
  }
  .ttl strong.subcolor {
    font-size: 2.8rem;
  }
  .bg_color_ttl {
    transform: translateX(-19px);
    letter-spacing: 0.055em;
    padding: 0.2em 1.2em;
  }
}

@media screen and (max-width: 480px) {
  .ttl {
    font-size: 5.4vw;
  }
  .ttl strong.subcolor {
    font-size: 6vw;
  }
  body .big_ttl {
    font-size: 5vw;
  }
  body .normal_ttl {
    font-size: 3.9vw;
    letter-spacing: 0.07em;
  }
  body .small_ttl {
    font-size: 4vw;
  }
  .bg_color_ttl {
    font-size: 4.3vw;
  }
}



.float_right {
  float: right;
}
.float_left {
  float: left;
}



.padding_around {
  padding: 0.3em 1em
}
.padding_around_wide {
  padding: 1.35em 1.7em;
}
.padding_btm {
  display: block;
  padding-bottom: 1em;
}
.margin_btm {
  margin-bottom: 1em;
}
.margin_btm_wide {
  margin-bottom: 2em;
}
.padding_btm_wide {
  display: block;
  padding-bottom: 3.2em;
}
.padding_top_wide {
  padding-top: 3.2em;
}
.padding_btm_narrow {
  padding-bottom: 0.3em;
}
.padding_top_wide {
  padding-top: 2em;
}

@media screen and (max-width: 800px) {
  .padding_btm_wide {
    padding-bottom: 5.2em;
  }
  .padding_around_wide {
    padding: 1.3em 1.3em;
  }
}



.width_48per {
  width: 48%;
}

@media screen and (min-width: 801px) {
  .width_50per {
    width: 50%;
  }
  .width_30per {
    width: 30%;
  }
  .width_60per {
    width: 60%;
  }
  .width_63per {
    width: 63%;
  }
  .width_85per {
    width: 85%;
  }
  .width_42per {
    width: 42.5%;
  }
  .width_50per:last-child {
    margin-left: 4%;
  }
}



.flex picture:not(:last-of-type) {
  margin-right: 1%;
}



.box:not(:last-of-type) {
  padding-bottom: 2.2em;
}



.taL {
  text-align: left;
}
.taR {
  text-align: right;
}
.taC {
  text-align: center;
}



.bg_padding {
  padding: 0.85em 1.6em;
}
@media screen and (max-width: 800px) {
  .bg_padding {
    padding: 0.55em 1em;
  }
}



dl {
  padding: 0.17em 0;
  letter-spacing: 0em;
}
dt {
  width: 8.5em;
}
dd {
  width: calc(100% - 8.5em);
}

@media screen and (max-width: 800px) {
  dt {
    width: 11.5em;
  }
  dd {
    width: calc(100% - 11.5em);
  }
  dl {
    padding: 0.3em 0;
  }
}