@charset "UTF-8";
/**************************************************/
/* tour/ordermade/index.php（Figmaデザイン反映） */
/**************************************************/
:root {
  --om-btn-color: #104d51;
  --om-mask: url(#mask-1);
  --om-duration: 1s;
  --om-delay: 0s;
}

body.pg-ordermade {
  background-color: #faf8f9;
}

[data-animation=fadeInUp] {
  opacity: 0;
  transition-property: opacity, transform, filter;
  transition-duration: var(--om-duration, 0.75s);
  transition-delay: var(--om-delay, 0s);
  transition-timing-function: ease-out;
  transform: translateY(10px);
  filter: blur(3px);
  will-change: opacity, transform, filter;
}

[data-animation=fadeInUp].is-visible {
  opacity: 1;
  transform: translate(0, 0) scale(1);
  filter: blur(0);
}

[data-animation=brush] {
  transition: filter 1.25s ease-in-out;
  filter: blur(3px);
  mask: var(--om-mask) no-repeat center/100% 100%;
}
[data-animation=brush] ~ svg {
  position: absolute;
}
[data-animation=brush] ~ svg .brush {
  fill: none;
  stroke: white;
  stroke-width: 0.3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 10;
  stroke-dashoffset: 10;
}

[data-animation=brush].is-visible {
  filter: blur(0);
}
[data-animation=brush].is-visible ~ svg .brush {
  animation: drawStroke 1.5s ease-in-out forwards;
}

@keyframes drawStroke {
  to {
    stroke-dashoffset: 0;
  }
}
.om-heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 2rem;
  text-align: center;
  letter-spacing: 0.1em;
  margin: 7.5rem 0 0;
  color: #222;
}
@media (max-width: 767px) {
  .om-heading {
    margin-top: 4rem;
    font-size: 1.375rem;
    letter-spacing: 0;
  }
}

.om-btn-primary {
  font-family: "Noto Serif JP", serif;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  box-sizing: border-box;
  position: relative;
  min-height: 4rem;
  background: #fff;
  border: 1px solid var(--om-btn-color);
  box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.1);
  border-radius: 0.25rem;
  padding: 0.5rem 2rem 0.5rem 4rem;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.15s ease;
  transition-property: background, color, opacity;
  color: var(--om-btn-color);
}
.om-btn-primary:hover {
  opacity: 1;
  background: var(--om-btn-color);
  color: #fff;
}
.om-btn-primary::before {
  display: block;
  position: absolute;
  top: calc(50% - 0.9375rem);
  left: 1.5rem;
  width: 1.875rem;
  height: 1.875rem;
  background-color: currentColor;
  content: "";
  mask: no-repeat center/contain;
}
.om-btn-primary.-tel::before {
  mask-image: url(../images/icon-tel.svg);
}
.om-btn-primary.-mail::before {
  mask-image: url(../images/icon-mail.svg);
}
@media (max-width: 767px) {
  .om-btn-primary {
    width: 100%;
    font-size: 1rem;
  }
}

.om-btn-secondary {
  font-family: "Noto Serif JP", serif;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  box-sizing: border-box;
  position: relative;
  min-height: 4rem;
  background: #fff;
  border: 1px solid var(--om-btn-color);
  box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.1);
  border-radius: 0.25rem;
  padding: 0.5rem 2rem 0.5rem 4rem;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.15s ease;
  transition-property: background, color, opacity;
  color: var(--om-btn-color);
}
.om-btn-secondary:hover {
  opacity: 1;
}
.om-btn-secondary:not(.-telink):hover {
  background: var(--om-btn-color);
  color: #fff;
}
.om-btn-secondary::before {
  display: block;
  position: absolute;
  top: calc(50% - 0.9375rem);
  left: 1.5rem;
  width: 1.875rem;
  height: 1.875rem;
  background-color: currentColor;
  content: "";
  mask: no-repeat center/contain;
}
.om-btn-secondary.-tel::before {
  mask-image: url(../images/icon-tel.svg);
}
.om-btn-secondary.-mail::before {
  mask-image: url(../images/icon-mail.svg);
}
@media (max-width: 767px) {
  .om-btn-secondary {
    width: 100%;
    font-size: 1.125rem;
  }
}

.om-staff-card {
  text-align: center;
}
.om-staff-card > .photo {
  width: 9.375rem;
  height: 14rem;
  margin: 0 auto;
}
.om-staff-card > .photo > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: bottom;
}
.om-staff-card > .role {
  font-size: 1rem;
  line-height: 1.6;
  margin: 1.5rem 0 0;
}
.om-staff-card > .badge {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  margin: 0.375rem 0 0;
  white-space: nowrap;
}
.om-staff-card > .badge > .tag {
  background: #1d8e94;
  color: #fff;
  border-radius: 4px;
  padding: 0.125rem 0.5rem;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.6;
}
.om-staff-card > .badge > .name {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
}
.om-staff-card.-compact {
  width: 10rem;
}
.om-staff-card.-compact > .photo {
  width: 9.375rem;
  height: 11.25rem;
}
@media (max-width: 767px) {
  .om-staff-card > .photo {
    width: 7rem;
    height: 10.5rem;
  }
  .om-staff-card > .role {
    font-size: 0.8125rem;
  }
  .om-staff-card > .badge {
    flex-direction: column;
    gap: 0.25rem;
  }
  .om-staff-card > .badge > .tag {
    font-size: 0.8125rem;
  }
  .om-staff-card > .badge > .name {
    font-size: 1.25rem;
  }
}

.om-float-bar {
  display: none;
  position: fixed;
  z-index: 90;
  bottom: 0;
  left: 0;
  width: 100%;
}
.om-float-bar > .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  position: relative;
  max-width: 100%;
  height: 4rem;
  margin: 0;
  padding: 0.75rem 1.5rem;
  background: linear-gradient(90deg, #1d8e94 0%, #104d51 100%);
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: opacity 0.3s;
}
.om-float-bar > .btn:hover {
  opacity: 1;
}
.om-float-bar > .btn::after {
  content: "";
  position: absolute;
  right: 1.875rem;
  top: calc(50% - 0.5rem);
  border: solid transparent;
  border-width: 0.5rem 0 0.5rem 0.625rem;
  border-left-color: #f1e9b7;
}

