@charset "UTF-8";
:root {
  --ff-eb-garamond: "EB Garamond";
  --ff-zen-old-mincho: "Zen Old Mincho";
  --color-page-text: #1C1C1C;
  --color-page-border: #DEDEDE;
  --color-page-primary: #002C6E;
  --color-page-secondary: #002C6E;
}

html, body {
  scroll-behavior: smooth;
  scroll-padding: 10svh;
}

@media (max-width: 767px) {
  .hidden-mobile {
    display: none !important;
  }
}
@media (min-width: 768px) {
  .hidden-desktop {
    display: none !important;
  }
}
.page-container {
  color: var(--color-page-text);
  font-family: var(--ff-eb-garamond), var(--ff-zen-old-mincho), serif;
  font-weight: 500;
}

.page-title {
  color: var(--color-page-primary);
  font-weight: 500;
  font-size: 4rem;
  line-height: 1.3;
  letter-spacing: 0.08em;
  text-align: center;
}
@media (max-width: 767px) {
  .page-title {
    font-size: 3rem;
  }
}

.page-text {
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 2;
  letter-spacing: 0.08em;
  text-align: center;
}
.page-text--note {
  font-size: 1.3rem;
}
@media (max-width: 767px) {
  .page-text {
    font-size: 1.4rem;
  }
  .page-text--note {
    font-size: 1.2rem;
  }
}

.page-firstview__description {
  padding-block: 10rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 3rem;
}
@media (max-width: 767px) {
  .page-firstview__description {
    padding-block: 8rem;
    row-gap: 2rem;
  }
}

.service-detail__inner {
  background-color: #FAFAFA;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 767px) {
  .service-detail__inner {
    display: block;
  }
}
.service-detail__description {
  font-size: 1.8rem;
  line-height: 2;
  letter-spacing: 0.08em;
  padding-inline: 6rem;
}
.service-detail__description p {
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}
@media (max-width: 767px) {
  .service-detail__description {
    font-size: 1.5rem;
    padding-block: 3rem;
    padding-inline: 1.5rem;
    text-align: center;
  }
}

.page-button {
  display: grid;
  grid-template-columns: auto -webkit-max-content auto;
  grid-template-columns: auto max-content auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2rem;
  margin-top: 6rem;
  width: 40rem;
  font-size: 1.8rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  text-align: center;
  height: 6.4rem;
  border-radius: 3.2rem;
  background-color: #fff;
  border: 1px solid var(--color-page-primary);
  color: var(--color-page-primary);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
@media (max-width: 767px) {
  .page-button {
    width: 34.5rem;
    height: 6rem;
    font-size: 1.5rem;
    gap: 3rem;
  }
}
.page-button::before {
  content: "";
  display: block;
  width: 1.6rem;
  height: 1.6rem;
}
.page-button::after {
  content: "";
  display: block;
  width: 1.6rem;
  height: 1.6rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg id='グループ_24023' data-name='グループ 24023' transform='translate(16 -589) rotate(90)'%3E%3Cpath id='パス_27156' data-name='パス 27156' d='M150.453,37.866l3.788-6.206.339-.564-.339-.564h0l-3.788-6.206,7.216,6.764Z' transform='translate(442.939 -23.096)' fill='%23002c6e'/%3E%3Crect id='長方形_13' data-name='長方形 13' width='16' height='16' transform='translate(589)' fill='none'/%3E%3C/g%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-size: contain;
  -webkit-transition: background 0.3s ease;
  transition: background 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .page-button {
    -webkit-transition: background-color 0.3s ease, color 0.3s ease;
    transition: background-color 0.3s ease, color 0.3s ease;
  }
  .page-button:hover {
    background-color: var(--color-page-primary);
    color: #fff;
  }
  .page-button:hover::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg id='グループ_24023' data-name='グループ 24023' transform='translate(16 -589) rotate(90)'%3E%3Cpath id='パス_27156' data-name='パス 27156' d='M150.453,37.866l3.788-6.206.339-.564-.339-.564h0l-3.788-6.206,7.216,6.764Z' transform='translate(442.939 -23.096)' fill='%23fff'/%3E%3Crect id='長方形_13' data-name='長方形 13' width='16' height='16' transform='translate(589)' fill='none'/%3E%3C/g%3E%3C/svg%3E%0A");
    background-repeat: no-repeat;
    background-size: contain;
  }
}

