@charset "UTF-8";

html{
    margin-top: 0 !important; scrollbar-gutter: stable;  scroll-behavior: smooth;
}
body{
  overflow-x: hidden;
  margin: 0;
  position: relative;
  font-family: sans-serif!important;
}
h1 {
    margin: 0;
}
h2{
 margin: 0;
}
h3{
 margin: 0;
}
p{
  margin:0;
  font-size: 18px;
}
b{
    font-size:18px;
}
.sp-none{
  display:block;
}
.tb-none{
  display:block;
}
.pc-none{
  display:none;
}
.sp-on{
  display:none;
}
.tb-on{
  display:none;
}
.on-600px{
  display:none;
}
.none-1200px{
  display:block;
}
/*-----fadeIn-----*/
.fade-in02 {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 2.5s ease, transform 1.5s ease;
}

.fade-in02.visible {
  opacity: 1;
  transform: translateY(0);
}

/*==== contents-size ====*/
.contents-width {
    min-width: 1200px;
    width: 80%;
    margin: 0 auto;
}
.section-top-pd {
  padding-top: 160px;
}
.section-bottom-pd{
  padding-bottom: 160px;
}
.top-pd-133{
  padding-top: 133px;
}
.page-top-pd{
  padding-top:80px;
}
.page-bottom-pd{
  padding-bottom:80px;
}
/*======  index-menu  ------*/
.hero-logo {
    display: contents;
}
.hero-logo img {
    width: 250px;
}
.hero-logo a{
  display: grid;
  text-decoration: none;
}
.menu-list a.regularmenu,.menu-contact a{
  position:relative;
  display: grid;
  text-decoration: none;
  color: white;
  /* font-size: 18px; */
  height: 100%;
  align-items: center;
  padding: 0 17px;
}
.hero-menu {
    position: absolute;
    z-index: 10;
    width: 100%;
    display: flex;
    justify-content: center;
    color:white;
}
.hero-menuBox {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: solid 1px;
}
.menu-right {
    display: flex;
    height: 100%;
    align-content: center;
}
.menu-list {
    display: flex;
}
.menu-list{
  *
  zoom: 1;
  list-style-type: none;
  width: auto;
  margin: 0;
  padding: 0;
}
.menu-list:before, .menu-list:after{
  content: "";
  display: table;
}
.menu-list:after{
  clear: both;
}
.menu-list li{
  position: relative;
  float: left;
  margin: 0;
  padding: 0;
  text-align: center;
  display: flex;
  align-items: center;
  transition:0.5s;
}
.menu-list li:hover{
	background:#ffffff4a;
}
.submenu li{
  margin:0;
}
.submenu-toggle{
  display:none;
}
.menu-list li a{
  display: block;
}
.menu-list li ul{
  list-style: none;
  position: absolute;
  z-index: 9999;
  top: 100%;
  left: 0;
  margin: 0;
  padding: 0;
  width: 213px;
}
.menu-list li ul li{
  width: 100%;
}
.menu-list li ul li a {
    padding: 10px 15px;
    background: #ffffff;
    text-align: left;
    text-decoration: none;
    color: black;
    transition:.5s;
    border-radius: 0px;
    margin: 1px 0;
    width: 100%;
    height: 35px;
    display: flex;
    align-items: center;
}
.menu-list .submenu a:hover{
  background: #e9cdc4;
}

#fade-in li ul.submenu {
  display: none; /* jQueryが制御 */
}


.menu-list p {
    margin: 0 12px;
}
.menu-contact img {
    width: 20px;
}
.menu-contact {
    display: flex;
}
.menu-contact a {
    display: flex;
    align-items: center;
}
.menu-contact span{
    border-left: 1px solid #ffffff;
    height: 100%;
    display: flex;
    align-items: center;
    background-color: #693c3c;
    transition:0.5s;
}
.menu-contact span:last-child{
    border-left: 1px solid #ffffff;
    height: 100%;
    display: flex;
    align-items: center;
    background-color: #373434;
    transition:0.5s;
}
.menu-contact span:hover{
	background-color:#b03737;
}
.menu-contact span:last-child:hover{
	background-color:#4f5d7e;
}
.menu-contact p{
      padding-left: 7px;
}