.om-hero {
  position: relative;
  height: 41.5rem;
  background: url(../images/hero.jpg);
  background-size: cover;
  background-position: center;
}
.om-hero > .inner {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  position: relative;
  max-width: 83.5rem;
  height: 100%;
  margin: auto;
  padding: 0 4rem 4rem;
}
.om-hero > .inner > .card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 35.875rem;
  min-height: 28.5rem;
  padding: 3.5rem 2.5rem;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 0.5rem;
  text-align: center;
  box-sizing: border-box;
}
.om-hero > .inner > .card > .subtitle {
  font-family: "Noto Serif JP", serif;
  margin: 0;
  font-size: 1.375rem;
  font-weight: 700;
  color: #115054;
  line-height: 1.5;
  letter-spacing: 0.059em;
}
.om-hero > .inner > .card > .title {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  line-height: 1.25;
  margin: 2rem 0 0;
}
.om-hero > .inner > .card > .title > small {
  display: block;
  font-size: 1.375rem;
  letter-spacing: 0.118em;
}
.om-hero > .inner > .card > .title > strong {
  display: block;
  margin-top: 0.5rem;
  font-size: 3rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.om-hero > .inner > .card > .text {
  font-family: "Noto Serif JP", serif;
  font-size: 1rem;
  line-height: 2;
  margin: 1.5rem 0 0;
}
.om-hero > .inner > .card > .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  position: relative;
  width: 22.5rem;
  max-width: 100%;
  height: 4rem;
  margin: 2rem 0 0;
  padding: 0.75rem 1.5rem;
  border-radius: 0.375rem;
  background: linear-gradient(90deg, #1d8e94 0%, #104d51 100%);
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: opacity 0.3s;
}
.om-hero > .inner > .card > .btn:hover {
  opacity: 0.8;
}
.om-hero > .inner > .card > .btn::after {
  content: "";
  position: absolute;
  right: 1.875rem;
  top: calc(50% - 0.5rem);
  border: solid transparent;
  border-width: 0.5rem 0 0.5rem 0.625rem;
  border-left-color: #f1e9b7;
}
@media (max-width: 767px) {
  .om-hero {
    height: calc(100svh - 8rem);
    min-height: 33.75rem;
    background-position: 80% center;
  }
  .om-hero > .inner {
    display: block;
    padding: 2.5rem 1.5rem 10rem;
  }
  .om-hero > .inner > .card {
    width: auto;
    min-height: 0;
    padding: 1.5rem 1.25rem;
  }
  .om-hero > .inner > .card > .subtitle {
    font-size: 0.9375rem;
  }
  .om-hero > .inner > .card > .title {
    margin-top: 0.75rem;
  }
  .om-hero > .inner > .card > .title > small {
    font-size: 0.9375rem;
  }
  .om-hero > .inner > .card > .title > strong {
    margin-top: 0.25rem;
    font-size: 1.5rem;
    white-space: normal;
  }
  .om-hero > .inner > .card > .text {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.75;
  }
  .om-hero > .inner > .card > .btn {
    position: absolute;
    bottom: 3.75rem;
    left: 0;
    right: 0;
    width: 17.5rem;
    height: 3.5rem;
    margin: 1.5rem auto 0;
    font-size: 1.125rem;
  }
}

.om-intro {
  position: relative;
  padding: 7.5rem 0 12.5rem;
}
.om-intro::before {
  display: block;
  position: absolute;
  top: -5.125rem;
  left: 0;
  width: 100%;
  height: 5.1875rem;
  background: url(../images/wave-01.svg) repeat-x center bottom, url(../images/wave-02.svg) repeat-x center bottom;
  content: "";
}
.om-intro > .inner {
  max-width: 65.5rem;
  margin: 0 auto;
  padding: 0 1.25rem;
  box-sizing: border-box;
  position: relative;
}
.om-intro > .watercolor {
  position: absolute;
  top: 55%;
  right: 0;
  width: 44.5rem;
  z-index: -1;
}
.om-intro > .watercolor img {
  display: block;
  width: 100%;
  pointer-events: none;
}
@media (max-width: 767px) {
  .om-intro {
    padding: 2.5rem 0 5rem;
  }
  .om-intro::before {
    top: -2.5625rem;
    height: 2.625rem;
    background-size: 42.6875rem auto, 42.6875rem auto;
  }
  .om-intro > .watercolor {
    width: 22.25rem;
  }
}

.om-intro-brand {
  display: flex;
  position: relative;
  z-index: 0;
}
.om-intro-brand > .bg {
  position: absolute;
  inset: 0 auto 0 -10.25rem;
  width: 100%;
  max-width: 83.5rem;
  margin: auto;
  background: url(../images/bg-intro.png) no-repeat center/contain;
  aspect-ratio: 1336/508;
  z-index: -1;
}
.om-intro-brand > .vertical {
  writing-mode: vertical-rl;
  text-orientation: upright;
  margin-left: auto;
  width: fit-content;
}
.om-intro-brand > .vertical > .heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  font-size: 2rem;
  line-height: 1.6875;
  letter-spacing: 0.1em;
  color: #104d51;
  margin: 0 0 0 5rem;
}
.om-intro-brand > .vertical > .heading > .line {
  display: block;
}
.om-intro-brand > .vertical > .heading > .line:last-child {
  margin-top: 3.9375rem;
}
.om-intro-brand > .vertical > .phrase {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 1.125rem;
  line-height: 2.3333333333;
  letter-spacing: 0.1em;
  color: #333;
  margin: 0;
}
@media (max-width: 767px) {
  .om-intro-brand {
    padding-bottom: 11.25rem;
  }
  .om-intro-brand > .bg {
    width: auto;
    max-width: none;
    inset: auto -1.25rem 0;
    background-size: cover;
    aspect-ratio: 16/9;
  }
  .om-intro-brand > .vertical {
    min-height: 29.90625rem;
    margin-right: 0;
  }
  .om-intro-brand > .vertical > .heading {
    font-size: 1.375rem;
    margin-left: 1.75rem;
  }
  .om-intro-brand > .vertical > .heading > .line:last-child {
    margin-top: 1.75rem;
  }
  .om-intro-brand > .vertical > .phrase {
    font-size: 0.9375rem;
  }
}

