@charset "UTF-8";
/* ----------------------------------------------------
   custom　CSS
---------------------------------------------------- */

:root {
  --bs-primary: #917000;
  --bs-primary-light: #efead9;
  --bs-primary-lighter: #f5f2e8;
  --bs-primary-lightest: #f9f8f2;
  --bs-text: #332020;
  --bs-accent: #6d2300;
  

  /* 明朝系 */
  --bs-font-serif: "Yu Mincho", "游明朝", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", serif;
  /* ゴシック系 */
  --bs-font-sans-serif: "Yu Gothic", "游ゴシック", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Meiryo", "メイリオ", sans-serif;
  /* ===== Font Size ===== */
  --bs-font-xl: 32px;
  --bs-font-lg: 24px;
  --bs-font-md: 19px;
  --bs-font-base: 15px;
  --bs-font-sm: 14px;
  --bs-font-xs: 13px;
  --bs-font-xxs: 12px;
  /* ===== Line Height ===== */
  --bs-line-height: 1.6;
  /* ===== Space ===== */
  --bs-space-xxs: 0.25rem;  /* 4px */
  --bs-space-xs: 0.5rem;    /* 8px */
  --bs-space-sm: 0.75rem;   /* 12px */
  --bs-space-md: 1rem;      /* 16px */
  --bs-space-lg: 1.5rem;    /* 24px */
  --bs-space-xl: 2rem;      /* 32px */
  --bs-space-2xl: 3rem;     /* 48px */
  --bs-space-3xl: 4rem;     /* 64px */
}

/* ---------------------------------------
   基本
--------------------------------------- */

body{
  font-family: var(--bs-font-sans-serif);
  font-size: var(--bs-font-base);
  line-height: var(--bs-line-height);
  font-weight: 400;
  margin: 0;
  color: var(--bs-text);
}
.container {
    max-width: 1130px;
}
@media (max-width: 767px) {
  .container,
  .container-fluid,
  .container-xxl,
  .container-xl,
  .container-lg,
  .container-md,
  .container-sm {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
  }
}
.section_block{
  padding-top: 6%;
  padding-bottom: 8%;
}
@media (max-width: 767px) {
  .section_block{
    padding-top: 30px;
    padding-bottom: 30px;
  }
}

:target {
  scroll-margin-top: 130px;
}
[id] {
  scroll-margin-top: 130px;
}
@media (max-width: 767px) {
  :target {
    scroll-margin-top: 65px;
  }
  [id] {
    scroll-margin-top: 65px;
  }
}

@media (max-width: 767px) {
  iframe[src*="www.google.com/maps/embed"] {
    aspect-ratio: 4 / 3;
    width: 100%;
    height: auto;
  }
}

.bg-primary-light{
  background-color: var(--bs-primary-light)!important;
}
.bg-primary-lighter{
  background-color: var(--bs-primary-lighter)!important;
}
.bg-primary-lightest{
  background-color: var(--bs-primary-lightest)!important;
}

.box_primary{
  background-color: var(--bs-primary-light)!important;
  border-radius: 10px;
  padding: var(--bs-space-md);
}
.box_white{
  background-color: var(--bs-white)!important;
  border-radius: 10px;
  padding: var(--bs-space-md);
}
.img_caption{
  margin: 0 auto;
  position: relative;
}
.img_caption_text{
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  text-shadow: -1px -1px 1px #fff, -1px 0 1px #fff, -1px 1px 1px #fff, 0 -1px 1px #fff, 0 0 1px #fff, 0 1px 1px #fff, 1px -1px 1px #fff, 1px 0 1px #fff, 1px 1px 1px #fff;
  padding: var(--bs-space-xs) var(--bs-space-md);
  background-color: rgba(255, 255, 255, .8);  
}
.img_caption_text p{
  margin-bottom: 0;
}
ul {
  padding-left: 1rem;
}

