@charset "UTF-8";

:root {
--red:#d8292f;
--ink:#242424;
--muted:#6e6e6e;
--line:#e8e4df;
--cream:#fbf8f3
}
* {
  box-sizing: border-box
}
html {
  scroll-behavior: smooth
}
body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.8
}
img {
  display: block;
  max-width: 100%
}
.wrap {
  width: min(100% - 48px, 1200px);
  margin-inline: auto
}
header {
  display: none
}
.brand {
  width: min(400px, 72vw);
  height: auto;
  filter: drop-shadow(0 2px 10px #fff9)
}
.hero {
  position: relative;
  height: clamp(340px, 44vw, 520px);
  overflow: hidden;
  background: #222
}
.hero>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  filter: brightness(.77)
}
.hero-brand {
  position: absolute;
  top: 30px;
  left: 50%;
  transform: translateX(-50%);
  width: min(calc(100% - 40px), 680px)
}
.hero-brand img {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 3px 8px #0008)
}
.contact {
  position: relative;
  margin: -42px auto 0;
  width: min(calc(100% - 40px), 680px);
  z-index: 1;
  background: #fff;
  padding: 24px 32px 22px;
  border: 1px solid #eee8e1;
  box-shadow: 0 10px 32px #1b110d12;
  text-align: center
}
.contact-label {
  font-size: 15px;
  letter-spacing: .2em;
  color: var(--red);
  font-weight: 700
}
.contact p {
  font-size: 17px;
  line-height: 1.8;
  margin: 8px 0 0
}
.contact .phone {
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 27px;
  letter-spacing: .14em;
  color: var(--ink)
}
  .contact .phone a {
    text-decoration: none;
     color: var(--ink)
  }
section {
  padding: 78px 0
}
.intro {
  text-align: center;
  padding-top: 60px;
  padding-bottom: 56px
}
.eyebrow {
  color: var(--red);
  font-size: 13px;
  letter-spacing: .22em;
  font-weight: 700
}
.intro h2, .gallery h2, .next h2 {
  font-size: 36px;
  font-weight: 700;
  letter-spacing: .08em;
  margin: 7px 0 18px
}
.intro p {
  font-size: 20px;
  color: #555;
  margin: 0
}
.gallery {
  background: var(--cream)
}
.section-head {
  text-align: center;
  margin-bottom: 32px
}
.section-head p {
  color: var(--muted);
  font-size: 15px;
  margin: 0
}
.grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px
}
.thumb {
  aspect-ratio: 800 / 533;
  overflow: hidden;
  background: #d6e6f3
}
.thumb img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
/*
.thumb:nth-child(2n) img {
  object-position: 50% 72%;
  transform: scale(1.2)
}
.thumb:nth-child(3n) img {
  object-position: 30% 45%;
  transform: scale(1.25)
}
.thumb:nth-child(4n) img {
  object-position: 80% 55%;
  transform: scale(1.15)
}
*/
.next {
  text-align: center;
  padding: 78px 20px
}
.next-card {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  padding: 34px 24px;
  border: 1px solid var(--line);
  background: #fff
}
.next-card .eyebrow {
  font-size: 30px
}
.next-date {
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: clamp(24px, 3.4vw, 34px);
  font-weight: 700;
  letter-spacing: normal;
  margin: 12px 0 4px
}
.next-sub {
  font-size: 15px;
  color: #555;
  margin: 0
}
.next-note {
  font-size: 12px;
  color: #888;
  margin: 16px 0 0
}
footer {
  border-top: 1px solid var(--line);
  padding: 25px 20px;
  text-align: center;
  font-size: 13px;
  color: #888;
  letter-spacing: .08em
}
footer .pp {
  text-decoration: underline;
  color: #888;
  font-size: 12px;
}
@media(max-width:700px) {
.wrap {
  width: min(100% - 32px, 1200px)
}
.brand {
  width: min(400px, 72vw)
}
.hero {
  height: 360px
}
.hero>img {
  object-position: 54% center
}
.hero p {
  font-size: 12px
}
.contact {
  padding: 20px 16px;
  margin-top: -30px
}
.contact p {
  font-size: 16px
}
.contact .phone {
  font-size: 24px
}
section {
  padding: 58px 0
}
.intro {
  padding-top: 48px
}
.intro h2, .gallery h2, .next h2 {
  font-size: 28px
}
.intro p {
  font-size: 15px
}
.grid {
  grid-template-columns: repeat(2, 1fr);
  gap: 9px
}
.next {
  padding: 58px 16px
}
.next-card {
  padding: 28px 14px
}
}