.om-intro-worries {
  position: relative;
  margin-top: 10rem;
  z-index: 0;
}
.om-intro-worries > .heading {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-size: 2rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: left;
  color: #000;
  margin: 0;
}
.om-intro-worries > .lead-text {
  text-align: left;
  font-size: 1rem;
  line-height: 2;
  margin: 1.5rem 0 0;
}
.om-intro-worries > .grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5rem 3rem;
  margin-top: 3.4375rem;
}
.om-intro-worries > .grid > .card > .photo {
  aspect-ratio: 480/300;
  border-radius: 4px;
  overflow: hidden;
}
.om-intro-worries > .grid > .card > .photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.om-intro-worries > .grid > .card > .title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.375rem;
  font-weight: 600;
  margin: 2rem 0 0;
}
.om-intro-worries > .grid > .card > .title > .key {
  font-size: 1.75rem;
  background: linear-gradient(transparent 62%, #f1e9b7 62%);
  padding: 0 2px;
}
.om-intro-worries > .grid > .card > .text {
  font-size: 1rem;
  line-height: 2;
  margin: 0.875rem 0 0;
}
.om-intro-worries > .note {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 3.5rem;
  margin-top: 5.3125rem;
}
.om-intro-worries > .note > .collage {
  position: relative;
  flex: none;
  width: 34.9375rem;
  max-width: 55.5%;
  aspect-ratio: 559/348;
}
.om-intro-worries > .note > .collage > .photo {
  position: absolute;
  border-radius: 0.5rem;
  overflow: hidden;
}
.om-intro-worries > .note > .collage > .photo.-a {
  top: 0;
  left: 0;
  width: 67.6%;
}
.om-intro-worries > .note > .collage > .photo.-b {
  top: 53.7%;
  left: 56.7%;
  width: 43.3%;
}
.om-intro-worries > .note > .collage > .photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.om-intro-worries > .note > .text {
  font-family: "Noto Serif JP", serif;
  font-size: 1.3125rem;
  font-weight: 400;
  line-height: 2.8;
  letter-spacing: 0.06em;
  margin: 0;
}
.om-intro-worries > .watercolor1,
.om-intro-worries > .watercolor2 {
  position: absolute;
  z-index: -1;
  pointer-events: none;
}
.om-intro-worries > .watercolor1 img,
.om-intro-worries > .watercolor2 img {
  display: block;
  width: 100%;
  pointer-events: none;
}
.om-intro-worries > .watercolor1 {
  top: -7.5rem;
  left: -7.5rem;
  width: 27.25rem;
}
.om-intro-worries > .watercolor2 {
  bottom: -5rem;
  left: -6.25rem;
  width: 18.75rem;
}
@media (max-width: 1240px) {
  .om-intro-worries > .note {
    flex-direction: column;
    text-align: center;
  }
  .om-intro-worries > .note > .collage {
    width: 100%;
  }
  .om-intro-worries > .watercolor2 {
    bottom: 7.5rem;
  }
}
@media (max-width: 767px) {
  .om-intro-worries {
    margin-top: 5rem;
  }
  .om-intro-worries > .heading {
    font-size: 1.5rem;
    letter-spacing: 0;
  }
  .om-intro-worries > .lead-text {
    font-size: 0.9375rem;
  }
  .om-intro-worries > .grid {
    grid-template-columns: 1fr;
    gap: 1.875rem;
    margin-top: 1.875rem;
  }
  .om-intro-worries > .grid > .card > .title {
    font-size: 1.25rem;
  }
  .om-intro-worries > .grid > .card > .title > .key {
    font-size: 1.5rem;
  }
  .om-intro-worries > .note {
    gap: 1.5rem;
    margin-top: 4rem;
  }
  .om-intro-worries > .note > .collage {
    max-width: 80%;
  }
  .om-intro-worries > .note > .text {
    font-size: 1rem;
    line-height: 2.2;
  }
  .om-intro-worries > .watercolor1 {
    top: -2.5rem;
    left: -3.75rem;
    width: 13.625rem;
  }
  .om-intro-worries > .watercolor2 {
    left: -3.125rem;
    width: 9.375rem;
  }
}

.om-reasons {
  position: relative;
  color: #fff;
  background: #0e1003 url(../images/bg-reasons.jpg) center/cover fixed;
  padding: 7.5rem 0 10rem;
}
.om-reasons > .inner {
  max-width: 65.5rem;
  margin: 0 auto;
  padding: 0 1.25rem;
  box-sizing: border-box;
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10.3125rem;
}
.om-reasons > .inner > .label {
  flex: 0 0 auto;
  position: sticky;
  top: 2.5rem;
  writing-mode: vertical-rl;
  margin: 0;
}
.om-reasons > .inner > .label > .tagline {
  font-family: "Noto Serif JP", serif;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  height: fit-content;
  margin: 0;
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.2em;
}
.om-reasons > .inner > .label > .tagline > .line {
  display: block;
}
.om-reasons > .inner > .label > .tagline > .line:first-child {
  padding-bottom: 2.4em;
}
.om-reasons > .inner > .label > .num {
  font-family: "Noto Serif JP", serif;
  margin: 0;
  font-weight: 500;
  font-size: 5rem;
  line-height: 1;
  letter-spacing: 0.15em;
  text-orientation: upright;
  margin: 6.25rem 1.5rem 0 0;
}
.om-reasons > .inner > .label > .num > .big {
  font-size: 7rem;
}
.om-reasons > .inner > .body {
  width: 37.5rem;
}
.om-reasons > .inner > .body > .list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.om-reasons > .inner > .body > .list > .item {
  padding-top: 5rem;
}
.om-reasons > .inner > .body > .list > .item + .item {
  margin-top: 2.5rem;
}
.om-reasons > .inner > .body > .list > .item > .head {
  display: flex;
  align-items: center;
  gap: 2.5rem;
}
.om-reasons > .inner > .body > .list > .item > .head > .divider {
  width: 2px;
  height: 5.5rem;
  background: #fff;
}
.om-reasons > .inner > .body > .list > .item > .head > .digit {
  flex: none;
  font-family: "Cardo", serif;
  font-weight: 400;
  font-size: 7.5rem;
  line-height: 1;
}
.om-reasons > .inner > .body > .list > .item > .head > .title {
  font-family: "Noto Serif JP", serif;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.4375;
  margin: 0;
}
.om-reasons > .inner > .body > .list > .item > .text {
  font-size: 1.25rem;
  line-height: 2;
  margin: 1.875rem 0 0;
}
.om-reasons > .inner > .body > .list > .item > .photo {
  aspect-ratio: 2/1;
  border-radius: 0.5rem;
  margin-top: 3.375rem;
  overflow: hidden;
}
.om-reasons > .inner > .body > .list > .item > .photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.om-reasons > .inner > .body > .cta {
  display: flex;
  justify-content: center;
  margin: 7.5rem auto 0;
}
.om-reasons > .inner > .body > .cta > .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30rem;
  max-width: 100%;
  height: 5rem;
  box-sizing: border-box;
  padding: 0.75rem 1.5rem;
  border: 1px solid #1d8e94;
  border-radius: 4px;
  background: #1d8e94;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.435;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.15s ease;
  transition-property: background, color, opacity;
}
.om-reasons > .inner > .body > .cta > .btn:hover {
  opacity: 1;
  background: #fff;
  color: #1d8e94;
}
@media (max-width: 1240px) {
  .om-reasons > .inner {
    justify-content: space-around;
    gap: 2.5rem;
  }
  .om-reasons > .inner > .body {
    flex: 1;
    width: auto;
    max-width: 37.5rem;
  }
}
@media (max-width: 767px) {
  .om-reasons {
    padding: 3rem 0 4rem;
  }
  .om-reasons > .inner {
    flex-direction: column;
    gap: 2.5rem;
  }
  .om-reasons > .inner > .label {
    align-self: center;
    position: static;
    top: auto;
  }
  .om-reasons > .inner > .label > .tagline {
    font-size: 1rem;
  }
  .om-reasons > .inner > .label > .num {
    font-size: 3rem;
    margin: 4.375rem 1rem 0 0;
  }
  .om-reasons > .inner > .label > .num > .big {
    font-size: 4.25rem;
  }
  .om-reasons > .inner > .body {
    width: 100%;
  }
  .om-reasons > .inner > .body > .list > .item {
    padding-top: 0;
  }
  .om-reasons > .inner > .body > .list > .item > .head {
    gap: 1.25rem;
  }
  .om-reasons > .inner > .body > .list > .item > .head > .digit {
    font-size: 4rem;
  }
  .om-reasons > .inner > .body > .list > .item > .head > .divider {
    height: 3.25rem;
  }
  .om-reasons > .inner > .body > .list > .item > .head > .title {
    font-size: 1.25rem;
  }
  .om-reasons > .inner > .body > .list > .item > .text {
    font-size: 0.9375rem;
    margin-top: 1.25rem;
  }
  .om-reasons > .inner > .body > .list > .item > .photo {
    margin-top: 1.5rem;
  }
  .om-reasons > .inner > .body > .cta {
    margin-top: 4rem;
  }
  .om-reasons > .inner > .body > .cta > .btn {
    height: 5rem;
    font-size: 1.125rem;
  }
}