.page-section {
  padding-block: 10rem;
}
.page-section__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  row-gap: 0.8rem;
  margin-bottom: 4rem;
}
.page-section__title--main {
  color: var(--color-page-primary);
  font-size: 3rem;
  line-height: 1.3;
  letter-spacing: 0.08em;
  line-height: 1;
}
.page-section__title--sub {
  font-size: 1.6rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.page-section__inner {
  width: min(95%, 100rem);
  margin-left: auto;
  margin-right: auto;
}
.page-section__description {
  text-align: center;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-section {
    padding-block: 8rem;
  }
  .page-section__title {
    margin-bottom: 3rem;
  }
  .page-section__title--main {
    font-size: 2.8rem;
  }
  .page-section__title--sub {
    font-size: 1.3rem;
  }
  .page-section__description {
    font-size: 1.4rem;
  }
}

.casestudy__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem;
}
@media (max-width: 767px) {
  .casestudy__list {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}
.casestudy__item {
  border: 1px solid #DEDEDE;
}
.casestudy__item-detail {
  padding: 2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 2rem;
}
.casestudy__item-detail-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
}
.casestudy__item-detail-item {
  font-size: 1.5rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .casestudy__item-detail-item {
    font-size: 1.4rem;
  }
}
.casestudy__item-detail-more {
  color: var(--color-page-primary);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.2rem;
  margin-left: auto;
  font-size: 1.3rem;
  line-height: 1.46;
  letter-spacing: 0.08em;
}
.casestudy__item-detail-more::after {
  content: "";
  display: block;
  width: 1rem;
  height: 1rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cg id='グループ_23958' data-name='グループ 23958' transform='translate(-589)'%3E%3Cpath id='パス_27156' data-name='パス 27156' d='M150.453,32.789l2.368-3.879.212-.353-.212-.353h0l-2.368-3.879,4.51,4.228Z' transform='translate(441.292 -23.557)' fill='%23002c6e'/%3E%3Crect id='長方形_13' data-name='長方形 13' width='10' height='10' transform='translate(589)' fill='none'/%3E%3C/g%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-size: contain;
}
@media (hover: hover) {
  .casestudy__item-detail-more {
    cursor: pointer;
    -webkit-transition: opacity 0.4s ease;
    transition: opacity 0.4s ease;
  }
  .casestudy__item-detail-more::after {
    -webkit-transition: translate 0.4s ease;
    transition: translate 0.4s ease;
  }
  .casestudy__item-detail-more:hover {
    opacity: 0.7;
  }
  .casestudy__item-detail-more:hover::after {
    translate: 0.3rem 0;
  }
}
.casestudy__item:nth-of-type(n+5) {
  display: none;
}
.casestudy__more {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
  font-size: 1.3rem;
  line-height: 1.46;
  letter-spacing: 0.08em;
  padding-bottom: 0.3rem;
  color: var(--color-page-primary);
  border-bottom: 1px solid var(--color-page-primary);
  margin-top: 4rem;
}
.casestudy__more::after {
  content: "+";
  display: block;
  font-family: "Noto Serif JP";
  font-weight: bold;
  font-size: 1.3rem;
}

.page-buttongroup {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2rem;
  margin-top: 6rem;
}
.page-buttongroup .page-button {
  margin: 0;
  font-size: 1.6rem;
  height: 8rem;
  border-radius: 4rem;
}
.page-buttongroup .page-button::after {
  rotate: -90deg;
}
@media (max-width: 767px) {
  .page-buttongroup {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3rem;
  }
  .page-buttongroup .page-button {
    font-size: 1.5rem;
    height: 7rem;
    border-radius: 3.5rem;
  }
}

[data-bg=blue] {
  background-color: #F2F7FF;
}

