@charset "UTF-8";
/*==========================================================
	ウィンドウ・フォントサイズ設定
==========================================================*/
/*==========  サイズ設定 END  =============================*/
@import url("https://fonts.googleapis.com/css2?family=Arapey:ital@0;1&family=Noto+Serif+JP:wght@200;300;400;500;600;700&display=swap");
/*==========================================================
	レスポンシブ設定
==========================================================*/
/*==========  レスポンシブ設定 END  =====================*/
body {
  position: relative;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #362e2b;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  z-index: 1;
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
  font-feature-settings: "palt";
  font-size: clamp(1.2rem, 0.4419889503vw + 10.3425414365px, 1.6rem);
  user-select: none;
}
@media (max-width: 834px) and (orientation: portrait) {
  body {
    font-size: 1.4vw;
  }
}
@media (max-width: 480px) and (orientation: portrait) {
  body {
    font-size: 3.6vw;
  }
}
body img {
  width: 100%;
  user-drag: none;
  -webkit-user-drag: none;
  -moz-user-select: none;
  pointer-events: none;
}
@media (min-width: 768px) {
  body a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}
@media (max-width: 480px) and (orientation: portrait) {
  body br.pc {
    display: none;
  }
}
body br.sp {
  display: none;
}
@media (max-width: 480px) and (orientation: portrait) {
  body br.sp {
    display: inline;
  }
}

main {
  position: relative;
  width: 100%;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 1em;
  transition: 0.3s ease-out;
}
@media (max-width: 480px) and (orientation: portrait) {
  main {
    padding-top: 15vw;
  }
  main.open {
    transform: translateX(70vw);
    transition: 0.3s ease-out;
  }
}

article,
section,
aside,
details,
summary {
  position: relative;
  width: 100%;
  font-size: 1em;
  display: flex;
}

header,
footer {
  position: relative;
  width: 100%;
  font-size: 1em;
}

/*==========================================================
    header(ヘッダー)
==========================================================*/
header {
  background-color: #a90d26;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 4em 0 0;
}
@media (max-width: 480px) and (orientation: portrait) {
  header {
    padding: 0;
    height: 15vw;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 9;
  }
}
header::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%) rotate(104deg);
  width: 47em;
  bottom: 5em;
  opacity: 0.2;
  aspect-ratio: 1.223;
  background: url(../img/object_rose.webp) no-repeat center center/cover;
  mix-blend-mode: multiply;
}
@media (max-width: 480px) and (orientation: portrait) {
  header::before {
    bottom: 0;
    opacity: 0.4;
    border: solid 1px #0000ff;
    transform: unset;
    top: 0;
    left: 0;
    width: 100%;
    height: 15vw;
  }
}
header h1 {
  font-size: 1em;
  position: relative;
  width: 100%;
  max-width: 22rem;
}
@media (max-width: 480px) and (orientation: portrait) {
  header h1 {
    max-width: unset;
    width: 33vw;
    max-width: unset;
  }
  header h1 img {
    width: 100%;
  }
}
header h1 span {
  position: absolute;
  bottom: calc(100% - 0.6em);
  right: 1em;
  color: #d7ba8e;
  font-size: 12px;
}
@media (max-width: 480px) and (orientation: portrait) {
  header h1 span {
    display: none;
  }
}
header article {
  margin-top: 1em;
  display: flex;
  justify-content: center;
  gap: 0 3em;
}
@media (max-width: 480px) and (orientation: portrait) {
  header article {
    position: static;
  }
}
header article #hamburgerButton {
  display: none;
}
@media (max-width: 480px) and (orientation: portrait) {
  header article #hamburgerButton {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 15vw;
    aspect-ratio: 1;
    background-color: #760316;
  }
  header article #hamburgerButton span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6vw;
    height: 2px;
    background-color: #ffffff;
  }
  header article #hamburgerButton span:nth-of-type(1) {
    transform: translate(-50%, calc(-50% - 2vw));
  }
  header article #hamburgerButton span:nth-of-type(2) {
    transform: translate(-50%, -50%);
  }
  header article #hamburgerButton span:nth-of-type(3) {
    transform: translate(-50%, calc(-50% + 2vw));
  }
}
header article nav {
  font-size: 1em;
  display: flex;
  padding-bottom: 1em;
  gap: 0 2em;
}
@media (max-width: 480px) and (orientation: portrait) {
  header article nav {
    position: absolute;
    top: 15vw;
    left: 0;
    background-color: #362e2b;
    flex-direction: column;
    z-index: 10;
    height: calc(100vh - 15vw);
    height: calc(100dvh - 15vw);
    width: 70vw;
    transform: translateX(-70vw);
    transition: 0.3s ease-out;
  }
  header article nav.open {
    transform: translateX(0);
    transition: 0.3s ease-out;
  }
}
header article a {
  position: relative;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
}
header article a::before {
  content: "";
  position: absolute;
  top: 1.8em;
  left: 50%;
  transform: translateX(-50%) scale(0, 1);
  transform-origin: right top;
  width: calc(100% + 1.2em);
  height: 1px;
  background-color: #ffffff;
  transition: transform 0.5s ease-out;
}
@media (min-width: 480px) {
  header article a:hover::before {
    transform: translateX(-50%) scale(1, 1);
    transition: transform 0.3s ease-out;
    transform-origin: left top;
  }
}
@media (max-width: 480px) and (orientation: portrait) {
  header article a {
    font-size: max(12px, 1.125em);
    padding: 0.8em 0 0.8em 1em;
  }
  header article a:not(:last-of-type) {
    border-bottom: 2px solid #13171f;
  }
}
header article a.mail {
  display: none;
}
@media (max-width: 480px) and (orientation: portrait) {
  header article a.mail {
    display: inline;
  }
}
header .tel {
  background-color: #d7ba8e;
  color: #a90d26;
  font-family: "Arapey", serif;
  font-weight: 400;
  font-style: normal;
  font-size: max(12px, 1em);
  letter-spacing: 0.1em;
  font-style: italic;
  padding: 0.3em 2em;
}
@media (max-width: 480px) and (orientation: portrait) {
  header .tel {
    position: absolute;
    top: 0;
    right: 0;
    background-color: #760316;
    width: 15vw;
    aspect-ratio: 1;
  }
  header .tel::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8vw;
    aspect-ratio: 1;
    background: url(../img/icon/phone.svg) no-repeat center center/contain;
  }
}
header .tel span {
  font-size: 1em;
}
@media (max-width: 480px) and (orientation: portrait) {
  header .tel span {
    display: none;
  }
}