.om-approach {
  position: relative;
  padding: 6.25rem 0 0;
  z-index: 0;
  overflow: hidden;
}
.om-approach > .inner {
  max-width: 66.25rem;
  margin: 0 auto;
  padding: 0 1.25rem;
  box-sizing: border-box;
}
.om-approach > .inner > *:first-child {
  margin-top: 0 !important;
}
.om-approach > .watercolor {
  position: absolute;
  left: 0;
  top: 0;
  width: 47.5rem;
  z-index: -1;
}
.om-approach > .watercolor img {
  display: block;
  width: 100%;
  pointer-events: none;
}
@media (max-width: 767px) {
  .om-approach {
    padding-top: 3rem;
  }
  .om-approach > .watercolor {
    left: -6.25rem;
    width: 23.75rem;
  }
}

.om-why {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 5rem;
  margin: 3rem 0 0;
  flex-wrap: wrap;
}
.om-why > .staff {
  display: flex;
  justify-content: center;
  gap: 2.5rem;
  flex-wrap: wrap;
}
.om-why > .pillars {
  display: flex;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.om-why > .pillars > .item {
  font-family: "Noto Serif JP", serif;
  writing-mode: vertical-rl;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  width: 6rem;
  min-height: 22.5rem;
  padding: 2.5rem 1.25rem;
  border: 1px solid #1d8e94;
  background: #fff;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.25em;
  color: #104d51;
}
@media (max-width: 767px) {
  .om-why {
    margin-top: 2rem;
    gap: 2rem;
  }
  .om-why > .staff {
    gap: 1.5rem;
  }
  .om-why > .pillars {
    gap: 0.75rem;
    flex-direction: column;
  }
  .om-why > .pillars > .item {
    writing-mode: horizontal-tb;
    justify-content: center;
    width: auto;
    min-height: 0;
    padding: 0.75rem 1.5rem;
    font-size: 1.125rem;
    text-align: center;
  }
}

.om-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  background: #e8e7f2 url(../images/bg-pattern.png) repeat;
  border-radius: 0.5rem;
  padding: 2.5rem 3rem;
  margin-top: 3.75rem;
}
.om-cta > .textarea {
  flex: 1;
  text-align: left;
}
.om-cta > .textarea > .title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.08em;
  color: #4c4471;
  margin: 0;
}
.om-cta > .textarea > .text {
  font-family: "Noto Serif JP", serif;
  margin: 0.625rem 0 0;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.2em;
}
.om-cta > .buttons {
  --om-btn-color: #4c4471;
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (max-width: 1240px) {
  .om-cta {
    flex-direction: column;
    text-align: center;
  }
  .om-cta > .textarea {
    text-align: center;
  }
}
@media (max-width: 767px) {
  .om-cta {
    margin-top: 2.5rem;
    padding: 1.875rem 1.25rem;
  }
  .om-cta > .textarea > .title {
    font-size: 1.25rem;
    letter-spacing: 0.08em;
  }
  .om-cta > .textarea > .text {
    margin: 0.625rem 0 0;
    font-size: 1rem;
    letter-spacing: 0.1em;
  }
  .om-cta > .buttons {
    width: 100%;
  }
}

.om-quote {
  position: relative;
  margin: 5rem 0 0;
  padding: 0;
}
.om-quote::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 74.5%;
  background: linear-gradient(90deg, #dce8e9 0%, rgba(220, 232, 233, 0) 100%);
}
.om-quote > .content {
  box-sizing: border-box;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2.5rem;
  max-width: 65.5rem;
  margin: 0 auto;
  padding: 0 1.25rem;
}
.om-quote > .content > .text {
  font-family: "Noto Serif JP", serif;
  padding: 2rem 0;
  text-align: left;
}
.om-quote > .content > .text > .base {
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 2;
  margin: 0;
}
.om-quote > .content > .text > .emphasis {
  margin: 0.75rem 0 0;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.75;
}
.om-quote > .content > .photo {
  align-self: flex-end;
  flex: 0 0 auto;
  width: 14.625rem;
}
.om-quote > .content > .photo > img {
  display: block;
  width: 100%;
  object-fit: contain;
  object-position: bottom;
}
.om-quote > .content > .watercolor {
  position: absolute;
  top: -3rem;
  right: -7.5rem;
  width: 15.5rem;
  z-index: -1;
}
.om-quote > .content > .watercolor img {
  display: block;
  width: 100%;
  pointer-events: none;
}
@media (max-width: 1240px) {
  .om-quote > .content {
    gap: 1.25rem;
  }
  .om-quote::before {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .om-quote {
    margin-top: 3rem;
  }
  .om-quote > .content {
    display: block;
    padding-top: 2rem;
  }
  .om-quote > .content > .text {
    padding: 0;
  }
  .om-quote > .content > .text > .base {
    font-size: 0.9375rem;
  }
  .om-quote > .content > .text > .emphasis {
    font-size: 1.375rem;
  }
  .om-quote > .content > .photo {
    width: 10rem;
    margin: -6.25rem 0 0 auto;
  }
  .om-quote > .content > .watercolor {
    top: 8rem;
    right: -2.5rem;
    width: 7.75rem;
  }
}

.om-tour {
  position: relative;
  padding: 6.25rem 0 7.5rem;
  overflow: clip;
}
.om-tour > .inner {
  max-width: 66.25rem;
  margin: 0 auto;
  padding: 0 1.25rem;
  box-sizing: border-box;
}
.om-tour > .watercolor1,
.om-tour > .watercolor2,
.om-tour > .watercolor3 {
  position: absolute;
  z-index: -1;
}
.om-tour > .watercolor1 img,
.om-tour > .watercolor2 img,
.om-tour > .watercolor3 img {
  display: block;
  width: 100%;
  pointer-events: none;
}
.om-tour > .watercolor1 {
  top: 12%;
  right: 0;
  width: 44.5rem;
}
.om-tour > .watercolor2 {
  top: 35%;
  left: 0;
  width: 44.5rem;
}
.om-tour > .watercolor3 {
  top: 50%;
  right: 0;
  width: 44.5rem;
}
@media (max-width: 767px) {
  .om-tour {
    padding: 3rem 0 4rem;
  }
  .om-tour > .watercolor1 {
    top: 20%;
    width: 22.25rem;
  }
  .om-tour > .watercolor2 {
    top: 45%;
    width: 22.25rem;
  }
  .om-tour > .watercolor3 {
    top: 65%;
    width: 22.25rem;
  }
}

.om-story {
  position: relative;
  margin: 0 -5rem;
}
.om-story > .grid {
  display: grid;
  grid-template-columns: 524fr 576fr;
  gap: 0 2.5rem;
  max-width: calc(100vw - 7.5rem);
  margin: auto;
}
.om-story > .grid > .main > .tag {
  font-family: "Noto Serif JP", serif;
  margin: 0;
  font-size: 1.25rem;
  color: #104d51;
  letter-spacing: 0.2em;
  display: block;
}
.om-story > .grid > .main > .heading {
  font-family: "Noto Serif JP", serif;
  font-size: 1.75rem;
  font-weight: 500;
  margin: 0.625rem 0 0;
  letter-spacing: 0.05em;
}
.om-story > .grid > .main > .text {
  font-family: "Noto Serif JP", serif;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 2;
  margin: 1.875rem 0 0;
}
.om-story > .grid > .side > .text {
  font-family: "Noto Serif JP", serif;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 2;
  margin: 0;
}
.om-story > .grid > .photo1,
.om-story > .grid > .photo2 {
  align-self: center;
}
.om-story > .grid > .photo1 > img,
.om-story > .grid > .photo2 > img {
  display: block;
  width: 100%;
  height: auto;
}
.om-story > .grid > .photo1 {
  width: 33.75rem;
  margin-left: -2.5rem;
}
.om-story > .grid > .photo2 {
  width: 34.75rem;
  margin-left: -2.5rem;
}
.om-story > .watercolor {
  position: absolute;
  top: -2.5rem;
  left: -6.25rem;
  width: 21.75rem;
  z-index: -1;
}
.om-story > .watercolor img {
  display: block;
  width: 100%;
  pointer-events: none;
}
@media (max-width: 1240px) {
  .om-story {
    margin: 0 auto;
  }
  .om-story > .grid {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    max-width: 37.5rem;
  }
  .om-story > .grid > .photo1 {
    margin-left: auto;
  }
  .om-story > .grid > .photo2 {
    order: 2;
    margin-left: auto;
  }
}
@media (max-width: 767px) {
  .om-story > .grid {
    flex-direction: column;
    gap: 1.875rem;
  }
  .om-story > .grid > .main > .tag {
    font-size: 1rem;
  }
  .om-story > .grid > .main > .heading {
    font-size: 1.5rem;
    margin-top: 0.25rem;
  }
  .om-story > .grid > .main > .text {
    font-size: 1rem;
    margin-top: 1.5rem;
  }
  .om-story > .grid > .side > .text {
    font-size: 1rem;
  }
  .om-story > .grid > .photo1 {
    width: auto;
  }
  .om-story > .grid > .photo2 {
    width: auto;
  }
  .om-story > .watercolor {
    top: -2rem;
    left: -2.5rem;
    width: 10.875rem;
  }
}

.om-cases {
  margin: 4rem 0 0;
}
.om-cases > .block {
  position: relative;
  display: flex;
  background: #fff;
  z-index: 1;
}
.om-cases > .block + .block {
  margin-top: 6.25rem;
}
.om-cases > .block > .photo {
  position: absolute;
  inset: 0 0 0 auto;
  width: 68.6274509804%;
  overflow: hidden;
  z-index: -1;
}
.om-cases > .block > .photo > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.om-cases > .block > .ribbon {
  font-family: "Noto Serif JP", serif;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: absolute;
  top: 0;
  right: 0;
  background: #1d8e94;
  color: #fff;
  padding: 1rem 1rem 0.75rem;
  text-align: center;
  font-weight: 500;
}
.om-cases > .block > .ribbon > .label {
  display: inline-block;
  line-height: 2;
  letter-spacing: 0.1em;
  writing-mode: vertical-rl;
}
.om-cases > .block > .ribbon > .num {
  display: inline-block;
  margin-top: 0.25rem;
  font-family: "Cardo", serif;
  font-weight: 400;
  font-size: 1.75rem;
  line-height: 1.25;
  text-combine-upright: all;
}
.om-cases > .block > .body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.75rem;
  box-sizing: border-box;
  min-height: 25rem;
  width: 38.75rem;
  padding: 2.5rem 3rem;
}
.om-cases > .block > .body > .title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1.6;
  margin: 0;
}
.om-cases > .block > .body > .title > .marker {
  background: linear-gradient(transparent 62%, #f1e9b7 62%);
}
.om-cases > .block > .body > .tags {
  margin: 0;
}
.om-cases > .block > .body > .tags > .tag-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.om-cases > .block > .body > .tags > .tag-row + .tag-row {
  margin-top: 0.75rem;
}
.om-cases > .block > .body > .tags > .tag-row > .tag-label {
  flex: 0 0 auto;
  background: #dce8e9;
  padding: 0.125rem 1rem;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.25;
}
.om-cases > .block > .body > .tags > .tag-row > .tag-text {
  line-height: 1.25;
}
.om-cases > .block > .body > .proposal {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  padding: 1rem;
  background: #dce8e9;
}
.om-cases > .block > .body > .proposal > .proposal-label {
  flex: 0 0 auto;
  background: #1d8e94;
  color: #fff;
  padding: 0.125rem 0.5rem;
  font-weight: 700;
  font-size: 1rem;
}
.om-cases > .block > .body > .proposal > .proposal-text {
  flex: 1 1 auto;
  line-height: 1.25;
}
.om-cases > .block > .body > .result {
  position: relative;
  margin: 1.5rem 0 0;
  font-size: 1.125rem;
  line-height: 1.5;
  text-align: center;
}
.om-cases > .block > .body > .result::before {
  display: block;
  position: absolute;
  top: -1.5rem;
  left: calc(50% - 0.875rem);
  border: solid transparent;
  border-width: 1rem 0.875rem 0;
  border-top-color: #1d8e94;
  margin-bottom: 0.5rem;
  content: "";
}
.om-cases > .block > .body > .voice {
  font-family: "Noto Serif JP", serif;
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  min-height: 4rem;
  margin: 0 0 -4.5rem;
  border: 1px solid #1d8e94;
  border-radius: 50vw;
  background: #fff;
  text-align: center;
  padding: 0.25rem 1.25rem;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.25;
}
@media (max-width: 767px) {
  .om-cases {
    margin-top: 2rem;
    padding-bottom: 1.5rem;
  }
  .om-cases > .block {
    display: block;
  }
  .om-cases > .block + .block {
    margin-top: 4rem;
  }
  .om-cases > .block > .photo {
    position: static;
    width: 100%;
  }
  .om-cases > .block > .ribbon {
    left: 0;
    right: auto;
    padding: 1rem 0.75rem 0.75rem;
  }
  .om-cases > .block > .ribbon > .label {
    font-size: 0.875rem;
  }
  .om-cases > .block > .ribbon > .num {
    font-size: 1.25rem;
  }
  .om-cases > .block > .body {
    gap: 1rem;
    min-height: 0;
    width: auto;
    padding: 1.5rem 1rem;
  }
  .om-cases > .block > .body > .title {
    font-size: 1.25rem;
  }
  .om-cases > .block > .body > .tags > .tag-row > .tag-label {
    padding: 0.125rem 1rem;
    font-size: 0.875rem;
  }
  .om-cases > .block > .body > .tags > .tag-row > .tag-text {
    font-size: 0.875rem;
  }
  .om-cases > .block > .body > .proposal {
    padding: 0.75rem;
  }
  .om-cases > .block > .body > .proposal > .proposal-label {
    font-size: 0.875rem;
  }
  .om-cases > .block > .body > .proposal > .proposal-text {
    font-size: 0.875rem;
  }
  .om-cases > .block > .body > .result {
    font-size: 0.9375rem;
  }
  .om-cases > .block > .body > .voice {
    margin-bottom: -3rem;
    font-size: 0.9375rem;
  }
}

.om-compare {
  margin-top: 4rem;
}
@media (max-width: 767px) {
  .om-compare {
    margin-top: 2rem;
  }
}

.om-compare-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.om-compare-table > table {
  width: 100%;
  border-collapse: collapse;
}
.om-compare-table td,
.om-compare-table th {
  box-sizing: border-box;
  padding: 1rem 0.75rem;
  border-top: 1px solid #1d8e94;
  border-bottom: 1px solid #1d8e94;
  background: #ffffff;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.75;
  text-align: center;
  vertical-align: middle;
}
.om-compare-table th {
  font-family: "Noto Serif JP", serif;
}
.om-compare-table thead th,
.om-compare-table tbody td {
  border-left: 1px solid #1d8e94;
}
.om-compare-table thead th.-empty {
  background-color: transparent;
  border-left-color: transparent;
}
.om-compare-table thead th.-om,
.om-compare-table tbody th.-common {
  background: #1d8e94;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 600;
}
.om-compare-table thead th.-tour {
  background: #dce8e9;
  font-size: 1.25rem;
  font-weight: 600;
}
.om-compare-table tbody th {
  background: #dce8e9;
  font-size: 1.125rem;
  font-weight: 600;
}
.om-compare-table tbody td.-om {
  font-size: 1.125rem;
}
.om-compare-table thead th:nth-child(1) {
  width: 24%;
}
.om-compare-table thead th:nth-child(2),
.om-compare-table thead th:nth-child(3) {
  width: 38%;
}
.om-compare-table thead > tr:first-child > td,
.om-compare-table thead > tr:first-child > th {
  border-top: 0;
}
@media (max-width: 767px) {
  .om-compare-table td,
  .om-compare-table th {
    padding: 0.75rem 0.5rem;
    font-size: 0.8125rem;
    white-space: nowrap;
  }
  .om-compare-table thead th.-om,
  .om-compare-table tbody th.-common {
    font-size: 0.9375rem;
  }
  .om-compare-table thead th.-tour {
    font-size: 0.9375rem;
  }
  .om-compare-table tbody th {
    font-size: 0.9375rem;
  }
  .om-compare-table tbody td.-om {
    font-size: 0.9375rem;
  }
}

.om-flow {
  margin: 4rem auto 0;
}
.om-flow > .list {
  list-style: none;
  max-width: 60rem;
  margin: 0 auto 0;
  padding: 0;
}
.om-flow > .list > .step {
  display: block;
  background: #dce8e9;
  border-radius: 0.5rem;
  padding: 2rem 2.25rem 2rem 3rem;
  position: relative;
}
.om-flow > .list > .step + .step {
  margin-top: 3.75rem;
}
.om-flow > .list > .step + .step::after {
  content: "";
  position: absolute;
  left: calc(50% - 1.5rem);
  top: -2.5rem;
  border: solid transparent;
  border-width: 1.25rem 1.5rem 0;
  border-top-color: #1d8e94;
}
.om-flow > .list > .step > .num {
  position: absolute;
  top: -1rem;
  left: -1.5rem;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: #1d8e94;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Cardo", serif;
  font-size: 2.5rem;
  font-weight: 700;
}
.om-flow > .list > .step > .title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.6875rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.1em;
  color: #104d51;
  margin: 0;
}
.om-flow > .list > .step > .text {
  margin: 0.5rem 0 0;
  font-size: 1rem;
  line-height: 1.75;
}
.om-flow > .list > .step > .note {
  background: #fff;
  border-radius: 0.5rem;
  padding: 1rem;
  margin: 1.25rem 0 0;
  font-size: 0.9375rem;
}
.om-flow > .list > .step > .buttons + .note {
  margin-top: 1.5rem;
}
.om-flow > .list > .step > .buttons {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin: 1.25rem 0 0;
}
.om-flow > .list > .step > .buttons > .item {
  flex: 1 1 auto;
  width: calc((100% - 1.25rem) / 2);
}
@media (max-width: 767px) {
  .om-flow {
    margin-top: 2.5rem;
  }
  .om-flow > .list > .step {
    padding: 2rem 1rem 1.5rem;
    margin-left: 0;
  }
  .om-flow > .list > .step > .num {
    left: -0.5rem;
    top: -1.5rem;
    width: 3rem;
    height: 3rem;
    font-size: 1.375rem;
  }
  .om-flow > .list > .step > .title {
    font-size: 1.25rem;
  }
  .om-flow > .list > .step > .buttons {
    flex-direction: column;
    gap: 0.75rem;
  }
  .om-flow > .list > .step > .buttons > .item {
    width: 100%;
  }
}