.fixed{
position: fixed;
top: 0;
}
.hero-menu.fixed {
    background: #4d1e1e47;
}

/*-yazirusi-icon-*/
.dli-chevron-round-right {
  display: inline-block;
  vertical-align: middle;
  color: #991f21;
  line-height: 1;
  position: relative;
  width: 0.6em;
  height: 0.6em;
  transform: translateX(-25%) rotate(45deg);
  margin-right: 10px;
}

.dli-chevron-round-right::before, .dli-chevron-round-right::after {
  content: '';
  position: absolute;
  background: currentColor;
  border-radius: 0.1em;
}

.dli-chevron-round-right::before {
  top: 0;
  left: 0;
  right: 0;
  height: 0.1em;
}

.dli-chevron-round-right::after {
  top: 0;
  right: 0;
  bottom: 0;
  width: 0.1em;
}

.modal{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.45);
  z-index:10000;
}
.modal[aria-hidden="false"]{
  display:flex !important;
}
.modal__panel{
  text-align: center;
  position:relative;
   background:#fff;
   max-width:520px;
   width:92%;
  padding:24px;
  border-radius:16px;
  box-shadow:0 10px 40px rgba(0,0,0,.2);
}
button#copyTel {
    background: #829194;
    border: none;
    border-radius: 5px;
    padding: 5px 15px;
    font-size: 16px;
    color: white;
    margin-right: 5px;
    transition: 0.5s;
}

.actions {
    display: flex;
    flex-direction: row;
    justify-content: center;
}

a#proceedTel {
    display: inline-block;
    background: #c44f47;
    color: white;
    padding: 5px 15px;
    text-decoration: none;
    border-radius: 5px;
    margin-right: 5px;
    transition: 0.5s;
}

a.secondary {
    display: inline-block;
    background: #334d64;
    color: white;
    padding: 5px 15px;
    text-decoration: none;
    border-radius: 5px;
    transition: 0.5s;
}

button.close {
    position: absolute;
    right: 12px;
    top: 12px;
    background: #d3d3d3;
    border: none;
    border-radius: 8px;
    font-size: 25px;
    justify-content: flex-end;
    transition: 0.5s;
}
h3#callTitle {
    margin-bottom: 10px;
}

p.tel {
    margin-bottom: 5px;
    color: #af4242;
}
button#copyTel:hover,a#proceedTel:hover,a.secondary:hover,button.close:hover{
  opacity: 0.5;
  transition: 0.5s;
  cursor:pointer;
}

/*-fin-*/
/*===footer===*/

.btn02,
a.btn02,
button.btn02 {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 4rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}

a.btn-flat02 {
  overflow: hidden;
  width: 270px;
  padding: 0.2rem 0;
  color: #2c2020;
  border-radius: 0;
  background: #ffffff;
}

a.btn-flat02 span {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

a.btn-flat02:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 145%;
  height: 950%;
  content: "";
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
  -webkit-transform: translateX(-98%) translateY(-25%) rotate(45deg);
  transform: translateX(-98%) translateY(-25%) rotate(45deg);
  background: #b18a8a;
}

a.btn-flat02:hover:before {
  -webkit-transform: translateX(-9%) translateY(-25%) rotate(45deg);
  transform: translateX(-9%) translateY(-25%) rotate(45deg);
}
.btn-container02 {
    margin: 10px 0;
    display: flex;
}
footer {
    color: white;
    background: #2d2020;
}