/*==========================================================
    footer(フッター)
==========================================================*/
footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #13171f;
}
footer nav {
  width: 100%;
  position: relative;
  font-size: 1em;
  border-bottom: 1px solid #ffffff;
  display: flex;
  justify-content: center;
  gap: 0 3em;
}
@media (max-width: 480px) and (orientation: portrait) {
  footer nav {
    display: none;
  }
}
footer nav a {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  padding: 2em 0;
  transition: 0.5s ease-out;
}
@media (min-width: 480px) {
  footer nav a:hover {
    filter: invert(40%);
    transition: 0.3s ease-out;
  }
}
footer article {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2em 0 3em;
  gap: 0 2em;
}
@media (max-width: 480px) and (orientation: portrait) {
  footer article {
    display: grid;
    grid-template-columns: 35vw 1fr;
    padding: 2vw 6vw 4vw;
    gap: 0 4vw;
  }
}
footer article .box_logo {
  font-size: 1em;
  max-width: 9.875em;
  filter: brightness(0) invert(100);
}
@media (max-width: 480px) and (orientation: portrait) {
  footer article .box_logo {
    max-width: unset;
  }
}
footer article .box_text {
  position: relative;
  font-size: 1em;
  display: flex;
  flex-direction: column;
  gap: 1em 0;
}
@media (max-width: 480px) and (orientation: portrait) {
  footer article .box_text {
    display: contents;
  }
}
footer article .box_text address {
  position: relative;
  display: flex;
  gap: 0 2em;
  font-size: 1em;
  align-items: center;
}
@media (max-width: 480px) and (orientation: portrait) {
  footer article .box_text address {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }
}
footer article .box_text address .add {
  font-size: max(12px, 0.875em);
  font-weight: 600;
  letter-spacing: 0.1em;
  font-weight: 600;
}
footer article .box_text address .tel {
  font-family: "Arapey", serif;
  font-weight: 400;
  font-style: normal;
  font-size: max(12px, 1.125em);
  letter-spacing: 0.2em;
}
@media (max-width: 480px) and (orientation: portrait) {
  footer article .box_text address .tel {
    font-size: max(12px, 1.5em);
    letter-spacing: 0.1em;
  }
}
footer article .box_text address .time {
  font-family: "Arapey", serif;
  font-weight: 400;
  font-style: normal;
  font-size: max(12px, 1.125em);
  letter-spacing: 0.2em;
}
footer article .box_text .mail {
  position: absolute;
  bottom: 0;
  left: calc(100% + 1.6em);
  font-size: 1em;
  width: 3em;
  aspect-ratio: 1;
  background: #ffffff url(../img/icon/mail.svg) no-repeat center center/50%;
  border-radius: 50%;
  transition: 0.5s ease-out;
}
@media (min-width: 480px) {
  footer article .box_text .mail:hover {
    filter: invert(90%);
    transition: 0.3s ease-out;
  }
}
@media (max-width: 480px) and (orientation: portrait) {
  footer article .box_text .mail {
    display: none;
  }
}
footer article .box_text .copyright {
  font-size: 12px;
  letter-spacing: 0.3em;
  font-family: "Arapey", serif;
  font-weight: 400;
  font-style: normal;
}
footer article .box_text .copyright i {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
}
@media (max-width: 480px) and (orientation: portrait) {
  footer article .box_text .copyright {
    grid-column: span 2;
    letter-spacing: 0.1em;
    text-align: center;
    margin-top: 1em;
  }
}

/*==========================================================
    main(メイン)
==========================================================*/
.box_h2 {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 1em;
  background-color: #13171f;
  padding: 1.8em 0 1.6em;
}
@media (max-width: 480px) and (orientation: portrait) {
  .box_h2 {
    padding: 4vw 0;
  }
}
.box_h2 h2 {
  font-family: "Arapey", serif;
  font-weight: 400;
  font-style: normal;
  font-size: max(12px, 2.75em);
  font-style: italic;
  letter-spacing: 0.2em;
  text-transform: capitalize;
}
@media (max-width: 480px) and (orientation: portrait) {
  .box_h2 h2 {
    font-size: max(12px, 2.25em);
    letter-spacing: 0.1em;
  }
}
.box_h2 h2::before {
  content: "“";
  margin-right: 0.1em;
}
.box_h2 h2::after {
  content: "“";
  display: inline-block;
  margin-right: 0.2em;
  transform: scale(-1, -1);
  height: 0.65em;
}
.box_h2 .h2_sidebar {
  font-size: max(12px, 1em);
  letter-spacing: 0.1em;
}
@media (max-width: 480px) and (orientation: portrait) {
  .box_h2 .h2_sidebar {
    font-size: max(12px, 1.125em);
    letter-spacing: 0.2em;
    margin-top: 0.2em;
  }
}

/*# sourceMappingURL=common.css.map */