.om-followup {
  position: relative;
  margin-top: 7.5rem;
}
.om-followup > .wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3rem;
  flex-wrap: wrap;
  text-align: center;
}
.om-followup > .wrap > .staff {
  display: flex;
  justify-content: center;
  gap: 2.5rem;
  flex-wrap: wrap;
}
.om-followup > .wrap > .text {
  font-family: "Noto Serif JP", serif;
  font-size: 1.5rem;
  line-height: 2;
  margin: 0;
  text-align: left;
}
.om-followup > .watercolor {
  position: absolute;
  top: -3rem;
  right: -5.625rem;
  width: 25.875rem;
  z-index: -1;
}
.om-followup > .watercolor img {
  display: block;
  width: 100%;
  pointer-events: none;
}
@media (max-width: 767px) {
  .om-followup {
    margin-top: 3rem;
  }
  .om-followup > .wrap {
    gap: 1.5rem;
  }
  .om-followup > .wrap > .staff {
    order: 1;
    gap: 1.5rem;
  }
  .om-followup > .wrap > .text {
    order: 0;
    font-size: 1rem;
    text-align: center;
  }
  .om-followup > .watercolor {
    top: -2.5rem;
    right: -2.5rem;
    width: 12.9375rem;
  }
}

.om-contact-banner {
  padding: 6.25rem 0 7.5rem;
  background: url(../images/bg-contact.jpg) no-repeat 50% 75%/cover;
  color: #fff;
  text-align: center;
}
.om-contact-banner > .inner {
  box-sizing: border-box;
  max-width: 65.5rem;
  margin: 0 auto;
  padding: 0 1.25rem;
}
.om-contact-banner > .inner > .heading {
  font-family: "Noto Serif JP", serif;
  margin: 0;
  font-size: 1.75rem;
  font-weight: 500;
  letter-spacing: 0.15em;
}
.om-contact-banner > .inner > .text {
  font-size: 1.125rem;
  margin: 1.25rem 0 0;
  line-height: 1.9;
}
.om-contact-banner > .inner > .cards {
  display: flex;
  justify-content: center;
  gap: 2.5rem;
  margin-top: 3.125rem;
}
.om-contact-banner > .inner > .cards > .card {
  box-sizing: border-box;
  background: #e8e7f2 url(../images/bg-pattern.png) repeat;
  border-radius: 0.5rem;
  padding: 3rem 2rem 2.75rem;
  width: calc((100% - 2.5rem) / 2);
  color: #4c4471;
  text-align: center;
}
.om-contact-banner > .inner > .cards > .card > .title {
  font-family: "Noto Serif JP", serif;
  margin: 0;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.25;
}
.om-contact-banner > .inner > .cards > .card > .text {
  margin: 1.5rem 0 0;
  color: #333;
  line-height: 2;
}
.om-contact-banner > .inner > .cards > .card > .button {
  --om-btn-color: #4c4471;
  margin-top: 2rem;
}
@media (max-width: 767px) {
  .om-contact-banner {
    padding: 3rem 0 4rem;
  }
  .om-contact-banner > .inner > .heading {
    font-size: 1.375rem;
    letter-spacing: 0;
  }
  .om-contact-banner > .inner > .text {
    font-size: 0.9375rem;
  }
  .om-contact-banner > .inner > .cards {
    flex-direction: column;
    gap: 1.5rem;
    margin-top: 2rem;
  }
  .om-contact-banner > .inner > .cards > .card {
    padding: 2rem 1rem;
    width: 100%;
  }
  .om-contact-banner > .inner > .cards > .card > .title {
    font-size: 1.375rem;
  }
  .om-contact-banner > .inner > .cards > .card > .text {
    margin-top: 1rem;
    font-size: 0.9375rem;
  }
  .om-contact-banner > .inner > .cards > .card > .button {
    margin-top: 1.5rem;
  }
}

