* {
  position: relative;
  border: solid 0px #888;
  font: inherit;
  line-height: inherit;
  letter-spacing: 0.1em;
  color: inherit;
}

.maru {
  font-family: "Zen Maru Gothic", cursive;
}

html,
body {
  overflow: hidden auto;
  min-height: 100vh;
  height: 100vh;
  max-height: 100vh;
  min-width: 100vw;
  width: 100vw;
  max-width: 100vw;
  margin: 0;
  padding: 0;
  font-family: "Zen Maru Gothic", cursive;
  font-weight: 600;
  line-height: 1.5;
  background-color: #fff;
  color: #624e46;
  overscroll-behavior: none;
  scroll-padding-top: 200px;
}

.serif {
  font-family: "Noto Serif JP";
}

a {
  color: -webkit-link;
}

::-webkit-scrollbar {
  -webkit-appearance: none;
  appearance: none;
  width: 10px;
  height: 10px;
  border-radius: 10px;
  background-color: rgba(0, 0, 0, 0.0666666667);
}

::-webkit-scrollbar-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 6px;
  height: 6px;
  border-radius: 6px;
  background-color: rgba(0, 0, 0, 0.2666666667);
  border: 2px solid transparent;
  background-clip: padding-box;
}

::-moz-placeholder {
  color: rgba(98, 78, 70, 0.5019607843);
}

::placeholder {
  color: rgba(98, 78, 70, 0.5019607843);
}

.tc {
  text-align: center;
}

.ts {
  text-align: start;
}

.te {
  text-align: end;
}

.fixed {
  position: fixed;
}

.abs {
  position: absolute;
}

.f {
  display: flex;
}

.if {
  display: inline-flex;
}

.v {
  flex-direction: column;
}

.fa {
  display: flex;
  justify-content: space-around;
}

.fac {
  display: flex;
  justify-content: space-around;
  align-items: center;
  align-content: center;
}

.fb {
  display: flex;
  justify-content: space-between;
}

.fbc {
  display: flex;
  justify-content: space-between;
  align-items: center;
  align-content: center;
}

.fbe {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  align-content: flex-end;
}

.fbs {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  align-content: flex-start;
}

.fc {
  display: flex;
  justify-content: center;
}

.fcc {
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  align-items: center;
  align-content: center;
}

.fce {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  align-content: flex-end;
}

.fcs {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  align-content: center;
}

.fe {
  display: flex;
  justify-content: space-evenly;
}

.fee {
  display: flex;
  justify-content: space-evenly;
  align-items: flex-end;
  align-content: flex-end;
}

.fend {
  display: flex;
  justify-content: flex-end;
}

.fes {
  display: flex;
  justify-content: space-evenly;
  align-items: flex-start;
  align-content: flex-start;
}

.fec {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  align-content: center;
}

.fendc {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  align-content: center;
}

.fende {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  align-content: flex-end;
}

.fs {
  display: flex;
  justify-content: flex-start;
}

.fsc {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  align-content: center;
}

.fxc {
  display: flex;
  align-items: center;
  align-content: center;
}

.fxe {
  display: flex;
  align-items: flex-end;
  align-content: flex-end;
}

.fxs {
  display: flex;
  align-items: flex-start;
  align-content: flex-start;
}

.wrap {
  flex-wrap: wrap;
}

.nowrap {
  flex-wrap: nowrap;
  text-wrap: nowrap;
}

.hidden {
  display: none;
}

