@charset "utf-8";
/* CSS Document */
/******************************************************************

common 共通項目

********************************************************************/
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
button {
  background: transparent;
  cursor: pointer;
  outline: none;
}
a {
  color: inherit;
}
body {
  font-family: 'Noto Sans JP', sans-serif;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("../images/body-bg.jpg")
}
.section {
  padding: 64px 0 100px;
}
.container {
  width: 90%;
  max-width: 960px;
  margin: 0 auto;
  text-align: center;
}
.c-title {
  font-family: "Noto Serif JP", "YuMincho", "Yu Mincho", "游明朝体", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HGS明朝E", "MS P明朝", serif;
  color: #A52C35;
  text-align: center;
  font-size: clamp(1.313rem, 1.153rem + 0.8vw, 1.75rem);
  letter-spacing: 8%;
	font-weight: 500;
}
.c-title span {
  font-family: 'Noto Sans JP', sans-serif;
  display: block;
  padding-top: 8px;
  color: #999;
  font-size: clamp(0.875rem, 0.83rem + 0.23vw, 1rem);
  margin-bottom: 64px;
  font-weight: normal;
}
@media (max-width: 968px) {
  .c-title, .c-title span {
    font-weight: 500;
  }
  .c-title span {
    padding-top: 8px;
    margin-bottom: 32px;
  }
}
/******************************************************************

footer

********************************************************************/
footer {
  background: #A52C35;
}
.footerMenu-list {
  padding-top: 64px;
  display: flex;
  justify-content: center;
  margin-bottom: 32px;
  align-items: center;
  column-gap: 24px;
}
.footerMenu-list li a {
  color: #fff;
  font-size: 14px;
}
footer .link-data {
  display: flex;
  justify-content: center;
  margin-bottom: 48px;
}
footer .link-data img {
  max-width: 180px;
}
footer .link-data a {
  transition-duration: 300ms;
}
footer .link-data a:hover {
  opacity: 0.6;
}
/*　コピーライト　*/
footer address {
  font-family: 'Noto Sans JP', sans-serif;
  font-style: normal;
  text-align: center;
  padding: 24px;
  color: #fff;
  font-size: clamp(0.688rem, 0.619rem + 0.34vw, 0.875rem);
  letter-spacing: 10%;
}
@media (max-width: 1024px) {
  footer .pc {
    display: none
  }
}
/******************************************************************

mainvisual 

********************************************************************/
.mainvisual-wrap {
  padding-top: 0px; /* PCヘッダーの高さ */
}
.mainvisual-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  background: url("../../common/images/topimg.jpg") center/cover no-repeat;
}
.mv-copy-top {
  font-family: "Noto Serif JP", "YuMincho", "Yu Mincho", "游明朝体", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HGS明朝E", "MS P明朝", serif;
  font-weight: 600;
  position: static;
  color: #fff;
  font-size: clamp(1.125rem, 0.989rem + 0.68vw, 1.5rem);
  text-align: center;
  text-shadow: 3px 3px 8px rgba(0, 0, 0, 1);
}
.mainvisual-wrap img {
  width: 100%;
  height: auto;
  display: block;
}
.mv-copy-bottom {
  position: absolute;
  bottom: 3%;
  right: 3%;
  color: #fff;
  font-size: clamp(0.813rem, 0.744rem + 0.34vw, 1rem);
  text-align: justify;
  line-height: 1.4;
  text-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}