.om-related {
  padding: 4rem 0;
  background-color: #dce8e9;
}
.om-related > .inner {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
  justify-content: center;
  box-sizing: border-box;
  max-width: 64rem;
  margin: 0 auto;
  padding: 0 1.25rem;
}
.om-related > .inner > .item {
  display: block;
  width: calc((100% - 1.5rem) / 2);
  max-width: 100%;
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  transition: opacity 0.3s;
}
.om-related > .inner > .item:hover {
  opacity: 0.8;
}
.om-related > .inner > .item > img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .om-related {
    padding: 3rem 0;
  }
  .om-related > .inner > .item {
    display: block;
    width: 100%;
  }
}

.om-modal {
  width: fit-content;
  max-width: 100%;
  margin: 3.75rem auto 3.125rem;
  position: relative;
}
.om-modal > .panels {
  display: flex;
  gap: 1.5rem;
}
.om-modal .mfp-close {
  right: 0;
  background-color: transparent !important;
  color: transparent !important;
}
.om-modal .mfp-close::before, .om-modal .mfp-close::after {
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #fff;
  content: "";
}
.om-modal .mfp-close::before {
  transform: rotate(-45deg);
}
.om-modal .mfp-close::after {
  transform: rotate(45deg);
}
@media (max-width: 1240px) {
  .om-modal > .panels {
    flex-direction: column;
  }
}

