@charset "utf-8";

/* ----- mv ----- */

main.index section.mv {
  position: relative;
}

main.index section.mv div.bg_mv_wrap {
  width: 100%;
  height: calc(100vh - min(8rem, 80px) - min(5.0rem, 50px));
}

main.index section.mv div.bg_mv_wrap div.slick-list, 
main.index section.mv div.bg_mv_wrap div.slick-track {
  height: 100%;
}

main.index section.mv div.bg_mv_wrap div.bg_mv_item {
  width: 100%;
  height: 100%;
}

main.index section.mv div.bg_mv_wrap div.bg_mv_item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

main.index section.mv div.mv_contents {
  position: absolute;
  max-width: 1300px;
  height: fit-content;
  padding: 0 20px;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: translateY(10%);
}

main.index section.mv div.mv_contents h2.mv_ttl {
  font-size: min(5.6rem, 56px);
  font-weight: 500;
  font-family: var(--font-serif);
  -webkit-text-stroke: min(0.4rem, 4px) #fff;
  text-stroke: min(0.4rem, 4px) #fff;
  paint-order: stroke;
}

main.index section.mv div.mv_contents h2.mv_ttl small {
  font-size: min(4.0rem, 40px);
}

main.index section.mv div.mv_contents p.mv_desc {
  margin-top: min(3.0rem, 30px);
  font-size: min(2.4rem, 24px);
  -webkit-text-stroke: min(0.2rem, 2px) #fff;
  text-stroke: min(0.2rem, 2px) #fff;
  paint-order: stroke;
  line-height: 2.0;
}

main.index section.mv div.mv_contents div.mv_icon {
  margin-top: min(4.0rem, 40px);
  width: fit-content;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(1.6rem, 16px);
}

main.index section.mv div.mv_contents div.mv_icon div.mv_icon_item {
  width: min(18rem, 180px);
  height: min(18rem, 180px);
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-main), var(--color-light_brown));
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: min(0.4rem, 4px);
  position: relative;
}

main.index section.mv div.mv_contents div.mv_icon div.mv_icon_item::before {
  content: '';
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: min(17rem, 170px);
  height: min(17rem, 170px);
  border-radius: 50%;
  border: min(0.1rem, 1px) solid #fff;
}

main.index section.mv div.mv_contents div.mv_icon div.mv_icon_item div.icon_area {
  width: min(5rem, 50px);
}

main.index section.mv div.mv_contents div.mv_icon div.mv_icon_item p.mv_icon_txt {
  font-size: min(2.0rem, 20px);
  font-weight: 600;
  text-align: center;
  line-height: 1.4;
  font-family: var(--font-serif);
  letter-spacing: -.04em;
}

@media (max-width: 799px) {
  main.index section.mv div.bg_mv_wrap {
    width: 100%;
    height: auto;
  }
  
  main.index section.mv div.bg_mv_wrap div.bg_mv_item {
    width: 100%;
    height: auto;
  }
  
  main.index section.mv div.bg_mv_wrap div.bg_mv_item img {
    width: 100%;
    height: auto;
  }
  
  main.index section.mv div.mv_contents {
    position: absolute;
    width: 100%;
    height: fit-content;
    padding: 0 2rem;
    transform: translateY(12%);
  }
  
  main.index section.mv div.mv_contents h2.mv_ttl {
    font-size: 4rem;
    -webkit-text-stroke: .4rem #fff;
    text-stroke: .4rem #fff;
    line-height: 1.6;
  }
  
  main.index section.mv div.mv_contents h2.mv_ttl small {
    font-size: 2.8rem;
  }
  
  main.index section.mv div.mv_contents p.mv_desc {
    margin-top: 1.5rem;
    font-size: 1.4rem;
    -webkit-text-stroke: .2rem #fff;
    text-stroke: .2rem #fff;
    line-height: 1.8;
  }
  
  main.index section.mv div.mv_contents div.mv_icon {
    margin-top: 2rem;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
  }
  
  main.index section.mv div.mv_contents div.mv_icon div.mv_icon_item {
    width: 100%;
    height: 11rem;
    gap: 0.4rem;
  }
  
  main.index section.mv div.mv_contents div.mv_icon div.mv_icon_item::before {
    width: 10rem;
    height: 10rem;
    border: .1rem solid #fff;
  }
  
  main.index section.mv div.mv_contents div.mv_icon div.mv_icon_item div.icon_area {
    width: 2.7rem;
  }
  
  main.index section.mv div.mv_contents div.mv_icon div.mv_icon_item p.mv_icon_txt {
    font-size: 1.4rem;
    line-height: 1.2;
    letter-spacing: -.08em;
  }
}

/* ----- about ----- */

main.index section.about h2.about_ttl {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: min(2.0rem, 20px);
  font-family: var(--font-serif);
  font-weight: 400;
}

main.index section.about h2.about_ttl span.sub_ttl {
  text-align: center;
  font-size: min(2.4rem, 24px);
}

main.index section.about h2.about_ttl span.main_ttl {
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(2.5rem, 25px);
}

main.index section.about h2.about_ttl span.main_ttl span.main_ttl_item {
  width: fit-content;
  font-size: min(3.2rem, 32px);
  font-weight: 600;
  color: #AA8D4D;
  padding-bottom: min(1.5rem, 15px);
  border-bottom: min(0.1rem, 1px) solid #AA8D4D;
}

main.index section.about div.about_wrap {
  margin-top: min(6.0rem, 60px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(3.0rem, 30px);
}

main.index section.about div.about_wrap div.about_item h3.about_ttl {
  display: flex;
  align-items: center;
  gap: min(1rem, 10px);
  font-size: min(2.4rem, 24px);
  font-weight: 600;
  font-family: var(--font-serif);
  letter-spacing: -.04em;
}

main.index section.about div.about_wrap div.about_item h3.about_ttl span.num {
  width: min(6.0rem, 60px);
  height: min(6.0rem, 60px);
  background: linear-gradient(135deg, var(--color-main), var(--color-light_brown));
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  letter-spacing: .1em;
}

main.index section.about div.about_wrap div.about_item h3.about_ttl span.num::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: min(5rem, 50px);
  height: min(5rem, 50px);
  border: min(0.1rem, 1px) solid #fff;
  pointer-events: none;
}

main.index section.about div.about_wrap div.about_item div.img_area {
  margin-top: min(2.0rem, 20px);
}

main.index section.about div.about_wrap div.about_item p.about_txt {
  margin-top: min(2.4rem, 24px);
  font-size: min(1.6rem, 16px);
  line-height: 2;
}

