* { box-sizing: border-box; }
:root {
  color: #514e49;
  background: #f9f8f6;
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;
}
body { margin: 0; }
a { color: inherit; font: inherit; }
button { color: inherit; font: inherit; cursor: pointer; }
button:focus-visible, a:focus-visible { outline: 2px solid #8b7857; outline-offset: 4px; }
.hero { position: relative; height: 400px; overflow: hidden; box-shadow: 0 5px 10px #514a3f1a; }
.hero-art { position: absolute; inset: 0; z-index: 0; }
.hero-mountain {
  position: absolute; z-index: 1; left: 27.25%; right: 0; top: 0; height: 400px;
  background: linear-gradient(to bottom, #fff8 0%, #ffffff30 42%, #d9dde016 75%, transparent), url('../assets/hero-mountain.png') left top / 100% 121% no-repeat;
  filter: saturate(.68) contrast(.91) brightness(1.03);
  @media (max-width: 700px) { left: 160px; width: 790px; }
}
.hero-paper {
  position: absolute; left: 0; top: 0; width: 38.674%; height: 400px;
  @media (max-width: 700px) { width: 290px; }
}
.hero-paper-underlay {
  position: absolute; z-index: 0; left: 0; top: 0; width: 100vw; height: 400px;
  background: #f5f3ef url('../assets/paper-underlay.png') left top / calc(100vw * 1.025 * 700 / 2068) 420px no-repeat;
  @media (max-width: 700px) {
    background-size: 368.4210526316px 400px;
    background-position: calc(15vw - 163.2631578947px) 0;
  }
}
.hero-paper-underlay::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(#ffffff66, #ffffff24 58%, #ffffff12);
  mask-image: linear-gradient(to right, transparent 33%, #000 40%);
}
.hero-paper-surface {
  position: absolute; z-index: 2; inset: 0;
  background: linear-gradient(110deg, #faf9f7dc, #f7f5f2b8), url('../assets/paper-texture.png') 0 0 / 460px 760px;
  mask: url('../assets/paper-edge.svg') 0 0 / 100% 100% no-repeat;
}
.hero-paper-surface::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 88%, #e9e5dc35 95%, #fff9 98%);
}
.hero-plant-left {
  position: absolute; z-index: 3; left: 0; top: 82px; width: 140px; height: 390px;
  background: #8b806c; opacity: .4;
  mask: url('../assets/hero-botanical.png') center / 100% 100% no-repeat;
  @media (max-width: 700px) { left: -57px; opacity: .24; }
}
.hero-plant-right {
  position: absolute; z-index: 3; right: -55px; top: 61px; width: 180px; height: 365px;
  opacity: .36; transform: rotate(-13deg) scaleX(-1); filter: blur(5px);
  @media (max-width: 700px) { right: -110px; }
}
.hero-plant-right::before {
  content: ""; position: absolute; inset: 0; background: #817762;
  mask: url('../assets/hero-botanical.png') center / 100% 100% no-repeat;
}
.header {
  position: relative; height: 64px; display: flex; align-items: flex-start; padding: 17px 30px 0 34px;
  @media (max-width: 700px) { padding: 16px 18px; }
}
.logo { text-decoration: none; display: flex; flex-direction: column; }
.logo span { font-family: Georgia, "Times New Roman", serif; font-size: 15.5px; line-height: 22px; letter-spacing: 1.65px; }
.logo small { font-size: 10px; line-height: 16px; letter-spacing: 1.5px; font-weight: 400; position: relative; top: -2px; }
nav {
  display: flex; align-items: center; gap: 27.8px; margin-left: auto; margin-right: 48px; height: 31px;
  @media (max-width: 700px) { display: none; }
}
nav button { background: none; border: 0; padding: 0; font-size: 10px; font-weight: 400; white-space: nowrap; }
.consult {
  width: 99px; height: 31px; border: 1px solid #faf9f7; background: #eeece7a8;
  box-shadow: 1px 2px 4px #50483b38; font-size: 10px; font-weight: 400; letter-spacing: 1px;
  @media (max-width: 700px) { margin-left: auto; }
}
.hero-copy {
  position: absolute; left: 13.1676%; top: 100px;
  @media (max-width: 700px) { left: 8%; top: 110px; }
}
h1 {
  margin: 0; font-size: 32px; font-weight: 300; line-height: 49px; letter-spacing: 4px; white-space: nowrap;
  @media (max-width: 700px) { font-size: clamp(23px, 5vw, 32px); letter-spacing: 2px; }
}
.hero-copy p {
  margin: 13.4px 0 20px; font-size: 10px; font-weight: 400; line-height: 24px; letter-spacing: 1px;
  @media (max-width: 700px) { font-size: 9px; letter-spacing: .4px; }
}
.detail {
  display: flex; align-items: center; justify-content: space-between; width: 123px; height: 31px;
  padding: 0 18px; border: 1px solid #c9bdab; background: #ffffff20; font-size: 10px; font-weight: 400; letter-spacing: 1px;
}
.detail span { font-size: 18px; line-height: 1; }
.hero-stamp {
  position: absolute; left: 85.083%; top: 309px; width: 92px; height: 92px; opacity: .64; transform: rotate(-8deg);
  @media (max-width: 700px) { left: auto; right: 14px; }
}