.mv-copy-bottom {
  font-size: 1rem;
}
/* タブレット・スマホ向け調整 */
@media (max-width: 768px) {
  .mv-copy-top {
    top: 8%;
    display: block;
    letter-spacing: 10%
  }
  .mv-copy-top span {
    display: block;
  }
  .mv-copy-bottom {
    bottom: 5%;
    right: 5%;
  }
}
/******************************************************************

images

********************************************************************/
.imagesArea-wrap .images {
  display: flex;
  flex-wrap: wrap;
  column-gap: 1px
}
.imagesArea-wrap .images .imagesBox {
  width: calc(100%/3 - 1px);
  margin-bottom: 24px;
}
.imagesBox dd {
  background: #000;
  color: #fff;
  font-size: clamp(0.75rem, 0.705rem + 0.23vw, 0.875rem);
  padding: 8px;
  letter-spacing: 8%;
}
@media (max-width: 968px) {
  .imagesArea-wrap .images .imagesBox {
    width: calc(100%/2 - 1px);
    margin-bottom: 24px;
  }
}
/******************************************************************

companyProfile

********************************************************************/
.container.companyProfile {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 3vw, 40px);
  align-items: stretch; /* ★重要：左右の高さを揃える */
}
/* 右側（map側）は高さを100%にして、伸びるようにする */
.companyProfile-map {
  position: relative;
  height: 100%;
  min-height: 360px; /* 左が短い時の保険。好みで調整 */
  border-radius: 12px; /* 任意 */
  overflow: hidden; /* 角丸の時に必要 */
}
/* iframeを箱いっぱいに */
.companyProfile-map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.companyProfile-table dl {
  display: flex;
  font-size: clamp(0.813rem, 0.744rem + 0.34vw, 1rem);
}
.companyProfile-table dl dt {
  width: 20%;
  padding: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
  text-align: left;
  border-bottom: solid 1px #A52C35;
}
.companyProfile-table dl dd {
  border-bottom: solid 1px #999;
  width: 80%;
  padding: clamp(1rem, 0.909rem + 0.45vw, 1.25rem);
  text-align: left
}
@media (max-width: 968px) {
  .companyProfile {
    grid-template-columns: 1fr !important;
  }
  .companyProfile-map {
    margin-top: 64px;
  }
}
/******************************************************************

header

********************************************************************/
.header-container {
  height: 90px;
  display: flex;
  align-items: center;
}

/**/
.header {
  position: fixed;
  top: 0; /* 初期状態は表示 */
  left: 0;
  right: 0;
  width: 100%;
  height: 100px;
  background: #fff;
  border-bottom: solid 4px #A52C35;
  z-index: 1000;
  transition: top 0.4s ease;
}