@media (max-width: 799px) {
  main.index section.about h2.about_ttl {
    gap: 1.5rem;
  }
  
  main.index section.about h2.about_ttl span.sub_ttl {
    font-size: 1.6rem;
  }
  
  main.index section.about h2.about_ttl span.main_ttl {
    flex-wrap: wrap;
    gap: 1.0rem;
  }
  
  main.index section.about h2.about_ttl span.main_ttl span.main_ttl_item {
    font-size: 2.4rem;
    padding-bottom: 0.6rem;
    border-bottom: .1rem solid #AA8D4D;
    letter-spacing: -.04em;
  }
  
  main.index section.about div.about_wrap {
    margin-top: 3rem;
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }
  
  main.index section.about div.about_wrap div.about_item h3.about_ttl {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 2rem;
    letter-spacing: -.04em;
  }
  
  main.index section.about div.about_wrap div.about_item h3.about_ttl span.num {
    width: 5rem;
    height: 5rem;
  }
  
  main.index section.about div.about_wrap div.about_item h3.about_ttl span.num::before {
    width: 4rem;
    height: 4rem;
    border: .1rem solid #fff;
    pointer-events: none;
  }
  
  main.index section.about div.about_wrap div.about_item div.img_area {
    margin-top: 1rem;
  }
  
  main.index section.about div.about_wrap div.about_item p.about_txt {
    margin-top: 1.5rem;
    font-size: 1.4rem;
    line-height: 2;
  }
}

/* ----- concept ----- */

main.index section.concept {
  background-image: url(../img/_top/bg_concept.jpg);
  background-size: min(400rem, 4000px);
  background-position: center top;
  background-repeat: no-repeat;
}

main.index section.concept p.concept_highlight {
  margin-top: min(6.0rem, 60px);
  font-size: min(3.2rem, 32px);
  text-align: center;
  font-family: var(--font-serif);
  color: #fff;
}

main.index section.concept p.concept_txt {
  margin-top: min(4.0rem, 40px);
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 2.4;
  color: #fff;
  text-align: center;
}

main.index section.concept div.link_wrap {
  margin: min(6.0rem, 60px) auto 0;
  width: fit-content;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(2.0rem, 20px);
}

main.index section.concept div.link_wrap a.common_btn {
  background-color: #fff;
  color: var(--color-main);
}

main.index section.concept div.link_wrap a.common_btn::before {
  border: min(0.1rem, 1px) solid var(--color-main);
}

main.index section.concept div.link_wrap a.common_btn::after {
  background-image: url(../img/_top/shape_tri_brown.png);
}

@media (max-width: 799px) {
  main.index section.concept {
    background-image: url(../img/_top/bg_concept_sp.jpg);
    background-size: cover;
  }
  
  main.index section.concept p.concept_highlight {
    margin-top: 3rem;
    font-size: 2.4rem;
  }
  
  main.index section.concept p.concept_txt {
    margin-top: 2rem;
    font-size: 1.4rem;
    line-height: 2.4;
    text-align: center;
  }
  
  main.index section.concept div.link_wrap {
    margin: 3rem auto 0;
    width: fit-content;
    flex-direction: column;
    gap: 1rem;
  }
}

/* ----- point ----- */

main.index section.point div.container {
  padding-bottom: 0;
}

main.index section.point div.point_wrap {
  width: fit-content;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  justify-content: center;
  align-items: start;
  gap: min(4.0rem, 40px);
}

main.index section.point div.point_wrap div.point_item {
  padding: min(4.0rem, 40px);
  padding-top: min(8.6rem, 86px);
  border: min(0.1rem, 1px) solid var(--color-main);
  width: min(53rem, 530px);
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  gap: 0;
  position: relative;
}

main.index section.point div.point_wrap div.point_item h2.point_ttl {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: min(1.5rem, 15px);
  background-color: #fff;
  transform: translateY(max(-2rem, -20px));
  font-family: var(--font-serif);
  width: fit-content;
}

main.index section.point div.point_wrap div.point_item h2.point_ttl span.main_ttl {
  font-size: min(3.2rem, 32px);
  font-weight: 600;
  background: linear-gradient(135deg, var(--color-main), var(--color-light_brown));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-fill-color: transparent;
}

main.index section.point div.point_wrap div.point_item h2.point_ttl span.sub_ttl {
  width: fit-content;
  font-size: min(2.4rem, 24px);
  font-weight: 400;
  color: #AA8D4D;
}

main.index section.point div.point_wrap div.point_item p.point_txt {
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 2.4;
}

main.index section.point div.point_wrap div.point_item a.common_btn {
  margin-top: min(3.0rem, 30px);
}

@media (max-width: 799px) {
  main.index section.point div.point_wrap {
    width: 100%;
    grid-template-columns: repeat(1, 1fr);
    gap: 4rem;
  }
  
  main.index section.point div.point_wrap div.point_item {
    padding: 2rem;
    padding-top: 6rem;
    border: .1rem solid var(--color-main);
    width: 100%;
    display: block;
  }
  
  main.index section.point div.point_wrap div.point_item h2.point_ttl {
    gap: 1rem;
    transform: translateY(-2rem);
  }
  
  main.index section.point div.point_wrap div.point_item h2.point_ttl span.main_ttl {
    font-size: 2.4rem;
  }
  
  main.index section.point div.point_wrap div.point_item h2.point_ttl span.sub_ttl {
    font-size: 2rem;
  }
  
  main.index section.point div.point_wrap div.point_item p.point_txt {
    font-size: 1.4rem;
  }
  
  main.index section.point div.point_wrap div.point_item a.common_btn {
    margin-top: 3rem;
  }
}

/* ----- news ----- */

main.index section.news div.container {
  padding-bottom: 0;
}

main.index section.news nav.news_nav {
  margin-top: min(6.0rem, 60px);
  position: relative;
}

main.index section.news nav.news_nav::before, 
main.index section.news nav.news_nav::after {
  content: "";
  display: block;
  position: absolute;
  width: 100vw;
  height: min(0.1rem, 1px);
  background-color: var(--color-main);
  bottom: 0;
  left: 0;
}

main.index section.news nav.news_nav::before {
  left: auto;
  right: 0;
}

main.index section.news nav.news_nav ul.news_nav_list {
  width: fit-content;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  justify-content: center;
  align-items: center;
  gap: min(2.0rem, 20px);
}

main.index section.news nav.news_nav ul.news_nav_list li.news_nav_item {
  width: min(21rem, 210px);
  height: min(6.5rem, 65px);
  background-color: #D3C8B0;
  color: #fff;
  font-size: min(2.0rem, 20px);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: all .8s;
}

main.index section.news nav.news_nav ul.news_nav_list li.news_nav_item.active {
  background-color: var(--color-main);
}

main.index section.news div.news_box_wrapper {
  position: relative;
  background-color: #FAF5E9;
}

main.index section.news div.news_box_wrapper::before, 
main.index section.news div.news_box_wrapper::after {
  content: "";
  display: block;
  position: absolute;
  width: 100vw;
  height: 100%;
  background-color: #FAF5E9;
  top: 0;
  left: 0;
  margin: auto;
  z-index: -1;
} 

