:root{
  --color-paper: #fff;
  --color-paper-deep: #f1dfc6;
  --color-ink: #251d17;
  --color-muted: #35271e;
  --color-gold: #d9952f;
  --color-gold-soft: #f3c86f;
  --color-bronze: #b5812d;
  --color-rust-dark: #8a3929;
  --color-button-dark: #493b2b;
  --color-button-brown: #35271e;
  --color-white: #fffaf0;
  --font-display: "Kaisei Tokumin", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --font-sans: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --type-label-size: 0.95vw;
  --type-section-title: 3.05vw;
  --type-card-title: 1.38vw;
  --type-body-size: 1vw;
  --type-small-size: 0.92vw;
  --type-body-tracking: 0.05em;
  --type-button-size: 1.067vw;
  --type-button-tracking: 0.1em;
  --header-height: 5vw;
}
*{
  box-sizing: border-box;
}
html{
  color: var(--color-ink);
  background: var(--color-paper);
  font-family: var(--font-sans);
  line-height: 1.8;
}
body{
  min-width: 320px;
  margin: 0;
  background: var(--color-paper);
}
body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
figure,
dl,
dd,
ul,
ol{
  margin: 0;
}
ul,
ol{
  padding: 0;
  list-style: none;
}
img{
  display: block;
  max-width: 100%;
}
a{
  color: inherit;
  text-decoration: none;
}
.wrapper{
  width: 100%;
  margin: 0 auto;
  padding-top: var(--header-height);
  overflow-x: hidden;
}
.sectionInner{
  width: 91.89vw;
  margin: 0 auto;
}
.commonBtnUnder{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 0;
  padding: 0 0.9vw 0.7vw 1.25vw;
  color: var(--color-button-dark);
  font-family: var(--font-sans);
  font-size: 1.14vw;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.12em;
  text-indent: -0.35em;
  background: transparent;
  border: 0;
  border-bottom: 0.07vw solid currentColor;
  border-radius: 0;
}
.commonBtnUnder span{
  display: inline-flex;
  align-items: center;
  gap: 0.6vw;
}
.commonBtnUnder span::after{
  display: block;
  flex: 0 0 auto;
  width: 0.58vw;
  height: 0.58vw;
  content: "";
  border-top: 0.11vw solid currentColor;
  border-right: 0.11vw solid currentColor;
  transform: translateY(0.12em) rotate(45deg);
}
.commonSectionTtl{
  position: relative;
  z-index: 2;
  padding: 2.4vw 0 4.2vw;
  background: var(--color-paper);
}
.commonSectionTtl hgroup{
  display: grid;
  justify-items: center;
  width: 68.06vw;
  margin: 0 auto;
  text-align: center;
}
.commonSectionTtl p{
  margin: 0;
  color: var(--color-gold);
  font-family: Georgia, serif;
  font-size: var(--type-label-size);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.commonSectionTtl h1{
  margin: 0.35vw 0 0;
  font-family: var(--font-display);
  font-size: 2.42vw;
  font-weight: 500;
  line-height: 1.42;
  letter-spacing: 0.1em;
}
.commonSectionTtl .ornament{
  position: relative;
  left: auto;
  display: block;
  width: 0;
  height: 0;
  margin: 1.5vw auto 0;
  background: transparent;
  pointer-events: none;
}
.ornament{
  position: relative;
  width: 14.46vw;
  height: 0.07vw;
  margin: 2vw 0 2.25vw;
  background: var(--color-gold-soft);
}
.ornament::before,
.ornament::after{
  position: absolute;
  top: 50%;
  content: "";
  transform: translateY(-50%) rotate(45deg);
}
.ornament::before{
  left: 50%;
  width: 0.68vw;
  height: 0.68vw;
  background: var(--color-gold);
  transform: translate(-130%, -50%) rotate(45deg);
}
.ornament::after{
  left: 50%;
  width: 0.47vw;
  height: 0.47vw;
  background: var(--color-gold-soft);
  transform: translate(60%, -50%) rotate(45deg);
}
.siteHeader{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  min-height: var(--header-height);
  color: var(--color-ink);
  font-family: var(--font-display);
  background: #fff;
  backdrop-filter: blur(0.83vw);
}
.headerInner{
  display: flex;
  align-items: center;
  gap: 2vw;
  width: min(100% - 4.45vw, 106.95vw);
  min-height: var(--header-height);
  margin-inline: auto;
}
.brand{
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 0.49vw;
}
.brandLogo{
  display: block;
  width: 18vw;
  height: auto;
}
.siteNav{
  flex: 1 1 auto;
}
.siteNav ul{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1.35vw;
  list-style: none;
}
.siteNav a{
  display: block;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: 0.92vw;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}
.siteNav a span{
  display: none;
  font-size: 0.85em;
  line-height: 1.7;
}
.menuToggle{
  display: none;
}
.siteFooter{
  position: relative;
  color: rgba(255, 250, 240, 0.88);
  font-family: var(--font-sans);
  background: #3e3b2b;
}
.footerInner{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 7vw;
  align-items: start;
  width: 80vw;
  padding: 6vw 0 6vw 7vw;
}
.footerLogo .brandLogo{
  width: 20vw;
}
.footerBrand p{
  margin: 0.5vw 0 0;
  padding-left: 1.5vw;
  color: rgba(223, 207, 170, 0.86);
  font-family: var(--font-display);
  font-size: 1.18vw;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.08em;
}
.footerNav{
  display: grid;
  justify-self: end;
  width: 40vw;
}
.footerNavGroup{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1vw;
}
.footerNav a{
  color: rgba(255, 250, 240, 0.78);
  font-size: 1vw;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0.04em;
  transition: color 0.2s ease;
}
.footerNav a span{
  font-size: 0.85em;
}
.footerNav a:hover{
  color: #fffaf0;
}
.footerBottom{
  position: relative;
  z-index: 1;
  padding: 1.25vw 1.667vw;
  color: rgba(255, 250, 240, 0.48);
  letter-spacing: 0.08em;
  text-align: center;
}
.archiveInner{
  width: 80.56vw;
  margin: 0 auto;
}
.archiveList{
  padding: 0 0 8.4vw;
}
.archiveGrid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3vw 2.25vw;
  align-items: stretch;
}
.archiveCard{
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  color: var(--color-ink);
  text-decoration: none;
  background: var(--color-paper);
  border: 0.07vw solid color-mix(in srgb, var(--color-button-dark) 8%, transparent);
  box-shadow: 0 0.95vw 1.65vw rgba(47, 35, 22, 0.06);
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
.archiveCard:hover{
  border-color: color-mix(in srgb, var(--color-gold) 34%, transparent);
  box-shadow: 0 1.2vw 2.1vw rgba(47, 35, 22, 0.09);
  transform: translateY(-0.28vw);
}
.archiveCard figure{
  aspect-ratio: 1.42 / 1;
  margin: 0;
  overflow: hidden;
  background: color-mix(in srgb, var(--color-button-dark) 5%, var(--color-paper));
}
.archiveCard img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.archiveNoImage{
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  color: var(--color-gold);
  font-family: Georgia, serif;
  font-size: 1vw;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.archiveCard h2{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 6.1vw;
  margin: 0;
  padding: 1.15vw 1.25vw 1.25vw;
  font-family: var(--font-display);
  font-size: 1.16vw;
  font-weight: 800;
  line-height: 1.65;
  letter-spacing: 0.04em;
  text-align: center;
  overflow-wrap: anywhere;
}
.archiveMemoryCard{
  padding: 0.92vw 0.92vw 0;
}
.archivePagination{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.56vw;
  margin-top: 4.2vw;
}
.archivePagination a,
.archivePagination span{
  display: inline-grid;
  min-width: 2.5vw;
  min-height: 2.5vw;
  padding: 0 0.78vw;
  place-items: center;
  color: var(--color-button-dark);
  font-family: var(--font-display);
  font-size: 1vw;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.04em;
  background: var(--color-paper);
  border: 0.07vw solid color-mix(in srgb, var(--color-button-dark) 16%, transparent);
}
.archivePagination a:hover,
.archivePagination .current{
  color: var(--color-white);
  background: var(--color-button-dark);
  border-color: var(--color-button-dark);
}
.archiveEventsCards{
  display: grid;
  gap: 1.5vw;
  width: 72vw;
  margin: 0 auto;
  padding: 1.5vw 0;
  border-top: 0.069vw solid rgba(217, 149, 47, 0.24);
  border-bottom: 0.069vw solid rgba(217, 149, 47, 0.24);
}
.archiveEventsCard{
  position: relative;
  overflow: hidden;
  padding-bottom: 1.5vw;
  border-bottom: 0.069vw solid rgba(217, 149, 47, 0.24);
}
.archiveEventsCard a{
  display: grid;
  grid-template-columns: 12vw 1fr auto;
  gap: 2vw;
  align-items: center;
}
.archiveEventsCard::before{
  position: absolute;
  top: 50%;
  right: 1vw;
  z-index: 1;
  width: 1.111vw;
  height: 1.111vw;
  content: "";
  border-top: 0.12vw solid var(--color-bronze);
  border-right: 0.12vw solid var(--color-bronze);
  transform: translateY(-50%) rotate(45deg);
}
.archiveEventsCard:last-child{
  padding-bottom: 0;
  border-bottom: 0;
}
.archiveEventsVisual{
  position: relative;
  display: block;
  aspect-ratio: 1.45 / 1;
  overflow: hidden;
  background: color-mix(in srgb, var(--color-button-dark) 6%, var(--color-paper));
  border-radius: 0.5vw;
}
.archiveEventsVisual::after{
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, rgba(15, 10, 7, 0.02), rgba(15, 10, 7, 0.24));
  pointer-events: none;
}
.archiveEventsVisual img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.archiveEventsNoImage{
  display: grid;
  place-items: center;
  color: var(--color-gold);
  font-family: Georgia, serif;
  font-size: 1vw;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.archiveEventsNoImage::after{
  content: none;
}
.archiveEventsBody{
  display: grid;
  gap: 0.35vw;
  padding: 0.15vw 0 0;
}
.archiveEventsBody time{
  color: var(--color-bronze);
  font-family: var(--font-display);
  font-size: 1vw;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.archiveEventsBody h2{
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.38vw;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.archiveEmpty{
  color: var(--color-muted);
  font-size: var(--type-body-size);
  font-weight: 500;
  line-height: 2;
  letter-spacing: var(--type-body-tracking);
  text-align: center;
}
.articleDetail{
  color: var(--color-ink);
  background: var(--color-paper);
}
.articleHeader{
  padding-bottom: 3vw;
}
.articleDate{
  display: block;
  width: 58vw;
  margin: 0 auto 1.6vw;
  color: var(--color-bronze);
  font-family: var(--font-display);
  font-size: 1vw;
  font-weight: 800;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.articleBody{
  padding: 0 0 8.2vw;
}
.articleContent{
  width: 58vw;
  margin: 0 auto;
}
.articleContent p,
.articleContent ul,
.articleContent ol{
  color: var(--color-muted);
  font-size: 1.02vw;
  font-weight: 500;
  line-height: 2.05;
  letter-spacing: var(--type-body-tracking);
}
.articleContent p + p{
  margin-top: 1.25vw;
}
.articleContent figure,
.articleContent .wp-block-image{
  width: 52vw;
  margin: 3.1vw auto 0;
  overflow: hidden;
  background: color-mix(in srgb, var(--color-button-dark) 5%, var(--color-paper));
}
.articleContent figure + figure,
.articleContent .wp-block-image + .wp-block-image{
  margin-top: 1.6vw;
}
.articleContent img{
  width: 100%;
  height: auto;
}
.articleContent h2,
.articleContent h3{
  margin: 3.2vw 0 1.1vw;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.articleContent h2{
  font-size: 1.75vw;
}
.articleContent h3{
  font-size: 1.32vw;
}
.articleContent a{
  color: var(--color-rust-dark);
  text-decoration: underline;
  text-underline-offset: 0.22vw;
}
.articleNav{
  display: flex;
  justify-content: center;
  margin-top: 4.2vw;
}
.contactDetail{
  min-height: 100svh;
  color: var(--color-ink);
  background: var(--color-paper);
}
.contactSection,
.pageSection{
  padding: 0 0 7.84vw;
}
.contactInner{
  width: 54.05vw;
  margin: 0 auto;
}
.pageInner{
  width: 58vw;
  margin: 0 auto;
}
.contactForm{
  display: grid;
  gap: 0;
}
.contactField{
  display: grid;
  gap: 0.88vw;
  padding: 1.2vw 0 1vw;
}
.contactLabel{
  display: flex;
  align-items: center;
  gap: 0.74vw;
  color: var(--color-ink);
  font-size: 1.08vw;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: var(--type-body-tracking);
}
.contactRequired{
  padding: 0;
  color: var(--color-bronze);
  font-size: var(--type-small-size);
  font-weight: 600;
  line-height: 1.4;
}
.contactRequired::before{
  content: "※";
}
.contactHint{
  margin: 0;
  color: var(--color-muted);
  font-size: var(--type-small-size);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.contactForm input:not([type="radio"]),
.contactForm textarea{
  width: 100%;
  min-height: 3.04vw;
  padding: 0.68vw 1.08vw;
  color: var(--color-ink);
  font: inherit;
  font-weight: 600;
  letter-spacing: 0.04em;
  background: color-mix(in srgb, var(--color-ink) 2.5%, var(--color-paper));
  border: 0.07vw solid color-mix(in srgb, var(--color-ink) 13%, transparent);
  border-radius: 0.47vw;
  outline: none;
}
.contactForm input:not([type="radio"]):focus,
.contactForm textarea:focus{
  background: var(--color-paper);
  border-color: color-mix(in srgb, var(--color-bronze) 64%, transparent);
}
.contactForm textarea{
  min-height: 14.19vw;
  margin-top: 0.34vw;
  resize: vertical;
}
.contactChoiceGrid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.95vw 2.16vw;
  margin: 0.2vw 0 0.54vw;
  align-items: start;
}
.mwform-radio-field{
  display: block;
  margin: 0;
}
.mw_wp_form .contactChoiceGrid .horizontal-item + .horizontal-item{
  margin-left: 0;
}
.contactChoiceGrid label,
.contactChoiceGrid .mwform-radio-field label{
  position: relative;
  display: grid;
  grid-template-columns: 1.22vw 1fr;
  align-items: center;
  column-gap: 0.74vw;
  min-height: auto;
  padding: 0;
  color: var(--color-ink);
  font-size: 1.08vw;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  background: transparent;
  border: 0;
  border-radius: 0;
  cursor: pointer;
}
.contactChoiceGrid label:has(input:checked),
.contactChoiceGrid .mwform-radio-field label:has(input:checked){
  color: var(--color-bronze);
}
.contactChoiceGrid input,
.contactChoiceGrid .mwform-radio-field input{
  position: static;
  width: 1.22vw;
  height: 1.22vw;
  margin: 0;
  appearance: none;
  background: var(--color-paper);
  border: 0.07vw solid color-mix(in srgb, var(--color-ink) 38%, transparent);
  border-radius: 50%;
}
.contactChoiceGrid label:has(input:checked) input,
.contactChoiceGrid .mwform-radio-field label:has(input:checked) input{
  background: var(--color-bronze);
  border-color: var(--color-bronze);
  box-shadow: inset 0 0 0 0.31vw var(--color-paper);
}
.contactPhone .mwform-tel-field{
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: 0.61vw;
  align-items: center;
  width: 31.08vw;
}
.contactPhone .mwform-tel-field input{
  width: 100%;
}
.contactNotice{
  display: grid;
  gap: 0.61vw;
  margin-top: 1.35vw;
  padding: 0;
}
.contactNotice p{
  margin: 0;
  color: var(--color-muted);
  font-size: var(--type-small-size);
  font-weight: 700;
  line-height: 1.85;
  letter-spacing: 0.04em;
}
.contactActions{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.81vw;
  margin-top: 2.16vw;
}
.contactActions input[type="submit"]{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.58vw;
  padding: 0 2.3vw;
  color: var(--color-paper);
  font: inherit;
  font-weight: 700;
  letter-spacing: var(--type-button-tracking);
  background: var(--color-button-dark);
  border: 0;
  border-radius: 0.4vw;
  cursor: pointer;
}
.contactActions input[name="submitBack"]{
  color: var(--color-button-dark);
  background: transparent;
  border: 0.07vw solid color-mix(in srgb, var(--color-button-dark) 32%, transparent);
}
.mw_wp_form .error{
  color: var(--color-rust-dark);
  font-size: var(--type-small-size);
  font-weight: 700;
  line-height: 1.6;
}
.contactCompleteMessage{
  margin: 0 0 1.8vw;
  padding: 1.4vw;
  color: var(--color-ink);
  text-align: center;
  background: color-mix(in srgb, var(--color-gold) 8%, var(--color-paper));
  border: 0.07vw solid color-mix(in srgb, var(--color-gold) 42%, transparent);
}
.errorDetail{
  color: var(--color-ink);
  background: var(--color-paper);
}
.errorSection{
  padding: 7.8vw 0 9.6vw;
}
.errorInner{
  display: grid;
  justify-items: center;
  width: 86vw;
  margin: 0 auto;
  text-align: center;
}
.errorInner .errorCode{
  margin: 0;
  color: var(--color-gold);
  font-family: Georgia, serif;
  font-size: 5.8vw;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.errorInner h1{
  margin: 2.35vw 0 0;
  font-family: var(--font-display);
  font-size: 2.42vw;
  font-weight: 500;
  line-height: 1.42;
  letter-spacing: 0.1em;
}
.errorInner .ornament{
  margin: 2.55vw auto 3.4vw;
}
.errorInner p{
  color: var(--color-muted);
  font-size: var(--type-body-size);
  font-weight: 500;
  line-height: 2;
  letter-spacing: var(--type-body-tracking);
}
.errorInner a{
  margin-top: 4.15vw;
}
@media screen and (min-width: 1480px){
  :root{
    --type-label-size: 0.8788rem;
    --type-section-title: 2.8213rem;
    --type-card-title: 1.2765rem;
    --type-body-size: 0.925rem;
    --type-small-size: 0.851rem;
    --type-button-size: 0.987rem;
    --header-height: 4.625rem;
  }
  .sectionInner{
    width: 85rem;
  }
  .commonBtnUnder{
    padding: 0 0.8325rem 0.6475rem 1.1563rem;
    font-size: 1.0545rem;
    border-bottom-width: 0.0648rem;
  }
  .commonBtnUnder span{
    gap: 0.555rem;
  }
  .commonBtnUnder span::after{
    width: 0.5365rem;
    height: 0.5365rem;
    border-top-width: 0.1018rem;
    border-right-width: 0.1018rem;
  }
  .commonSectionTtl{
    padding: 2.22rem 0 3.885rem;
  }
  .commonSectionTtl hgroup{
    width: 62.9555rem;
  }
  .commonSectionTtl h1{
    margin-top: 0.324rem;
    font-size: 2.2385rem;
  }
  .commonSectionTtl .ornament{
    margin-top: 1.3875rem;
  }
  .ornament{
    width: 13.384rem;
    height: 0.0648rem;
  }
  .ornament::before{
    width: 0.625rem;
    height: 0.625rem;
  }
  .ornament::after{
    width: 0.4375rem;
    height: 0.4375rem;
  }
  .siteHeader{
    backdrop-filter: blur(0.7678rem);
  }
  .headerInner{
    gap: 1.85rem;
    width: min(100% - 4.1163rem, 98.9288rem);
  }
  .brand{
    gap: 0.4533rem;
  }
  .brandLogo{
    width: 16.65rem;
  }
  .siteNav ul{
    gap: 1.2488rem;
  }
  .siteNav a{
    font-size: 0.851rem;
  }
  .footerInner{
    width: 74rem;
    gap: 6.475rem;
    padding: 5.55rem 0 5.55rem 6.475rem;
  }
  .footerLogo .brandLogo{
    width: 18.5rem;
  }
  .footerBrand p{
    margin-top: 0.4625rem;
    padding-left: 1.3875rem;
    font-size: 1.0915rem;
  }
  .footerNav{
    width: 37rem;
  }
  .footerNavGroup{
    gap: 0.925rem;
  }
  .footerNav a{
    font-size: 0.925rem;
  }
  .footerBottom{
    padding: 1.1563rem 1.542rem;
  }
  .archiveInner{
    width: 74.518rem;
  }
  .archiveList{
    padding-bottom: 7.77rem;
  }
  .archiveGrid{
    gap: 2.775rem 2.0813rem;
  }
  .archiveCard{
    border-width: 0.0648rem;
    box-shadow: 0 0.8788rem 1.5263rem rgba(47, 35, 22, 0.06);
  }
  .archiveCard:hover{
    box-shadow: 0 1.11rem 1.9425rem rgba(47, 35, 22, 0.09);
    transform: translateY(-0.259rem);
  }
  .archiveCard h2{
    min-height: 5.6425rem;
    padding: 1.0638rem 1.1563rem 1.1563rem;
    font-size: 1.073rem;
  }
  .archiveMemoryCard{
    padding: 0.851rem 0.851rem 0;
  }
  .archivePagination{
    gap: 0.518rem;
    margin-top: 3.885rem;
  }
  .archivePagination a,
  .archivePagination span{
    min-width: 2.3125rem;
    min-height: 2.3125rem;
    padding: 0 0.7215rem;
    font-size: 0.925rem;
    border-width: 0.0648rem;
  }
  .archiveEventsCards{
    gap: 1.3875rem;
    width: 66.6rem;
    padding: 1.3875rem 0;
    border-top-width: 0.0638rem;
    border-bottom-width: 0.0638rem;
  }
  .archiveEventsCard{
    padding-bottom: 1.3875rem;
    border-bottom-width: 0.0638rem;
  }
  .archiveEventsCard a{
    grid-template-columns: 11.1rem 1fr auto;
    gap: 1.85rem;
  }
  .archiveEventsCard::before{
    right: 0.925rem;
    width: 1.0277rem;
    height: 1.0277rem;
    border-top-width: 0.111rem;
    border-right-width: 0.111rem;
  }
  .archiveEventsVisual{
    border-radius: 0.4625rem;
  }
  .archiveEventsNoImage{
    font-size: 0.925rem;
  }
  .archiveEventsBody{
    gap: 0.3238rem;
    padding-top: 0.1388rem;
  }
  .archiveEventsBody time{
    font-size: 0.925rem;
  }
  .archiveEventsBody h2{
    font-size: 1.2765rem;
  }
  .articleHeader{
    padding-bottom: 2.775rem;
  }
  .articleDate,
  .articleContent{
    width: 53.65rem;
  }
  .articleDate{
    margin-bottom: 1.48rem;
    font-size: 0.925rem;
  }
  .articleBody{
    padding-bottom: 7.585rem;
  }
  .articleContent p,
  .articleContent ul,
  .articleContent ol{
    font-size: 0.9435rem;
  }
  .articleContent p + p{
    margin-top: 1.1563rem;
  }
  .articleContent figure,
  .articleContent .wp-block-image{
    width: 48.1rem;
    margin-top: 2.8675rem;
  }
  .articleContent figure + figure,
  .articleContent .wp-block-image + .wp-block-image{
    margin-top: 1.48rem;
  }
  .articleContent h2,
  .articleContent h3{
    margin: 2.96rem 0 1.0175rem;
  }
  .articleContent h2{
    font-size: 1.6188rem;
  }
  .articleContent h3{
    font-size: 1.221rem;
  }
  .articleContent a{
    text-underline-offset: 0.2035rem;
  }
  .articleNav{
    margin-top: 3.885rem;
  }
  .contactSection,
  .pageSection{
    padding-bottom: 7.25rem;
  }
  .contactInner{
    width: 50rem;
  }
  .pageInner{
    width: 53.65rem;
  }
  .contactField{
    gap: 0.8125rem;
    padding: 1.1125rem 0 0.925rem;
  }
  .contactLabel{
    gap: 0.6875rem;
    font-size: 1rem;
  }
  .contactForm input:not([type="radio"]),
  .contactForm textarea{
    min-height: 2.8125rem;
    padding: 0.625rem 1rem;
    border-width: 0.0625rem;
    border-radius: 0.4375rem;
  }
  .contactForm textarea{
    min-height: 13.125rem;
    margin-top: 0.3125rem;
  }
  .contactChoiceGrid{
    gap: 0.875rem 2rem;
    margin: 0.1875rem 0 0.5rem;
  }
  .contactChoiceGrid label,
  .contactChoiceGrid .mwform-radio-field label{
    grid-template-columns: 1.125rem 1fr;
    column-gap: 0.6875rem;
    padding-left: 0;
    font-size: 1rem;
  }
  .contactChoiceGrid input,
  .contactChoiceGrid .mwform-radio-field input{
    width: 1.125rem;
    height: 1.125rem;
    border-width: 0.0625rem;
  }
  .contactChoiceGrid label:has(input:checked) input,
  .contactChoiceGrid .mwform-radio-field label:has(input:checked) input{
    box-shadow: inset 0 0 0 0.28125rem var(--color-paper);
  }
  .contactPhone .mwform-tel-field{
    gap: 0.5625rem;
    width: 28.75rem;
  }
  .contactNotice{
    gap: 0.5625rem;
    margin-top: 1.25rem;
  }
  .contactActions{
    gap: 0.75rem;
    margin-top: 2rem;
  }
  .contactActions input[type="submit"]{
    min-height: 3.3125rem;
    padding: 0 2.125rem;
    border-radius: 0.375rem;
  }
  .contactCompleteMessage{
    margin-bottom: 1.665rem;
    padding: 1.295rem;
    border-width: 0.0648rem;
  }
  .errorSection{
    padding: 7.215rem 0 8.88rem;
  }
  .errorInner{
    width: 79.55rem;
  }
  .errorInner .errorCode{
    font-size: 5.365rem;
  }
  .errorInner h1{
    margin-top: 2.1738rem;
    font-size: 2.2385rem;
  }
  .errorInner .ornament{
    margin: 2.3588rem auto 3.145rem;
  }
  .errorInner a{
    margin-top: 3.8388rem;
  }
}
@media screen and (max-width: 768px){
  :root{
    --type-label-size: 2.4vw;
    --type-card-title: 4.2vw;
    --type-body-size: 3.1vw;
    --type-small-size: 2.8vw;
    --type-button-size: 3vw;
    --space-block: 6vw;
    --header-height: 11.7vw;
  }
  .sectionInner{
    width: 95vw;
  }
  .commonBtnUnder{
    padding: 0 2vw 2vw 3vw;
    font-size: 3vw;
    letter-spacing: 0.08em;
    border-width: 0 0 0.24vw;
  }
  .commonBtnUnder span{
    gap: 1.6vw;
  }
  .commonBtnUnder span::after{
    width: 1.45vw;
    height: 1.45vw;
    border-top-width: 0.26vw;
    border-right-width: 0.26vw;
  }
  .commonSectionTtl{
    padding: 6vw 0 9vw;
  }
  .commonSectionTtl hgroup{
    width: 90vw;
  }
  .commonSectionTtl h1{
    margin-top: 1.5vw;
    font-size: 6.1vw;
  }
  .commonSectionTtl .ornament{
    width: 0;
    height: 0;
    margin-top: 4.2vw;
  }
  .ornament{
    width: 46vw;
    height: 0.2vw;
    margin: 1.667vw auto 0;
  }
  .ornament::before{
    width: 2.2vw;
    height: 2.2vw;
  }
  .ornament::after{
    width: 1.55vw;
    height: 1.55vw;
  }
  .siteHeader{
    min-height: var(--header-height);
  }
  .headerInner{
    align-items: center;
    width: 94vw;
    min-height: var(--header-height);
    padding-top: 0;
  }
  .brand{
    max-width: calc(100% - 12vw);
  }
  .brandLogo{
    width: 35vw;
  }
  .menuToggle{
    display: inline-grid;
    grid-template-rows: repeat(3, 1px);
    gap: 1.6vw;
    width: 8vw;
    height: 8vw;
    padding: 0;
    margin-top: 0;
    margin-left: auto;
    place-content: center;
    appearance: none;
    background: transparent;
    border: 0;
    line-height: 0;
  }
  .menuToggle span{
    display: block;
    width: 5.4vw;
    height: 1px;
    background: var(--color-ink);
    border-radius: 266vw;
    transition: opacity 0.2s ease, transform 0.28s ease;
  }
  .siteHeader.is-open .menuToggle span:nth-child(1){
    transform: translateY(calc(1.6vw + 1px)) rotate(45deg);
  }
  .siteHeader.is-open .menuToggle span:nth-child(2){
    opacity: 0;
    transform: scaleX(0);
  }
  .siteHeader.is-open .menuToggle span:nth-child(3){
    transform: translateY(calc(-1.6vw - 1px)) rotate(-45deg);
  }
  .siteNav{
    position: absolute;
    top: var(--header-height);
    left: 0;
    right: 0;
    display: block;
    width: 100%;
    padding: 4vw 6vw 6vw;
    visibility: hidden;
    opacity: 0;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 4vw 8vw rgba(47, 35, 22, 0.08);
    transform: translateY(-2vw);
    pointer-events: none;
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0.28s ease;
  }
  .siteHeader.is-open .siteNav{
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }
  .siteNav ul{
    display: grid;
    grid-template-columns: 1fr;
    gap: 7vw;
    justify-content: stretch;
    padding: 3vw 0 8vw;
  }
  .siteNav a{
    position: relative;
    padding: 0;
    font-size: 4vw;
    line-height: 1.45;
    text-align: center;
  }
  .siteNav a::after{
    content: none;
  }
  .siteNav a span{
    display: inline;
  }
  .footerInner{
    grid-template-columns: 1fr;
    width: 88vw;
    gap: var(--space-block);
    padding: 12vw 0 8vw;
  }
  .footerNav{
    order: 1;
    justify-self: stretch;
    width: 100%;
    padding-bottom: 5vw;
  }
  .footerNavGroup{
    gap: 2vw;
  }
  .footerNav a{
    font-size: 2.8vw;
  }
  .footerBrand{
    order: 2;
    text-align: center;
  }
  .footerLogo{
    justify-content: center;
  }
  .footerLogo .brandLogo{
    width: 48vw;
    margin-inline: auto;
  }
  .footerBrand p{
    margin-top: 0.5vw;
    padding-left: 2.5vw;
    font-size: 3.3vw;
  }
  .footerBottom{
    padding-bottom: 3vw;
    font-size: 2.8vw;
  }
  .archiveInner{
    width: 90vw;
  }
  .archiveList{
    padding-bottom: 18vw;
  }
  .archiveGrid{
    grid-template-columns: repeat(2, 1fr);
    gap: 6vw 3.2vw;
  }
  .archiveCard{
    border-width: 0.2vw;
    box-shadow: 0 2.8vw 5vw rgba(47, 35, 22, 0.07);
  }
  .archiveCard:hover{
    box-shadow: 0 2.8vw 5vw rgba(47, 35, 22, 0.07);
    transform: none;
  }
  .archiveCard h2{
    min-height: 17vw;
    padding: 2.8vw 2.6vw 3.2vw;
    font-size: 3.15vw;
    line-height: 1.55;
    letter-spacing: 0.02em;
  }
  .archiveMemoryCard{
    padding: 1.8vw 1.8vw 0;
  }
  .archiveNoImage{
    font-size: 2.7vw;
  }
  .archivePagination{
    gap: 1.8vw;
    margin-top: 9vw;
  }
  .archivePagination a,
  .archivePagination span{
    min-width: 9vw;
    min-height: 9vw;
    padding: 0 2.6vw;
    font-size: 3.2vw;
    border-width: 0.22vw;
  }
  .archiveEventsCards{
    gap: 2.4vw;
    width: 100%;
    padding: 3vw 0;
    border-top-width: 0.2vw;
    border-bottom-width: 0.2vw;
  }
  .archiveEventsCard{
    padding-bottom: 3vw;
    border-bottom-width: 0.2vw;
  }
  .archiveEventsCard a{
    grid-template-columns: 31vw 1fr 4vw;
    gap: 3.8vw;
  }
  .archiveEventsCard::before{
    right: 3vw;
    width: 2.7vw;
    height: 2.7vw;
    border-top-width: 0.3vw;
    border-right-width: 0.3vw;
  }
  .archiveEventsVisual{
    border-radius: 1vw;
  }
  .archiveEventsNoImage{
    font-size: 2.7vw;
  }
  .archiveEventsBody{
    gap: 0.7vw;
    padding: 0;
  }
  .archiveEventsBody time{
    font-size: 3vw;
  }
  .archiveEventsBody h2{
    font-size: 3.35vw;
    line-height: 1.55;
  }
  .articleHeader{
    padding-bottom: 7vw;
  }
  .articleDate,
  .articleContent{
    width: 86vw;
  }
  .articleDate{
    margin-bottom: 4vw;
    font-size: 3vw;
  }
  .articleBody{
    padding-bottom: 18vw;
  }
  .articleContent p,
  .articleContent ul,
  .articleContent ol{
    font-size: 3.2vw;
    line-height: 2;
  }
  .articleContent p + p{
    margin-top: 4vw;
  }
  .articleContent figure,
  .articleContent .wp-block-image{
    width: 100%;
    margin-top: 8vw;
  }
  .articleContent figure + figure,
  .articleContent .wp-block-image + .wp-block-image{
    margin-top: 4vw;
  }
  .articleContent h2,
  .articleContent h3{
    margin: 9vw 0 3vw;
  }
  .articleContent h2{
    font-size: 5vw;
  }
  .articleContent h3{
    font-size: 4vw;
  }
  .articleContent a{
    text-underline-offset: 0.7vw;
  }
  .articleNav{
    margin-top: 10vw;
  }
  .contactSection,
  .pageSection{
    padding-bottom: 18vw;
  }
  .contactInner,
  .pageInner{
    width: 90vw;
  }
  .contactField{
    gap: 2.5vw;
    padding: 3.6vw 0 3.1vw;
  }
  .contactLabel{
    gap: 2.4vw;
    font-size: 3.6vw;
  }
  .contactForm input:not([type="radio"]),
  .contactForm textarea{
    min-height: 11.5vw;
    padding: 2.7vw 3.4vw;
    border-width: 0.22vw;
    border-radius: 1.6vw;
  }
  .contactForm textarea{
    min-height: 50vw;
    margin-top: 1.2vw;
  }
  .contactChoiceGrid{
    grid-template-columns: repeat(2, 1fr);
    gap: 3.2vw 2.8vw;
    margin: 0.8vw 0 1.8vw;
  }
  .contactChoiceGrid label,
  .contactChoiceGrid .mwform-radio-field label{
    grid-template-columns: 4.25vw 1fr;
    column-gap: 2vw;
    padding-left: 0;
    font-size: 3.2vw;
  }
  .contactChoiceGrid input,
  .contactChoiceGrid .mwform-radio-field input{
    width: 4.25vw;
    height: 4.25vw;
    border-width: 0.26vw;
  }
  .contactChoiceGrid label:has(input:checked) input,
  .contactChoiceGrid .mwform-radio-field label:has(input:checked) input{
    box-shadow: inset 0 0 0 1.12vw var(--color-paper);
  }
  .contactPhone .mwform-tel-field{
    gap: 1.8vw;
    width: 100%;
  }
  .contactNotice{
    gap: 2.3vw;
    margin-top: 4vw;
  }
  .contactActions{
    display: grid;
    gap: 3vw;
    margin-top: 7vw;
  }
  .contactActions input[type="submit"]{
    width: 100%;
    min-height: 13vw;
    padding: 0 5vw;
    border-radius: 1.4vw;
  }
  .contactCompleteMessage{
    margin-bottom: 5vw;
    padding: 4vw;
    border-width: 0.22vw;
  }
  .errorSection{
    padding: 17vw 0 20vw;
  }
  .errorInner{
    width: 86vw;
  }
  .errorInner .errorCode{
    font-size: 10.2vw;
  }
  .errorInner h1{
    margin-top: 7vw;
    font-size: 6.1vw;
  }
  .errorInner .ornament{
    margin: 7vw auto 9vw;
  }
  .errorInner p{
    font-size: var(--type-small-size);
  }
  .errorInner a{
    margin-top: 11vw;
  }
}