.menu-link dl dt {
  font-family: "Noto Serif JP", "YuMincho", "Yu Mincho", "游明朝体", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HGS明朝E", "MS P明朝", serif;
}
@media (max-width: 768px) {
  .header {
    height: 100px;
  }
  .header-container {
    height: 90px;
  }
}
@media (min-width: 1025px) {
  .header-logo img {
    width: 113px;
  }
  .nav-menu {
    padding-top: 0 !important;
  }
  .link-data img {
    height: 80px;
  }
  .menu-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    align-items: center;
    -ms-flex-align: center;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
    gap: clamp(20px, 2.0833333333333335vw, 40px);
  }
  .menu-link dl dt {
    font-size: 15px;
    text-align: center;
    margin-bottom: 8px;
  }
  .menu-link dl dd {
    font-size: 12px;
    color: #999;
    text-align: center;
  }
  .menu-link {
    position: relative;
    display: inline-block;
    padding-bottom: 4px; /* 下線との余白調整 */
    text-decoration: none;
    color: #333;
  }
  /* 下線の初期状態（中央から0） */
  .menu-link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: #A52C35;
    transform: translateX(-50%) scaleX(0);
    transform-origin: center;
    transition: transform 0.3s ease;
  }
  /* hover時に中央から左右へ伸びる */
  .menu-link:hover::after {
    transform: translateX(-50%) scaleX(1);
  }
  .header-container {
    padding: 8px 24px;
  }
}
.header-container {
  display: -ms-grid;
  display: grid;
  -webkit-box-align: center;
  align-items: center;
  -ms-flex-align: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -ms-grid-columns: 1fr 2fr;
  grid-template-columns: 1fr 2fr;
  background: #fff;
}
.header-logo {
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
}
@media (max-width: 768px) and (orientation: landscape) {
  header {
    padding: clamp(10px, 2.998500749625187vw, 20px);
  }
  .header-logo {
    width: clamp(70px, 17.991004497751124vw, 140px);
  }
}
.logo-link {
  display: block;
  -webkit-transition-duration: 300ms;
  transition-duration: 300ms;
}
.logo-link:hover {
  opacity: 0.6;
}
@media (max-width: 1024px) {
  .header-logo img {
    width: 100px;
  }
  .header-container {
    padding: 16px 24px;
  }
  .nav-menu {
    position: fixed;
    z-index: -1;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    height: calc(var(--vh, 1vh) * 100);
    padding-right: clamp(30px, 8vw, 60px);
    padding-bottom: clamp(30px, 8vw, 60px);
    padding-left: clamp(30px, 8vw, 60px);
    transition-duration: 300ms;
    transform: translateX(200%);
    overflow: auto; /* ナビメニューの背景色を変えたい時 */
    background-color: rgba(165, 44, 53, .9);
  }
  .nav-menu.active {
    transform: translateX(0);
  }
  .nav-menu.active .menu-link {
    display: flex;
    justify-content: center
  }
  .nav-menu.active .menu-link img {
    max-width: 220px;
    width: 100%;
  }
}
@media (max-width: 1024px) {
  .menu-item { /* 各ナビメニューの下線を変えたい時 */
    border-style: solid;
    border-color: #fff;
    border-bottom-width: 1px;
  }
}
.menu-link {
  display: block;
  color: #000;
  -webkit-transition-duration: 300ms;
  transition-duration: 300ms;
}
.menu-link:hover {
  opacity: 0.6;
}
.nav-menu.active .menu-link {
  color: #fff;
}
@media (max-width: 1024px) {
  .menu-link {
    font-size: clamp(14px, 1.0416666666666667vw, 20px);
    padding-top: clamp(10px, 2.6666666666666665vw, 20px);
    padding-bottom: clamp(10px, 2.6666666666666665vw, 20px);
    text-align: center; /* ナビメニューの文字色を変えたい時 */
    color: #000;
  }
}
@media (min-width: 1025px) {
  .menu-link {
    font-size: clamp(14px, 1.0416666666666667vw, 20px);
  }
  /* タブレットサイズ以上でハンバーガーメニューを丸ごと非表示 */
  .hamburger-button {
    display: none;
  }
}
.hamburger-button {
  width: -moz-fit-content;
  width: -webkit-fit-content;
  width: fit-content;
  height: clamp(13px, 3.466666666666667vw, 26px);
  margin-right: 0;
  margin-left: auto;
  cursor: pointer;
}
.hamburger-lines {
  position: relative;
  width: clamp(40px, 10.666666666666666vw, 90px);
  height: clamp(13px, 3.466666666666667vw, 26px);
  -webkit-transition-duration: 300ms;
  transition-duration: 300ms;
}
@media (max-width: 1024px) {
  .hamburger-lines {
    width: 44px;
    height: clamp(13px, 3.466666666666667vw, 26px);
  }
}
@media (max-width: 768px) and (orientation: landscape) {
  .hamburger-lines {
    width: clamp(30px, 7.496251874062969vw, 50px);
    height: clamp(15px, 2.998500749625187vw, 20px);
  }
  /*はんが*/
  .menu-item.link-data {
    display: flex;
    justify-content: center;
  }
}
.hamburger-lines.active {
  height: 1px;
}
.hamburger-lines .line {
  position: absolute;
  right: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  margin: auto;
  -webkit-transition-duration: 300ms;
  transition-duration: 300ms; /* ハンバーガーメニューの線の色を変えたい時 */
  background-color: #A52C35;
}
.hamburger-lines.active .line { /* ハンバーガーメニューオープン時の線の色を変えたい時 */
  /*  background-color: #fff;*/
}
.hamburger-lines .line:nth-child(1) {
  top: 0;
}
.hamburger-lines .line:nth-child(2) {
  bottom: 0;
}
/******************************************************************

コンタクトフォーム　contact

********************************************************************/
/*　　*/

.contactForm-wrap {
  padding-top: 200px;
}