main.index section.news div.news_box_wrapper::before {
  left: auto;
  right: 0;
}

main.index section.news div.news_box {
  padding: min(10.0rem, 100px) 0;
  position: absolute;
  top: -999999px;
  opacity: 0;
  pointer-events: none;
  transition: all .8s;
  z-index: auto;
}

main.index section.news div.news_box.active {
  position: static;
  opacity: 1;
  pointer-events: auto;
}

main.index section.news div.news_box div.news_wrap {
  display: flex;
  flex-direction: column;
  gap: 0;
}

main.index section.news div.news_box div.news_wrap a.news_item {
  display: grid;
  grid-template-columns: min(31rem, 310px) 1fr;
  align-items: center;
  gap: min(2.0rem, 20px);
  padding: min(3.2rem, 32px) 0;
  border-bottom: min(0.1rem, 1px) solid var(--color-main);
}

main.index section.news div.news_box div.news_wrap a.news_item:first-of-type {
  padding-top: 0;
}

main.index section.news div.news_box div.news_wrap a.news_item div.info {
  display: flex;
  align-items: center;
  gap: min(1.0rem, 10px);
}

main.index section.news div.news_box div.news_wrap a.news_item div.info div.date {
  font-size: min(1.2rem, 12px);
  font-weight: 500;
  color: #AA8D4D;
}

main.index section.news div.news_box div.news_wrap a.news_item div.info div.category {
  padding: min(0.4rem, 4px) min(1.0rem, 10px);
  background-color: #AA8D4D;
  font-size: min(1.2rem, 12px);
  color: #fff;
}

main.index section.news div.news_box div.news_wrap a.news_item h3.news_ttl {
  margin-top: min(3.2rem, 32px);
  font-size: min(1.8rem, 18px);
  font-weight: 700;
}

main.index section.news div.news_box div.news_wrap a.news_item p.news_txt {
  margin-top: min(2.0rem, 20px);
  font-size: min(1.6rem, 16px);
  line-height: 2.2;
}

@media (max-width: 799px) {
  main.index section.news nav.news_nav {
    margin-top: 3rem;
  }
  
  main.index section.news nav.news_nav::before, 
  main.index section.news nav.news_nav::after {
    height: .1rem;
  }
  
  main.index section.news nav.news_nav ul.news_nav_list {
    width: 100%;
    gap: 1rem;
  }
  
  main.index section.news nav.news_nav ul.news_nav_list li.news_nav_item {
    width: 100%;
    height: 5rem;
    font-size: 1.6rem;
  }
  
  main.index section.news div.news_box {
    padding: 5rem 0;
  }
  
  main.index section.news div.news_box div.news_wrap a.news_item {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.6rem 0;
    border-bottom: .1rem solid var(--color-main);
  }
  
  main.index section.news div.news_box div.news_wrap a.news_item div.info {
    gap: 0.5rem;
  }
  
  main.index section.news div.news_box div.news_wrap a.news_item div.info div.date {
    font-size: 1.2rem;
  }
  
  main.index section.news div.news_box div.news_wrap a.news_item div.info div.category {
    padding: 0.4rem 1rem;
    font-size: 1.2rem;
  }
  
  main.index section.news div.news_box div.news_wrap a.news_item h3.news_ttl {
    margin-top: 1.2rem;
    font-size: 1.6rem;
    line-height: 1.2;
  }
  
  main.index section.news div.news_box div.news_wrap a.news_item p.news_txt {
    margin-top: 1rem;
    font-size: 1.4rem;
    line-height: 2.2;
  }
}

/* ----- information ----- */

main.index section.information div.information_wrap {
  margin-top: min(6.0rem, 60px);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(4.0rem, 40px);
}

main.index section.information div.information_wrap div.information_item {
  width: min(53rem, 530px);
}

main.index section.information div.information_wrap div.information_item:first-of-type {
  height: min(55rem, 550px);
} 

main.index section.information div.information_wrap div.information_item:first-of-type img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
} 

main.index section.information div.information_wrap div.logo {
  width: min(22rem, 220px);
}

main.index section.information div.information_wrap table.dental_info {
  margin-top: min(1.0rem, 10px);
  width: 100%;
  letter-spacing: 0em;
}

main.index section.information div.information_wrap table.dental_info thead th, 
main.index section.information div.information_wrap table.dental_info thead td {
  width: min(13rem, 130px);
  height: min(4rem, 40px);
  font-size: min(1.6rem, 16px);
  font-weight: 500;
  background-color: #42210B;
  color: #fff;
  text-align: center;
}

main.index section.information div.information_wrap table.dental_info thead td {
  width: min(5rem, 50px);
}

main.index section.information div.information_wrap table.dental_info tbody th, 
main.index section.information div.information_wrap table.dental_info tbody td {
  width: min(13rem, 130px);
  height: min(4rem, 40px);
  font-size: min(1.6rem, 16px);
  font-weight: 500;
  background-color: #FAF5E9;
  color: #333333;
  text-align: center;
  border: min(0.1rem, 1px) solid #42210B;
}

main.index section.information div.information_wrap table.dental_info tbody td {
  width: min(5rem, 50px);
  color: #AA8D4D;
}

main.index section.information div.information_wrap table.dental_info tbody td div.bar {
  margin: 0 auto;
  width: min(1.5rem, 15px);
  height: min(0.2rem, 2px);
  background-color: #AA8D4D;
}

main.index section.information div.information_wrap p.info_note {
  margin-top: min(1.0rem, 10px);
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 1.4;
  padding-left: 1em;
  text-indent: -1em;
}

main.index section.information div.information_wrap p.info_note + p.info_note {
  margin-top: min(0.4rem, 4px);
}

main.index section.information div.information_wrap div.loco_wrap {
  margin-top: min(2.4rem, 24px);
  padding: min(2.0rem, 20px);
  border: min(0.1rem, 1px) solid var(--color-main);
}

main.index section.information div.information_wrap div.loco_wrap div.loco_item {
  display: grid;
  grid-template-columns: min(13rem, 130px) 1fr;
  align-items: start;
  gap: 0;
  padding: min(1.5rem, 15px) 0;
  border-bottom: min(0.1rem, 1px) solid var(--color-main);
}

main.index section.information div.information_wrap div.loco_wrap div.loco_item:first-of-type {
  padding-top: 0;
}

main.index section.information div.information_wrap div.loco_wrap div.loco_item:last-of-type {
  padding-bottom: 0;
  border-bottom: none;
}

main.index section.information div.information_wrap div.loco_wrap div.loco_item div.term {
  font-size: min(1.6rem, 16px);
  line-height: 1.2;
  font-weight: 700;
  display: flex;
  align-items: center;
}

main.index section.information div.information_wrap div.loco_wrap div.loco_item div.data {
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 1.2;
  display: flex;
  align-items: center;
}