.service-proposition {
  margin-top: 6rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem;
}
@media (max-width: 767px) {
  .service-proposition {
    grid-template-columns: 1fr;
    margin-top: 4rem;
    gap: 2rem;
  }
}
@media (max-width: 767px) {
  .service-proposition__detail {
    width: 80%;
    margin-inline: auto;
  }
}
.service-proposition__detail-title {
  padding: 1.4rem 1.4rem 1.2rem;
  background-color: var(--color-page-primary);
  color: #fff;
  font-size: 2.2rem;
  text-align: center;
}
.service-proposition__detail-title span {
  font-size: 2.6rem;
}
@media (max-width: 767px) {
  .service-proposition__detail-title {
    padding-block: 1rem;
    font-size: 1.7rem;
  }
  .service-proposition__detail-title span {
    font-size: 1.9rem;
  }
}
.service-proposition__detail-body {
  height: 20.7rem;
  -webkit-padding-before: 5rem;
          padding-block-start: 5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2rem;
  background-color: #fff;
}
@media (max-width: 767px) {
  .service-proposition__detail-body {
    height: auto;
    padding-block: 1.5rem;
    padding-inline: 1rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
.service-proposition__detail-description {
  font-size: 2rem;
  line-height: 1.26;
  letter-spacing: 0.08em;
  color: var(--color-page-primary);
}
@media (max-width: 767px) {
  .service-proposition__detail-description {
    text-align: center;
    font-size: 1.6rem;
    line-height: 1.75;
    letter-spacing: 0.08em;
  }
}
.service-proposition__detail-note {
  font-size: 1.3rem;
}
@media (max-width: 767px) {
  .service-proposition__detail-note {
    font-size: 1.2rem;
    line-height: 1.5;
    text-align: center;
  }
}
.service-proposition__detail-link {
  display: inline;
  color: #005FE5;
  font-size: inherit;
  text-decoration: underline;
}

.customorderservice {
  padding-top: 0;
  padding-bottom: 9.4rem;
}
@media (max-width: 767px) {
  .customorderservice {
    padding-bottom: 8rem;
  }
}
.customorderservice .page-section__title--main {
  font-size: 2.4rem;
}
@media (max-width: 767px) {
  .customorderservice .page-section__title--main {
    font-size: 2rem;
  }
}
.customorderservice__navigation {
  margin-bottom: 4rem;
}
@media (max-width: 767px) {
  .customorderservice__navigation {
    margin-bottom: 3rem;
  }
}
.customorderservice__navigation-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 5rem;
}
@media (max-width: 767px) {
  .customorderservice__navigation-list {
    gap: 0.7rem;
  }
}
.customorderservice__navigation-item {
  width: 18.5rem;
}
@media (max-width: 767px) {
  .customorderservice__navigation-item {
    width: 11rem;
  }
}
.customorderservice__navigation-detail {
  padding-top: 1.5rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  row-gap: 0.5rem;
}
.customorderservice__navigation-detail::after {
  content: "";
  display: block;
  width: 4rem;
  height: 4rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cg id='グループ_2290' data-name='グループ 2290' transform='translate(2588 -589) rotate(90)'%3E%3Cpath id='パス_27156' data-name='パス 27156' d='M150.453,41.839l4.9-8.027.439-.73-.439-.73h0l-4.9-8.027,9.333,8.749Z' transform='translate(453.88 2534.917)' fill='%23002c6e'/%3E%3Crect id='長方形_13' data-name='長方形 13' width='40' height='40' transform='translate(589 2548)' fill='none'/%3E%3C/g%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-size: contain;
}
.customorderservice__navigation-name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  row-gap: 0.9rem;
  text-align: center;
}
@media (max-width: 767px) {
  .customorderservice__navigation-name {
    row-gap: 0.8rem;
  }
}
.customorderservice__navigation-name--main {
  color: var(--color-page-primary);
  font-size: 2rem;
  line-height: 1.3;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .customorderservice__navigation-name--main {
    font-size: 1.5rem;
  }
}
.customorderservice__navigation-name--sub {
  font-size: 1.3rem;
  line-height: 1.46;
  letter-spacing: 0.05em;
}
@media (max-width: 767px) {
  .customorderservice__navigation-name--sub {
    font-size: 1rem;
  }
}