input[type="text"], input[type="email"], input[type="tel"], textarea, select {
  border-width: 1px;
  border-color: #ccc;
  padding: 6px;
  border-radius: 5px;
}
:required {
  background: #fde9e9;
  border: solid 1px #cd816e;
}
.required {
  font-size: 11px;
}
/* テーブル全体 */
table.contact-table {
  width: 100%;
  border-collapse: collapse;
}
table.contact-table th, table.contact-table td {
  padding: 10px;
  vertical-align: top;
  border-bottom: 1px solid #ddd;
  font-size: clamp(0.813rem, 0.744rem + 0.34vw, 1rem);
}
table.contact-table th {
  width: 25%;
  text-align: left;
  background: #f7f7f7;
  font-weight: normal;
}
table.contact-table input, table.contact-table select, table.contact-table textarea {
  width: 100%;
  padding: 8px;
  box-sizing: border-box;
}
/* 郵便番号の横並び */
.zip-wrap {
  display: flex;
  align-items: center;
  gap: 16px;
}
.zip-wrap input {
  width: 80px !important;
}
/* 送信ボタン */
.submit-area {
  display: flex;
  justify-content: center;
  text-align: center;
  padding: 20px 0;
}
.submit-area button {
  padding: 12px 30px;
  cursor: pointer;
  letter-spacing: 30%;
}
/* スマホ対応 */
@media (max-width: 768px) {
  table.contact-table th, table.contact-table td {
    display: block;
    width: 100%;
  }
  table.contact-table th {
    background: none;
    border-bottom: none;
    padding-bottom: 0;
  }
  .zip-wrap {
    flex-wrap: wrap;
  }
}
/*　ボタン　*/
.original-button {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  color: #9b9b9b;
  font-size: clamp(0.813rem, 0.744rem + 0.34vw, 1rem);
  border-radius: 1px;
  width: 200px;
  height: 40px;
  font-weight: bold;
  transition: 0.3s;
  box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.5);
  background-color: [object object];
  background-image: linear-gradient(180deg, rgba(245, 245, 245, 1), rgba(204, 204, 204, 1));
}
.original-button:hover {
  transform: translateY(2px);
  box-shadow: 0 0 rgba(0, 0, 0, 0);
}
.submit-button {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  color: #ffffff;
  font-size: clamp(0.875rem, 0.784rem + 0.45vw, 1.125rem);
  border-radius: 10px;
  width: 200px;
  height: 40px;
  transition: 0.3s;
  background-color: #1976d2;
}
.submit-button:hover {
  opacity: .7;
}
/******************************************************************

.site policy サイトポリシー

********************************************************************/
.sitepolicy-wrap, .privacypolicy-wrap {
  padding-top: 200px;
}
.sitepolicy-wrap .linkMail {
  color: #547bca;
  text-decoration: underline;
}
@media (max-width: 768px) and (orientation: landscape) {
	
  .sitepolicy-wrap,
	.privacypolicy-wrap {
    padding-top: 200px !important;
  }
}
.sitepolicy-wrap .container, .privacypolicy-wrap .container {
  text-align: left;
}
.sitepolicyBox {
  background: #fff;
  padding: 16px 32px 32px;
  margin-bottom: 24px;
  border: solid 1px #e4e4e4;
  border-radius: 3px;
}
.sitepolicy-wrap h3, .privacypolicy-wrap h3 {
  color: #A52C35;
  font-size: 16px;
  font-weight: bold;
  margin-top: 16px;
  margin-bottom: 16px;
}
.sitepolicy-wrap p, .privacypolicy-wrap li {
  font-size: clamp(0.813rem, 0.744rem + 0.34vw, 1rem);
  text-align: justify;
  line-height: 1.8
}
.privacypolicy-wrap li {
  margin-bottom: 16px;
}
ol.square-num {
  counter-reset: num;
  padding-left: 0;
}
ol.square-num li {
  list-style: none;
  counter-increment: num;
  position: relative;
  padding-left: 2em;
  margin-bottom: 0.6em;
}
ol.square-num li::before {
  content: counter(num);
  position: absolute;
  font-size: clamp(0.75rem, 0.705rem + 0.23vw, 0.875rem);
  left: 0;
  top: 5px;
  width: 1.5em;
  height: 1.5em;
  background: #999; /* 好きな色に変更 */
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  border-radius: 2px; /* 四角の角丸を少しだけ */
}
/******************************************************************

ページの先頭へ戻るボタン

********************************************************************/
html {
  scroll-behavior: smooth;
}
.back-to-top {
  font-size: 14px;
  font-weight: 600;
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 60px;
  height: 60px;
  background: #A52C35;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}
.back-to-top.show {
  opacity: 1;
  pointer-events: auto;
}