.footer-top {
    padding-top: 50px;
    padding-bottom: 15px;
    display: flex;
    justify-content: space-between;
    border-bottom: solid 1px #696969;
}
.footer-conteainer {
    width: 1200px;
    margin: 0 auto;
}
.footer-logo img {
    width: 230px;
}
.fotter-l {
    display: flex;
}
.footer-logo {
    margin: 0 18px;
}
.fotter-r h2
Specificity: (0,1,1)
 {
    font-size: 45px;
    font-weight: normal;
    margin-bottom: 30px;
}
.LP-menu {
    text-align: right;
}
.LP-menu p {
    font-size: 17px;
    padding: 0 0 3px;
}
footer p {
    font-size: 15px;
}
footer p a {
    color: white;
    text-decoration: none;
    transition: 0.5s;
}
footer p a:hover{
  opacity: 0.5;
}
footer h2 {
    font-size: 48px;
    font-weight: normal;
    margin-bottom: 25px;
}
.footer-logo a{
  transition: 0.5s;
}
.footer-logo a:hover {
  opacity: 0.5;
}
.footer-menu {
    display: flex;
}
.footer-menu p
Specificity: (0,1,1)
 {
    margin: 0 25px;
}
.footer-bottom {
    display: flex;
    justify-content: space-between;
    padding: 15px 0;
}
.footer-menu p {
    margin: 0 20px;
}
.dli-external-link {
  display: inline-block;
  vertical-align: middle;
  color: #9d9c9f;
  line-height: 1;
  width: 0.7em;
  height: 0.7em;
  border: 0.1em solid #9d9c9f;
  border-radius: 0.1em;
  background: #2e2020;
  box-sizing: content-box;
  position: relative;
  margin-right: 10px;
}

.dli-external-link > span {
  position: absolute;
  top: -0.2em;
  right: -0.2em;
  width: 45%;
  height: 45%;
  border: 0.1em solid currentColor;
  border-bottom: 0;
  border-left: 0;
  background: #2c2020;
  box-shadow: -0.1em 0.1em 0 0.1em #2c2020;
  box-sizing: border-box;
}

.dli-external-link > span::before {
  content: '';
  position: absolute;
  top: -0.05em;
  right: -0.1em;
  width: 0.1em;
  height: 0.7em;
  background: currentColor;
  transform: rotate(45deg);
  transform-origin: top center;
}
.credit p {
    font-size: 13px;
}
.btn02 img {
    height: 23px;
    margin-right: 5px;
}


/* --- responsive --- */
@charset "UTF-8";

.hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 50px;
  height: 30px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 10001;
  position: relative;
}
.hamburger span {
  display: block;
  height: 4px;
  width: 100%;
  background: #c8bfbf;
  border-radius: 2px;
}
.hamburger.active span:nth-child(1) {
  transform: rotate(45deg) translate(11px, 11px);
}
.hamburger.active span:nth-child(2) {
  opacity: 0;
}
.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(7px, -7px);
}
.hamburger span {
  transition: all 0.3s ease-in-out;
  transform-origin: center;
}
/* ハンバーガー展開時の暗幕 */
.menu-overlay {
    position: fixed;
    inset: 0;
    display: none;
    background: rgba(0, 0, 0, .35);
    z-index: 9;
}
@media screen and (max-width: 1200px)  {
  .none-1200px{
    display:none;
  }
.menu-list a.regularmenu, .menu-contact a {
    position: relative;
    z-index: 0;
  }
/* ハンバーガーメニューのボタン */
  .hamburger {
    display: flex;
    margin: 15px;
    justify-content: space-between;
  }
  .hero-menuBox {
    border: none;
  }
  .contents-width {
    min-width: auto;
  }
  .hero-menu,.hero-menu.fixed {
      border-bottom: 1px #0000001f solid;
      background: white;
    }
    .hero-logo img {
    width: 230px;
  }
/* メニュー非表示状態 */
  .menu-list,
  .menu-contact {
    opacity: 0;
    transform: translateY(-10px);
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
    flex-direction: column;
    width: 100%;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 10000;
  }
/* 表示時 */
  .menu-right.active .menu-list,
  .menu-right.active .menu-contact {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
/* メインメニュー背景調整 */
  .menu-list {
    padding-top: 135px;
    background: rgba(0, 0, 0, 0.7);
  }
/* 各メニュー項目のレイアウト */
  .menu-list li {
    border-bottom: 1px solid #ada0a0;
    width: 100%;
    justify-content: center;
    display: flex;
  }
/* サブメニュー内の li にも余白 */
  .menu-list li li {
    padding: 0;
  }
/* 電話・メールの項目調整 */
  .contact-phone,
  .contact-mail {
    height: 30px;
    padding: 20px 0;
    width: 100%;
    border-left: 0 !important;
    border-bottom: 1px solid #fff;
    justify-content: center;
    display: flex;
  }
  .submenu {
      display: none;
      position: absolute;
      top: 100%;
      left: 0;
      background-color: rgba(0, 0, 0, 0.9);
    }
  .submenu-toggle{
      display:block;
      cursor: pointer;
      -webkit-tap-highlight-color: rgba(0,0,0,0);
    }
  .submenu-toggle {
    position: absolute;
    left: 30%;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    cursor: pointer;
    margin-left: 8px;
    padding: 10px;
    min-width: 44px;
    min-height: 44px;
    box-sizing: content-box;
    transition: transform 0.3s ease;
  }
  ul.submenu.submenu-service,ul.submenu.submenu-about {
    width: 100%;
  }
  .menu-list li ul li a {
    justify-content: center;
    margin: 0;
    padding: 16px;
    font-size: 18px;
  }
  .arrow-icon {
    display: block;
    width: 8px;
    height: 8px;
    border-right: 2px solid white;
    border-bottom: 2px solid white;
    transform: rotate(-45deg); /* ▶（右向き） */
    transition: transform 0.3s ease;
  }
/* 開いたとき：下向きになるように半回転 */
  .submenu-toggle.open .arrow-icon {
    transform: rotate(45deg); /* ▼ */}
  .menu-item {
      position: relative;}
  .menu-item:hover > .submenu {
      display: block;}
  a.regularmenu {
        padding: 20px 0 !important;
        width: 100%;}
  .arrow_box:before {
      border: none;}
  .arrow_box:after {
        border: none;}
  .arrow_box {
        border: none;
        padding: 0;
        margin-top: 40px;}
  .arrow_box_right:before {
        border: none;}
  .arrow_box_right:after {
        border: none;}
  .footer-conteainer {
      width: 100%;}
  .footer-logo img {
      width: 200px;}
  .fotter-l {
      align-items: center;}
  .footer-top {
      padding: 30px 15px 20px 15px;}
  .footer-bottom {
      padding: 15px 10px;}
  .footer-menu p {
      margin: 0 13px;}
  .scroll_down a {
      bottom: 38px;}
  .scroll_down:after {
      height: 150px;
    }
  @keyframes circlemove{
    0%{bottom: 150px;
    }
  }
  :root{
  --submenu-dur: 260ms;          /* 展開時間（調整ポイント） */
  --submenu-ease: cubic-bezier(.2,.8,.2,1); /* しっとり */
  --submenu-offset: 10px;         /* 下から“ヌッ”の距離 */
  --submenu-origin-x: 16px;      /* どの位置から出すか（左=0px） */
}

/* メニュー項目は相対基準。必要なら既存に併合 */
.menu-item { position: relative; }

/* ▼ 基本の隠し方：高さゼロ + 不透明度0 + ちょい縮小&下げる */
.submenu{
  display: grid;                     /* ← 高さアニメの肝 */
  grid-template-rows: 0fr;           /* 閉じた状態：ゼロ高 */
  transition:
    grid-template-rows var(--submenu-dur) var(--submenu-ease),
    opacity var(--submenu-dur) var(--submenu-ease),
    transform var(--submenu-dur) var(--submenu-ease);
  opacity: 0;
  transform: translateY(var(--submenu-offset)) scale(.98);
  transform-origin: var(--submenu-origin-x) 0; /* 親ラベルの根元から“ヌッ” */
  will-change: transform, opacity;
  pointer-events: none;              /* 閉じてる間は触れない */
}

/* 中身がはみ出さないようラップを隠す（ul/li構造ならこれでOK） */
.submenu > * { overflow: hidden; }

/* ▼ 開いた状態（is-open で付与） */
.menu-item.is-open > .submenu{
  grid-template-rows: 1fr;   /* 自然な高さまで開く */
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* ▼ PCホバー開閉を使うなら（必要ならON） */
@media (hover:hover){
  .menu-item:hover > .submenu{
    grid-template-rows: 1fr;
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
  }
}

/* ▼ 動き苦手ユーザー尊重 */
@media (prefers-reduced-motion: reduce){
  .submenu{ transition: none; transform: none; }
}
/* 子liを段階的にフェードイン（is-open時だけ有効に） */
.menu-item.is-open > .submenu li{
  opacity: 0;
  transform: translateY(4px);
  transition:
    opacity 160ms var(--submenu-ease),
    transform 160ms var(--submenu-ease);
}
.menu-item.is-open > .submenu li{
  opacity: 1;
  transform: translateY(0);
}
.menu-item.is-open > .submenu li:nth-child(1){ transition-delay: 30ms; }
.menu-item.is-open > .submenu li:nth-child(2){ transition-delay: 60ms; }
.menu-item.is-open > .submenu li:nth-child(3){ transition-delay: 90ms; }
/* 以降、必要数ぶん足す or :nth-child(n+*) でまとめる */
#fade-in li ul.submenu { display: grid !important; }
}

@media screen and (max-width: 800px) {
  .pc-none{
    display:block;
  }
  .tb-none{
      display:none;
    }
    .tb-on{
      display:block;
    }
  .conte
  .submenu-toggle {
    left: 33%;
  }
  .top-contents-h2 {
    font-size: 40px;
  }
  .contents-width {
      width: 95%;
    }
  .footer-top {
      flex-direction: column;
      align-items: center;
    }
  .footer-top {
     flex-direction: column;
     align-items: center;
     padding-top: 30px;
     padding-bottom: 20px;
   }
  .fotter-l, .fotter-r {
     width: 100%;
     text-align: center;
     justify-content: center;
     flex-direction: column;
     align-items: center;
     display: flex;
   }
  .footer-logo {
     margin-bottom: 15px;
   }
  .footer-info {
     margin-bottom: 20px;
   }
   .LP-menu {
    text-align: center;
  }
  .LP-menu p {
     font-size: 16px;
     padding: 2px 0;
   }
   footer h2 {
    font-size: 40px;
}
  .footer-bottom {
     flex-direction: column;
     align-items: center;
     text-align: center;
   }
  .footer-menu {
     flex-wrap: wrap;
     justify-content: center;
     margin-bottom: 40px;
   }
  .footer-menu p {
     margin: 5px 10px;
   }
  .credit p {
     font-size: 13px;
     margin-bottom: 10px;
   }
  .btn-container02 {
     justify-content: center;
     flex-direction: column;
     gap: 10px;
   }
  .btn02 {
     width: 90%;
     max-width: 300px;
   }
   .footer-top {
       padding: 40px 10px 20px 10px;
   }
  .scroll_down:after {
      left: 37px;
    }
  .scroll_down:before {
      left: 32px;
    }
  .scroll_down:after {
      height: 200px;
    }
  .scroll_down a {
        bottom: 88px;
      }
  @keyframes circlemove{
      0%{bottom: 200px;
      }
    }
  .section-bottom-pd {
      padding-bottom: 120px;
    }
  .section-top-pd {
      padding-top: 120px;
    }
  }
@media screen and (max-width:767px) {
  .sp-on{
    display:block;
  }
  .sp-none{
    display:none;
  }

}
@media screen and (max-width: 600px){
  .page-bottom-pd {
    padding-bottom: 50px;
  }
  .page-top-pd {
    padding-top: 50px;
  }
  .on-600px{
    display:block;
  }
  .menu-list {
    padding-top: 132px;
  }
  .submenu-toggle {
      left: 23%;
    }
  .hamburger.active span:nth-child(1) {
    transform: rotate(45deg) translate(7px, 7px);
  }
  .hamburger.active span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -7px);
    }
.top-contents-h2 {
    font-size: 30px;
  }
.top-contents-h2 span {
    font-size: 20px;
  }
.hero-logo img {
    width: 170px;
  }
.hamburger {
    margin: 9px;
    height: 24px;
    width: 45px;
  }
.scroll_down:after {
    left: 26px;
  }
.scroll_down a {
      left: 40px;
    }
.scroll_down:before {
    left: 22px;
  }
p{
      font-size:16px;
    }
.section-bottom-pd {
    padding-bottom: 80px;
  }
.section-top-pd {
    padding-top: 80px;
  }
.top-contents-h2 {
    margin-bottom: 50px;
  }
.scroll_down:after {
    left: 21px;
  }
.scroll_down:before {
    left: 17px;
  }
.scroll_down a {
    left: 30px;
  }
.btn-flat, .btn-flat02 {
    padding: 0.5rem 2rem;
  }
.menu-contact {
    flex-direction: column;
  }
}