.page-subsection {
  width: min(95%, 120rem);
  margin-left: auto;
  margin-right: auto;
  background-color: #fff;
  padding: 8rem 10rem;
}
@media (max-width: 767px) {
  .page-subsection {
    padding: 6rem 1.5rem;
  }
}
.page-subsection__title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-line-pack: center;
      align-content: center;
  text-align: center;
  row-gap: 1rem;
  margin-bottom: 4rem;
  position: relative;
}
@media (max-width: 767px) {
  .page-subsection__title {
    row-gap: 0.5rem;
    margin-bottom: 3rem;
  }
}
.page-subsection__title--main {
  color: var(--color-page-primary);
  font-size: 2.8rem;
  line-height: 1.3;
  letter-spacing: 0.1em;
}
@media (max-width: 767px) {
  .page-subsection__title--main {
    font-size: 2.5rem;
  }
}
.page-subsection__title--sub {
  font-size: 1.3rem;
  line-height: 1.46;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-subsection__title--sub {
    font-size: 1.2rem;
  }
}
.page-subsection__title::before, .page-subsection__title::after {
  content: "";
  display: block;
  width: 33rem;
  height: 1px;
  background-color: var(--color-page-primary);
  position: absolute;
  top: 50%;
  translate: 0 -50%;
}
@media (max-width: 767px) {
  .page-subsection__title::before, .page-subsection__title::after {
    width: 5rem;
  }
}
.page-subsection__title::before {
  left: 0;
}
.page-subsection__title::after {
  right: 0;
}
.page-subsection__description {
  font-size: 1.5rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-align: center;
}
@media (max-width: 767px) {
  .page-subsection__description {
    font-size: 1.4rem;
    line-height: 2;
  }
}
.page-subsection__note {
  font-size: 1.3rem;
  line-height: 1.46;
  letter-spacing: 0.08em;
  text-align: center;
  margin-top: 2rem;
}
.page-subsection + .page-subsection {
  margin-top: 4rem;
}

.page-table {
  width: 65rem;
  margin-left: auto;
  margin-right: auto;
  border-collapse: collapse;
  margin-top: 4rem;
}
@media (max-width: 767px) {
  .page-table {
    width: 100%;
  }
}
.page-table th,
.page-table td {
  border: 1px solid #DEDEDE;
  text-align: center;
  padding: 1rem 1rem 0.9rem;
  font-size: 1.5rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-table th,
.page-table td {
    font-size: 1.3rem;
    vertical-align: middle;
  }
  .page-table th:first-child,
.page-table td:first-child {
    width: 8rem;
  }
}
.page-table th {
  background-color: var(--color-page-primary);
  color: #fff;
}

.material-lineup {
  margin-top: 6rem;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1.8rem;
}
@media (max-width: 767px) {
  .material-lineup {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    row-gap: 2rem;
  }
}
.material-lineup__item-label {
  margin-top: 1rem;
  font-size: 1.3rem;
  line-height: 1.46;
  letter-spacing: 0.08em;
  text-align: center;
}

.page-innersection {
  margin-top: 6rem;
}
.page-innersection__title {
  color: var(--color-page-primary);
  text-align: center;
  font-size: 2.2rem;
  letter-spacing: 0.08em;
  margin-bottom: 4rem;
}
.page-innersection__title span {
  font-size: 1.8rem;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-innersection__title {
    font-size: 1.6rem;
    line-height: 2;
  }
  .page-innersection__title span {
    font-size: inherit;
  }
}

.stone-lineup {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 2rem;
}
@media (max-width: 767px) {
  .stone-lineup {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    row-gap: 3rem;
  }
}
.stone-lineup__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
  gap: 1rem;
  padding-block: 2.5rem;
}
.stone-lineup__item-image {
  width: 4rem;
}
@media (max-width: 767px) {
  .stone-lineup__item {
    padding-block: 1.2rem;
  }
}
.stone-lineup__item-month {
  font-size: 1.9rem;
  line-height: 1.3;
}
.stone-lineup__item-month span {
  font-size: 1.6rem;
}
.stone-lineup__item-name {
  font-size: 1.3rem;
  line-height: 1.42;
}
.stone-lineup__item-motif {
  font-size: 1.3rem;
  line-height: 1.46;
}