main.index section.information div.information_wrap div.information_item.map {
  width: 100%;
  height: 0;
  padding-top: 64.15%;
  position: relative;
  overflow: hidden;
}

main.index section.information div.information_wrap div.information_item.map iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

main.index section.information div.info_links {
  margin: min(6.0rem, 60px) auto 0;
  width: fit-content;
  display: flex;
  gap: min(2.4rem, 24px);
}

main.index section.information div.info_links a.common_btn {
  gap: min(0.5rem, 5px);
}

main.index section.information div.info_links a.common_btn div.icon {
  width: min(2rem, 20px);
}

@media (max-width: 799px) {
  main.index section.information div.information_wrap {
    margin-top: 3rem;
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  main.index section.information div.information_wrap div.information_item {
    width: 100%;
  }


main.index section.information div.information_wrap div.information_item:first-of-type {
  height: auto;
} 

main.index section.information div.information_wrap div.information_item:first-of-type img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
  
  main.index section.information div.information_wrap div.logo {
    width: 18rem;
  }
  
  /* ----- */

  main.index section.information div.information_wrap table.dental_info {
    margin-top: 1rem;
  }
  
  main.index section.information div.information_wrap table.dental_info thead th, 
  main.index section.information div.information_wrap table.dental_info thead td {
    width: 7rem;
    height: 3rem;
    font-size: 1.3rem;
  }
  
  main.index section.information div.information_wrap table.dental_info thead td {
    width: 3.5rem;
  }
  
  main.index section.information div.information_wrap table.dental_info tbody th, 
  main.index section.information div.information_wrap table.dental_info tbody td {
    width: 7rem;
    height: 3rem;
    font-size: 1.3rem;
  }
  
  main.index section.information div.information_wrap table.dental_info tbody td {
    width: 3.5rem;
  }
  
  main.index section.information div.information_wrap table.dental_info tbody td div.bar {
    width: 1.0rem;
    height: 0.2rem;
  }

  /* ----- */
  
  main.index section.information div.information_wrap div.loco_wrap {
    margin-top: 1.2rem;
    padding: 1.5rem;
    border: .1rem solid var(--color-main);
  }
  
  main.index section.information div.information_wrap div.loco_wrap div.loco_item {
    grid-template-columns: 8rem 1fr;
    padding: 1rem 0;
    border-bottom: .1rem solid var(--color-main);
  }
  
  main.index section.information div.information_wrap div.loco_wrap div.loco_item div.term {
    font-size: 1.4rem;
    line-height: 1.2;
  }
  
  main.index section.information div.information_wrap div.loco_wrap div.loco_item div.data {
    font-size: 1.4rem;
    line-height: 1.2;
  }
  
  main.index section.information div.info_links {
    margin: 3rem auto 0;
    flex-direction: column;
    gap: 1rem;
  }
    
  main.index section.information div.info_links a.common_btn {
    gap: 0.4rem;
  }
  
  main.index section.information div.info_links a.common_btn div.icon {
    width: 1.8rem;
  }
}

/* ----- reason ----- */

main.index section.reason {
  background-image: url(../img/_top/bg_reason_pc.jpg);
  background-size: min(400rem, 4000px);
  background-position: center top;
  background-repeat: no-repeat;
}

main.index section.reason div.reason_box {
  margin-top: min(6.0rem, 60px);
  padding: min(6.0rem, 60px);
  background-color: #fff;
  border: min(0.1rem, 1px) solid #42210B;
}

main.index section.reason div.reason_box h3.reason_ttl {
  margin: 0 auto;
  width: fit-content;
  text-align: center;
  font-family: var(--font-serif);
}

main.index section.reason div.reason_box h3.reason_ttl span.ttl_item {
  display: inline-block;
}

main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.small {
  font-size: min(3.2rem, 32px);
  font-weight: 400;
}

main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.brown {
  margin: min(2.0rem, 20px) 0;
  font-size: min(5.6rem, 56px);
  font-weight: 400;
  color: #AA8D4D;
  position: relative;
  z-index: 1;
}

main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.brown::before, 
main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.large::before {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: min(2rem, 20px);
  background-color: #F6F0D9;
  bottom: 0;
  left: 0;
  transform: translateY(20%);
  z-index: -1;
}

main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.cross {
  font-size: min(2.4rem, 24px);
  font-weight: 400;
}

main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.large {
  font-size: min(6.4rem, 64px);
  font-weight: 400;
  position: relative;
  z-index: 1;
}

main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.large strong {
  font-size: min(10rem, 100px);
  font-weight: 400;
  color: #AA8D4D;
}

main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.large small {
  font-size: min(3.2rem, 32px);
  font-weight: 400;
}

main.index section.reason div.reason_box p.reason_txt {
  margin-top: min(4.0rem, 40px);
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 2.2;
}

main.index section.reason div.reason_box div.reason_circles {
  margin: min(4.0rem, 40px) auto 0;
  width: fit-content;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: min(1rem, 10px) 0;
}

main.index section.reason div.reason_box div.reason_circles a.reason_circle {
  width: min(21rem, 210px);
  height: min(21rem, 210px);
  background-color: rgba(170, 141, 77, 0.8);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: min(1.0rem, 10px);
  color: #fff;
  text-align: center;
  font-family: var(--font-serif);
}

main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(even) {
  background-color: rgba(66, 33, 11, 0.8);
}

main.index section.reason div.reason_box div.reason_circles a.reason_circle:not(:nth-of-type(1)):not(:nth-of-type(6)) {
  margin-left: max(-2.0rem, -20px);
}

main.index section.reason div.reason_box div.reason_circles a.reason_circle div.num {
  font-size: min(1.6rem, 16px);
  font-weight: 400;
}

main.index section.reason div.reason_box div.reason_circles a.reason_circle div.term {
  font-size: min(2.4rem, 24px);
  line-height: 1.4;
}

@media (max-width: 799px) {
  main.index section.reason {
    background-image: url(../img/_top/bg_reason_sp.jpg);
    background-size: 100%;
  }
  
  main.index section.reason div.reason_box {
    margin-top: 3rem;
    padding: 3rem 2rem;
    border: .1rem solid #42210B;
  }
  
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.small {
    font-size: 2rem;
  }
  
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.small:first-of-type {
    margin-bottom: 1rem;
  }
  
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.brown {
    margin: 0;
    font-size: 3.2rem;
    letter-spacing: 0em;
  }
   
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.brown::before, 
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.large::before {
    height: 1rem;
    transform: translateY(20%);
  }
  
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.cross {
    font-size: 1.6rem;
    margin-bottom: .5rem;
  }
  
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.large {
    font-size: 4.8rem;
  }
  
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.large strong {
    font-size: 7.2rem;
  }
  
  main.index section.reason div.reason_box h3.reason_ttl span.ttl_item.large small {
    font-size: 2.4rem;
  }
  
  main.index section.reason div.reason_box p.reason_txt {
    margin-top: 2rem;
    font-size: 1.4rem;
    line-height: 2.2;
  }
  
  main.index section.reason div.reason_box div.reason_circles {
    margin-top: 2rem;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
  }
  
  main.index section.reason div.reason_box div.reason_circles a.reason_circle {
    width: 16rem;
    height: 16rem;
    gap: 0.5rem;
  }

  main.index section.reason div.reason_box div.reason_circles a.reason_circle:not(:nth-of-type(1)):not(:nth-of-type(2)) {
    margin-top: -2rem;
  }

  main.index section.reason div.reason_box div.reason_circles a.reason_circle:not(:nth-of-type(1)):not(:nth-of-type(6)) {
    margin-left: 0;
  }

  main.index section.reason div.reason_box div.reason_circles a.reason_circle:not(:nth-of-type(1)):not(:nth-of-type(6)):nth-of-type(2),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:not(:nth-of-type(1)):not(:nth-of-type(6)):nth-of-type(4),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(6),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:not(:nth-of-type(1)):not(:nth-of-type(6)):nth-of-type(8),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:not(:nth-of-type(1)):not(:nth-of-type(6)):nth-of-type(10) {
    margin-left: -1rem;
  }

  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(1),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(4),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(5),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(8),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(9) {
    background-color: rgba(170, 141, 77, 0.8);
  }

  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(2),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(3),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(6),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(7),
  main.index section.reason div.reason_box div.reason_circles a.reason_circle:nth-of-type(10) {
    background-color: rgba(66, 33, 11, 0.8);
  }
  
  main.index section.reason div.reason_box div.reason_circles a.reason_circle div.num {
    font-size: 1.2rem;
  }
  
  main.index section.reason div.reason_box div.reason_circles a.reason_circle div.term {
    font-size: 2rem;
    line-height: 1.4;
  }
}

/* ----- reason02 ----- */

main.index section.reason02 div.reason_squares {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
}

main.index section.reason02 div.reason_squares a.reason_square {
  width: 100%;
  padding: min(4rem, 40px) min(2rem, 20px);
  display: flex;
  flex-direction: column;
  gap: 0;
  background-image: url(../img/_top/bg_reason_square01.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  text-align: center;
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(2) {
  background-image: url(../img/_top/bg_reason_square02.png);
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(3) {
  background-image: url(../img/_top/bg_reason_square03.png);
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(4) {
  background-image: url(../img/_top/bg_reason_square04.png);
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(5) {
  background-image: url(../img/_top/bg_reason_square05.png);
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(6) {
  background-image: url(../img/_top/bg_reason_square06.png);
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(7) {
  background-image: url(../img/_top/bg_reason_square07.png);
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(8) {
  background-image: url(../img/_top/bg_reason_square08.png);
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(9) {
  background-image: url(../img/_top/bg_reason_square09.png);
}

main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(10) {
  background-image: url(../img/_top/bg_reason_square10.png);
}

main.index section.reason02 div.reason_squares a.reason_square div.num {
  font-size: min(1.3rem, 13px);
  font-family: var(--font-serif);
}

main.index section.reason02 div.reason_squares a.reason_square h2.reason02_ttl {
  margin-top: min(0.8rem, 8px);
  font-size: min(1.6rem, 18px);
  font-family: var(--font-serif);
  line-height: 1.4;
}

main.index section.reason02 div.reason_squares a.reason_square p.reason02_txt {
  margin: min(1rem, 10px) auto 0;
  font-size: min(1.3rem, 13px);
  line-height: 2.2;
}

@media (min-width: 1540px) {
  main.index section.reason02 div.reason_squares {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
  }
  
  main.index section.reason02 div.reason_squares a.reason_square {
    width: 100%;
    padding: min(4rem, 40px) 2rem;
  }
  
  main.index section.reason02 div.reason_squares a.reason_square div.num {
    font-size: min(1.6rem, 16px);
    font-family: var(--font-serif);
  }
  
  main.index section.reason02 div.reason_squares a.reason_square h2.reason02_ttl {
    margin-top: min(1.0rem, 10px);
    font-size: min(2.4rem, 24px);
    font-family: var(--font-serif);
    line-height: 1.2;
  }
  
  main.index section.reason02 div.reason_squares a.reason_square p.reason02_txt {
    width: min(25rem, 250px);
    margin: min(2rem, 20px) auto 0;
    font-size: min(1.6rem, 16px);
    line-height: 2.2;
  }
}

main.index section.reason02 div.reason_images {
  padding-bottom: min(52rem, 520px);
  position: relative;
}

main.index section.reason02 div.reason_images div.reason_image {
  width: 100%;
  height: min(45rem, 450px);
  background-image: url(../img/_top/img_reason02.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

main.index section.reason02 div.reason_images div.feature_image_wrap {
  position: absolute;
  width: min(110rem, 1100px);
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: translateY(max(-10rem, -100px));
  display: grid;
  grid-template-columns: min(59rem, 590px) 1fr;
  align-items: end;
  gap: min(4.9rem, 49px);
}

main.index section.reason02 div.feature_txt_area {
 width: fit-content; 
 margin: 0 auto;
 transform: translateY(-20%);
} 

main.index section.reason02 div.reason_images div.num, 
main.index section.reason02 div.reason_images div.large, 
main.index section.reason02 div.reason_images div.feature_item {
  display: inline-block;
  font-size: min(3.2rem, 32px);
  text-align: center;
  text-shadow: 0 min(0.4rem, 4px) min(0.4rem, 4px) rgba(0, 0, 0, 0.2);
  font-family: var(--font-serif);
  position: relative;
  z-index: 1;
}

main.index section.reason02 div.reason_images div.feature_item.solo {
  width: 100%;
  text-align: center;
}

main.index section.reason02 div.reason_images div.feature_item.solo.under {
  margin: min(2rem, 20px) auto 0;
  display: block;
  width: fit-content;
}

main.index section.reason02 div.reason_images div.feature_item.large, 
main.index section.reason02 div.reason_images div.feature_item div.large {
  font-size: min(6.4rem, 64px);
}

main.index section.reason02 div.reason_images div.feature_item.large {
  margin: min(2rem, 20px) 0;
} 

main.index section.reason02 div.reason_images div.feature_item.under::after {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: min(1.5rem, 15px);
  background-color: #F6F0D9;
  bottom: 0;
  left: 0;
  box-shadow: 0 min(0.4rem, 4px) min(0.4rem, 4px) rgba(0, 0, 0, 0.2);
  transform: translateY(40%);
  z-index: -1;
} 

main.index section.reason02 div.reason_images div.feature_item.plus {
  transform: translateY(-40%);
}

main.index section.reason02 div.reason_images div.feature_item.gold {
  color: #AA8D4D;
}

main.index section.reason02 div.reason_images div.feature_item .num {
  font-size: min(10rem, 100px);
  color: #AA8D4D;
}

@media (max-width: 799px) {
  main.index section.reason02 div.reason_squares {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
  }
  
  main.index section.reason02 div.reason_squares a.reason_square {
    width: 100%;
    padding: 3rem 1.5rem;
    background-image: url(../img/_top/bg_reason_square01_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(2) {
    background-image: url(../img/_top/bg_reason_square02_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(3) {
    background-image: url(../img/_top/bg_reason_square03_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(4) {
    background-image: url(../img/_top/bg_reason_square04_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(5) {
    background-image: url(../img/_top/bg_reason_square05_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(6) {
    background-image: url(../img/_top/bg_reason_square06_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(7) {
    background-image: url(../img/_top/bg_reason_square07_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(8) {
    background-image: url(../img/_top/bg_reason_square08_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(9) {
    background-image: url(../img/_top/bg_reason_square09_sp.png);
  }

  main.index section.reason02 div.reason_squares a.reason_square:nth-of-type(10) {
    background-image: url(../img/_top/bg_reason_square10_sp.png);
  }
  
  main.index section.reason02 div.reason_squares a.reason_square div.num {
    font-size: 1.2rem;
  }
  
  main.index section.reason02 div.reason_squares a.reason_square h2.reason02_ttl {
    margin-top: 0.5rem;
    font-size: 1.6rem;
    line-height: 1.2;
  }
  
  main.index section.reason02 div.reason_squares a.reason_square p.reason02_txt {
    width: 100%;
    margin: 1.2rem auto 0;
    font-size: 1.4rem;
    line-height: 2.2;
  }
}

/* ----- feature ----- */

main.index section.feature div.feature_box {
  background-image: url(../img/_top/bg_feature01.png);
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
}

main.index section.feature div.feature_box:nth-of-type(2) {
  background-image: url(../img/_top/bg_feature02.png);
}

main.index section.feature div.feature_box:nth-of-type(3) {
  background-image: url(../img/_top/bg_feature03.png);
}

main.index section.feature div.feature_box div.feature_content {
  width: min(68rem, 680px);
  margin-left: auto;
  padding: min(8rem, 80px);
  background-color: rgb(170, 141, 77, .8);
  color: #fff;
}

main.index section.feature div.feature_box:nth-of-type(2) div.feature_content {
  margin-left: 0;
  margin-right: auto;
}

main.index section.feature div.feature_box div.feature_content div.feature_lead {
  font-size: min(2.0rem, 20px);
  font-weight: 600;
  font-family: var(--font-serif);
}

main.index section.feature div.feature_box div.feature_content h2.feature_ttl {
  margin-top: min(1.5rem, 15px);
  font-size: min(4.0rem, 40px);
  font-weight: 600;
  font-family: var(--font-serif);
  line-height: 1.4;
}

main.index section.feature div.feature_box div.feature_content div.sub_ttl {
  margin-top: min(0.5rem, 5px);
  font-size: min(3.2rem, 32px);
  font-weight: 600;
  font-family: var(--font-serif);
}

main.index section.feature div.feature_box div.feature_content p.feature_txt {
  margin-top: min(4.0rem, 40px);
  font-size: min(1.6rem, 16px);
  line-height: 2.0;
}

main.index section.feature div.feature_box div.feature_content div.feature_wrap {
  margin-top: min(2.4rem, 24px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(1.3rem, 13px);
}

main.index section.feature div.feature_box div.feature_content div.feature_wrap div.feature_item {
  width: 100%;
  height: min(16.5rem, 165px);
  border-radius: 50%;
  background-color: var(--color-main);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-size: min(1.6rem, 16px);
  font-weight: 600;
  font-family: var(--font-serif);
  color: #fff;
  line-height: 1.4;
  position: relative;
  letter-spacing: 0em;
}

main.index section.feature div.feature_box div.feature_content div.feature_wrap div.feature_item::before {
  content: "";
  display: block;
  position: absolute;
  width: min(15.5rem, 155px);
  height: min(15.5rem, 155px);
  border-radius: 50%;
  border: min(0.1rem, 1px) solid #fff;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  pointer-events: none;
}

main.index section.feature div.feature_box div.feature_content div.feature_wrap div.feature_item small {
  font-size: min(1.2rem, 12px);
  font-weight: 600;
  margin-bottom: min(0.5rem, 5px);
}

main.index section.feature div.feature_box div.feature_content a.common_btn {
  margin-top: min(4.0rem, 40px);
  margin-left: 0;
}

@media (max-width: 799px) {
  main.index section.feature div.feature_box {
    background-image: url(../img/_top/bg_feature_sp01.png);
    background-size: 100%;
    background-position: center top;
    padding-top: min(27rem, 270px);
  }
  
  main.index section.feature div.feature_box:nth-of-type(2) {
    background-image: url(../img/_top/bg_feature_sp02.png);
  }
  
  main.index section.feature div.feature_box:nth-of-type(3) {
    background-image: url(../img/_top/bg_feature_sp03.png);
  }
  
  main.index section.feature div.feature_box div.feature_content {
    width: 100%;
    margin-left: 0;
    padding: 4rem 2rem;
  }
  
  main.index section.feature div.feature_box:nth-of-type(2) div.feature_content {
    margin-left: 0;
    margin-right: 0;
  }
  
  main.index section.feature div.feature_box div.feature_content div.feature_lead {
    font-size: 1.8rem;
    line-height: 1.4;
  }
  
  main.index section.feature div.feature_box div.feature_content h2.feature_ttl {
    margin-top: 0.8rem;
    font-size: 2.8rem;
    line-height: 1.4;
  }
  
  main.index section.feature div.feature_box div.feature_content div.sub_ttl {
    margin-top: 0;
    font-size: 2rem;
  }
  
  main.index section.feature div.feature_box div.feature_content p.feature_txt {
    margin-top: 2rem;
    font-size: 1.4rem;
    line-height: 2.0;
  }
  
  main.index section.feature div.feature_box div.feature_content div.feature_wrap {
    margin-top: 1.2rem;
    gap: 1rem;
  }
  
  main.index section.feature div.feature_box div.feature_content div.feature_wrap div.feature_item {
    height: 11rem;
    font-size: 1.2rem;
    line-height: 1.4;
  }
  
  main.index section.feature div.feature_box div.feature_content div.feature_wrap div.feature_item::before {
    width: 10.4rem;
    height: 10.4rem;
    border: .1rem solid #fff;
  }
  
  main.index section.feature div.feature_box div.feature_content div.feature_wrap div.feature_item small {
    font-size: 0.8rem;
    margin-bottom: 0.4rem;
  }
  
  main.index section.feature div.feature_box div.feature_content a.common_btn {
    margin-top: 2rem;
  }
}

/* ----- search ----- */

main.index section.search div.search_wrap {
  margin-top: min(6rem, 60px);
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: min(2.0rem, 20px) min(1.6rem, 16px);
}

main.index section.search div.search_wrap a.search_item {
  height: min(17rem, 170px);
  border-radius: 50%;
  background-color: #FAF5E9;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: min(3rem, 30px);
  font-size: min(1.6rem, 16px);
  font-weight: 600;
  font-family: var(--font-serif);
  color: #000;
  line-height: 1.4;
  position: relative;
}

main.index section.search div.search_wrap a.search_item::before {
  content: "";
  display: block;
  position: absolute;
  width: min(16rem, 160px);
  height: min(16rem, 160px);
  border-radius: 50%;
  border: min(0.1rem, 1px) solid var(--color-main);
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  pointer-events: none;
  margin: auto;
}

main.index section.search div.search_wrap a.search_item::after {
  content: "";
  display: block;
  position: absolute;
  background-image: url(../img/_top/icon_arrow_down_brown.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  width: min(1.2rem, 12px);
  height: min(0.6rem, 6px);
  left: 0;
  right: 0;
  margin: auto;
  bottom: 0;
  transform: translateY(-380%);
}

main.index section.search div.search_wrap a.search_item div.icon_area {
  margin: 0 auto;
  width: min(10rem, 100px);
}

main.index section.search div.search_wrap a.search_item div.search_term {
  margin-top: min(.5rem, 5px);
  font-size: min(1.8rem, 18px);
  font-weight: 400;
  line-height: 1.4;
}

@media (max-width: 799px) {
  main.index section.search div.search_wrap {
    margin-top: 3rem;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem 1rem;
  }
  
  main.index section.search div.search_wrap a.search_item {
    height: 11rem;
    padding-top: 2rem;
    font-size: 1.2rem;
    line-height: 1.4;
  }
  
  main.index section.search div.search_wrap a.search_item::before {
    width: 10.4rem;
    height: 10.4rem;
    border: .1rem solid var(--color-main);
  }
  
  main.index section.search div.search_wrap a.search_item::after {
    width: 0.8rem;
    height: 0.5rem;
    transform: translateY(-380%);
  }
  
  main.index section.search div.search_wrap a.search_item div.icon_area {
    width: 5.8rem;
  }
  
  main.index section.search div.search_wrap a.search_item div.search_term {
    margin-top: 0.5rem;
    font-size: 1.2rem;
    line-height: 1.4;
  }
}

/* ----- message ----- */

main.index section.message {
  background-image: url(../img/_top/bg_message_pc.jpg);
  background-size: cover;
  background-position: center top;
}

main.index section.message div.message_content {
  width: min(67rem, 670px);
  padding: min(4rem, 40px);
  background-color: #fff;
  border: min(0.1rem, 1px) solid var(--color-main);
}

main.index section.message div.message_content p.message_txt {
  margin-top: min(2.4rem, 24px);
  font-size: min(1.6rem, 16px);
  line-height: 2.2;
}

main.index section.message div.message_content p.chairman {
  margin-top: min(3.2rem, 32px);
  font-size: min(2.4rem, 24px);
  font-weight: 600;
  text-align: right;
  font-family: var(--font-serif);
}

main.index section.message div.message_content p.chairman small {
  display: inline-block;
  margin-right: min(1rem, 10px);
  font-size: min(1.6rem, 16px);
  font-weight: 500;
}

main.index section.message div.message_content div.chairman_links {
  margin-top: min(4rem, 40px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(1.0rem, 10px);
}

main.index section.message div.message_content div.chairman_links a.common_btn {
  width: 100%;
  gap: min(0.5rem, 5px);
}

main.index section.message div.message_content div.chairman_links a.common_btn:last-of-type {
  font-size: min(1.2rem, 12px);
  letter-spacing: 0em;
}

main.index section.message div.message_content div.chairman_links a.common_btn::before {
  width: min(18rem, 180px);
}

main.index section.message div.message_content div.chairman_links a.common_btn div.icon {
  width: min(2rem, 20px);
  height: min(2rem, 20px);
}

@media (max-width: 799px) {
  main.index section.message {
    background-image: url(../img/_top/bg_message_sp.jpg);
    background-size: 100%;
    background-position: center top;
    background-repeat: no-repeat;
  }

  main.index section.message div.container {
    padding-top: 27rem;
  }
  
  main.index section.message div.message_content {
    width: 100%;
    padding: 3rem 2rem;
    border: .1rem solid var(--color-main);
  }
  
  main.index section.message div.message_content p.message_txt {
    margin-top: 1.2rem;
    font-size: 1.4rem;
    line-height: 2.2;
  }
  
  main.index section.message div.message_content p.chairman {
    margin-top: 1.6rem;
    font-size: 2rem;
  }
  
  main.index section.message div.message_content p.chairman small {
    margin-right: 0.5rem;
    font-size: 1.4rem;
  }
  
  main.index section.message div.message_content div.chairman_links {
    margin-top: 3rem;
    grid-template-columns: repeat(1, 1fr);
    gap: 1rem;
  }
  
  main.index section.message div.message_content div.chairman_links a.common_btn {
    width: 21rem;
    gap: 0.5rem;
  }
  
  main.index section.message div.message_content div.chairman_links a.common_btn:last-of-type {
    font-size: 1.4rem;
    letter-spacing: 0em;
  }
  
  main.index section.message div.message_content div.chairman_links a.common_btn::before {
    width: 20rem;
  }
  
  main.index section.message div.message_content div.chairman_links a.common_btn div.icon {
    width: 1.8rem;
    height: 1.8rem;
  }
}

/* ----- bnr ----- */

main.index section.bnr {
  background-color: #FAF5E9;
}

main.index section.bnr div.container {
  padding: min(6rem, 60px) 20px;
}

main.index section.bnr div.bnr_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: min(2.5rem, 25px);
}

main.index section.bnr div.bnr_wrap a.bnr_item {
  width: min(35rem, 350px);
}

@media (max-width: 799px) {
  main.index section.bnr div.container {
    padding: 3rem 2rem;
  }
  
  main.index section.bnr div.bnr_wrap {
    flex-direction: column;
    gap: 1rem;
  }
  
  main.index section.bnr div.bnr_wrap a.bnr_item {
    width: 100%;
  }  
}

/* ----- faq ----- */

main.index section.faq div.faq_wrap {
  margin-top: min(6rem, 60px);
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: min(3.2rem, 32px);
}

main.index section.faq div.faq_wrap div.faq_item {
  border: min(.1rem, 1px) solid var(--color-main);
}

main.index section.faq div.faq_wrap div.faq_item div.faq_q {
  padding: min(2rem, 20px);
  font-size: min(2.4rem, 24px);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: min(1rem, 10px);
  background-color: #FAF5E9;
  position: relative;
  cursor: pointer;
  font-family: var(--font-serif);
}

main.index section.faq div.faq_wrap div.faq_item div.faq_q::before {
  content: 'Q';
  font-family: var(--font-cormorant);
  font-size: min(2rem, 20px);
  font-weight: 600;
  color: #fff;
  width: min(4.5rem, 45px);
  height: min(4.5rem, 45px);
  background-color: var(--color-main);
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  flex-shrink: 0;
}

main.index section.faq div.faq_wrap div.faq_item div.faq_q::after {
  content: '';
  display: block;
  position: absolute;
  background-image: url(../img/_top/icon_plus.png);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: min(2.5rem, 25px);
  height: min(2.5rem, 25px);
  top: 0;
  bottom: 0;
  margin: auto;
  right: 0;
  transform: translateX(max(-2rem, -20px));
  transition: all 0.3s;
}

main.index section.faq div.faq_wrap div.faq_item.active div.faq_q::after {
  background-image: url(../img/_top/icon_minus.png);
}

main.index section.faq div.faq_wrap div.faq_item div.faq_a_wrap {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s;
}

main.index section.faq div.faq_wrap div.faq_item.active div.faq_a_wrap {
  grid-template-rows: 1fr;
  opacity: 1;
  pointer-events: auto;
}

main.index section.faq div.faq_wrap div.faq_item div.faq_a {
  min-height: 0;
  padding: 0;
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 2;
  display: flex;
  align-items: start;
  gap: min(1rem, 10px);
  opacity: 0;
  pointer-events: none;
  transition: all 0.2s;
}

main.index section.faq div.faq_wrap div.faq_item.active div.faq_a {
  padding: min(2.0rem, 20px);
  opacity: 1;
  pointer-events: auto;
}

main.index section.faq div.faq_wrap div.faq_item div.faq_a::before {
  content: 'A';
  font-size: min(2rem, 20px);
  font-weight: 600;
  color: var(--color-main);
  border: min(0.1rem, 1px) solid var(--color-main);
  width: min(4.5rem, 45px);
  height: min(4.5rem, 45px);
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  flex-shrink: 0;
  font-family: var(--font-cormorant);
}

@media (max-width: 799px) {
  main.index section.faq div.faq_wrap {
    margin-top: 3rem;
    gap: 1.6rem;
  }
  
  main.index section.faq div.faq_wrap div.faq_item {
    border: .1rem solid var(--color-main);
  }
  
  main.index section.faq div.faq_wrap div.faq_item div.faq_q {
    padding: 1.5rem 1rem;
    padding-right: 3.5rem;
    font-size: 1.6rem;
    line-height: 1.4;
    gap: 0.5rem;
  }
  
  main.index section.faq div.faq_wrap div.faq_item div.faq_q::before {
    font-size: 1.6rem;
    width: 3rem;
    height: 3rem;
  }
  
  main.index section.faq div.faq_wrap div.faq_item div.faq_q::after {
    width: 1.5rem;
    height: 1.5rem;
    transform: translateX(-1rem);
  }
  
  main.index section.faq div.faq_wrap div.faq_item div.faq_a {
    font-size: 1.6rem;
    gap: 0.5rem;
  }
  
  main.index section.faq div.faq_wrap div.faq_item.active div.faq_a {
    padding: 1.5rem 1rem;
  }
  
  main.index section.faq div.faq_wrap div.faq_item div.faq_a::before {
    font-size: 1.6rem;
    border: .1rem solid var(--color-main);
    width: 3rem;
    height: 3rem;
  }
}

/* ----- sns ----- */

main.index section.sns {
  background-color: #FAF5E9;
}

main.index section.sns div.container {
  padding: min(6rem, 60px) 20px;
}

main.index section.sns div.sns_wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(2.5rem, 25px);
}

@media (max-width: 799px) {
  main.index section.sns div.container {
    padding: 5rem 2rem;
  }
  
  main.index section.sns div.sns_wrap {
    grid-template-columns: repeat(1, 1fr);
    gap: 1rem;
  }  
}

/* ----- column ----- */

main.index section.column div.column_wrap {
  margin-top: min(6rem, 60px);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(5.0rem, 50px) min(4.0rem, 40px);
}

main.index section.column div.column_wrap a.column_item div.column_info {
  margin-top: min(1.6rem, 16px);
  display: flex;
  align-items: center;
  gap: min(1.0rem, 10px);
}

main.index section.column div.column_wrap a.column_item div.column_info div.date {
  font-size: min(1.2rem, 12px);
  font-weight: 500;
  color: #AA8D4D;
  font-family: var(--font-serif);
}

main.index section.column div.column_wrap a.column_item div.column_info div.category {
  padding: min(0.4rem, 4px) min(1rem, 10px);
  background-color: #AA8D4D;
  font-size: min(1.2rem, 12px);
  font-weight: 400;
  color: #fff;
}

main.index section.column div.column_wrap a.column_item div.column_ttl {
  margin-top: min(1rem, 10px);
  font-size: min(2rem, 20px);
  font-weight: 500;
  line-height: 1.4;
}

@media (max-width: 799px) {
  main.index section.column div.column_wrap {
    margin-top: 3rem;
    grid-template-columns: repeat(1, 1fr);
    gap: 2rem;
  }
  
  main.index section.column div.column_wrap a.column_item div.column_info {
    margin-top: 1rem;
    gap: 0.5rem;
  }
  
  main.index section.column div.column_wrap a.column_item div.column_info div.date {
    font-size: 1.2rem;
  }
  
  main.index section.column div.column_wrap a.column_item div.column_info div.category {
    padding: 0.4rem 1rem;
    font-size: 1.2rem;
  }
  
  main.index section.column div.column_wrap a.column_item div.column_ttl {
    margin-top: 1rem;
    font-size: 1.6rem;
  }
}

/* ----- gallery ----- */

main.index section.gallery div.container {
  max-width: 100%;
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}

main.index section.gallery div.gallery_wrap div.gallery_item {
  margin: 0 min(1rem, 10px);
}

/* ----- fujisawa ----- */

main.index section.fujisawa {
  background-image: url(../img/_top/bg_fujisawa_pc.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

main.index section.fujisawa div.fujisawa_content {
  padding: min(8rem, 80px);
  background-color: rgba(255, 255, 255, 0.8);
}

main.index section.fujisawa div.fujisawa_content p.fujisawa_txt {
  margin-top: min(6rem, 60px);
  font-size: min(1.6rem, 16px);
  font-weight: 400;
  line-height: 2.4;
}

@media (max-width: 799px) {
  main.index section.fujisawa {
    background-image: url(../img/_top/bg_fujisawa_sp.jpg);
  }
  
  main.index section.fujisawa div.fujisawa_content {
    padding: 4rem 2rem;
  }
  
  main.index section.fujisawa div.fujisawa_content p.fujisawa_txt {
    margin-top: 3rem;
    font-size: 1.4rem;
    line-height: 2.0;
  }  
}