.noselect {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.notouch {
  touch-action: none;
  pointer-events: none;
}

.nodeco {
  color: inherit;
  text-decoration: none;
}

.pointer {
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.ofhh {
  overflow: hidden hidden;
}

.ofha {
  overflow: hidden auto;
}

.ofah {
  overflow: auto hidden;
}

.ofaa {
  overflow: auto auto;
}

.wa {
  width: -moz-fit-content;
  width: fit-content;
}

.ha {
  height: -moz-fit-content;
  height: fit-content;
}

@media screen and (min-width: 769px) {
  .sp {
    display: none;
  }
  .pct {
    opacity: 0.001;
  }
}
@media screen and (max-width: 768px) {
  .pc {
    display: none;
  }
  .spt {
    opacity: 0.001;
  }
  .spv {
    flex-direction: column;
  }
  /* Additional mobile fixes to prevent overflow and improve spacing */
  .sp .fcc {
    position: relative;
    gap: 12px;
  }
  .sp .fcc img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 12px;
    margin: 0 auto;
  }

  /* Allow opting-out of mobile rounded corners for specific images */
  .sp img.no-radius {
    border-radius: 0 !important;
  }
}
.shadow1 {
  box-shadow: rgba(0, 0, 0, 0.1568627451) 0px 3px 6px;
}

.img1px {
  width: 1px;
  max-width: 1px;
  height: 1px;
  max-height: 1px;
}

.cover {
  -o-object-fit: cover;
  object-fit: cover;
}

.hoverOrange:hover {
  color: #fda217;
} /*# sourceMappingURL=style.css.map */

/* --- Custom enhancements: headings, buttons, responsive tweaks --- */
.section-title {
  display: block;
  text-align: left;
  padding: 12px 18px;
  border-left: 8px solid #cb3161;
  background: #f9e8ed;
  border-radius: 6px;
  margin: 12px auto 22px auto;
}
.btn--accent {
  background: #e63a4a;
}

/* Utility background class for footer color */
.bgF9E8ED {
  background: #f9e8ed !important;
}
/* Ensure SP footer background is visible and contents positioned correctly */
@media screen and (max-width: 768px) {
  .sp.footer.bgF9E8ED {
    position: relative;
    background: #f9e8ed !important;
    padding-top: 18px;
    padding-bottom: 600px; /* give space for absolutely positioned inner box */
    overflow: visible;
  }
  .sp.footer.bgF9E8ED img.w430 {
    display: block;
    margin: 0 auto;
    background: transparent;
  }
  .sp.footer.bgF9E8ED .abs {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 62px; /* match bot62 from JS */
  }
}

/* small spacer to give each major section a little breathing room */
.section-gap {
  padding-top: 10px;
  padding-bottom: 14px;
}

.btn {
  display: inline-block;
  padding: 12px 18px;
  border-radius: 999px;
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}

.btn--pink {
  background: #ff9fb1;
}

.btn--accent {
  background: #e63a4a;
}

/* Mobile tweaks */
@media screen and (max-width: 768px) {
  h2.f40 {
    font-size: 28px;
  }
  .section-title {
    padding: 10px 12px;
    border-left-width: 6px;
    font-size: 20px;
  }
  .btn {
    padding: 10px 14px;
    font-size: 16px;
  }
  img.w1920 {
    width: 100%;
    height: auto;
  }
  .pc .my120 {
    margin: 12px;
  }
  .sp img.w1000.abs {
    position: static;
    width: 220px;
    max-width: 60%;
    margin: -40px auto 0 auto;
    display: block;
  }
  .sp .f50 {
    font-size: 20px;
    padding: 6px 12px;
    text-align: center;
  }
  .sp .my100 {
    margin: 40px 0;
  }
  .sp .my50 {
    margin: 24px 0;
  }
  /* Ensure large figures/cards scale down on small screens */
  figure {
    width: 100% !important;
    min-width: 0 !important;
  }
  figure img {
    height: auto !important;
  }
  /* prevent body viewport issues on some phones */
  html,
  body {
    height: auto;
    max-height: none;
  }
  /* SP header navigation button style */
  .sp.header a.nav-btn,
  .sp .header a.nav-btn {
    padding: 6px 10px !important;
    border-radius: 16px !important;
    background: rgba(219, 49, 97, 0.08) !important;
    transition: background 0.2s;
  }
  .sp.header a.nav-btn:active,
  .sp .header a.nav-btn:active {
    background: rgba(219, 49, 97, 0.15) !important;
  }
}