.placement-example {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem;
  margin-top: 6rem;
}
@media (max-width: 767px) {
  .placement-example {
    grid-template-columns: 1fr;
    margin-top: 4rem;
    gap: 2rem;
  }
}
.placement-example__figure figcaption {
  display: block;
  text-align: center;
  margin-top: 1rem;
  font-size: 1.3rem;
  line-height: 1.46;
  letter-spacing: 0.08em;
}

@media (min-width: 768px) {
  .engraving-lineup th {
    width: 16rem;
  }
  .engraving-lineup td {
    vertical-align: middle;
  }
  .engraving-lineup td img {
    width: auto;
    height: 1.6rem;
  }
  .engraving-lineup .page-table:nth-of-type(3) td img {
    height: 1.2rem;
  }
  .engraving-lineup .page-table + .page-table {
    margin-top: 1rem;
  }
}
@media (max-width: 767px) {
  .engraving-lineup th {
    display: block;
    width: 100% !important;
    padding: 0.5rem;
  }
  .engraving-lineup td {
    vertical-align: middle;
    padding: 1.3rem;
  }
  .engraving-lineup td img {
    width: auto;
    height: 1.2rem;
    margin-left: auto;
    margin-right: auto;
  }
  .engraving-lineup .page-table {
    margin-top: 0;
    display: block;
  }
  .engraving-lineup .page-table tbody {
    display: block;
  }
  .engraving-lineup .page-table tbody tr {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    position: relative;
  }
}

.extra-service {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4rem;
}
@media (max-width: 767px) {
  .extra-service {
    gap: 3rem;
  }
}
.extra-service__box {
  display: grid;
  grid-template-columns: 50rem 1fr;
  gap: 4rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 767px) {
  .extra-service__box {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}
.extra-service__detail-title {
  color: var(--color-page-primary);
  font-size: 2.2rem;
  line-height: 1.45;
  letter-spacing: 0.08em;
  margin-bottom: 1.5rem;
}
@media (max-width: 767px) {
  .extra-service__detail-title {
    font-size: 1.6rem;
  }
}
.extra-service__detail-description {
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .extra-service__detail-description {
    font-size: 1.4rem;
  }
}
.extra-service__detail-info {
  border: 1px solid #DEDEDE;
  padding: 2rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
  margin-top: 2.5rem;
}
.extra-service__detail-info dt {
  color: var(--color-page-primary);
  font-size: 1.5rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
.extra-service__detail-info dd {
  font-weight: 400;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .extra-service__detail-info dd {
    font-size: 1.4rem;
    line-height: 1.75;
  }
}

.page-inner > .page-buttongroup {
  margin-block: 10rem;
}
@media (max-width: 767px) {
  .page-inner > .page-buttongroup {
    margin-block: 8rem;
    gap: 2rem;
  }
}

.page-modal {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: none;
}
.page-modal__close {
  position: absolute;
  z-index: 2;
  width: 3rem;
  height: 3rem;
  top: 2rem;
  right: 2rem;
}
@media (max-width: 767px) {
  .page-modal__close {
    top: 1rem;
    right: 1rem;
  }
}
.page-modal__close span {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
}
.page-modal__close span::before, .page-modal__close span:after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background-color: var(--color-page-primary);
  position: absolute;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}
.page-modal__close span::before {
  rotate: 45deg;
}
.page-modal__close span::after {
  rotate: -45deg;
}
.page-modal__inner {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  background-color: #fff;
  width: min(95svw, 100rem);
  height: min(90svh, 70rem);
}
@media (max-width: 767px) {
  .page-modal__inner {
    width: 34.5rem;
    height: min(90svh, 55rem);
  }
}
.page-modal__content {
  padding: 6rem 8rem 0;
  display: grid;
  grid-template-columns: 35rem 1fr;
  gap: 4rem;
  height: 100%;
}
@media (max-width: 767px) {
  .page-modal__content {
    grid-template-columns: 1fr;
    padding: 5rem 1.5rem 0;
    gap: 2rem;
  }
}
.page-modal__content-detail {
  height: 100%;
  overflow: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 3rem;
  padding-bottom: 6rem;
}
@media (max-width: 767px) {
  .page-modal__content-detail {
    row-gap: 2rem;
    padding-bottom: 5rem;
  }
}
.page-modal__content-description {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 1rem;
}
.page-modal__content-description p {
  font-family: var(--ff-zen-old-mincho);
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-modal__content-description p {
    font-size: 1.4rem;
  }
}
.page-modal__content-faq {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 2.5rem;
}
@media (max-width: 767px) {
  .page-modal__content-faq {
    row-gap: 1.5rem;
  }
}
.page-modal__content-faq-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  row-gap: 1.5rem;
}
@media (max-width: 767px) {
  .page-modal__content-faq-item {
    row-gap: 0.8rem;
  }
}
.page-modal__content-faq-question, .page-modal__content-faq-answer {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.8rem;
}
.page-modal__content-faq-question-index {
  font-family: var(--ff-eb-garamond);
  font-weight: 500;
  color: #6585B2;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-modal__content-faq-question-index {
    font-size: 1.3rem;
  }
}
.page-modal__content-faq-question-text {
  font-family: var(--ff-zen-old-mincho);
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-modal__content-faq-question-text {
    font-size: 1.3rem;
  }
}
.page-modal__content-faq-answer-index {
  font-family: var(--ff-eb-garamond);
  font-weight: 500;
  color: var(--color-page-primary);
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-modal__content-faq-answer-index {
    font-size: 1.3rem;
  }
}
.page-modal__content-faq-answer-text {
  font-family: var(--ff-zen-old-mincho);
  font-weight: 500;
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.08em;
}
@media (max-width: 767px) {
  .page-modal__content-faq-answer-text {
    font-size: 1.3rem;
  }
}
.page-modal__backdrop {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #00183C;
  opacity: 0.8;
}