/* ---------------------------------------
   テキスト
--------------------------------------- */
h1,h2,h3{
  font-family: var(--bs-font-serif);
  line-height: 1.3;
}
h2{
  font-size: var(--bs-font-xl);
  margin-bottom: var(--bs-space-xl);
  text-align: center;
}
.h2_title{
  color: var(--bs-primary);
  text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, 0 1px 0 #fff, 0 -1px 0 #fff, -1px 0 0 #fff, 1px 0 0 #fff;
  text-align: center;
  position: relative;
  z-index: 0;
  font-size: 42px;
  padding: 20px 0;
}
.h2_title span{
  font-size: var(--bs-font-lg);
}
.h2_title::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  background-image: url(../img/h1_bg.png);
  background-size: contain;
  width: 110px;
  height: 110px;
  z-index: -1;
}
h3{
  font-size: var(--bs-font-lg);
  margin-bottom: var(--bs-space-md);
}
.h3_icon{
  display: flex;
  align-items: center;
  gap: var(--bs-space-xs);
  margin-bottom: var(--bs-space-sm);
}
.h3_icon h3 {
    font-size: var(--bs-font-lg);
}
.h3_icon::before{
  content: "";
  display: block;
  background-image: url(../img/h3_icon.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 15px;
  height: 26px;
}
@media (max-width: 767px) {
  h2{
    font-size: var(--bs-font-lg);
    margin-bottom: var(--bs-space-md);
  }
  h3{
    font-size: var(--bs-font-md);
  }
  .h2_title{
    font-size: var(--bs-font-lg);
  }
  .h2_title span{
    font-size: 17px;
  }
}
.title_label{
  background-color: var(--bs-primary);
  border-radius: 5px;
  color: var(--bs-white);
  padding: var(--bs-space-xxs) var(--bs-space-xs) ;
  margin-bottom: var(--bs-space-xs) ;
  display: inline-block;
}

/* Text utilities */
.text-lg {
  font-size: var(--bs-font-lg);
}
.text-md {
  font-size: var(--bs-font-md);
}
.text-sm {
  font-size: var(--bs-font-sm);
}
.text-xs {
  font-size: var(--bs-font-xs);
}
.text-xxs {
  font-size: var(--bs-font-xxs);
}
.text-primary{
  color: var(--bs-primary)!important;
}






/* ---------------------------------------
   header
--------------------------------------- */
header{
  background-color: var(--bs-primary-lightest);
  width: 100%;
}
.site-header {
  max-width: 1130px;
  width: 100%;
  margin: 0 auto;
  padding: 20px 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--bs-primary-lightest);
}
.header_logo{
  display: block;
  width: 420px;
  margin-bottom: var(--bs-font-xxs);
}
.header_adress{
  font-size: var(--bs-font-sm);
  line-height: 1.8;
}
.header_right{
  display: flex;
}
.header_table table {
    width: 100%;
    margin-top: 15px;
    border: 1px solid rgba(0,0,0,0)
}
.header_table table th {
    line-height: 1.3;
    font-size: var(--bs-font-sm);
    text-align: left;
    vertical-align: middle;
    border-style: none;
    padding: var(--bs-space-xxs) var(--bs-space-xs);
    background-color:var(--bs-primary-light);
    font-weight: 400;
}
.header_table table th>table:first-child,
.header_table table th>ul:first-child,
.header_table table th>ol:first-child,
.header_table table th>p:first-child,
.header_table table th>hr:first-child {
    margin-top: 0
}
.header_table table td {
    line-height: 1.3;
    font-size: var(--bs-font-sm);
    text-align: center;
    vertical-align: middle;
    border-style: none;
    line-height: 1.3;
    padding: var(--bs-space-xxs) var(--bs-space-xs);
    background-color: var(--bs-primary-lightest);
}
.header_table table td>table:first-child,
.header_table table td>ul:first-child,
.header_table table td>ol:first-child,
.header_table table td>p:first-child,
.header_table table td>hr:first-child {
    margin-top: 0
}
.header_table table tr:first-child {
    border-top: 1px solid #888
}
.header_table table tr:last-child {
    border-bottom: 1px solid #888
}
.header_table>table:first-child {
    margin-top: 0
}
.header_table table tr {
    border-top: 1px solid #888;
    border-bottom: 1px solid #888
}
.header_table_text{
  margin-top: var(--bs-space-xs);
  font-size: var(--bs-font-xxs);
  line-height: 1.8;
}
.header_tel{
  padding-left: 20px;
}
.header_tel p{
  margin-bottom: var(--bs-space-xxs);
  line-height: 1.8;
}
.header_tel_num{
  font-size: 28px;
  display: flex;
  align-items: center;
}
.header_tel_num span{
  background-image: url(../img/tel.svg);
  width: 27px;
  height: 27px;
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: var(--bs-space-xs);
}
@media (min-width: 992px) {
  .header_sp_btn,.header-nav{
    display: none;
  }
}
@media (max-width: 1024px) {
  .header_logo{
    width: 380px;
  }
}
/* 992px以下 */
@media (max-width: 991px) {
  header {
    position: fixed;
    background-color: var(--bs-white);
  }
  .site-header {
    position: relative;
    width: 100%;
    height: 50px;
    margin: 0 auto;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content:space-between;
    z-index: 1000;
    background-color: var(--bs-white);
    border-bottom: 1px solid #ccc;
  }
  .header_left  {
    width: 100%;
    display: flex;
    justify-content: center;
  }
  .header_logo{
    width: 208px;
    min-width:auto;
    margin: 0;
  }
  .header_right,.header_adress{
    display: none;
  }
  .header_sp_btn{
    display: flex;
  }
  .header_sp_tel{
    margin-bottom: 0;
  }
  .header_sp_tel a{
    display: block;
    width: 50px;
    height: 50px;
    background-color: #b29b4c;
    background-image: url(../img/sp_tel.svg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 20px 20px;
  }
  /* ハンバーガーボタン(三本線の実装) */
  .hamburger-btn {
    width: 50px;
    height: 50px;
    cursor: pointer;
    background-color: var(--bs-text);
    position: relative;
  }
  .hamburger-line {
    position: absolute;
    left: 14px;
    width: 24px;
    height: 2px;
    border-radius: 2px;
    background-color:var(--bs-white);
    -webkit-transition: all 0.6s;
    transition: all 0.6s;
  }
  .hamburger-line-1 {
    top: 16px;
  }
  .hamburger-line-2 {
    top: 23px;
  }
  .hamburger-line-3 {
    top: 30px;
  }
  .hamburger-text{
    display: block;
    font-size: 12px;
    color: var(--bs-base);
    position: absolute;
    bottom: 0;
    left: 8px;
  }
  /* ハンバーガーボタンをクリックした際の動き */
  .nav-open {
    /* ナビゲーションが現れる */
    /* 半透明の背景を表示させます。 */
    /* 三本線のハンバーガーを、バッテンにします */
  }

  /* ナビゲーション */
  .header-nav {
    position: fixed;
    width: 100%;
    top: 50px;
    left: 0;
    padding: 0;
    -webkit-transition: all 1s;
    transition: transform 0.3s ease;
    z-index: 10;
    overflow-y: auto;
    transform: translateY(-100%);
  }
  .nav-open .header-nav {
    display: inline;
    width: 100%;
    transform: translateY(0);
  }
  .nav-open .hamburger-line-1 {
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    top: 25px;
  }
  .nav-open .hamburger-line-2 {
    width: 0;
    left: 50%;
  }
  .nav-open .hamburger-line-3 {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    top: 25px;
  }
  .text-close {
    display: none;
  }
  /* 開いたとき */
  body.nav-open .text-open {
    display: none;
  }
  body.nav-open .text-close {
    display: inline;
  }
  .header-nav li{
    background-color: rgba(232, 232, 232, .7);
    border-bottom: 1px solid #ccc;
    transition: 1s;
    padding: var(--bs-space-xxs);
  }
  .header-nav li a{
    text-decoration: none;
    color: var(--bs-text);
  }
}

/* ---------------------------------------
   footer
--------------------------------------- */
footer{
  background-color: var(--bs-primary-lighter);
  width: 100%;
}
.footer_upper{
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}
.footer_left,
.footer_right{
  width: 50%;
}
.text_on_image{
  width: 70%;
  margin: 0 auto;
  position: relative;
  margin-top: var(--bs-space-2xl);
}
.text_on_image img{
  width: 100%;
}
.text_on_image_lower{
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
}
.text_on_image_lower p {
  line-height: 1.3;
  font-size: var(--bs-font-md);
  text-shadow: -1px -1px 1px #fff, -1px 0 1px #fff, -1px 1px 1px #fff, 0 -1px 1px #fff, 0 0 1px #fff, 0 1px 1px #fff, 1px -1px 1px #fff, 1px 0 1px #fff, 1px 1px 1px #fff;
  max-height: 66px;
  padding: 10px 5px;
  background-color: rgba(255, 255, 255, .8);
  margin-bottom: 0;
  text-align: center;
}
.footer-map iframe{
  width: 100%;
  height: 256px;
}
.footer_table table {
    width: 100%;
    margin-bottom: 15px;
    border: 1px solid rgba(0,0,0,0)
}
.footer_table table th {
    line-height: 1.3;
    text-align: left;
    vertical-align: middle;
    border-style: none;
    padding: var(--bs-space-xs);
    background-color:var(--bs-primary-light);
    font-weight: 400;
}
.footer_table table th>table:first-child,
.footer_table table th>ul:first-child,
.footer_table table th>ol:first-child,
.footer_table table th>p:first-child,
.footer_table table th>hr:first-child {
    margin-top: 0
}
.footer_table table td {
    line-height: 1.3;
    text-align: center;
    vertical-align: middle;
    border-style: none;
    line-height: 1.3;
    padding: var(--bs-space-xs);
    background-color: var(--bs-primary-lightest);
}
.footer_table table td>table:first-child,
.footer_table table td>ul:first-child,
.footer_table table td>ol:first-child,
.footer_table table td>p:first-child,
.footer_table table td>hr:first-child {
    margin-top: 0
}
.footer_table table tr:first-child {
    border-top: 1px solid #888
}
.footer_table table tr:last-child {
    border-bottom: 1px solid #888
}
.footer_table>table:first-child {
    margin-top: 0
}
.footer_table table tr {
    border-top: 1px solid #888;
    border-bottom: 1px solid #888
}
.footer_table_text{
  line-height: 1.8;
}
.footer_adress{
  padding: 20px 15px 30px;
  display: flex;
  flex-direction: column;
  gap: var(--bs-space-md);
  line-height: 1.8;
}
.footer_logo{
  width: 385px;
}
.footer_lower_tel_box{
  margin-bottom: var(--bs-space-md);
}
.footer_lower_tel_box p{
  margin-bottom: 0;
}
.footer_lower_tel{
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  font-size: 34px;
}
.footer_lower_tel span{
  background-image: url(../img/tel.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 33px;
  height: 35px;
  margin-right: var(--bs-space-xs);
}
.footer_lower_tel a{
  text-decoration: none;
  color: var(--bs-text);
}
.copylight{
  background: var(--bs-primary);
  color: var(--bs-white);
  font-size: var(--bs-font-xs);
  text-align: center;
  padding: var(--bs-space-xs);
}
.copylight p{
  margin-bottom: 0;
}
.mod-sp-viewchange {
  display: none;
}
@media (max-width: 767px) {
  .mod-sp-viewchange {
    text-align: center;
    padding: var(--bs-space-xs);
    font-size: var(--bs-font-xs);
    background: var(--bs-primary-lightest);
    display: block;
    margin-bottom: 50px;
  }
}
/* PC表示モード時はSP幅でも表示 */
.pc-view .mod-sp-viewchange {
  display: block;
  text-align: center;
  padding: var(--bs-space-xs);
  font-size: var(--bs-font-xs);
  background: var(--bs-primary-lightest);
}
#fixed_footer {
  display: none;
}

/* SP */
@media (max-width: 767px) {
  footer .section_block{
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .footer_upper{
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction:column-reverse;
    gap: var(--bs-font-lg);
  }
  .footer_left,
  .footer_right{
    width: 100%;
  }
  .text_on_image{
    width: 100%;
    margin-top: 0;
  }
  .footer_logo{
    width: 100%;
  }
  .footer_lower_tel_box p{
    margin-bottom: var(--bs-space-xs);
  }
  .footer_lower_tel{
    padding: var(--bs-space-xxs) var(--bs-space-xs);
    border: 2px solid var(--bs-accent);
  }
  .footer_lower_tel{
    font-size: 22px;
  }
  .footer_lower_tel span{
    width: 23px;
    height: 24px;
  }
  .footer_lower_tel a{
    text-decoration: none;
    color: var(--bs-accent);
  }
  .copylight{
    border-bottom: 2px solid var(--bs-white);
  }
  #fixed_footer {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    bottom: 0;
    width: 100%;
    height: 50px;
    z-index: 8;
    color: var(--bs-white);
    background-color: var(--bs-primary);
    font-size: var(--bs-space-md);
  }
  .fixed_footer_tel{
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .fixed_footer_tel_icon{
    display: inline-block;
    min-width: 20px;
    height: 20px;
    background-image: url(../img/sp_tel.svg);
    background-repeat: no-repeat;
    background-position: right center;
    background-size: contain;
    margin-right: 8px;
  }
  #fixed_footer a{
    text-decoration: none;
    color: var(--bs-white);
  }
}

/* ---------------------------------------
   TOP
--------------------------------------- */
.top_mv{
  width: 100%;
}
.top_mv img{
  width: 100%;
}
.front_page h1{
  margin: 0;
}

@media (max-width: 767px) {
  .front_page{
    padding-top: 50px;
  }
}
.front_dr{
  background-image: url(../img/top/top_dr_bg.webp);
  margin: 0;
  position: relative;
  background-color: var(--bs-white);
  background-repeat: no-repeat;
  background-position: center center;
}
.front_dr_title{
  font-size: 40px;
  display: flex;
  align-items: center;
  gap: 20px;
  text-align: center;
  color: var(--bs-white);
  margin-top: var(--bs-space-xl);
  margin-bottom: var(--bs-space-lg);
}
.front_dr_title::before,
.front_dr_title::after {
  content: "";
  flex: 1;
  border-top: 2px solid var(--bs-primary);
}
.front_dr_box{
  display: flex;
  flex-direction: row-reverse;
  justify-content:space-between;
  gap: var(--bs-space-2xl);
}
.front_dr_img{
  width: 34%;
}
.front_dr_img_inner{
  position: relative;
}
.front_dr_name{
  font-family: var(--bs-font-serif);
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  line-height: 1.2;
  font-size: 22px;
  text-shadow: -1px -1px 1px #fff, -1px 0 1px #fff, -1px 1px 1px #fff, 0 -1px 1px #fff, 0 0 1px #fff, 0 1px 1px #fff, 1px -1px 1px #fff, 1px 0 1px #fff, 1px 1px 1px #fff;
  max-height: 66px;
  margin-bottom: 0;
  padding: var(--bs-space-xs);
  text-align: center;
  background-color: rgba(255, 255, 255, .8);
}
.front_dr_name span{
  font-size: 17px;
}
.front_dr_prof{
  color: var(--bs-white);
  line-height: 1.8;
}
.front_dr_prof_sub_title{
  font-size: var(--bs-space-lg);
}
.table_prof{
  border-collapse: separate;
  border-spacing: var(--bs-space-xs) var(--bs-space-sm);
  line-height: 1.4;
  margin-top: -12px;
  margin-left: -8px;
}
.table_prof th{
  white-space: nowrap;
  text-align: left;
  vertical-align: top;
  padding: 0;
  min-width: 70px;
}
.table_prof td {
    vertical-align: top;
}
@media (max-width: 767px) {
  .table_prof th,
  .table_prof td {
    display: block;
    white-space: normal;
  }
  .front_dr{
    background-size: auto 100%;
  }
  .front_dr_img{
    width: 75%;
  }
  .front_dr_title{
    font-size: var(--bs-font-lg);
  }
  .front_dr_box{
    flex-direction: column;
    align-items: center;
    gap: var(--bs-space-md);
  }
  .front_dr_name{
    font-size: 17px;
    line-height: 1.4;
  }
  .front_dr_prof_sub_title{
    font-size: var(--bs-space-md);
  }
}
.front_consultation{
  display: flex;
  gap: var(--bs-space-xl);
  flex-direction: row-reverse;
}
.front_consultation_img{
  width: 66%;
}
.front_consultation_tel p{
  margin-bottom: 0;
}
.front_consultation_tel a{
  font-size: var(--bs-space-xl);
  text-decoration: none;
  color: var(--bs-text);
  display: flex;
  align-items: center;
  text-align: center;
}
.front_consultation_tel a span{
  background-image: url(../img/tel_brown.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 28px;
  height: 28px;
  margin-right: 10px;
}
@media (max-width: 767px) {
  .front_consultation{
    flex-direction: column;
    gap: var(--bs-space-md);
  }
  .front_consultation_img{
    width: 100%;
  }
  .front_consultation_tel p{
    text-align: center;
    margin-bottom: var(--bs-space-xs);
  }
  .front_consultation_tel a{
    font-size: var(--bs-space-lg);
    padding: var(--bs-space-xxs);
    border: 2px solid var(--bs-primary);
    color: var(--bs-primary);
    justify-content: center;
  }

  
    
}