.om-mail-panel {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  width: 22.5rem;
  max-width: 100%;
  padding: 3rem 2rem 2.75rem;
  border-radius: 0.5rem;
  background: #e8e7f2 url(../images/bg-pattern.png) repeat;
  color: #4c4471;
  text-align: center;
}
.om-mail-panel > .title {
  font-family: "Noto Serif JP", serif;
  margin: 0;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.15em;
}
.om-mail-panel > .text {
  margin: 1.75rem 0 0;
  color: #000;
  line-height: 2;
}
.om-mail-panel > .button {
  --om-btn-color: #4c4471;
  max-width: 17.5rem;
  margin: 2rem auto 0;
}
@media (max-width: 1240px) {
  .om-mail-panel {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .om-mail-panel {
    padding: 2rem 1.25rem 1.75rem;
  }
  .om-mail-panel > .title {
    font-size: 1.375rem;
    letter-spacing: 0.1em;
  }
  .om-mail-panel > .text {
    margin-top: 1rem;
    font-size: 0.9375rem;
  }
  .om-mail-panel > .button {
    max-width: none;
    margin: 1rem 0 0;
  }
}

.om-tel-panel {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  width: 40rem;
  max-width: 100%;
  padding: 3rem 3rem 2.75rem;
  border-radius: 0.5rem;
  background: #e8e7f2 url(../images/bg-pattern.png) repeat;
  color: #4c4471;
  text-align: center;
}
.om-tel-panel > .title {
  font-family: "Noto Serif JP", serif;
  margin: 0;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.15em;
}
.om-tel-panel > .text {
  margin: 1.75rem 0 0;
  color: #000;
  line-height: 2;
}
.om-tel-panel > .numbers {
  display: flex;
  gap: 3rem;
  margin-top: 2rem;
}
.om-tel-panel > .numbers > .button {
  --om-btn-color: #4c4471;
  flex: 1 1 0;
  text-align: center;
}
@media (max-width: 1240px) {
  .om-tel-panel {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .om-tel-panel {
    padding: 2rem 1.25rem 1.75rem;
  }
  .om-tel-panel > .title {
    font-size: 1.375rem;
    letter-spacing: 0.1em;
  }
  .om-tel-panel > .text {
    margin-top: 1rem;
    font-size: 0.9375rem;
  }
  .om-tel-panel > .numbers {
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 1rem;
  }
}
/*# sourceMappingURL=style.css.map */