.helpfeel-faq-trigger {
  display: none !important;
}

.page-utility {
  background-color: var(--color-page-primary);
}
.page-utility--floating {
  position: fixed;
  z-index: 100;
  top: 50%;
  right: 0;
  translate: 0 -50%;
  display: block;
  padding: 1.5rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
@media (max-width: 767px) {
  .page-utility--floating {
    width: 3.6rem;
    font-size: 1.6rem;
    padding: 1rem 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -ms-flex-line-pack: center;
        align-content: center;
  }
}
.page-utility__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  text-align: center;
  color: #fff;
  font-family: var(--ff-zen-old-mincho);
  font-weight: 300;
  font-size: 1.6rem;
  line-height: 1;
  letter-spacing: 0.08em;
}
.page-utility__link::before {
  content: "";
  display: block;
  width: 2rem;
  height: 2rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cg id='グループ_2207' data-name='グループ 2207' transform='translate(-1360 -451)'%3E%3Cg id='グループ_2206' data-name='グループ 2206' transform='translate(5 3)'%3E%3Cg id='長方形_1718' data-name='長方形 1718' transform='translate(1356 452)' fill='none' stroke='%23fff' stroke-width='1'%3E%3Crect width='17.575' height='11.717' stroke='none'/%3E%3Crect x='0.5' y='0.5' width='16.575' height='10.717' fill='none'/%3E%3C/g%3E%3Cpath id='パス_22009' data-name='パス 22009' d='M0,0,8.348,5.294,16.85,0' transform='translate(1356.29 452.428)' fill='none' stroke='%23fff' stroke-width='1'/%3E%3C/g%3E%3Crect id='長方形_1719' data-name='長方形 1719' width='20' height='20' transform='translate(1360 451)' fill='none'/%3E%3C/g%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-size: contain;
}

.service-detail + .page-buttongroup {
  -webkit-margin-before: 2.5rem;
          margin-block-start: 2.5rem;
}
@media (max-width: 767px) {
  .service-detail + .page-buttongroup {
    -webkit-margin-before: 2rem;
            margin-block-start: 2rem;
  }
}

@media (max-width: 767px) {
  .stone-table th:first-of-type,
.engraving-table th:first-of-type {
    width: 11rem;
  }
  .stone-table td:first-of-type,
.engraving-table td:first-of-type {
    width: 11rem;
  }
}
/*# sourceMappingURL=style.css.map */