@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

:root {
  font-size: 16px; /* 1rem */
  interpolate-size: allow-keywords;
  --font-sans-serif: "Montserrat", sans-serif;
  --font-serif: serif;
  --color-body: #4E4E4E;
  --color-link: #4E4E4E;
  --color-red: #E63630;
  --color-yellow: #F6D96F;
  --color-blue: #5EA2E7;
  --color-gray-light: #F5F4F5;
  --border-radius-pill: 50rem;
  --padding-container: 1.25rem;
  --max-width: 1500px;
  --max-width-container: calc(var(--max-width) + var(--padding-container) * 2);
}

body {
  font-family: var(--font-sans-serif);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--color-body);
}

section {
  display: flow-root;
  position: relative;
}

a:where(:any-link, :hover) {
  color: var(--color-link);
  text-decoration: none;
  transition: color .3s ease-out;
}

a:hover {
  color: var(--color-red);
}

img {
  max-width: 100%;
}

h1, h2, h3, h4, h5, h6, dl, dt, dd {
  display: flow-root;
  font-family: inherit;
  font-weight: inherit;
  padding: 0;
  margin: 0;
}

.my-ajax-loading {
  position: fixed;
  inset: 0;
  background-color: rgba(255, 255, 255, .5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2000;
}

.my-container {
  position: relative;
  max-width: var(--max-width-container);
  margin-inline: auto;
  padding: 0 var(--padding-container);
}

.my-cols,
.my-rows {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  &.my-rows {
    flex-direction: column;
  }
}

.my-breadcrumb {
  > ol {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 0;
    margin: 0;
    li + li::before {
      content: '>';
      margin-inline: .5em;
    }
  }
}
.my-quill-body {
  background: #fff;
  p {
    margin: 0;
  }
  img {
    max-width: 100%;
  }
}

.my-sec {
  position: relative;
  padding-block: 6.25rem;
  &.-icon {
    padding-top: 16rem;
    &::before {
      content: '';
      position: absolute;
      top: 6.25rem;
      right: 0;
      left: 0;
      width: 4.40313rem;
      height: 3.64562rem;
      margin-inline: auto;
      background: url(../img/icon-paws.svg?v1) center / contain no-repeat;
    }
  }
}

.my-kv {
  margin-bottom: 3.125rem;
  img {
    display: block;
    width: 100%;
  }
}

.my-title01 {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 3.125rem;
  > span {
    font-weight: 600;
    font-size: 1.875rem;
    letter-spacing: 0.2em;
    color: var(--color-red);
  }
  > small {
    display: block;
    font-size: 1.25rem;
    font-weight: bold;
    margin-top: 1.25rem;
  }
  &.-icon {
    &::before {
      content: '';
      display: block;
      width: 2.5rem;
      height: 1.25rem;
      background: url(../img/icon-scissors.svg) center / contain no-repeat;
      margin-bottom: 0.9375rem;
    }
  }
  &.-w {
    > span {
      color: var(--color-yellow);
    }
    &.-icon::before {
      background-image: url(../img/icon-scissors-w.svg);
    }
    > small {
      color: #fff;
    }
  }
  &.-start {
    align-items: flex-start;
  }
}

.my-btn01,
.my-btn02,
.my-btn03 {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 17.625rem;
  padding: 0.625rem;
  margin-inline: auto;
  font-size: 0.9375rem;
  font-weight: bold;
  background: var(--color-red);
  color: #fff;
  border-radius: 0.3125rem;
  transition: all .3s ease-out;
  z-index: 1;
  &::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--color-yellow);
    transform: translateX(-101%);
    transition: transform .3s ease-out;
    z-index: -1;
  }
  &:hover {
    color: var(--color-red);
    background: none;
    &::before {
      transform: translateX(0);
    }
  }
  &.my-btn02 {
    &::before {
      background: var(--color-body);
    }
    &:hover {
      color: #fff;
    }
  }
  &.my-btn03 {
    background: var(--color-yellow);
    color: var(--color-red);
    &::before {
      background: var(--color-red);
    }
    &:hover {
      color: #fff;
    }
  }
}

.my-link01 {
  position: relative;
  display: inline-block;
  font-weight: 500;
  font-size: 1rem;
  letter-spacing: 0.2em;
  color: var(--color-red);
  white-space: nowrap;
  margin-top: 2.5rem;
  &::after {
    content: '';
    display: inline-block;
    vertical-align: middle;
    width: 7.75rem;
    height: 0.625rem;
    margin-left: 1rem;
    border-right: 1px solid var(--color-red);
    border-bottom: 1px solid var(--color-red);
    transform: skewX(225deg) translateX(-0.5rem);
    transition: transform .3s ease-out;
  }
  &:hover::after {
    transform: skewX(225deg) translateX(.125rem);
  }
}

.my-calendar {
  text-align: center;
  caption {
    caption-side: top;
    font-weight: bold;
    font-style: italic;
    font-size: 1.5625rem;
    letter-spacing: 0.2em;
    text-align: center;
    padding: 0;
  }
  thead {
    border-bottom: 2px solid var(--color-yellow);
    th {
      font-size: 0.9375rem;
      font-weight: 500;
      padding-block: 1.25rem 0.625rem;
    }
  }
  tbody {
    td {
      padding: 0.375rem;
      &.-disabled {
        color: #bdbdbd;
      }
      &.-today {
        font-weight: bold;
      }
    }
  }
}

.my-calendar-date {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 2.1875rem;
  height: 2.1875rem;
  border-radius: var(--border-radius-pill);
  &.-type1 {
    background: var(--color-red);
    color: #fff;
  }
  &.-type2 {
    background: var(--color-blue);
    color: #fff;
  }
}

.my-calendar-legend {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3.125rem;
  font-size: 0.9375rem;
  margin-top: 2.5rem;
  dl {
    display: flex;
    align-items: center;
    gap: 0.625rem;
  }
}

.my-header {
  display: flow-root;
  position: relative;
  .my-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 8.625rem;
    .my-header-logo {
      display: block;
      transition: opacity .3s ease-out;
      img {
        width: 7.875rem;
      }
      &:hover {
        opacity: .8;
      }
    }
    .my-header-open,
    .my-header-close,
    #menu-flag {
      display: none;
    }
    .my-header-nav {
      flex: 1;
      display: flex;
      height: 100%;
      .my-header-logo {
        display: none;
      }
      ul {
        list-style: none;
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        align-items: center;
        padding: 0 1.25rem;
        margin: 0 0 0 auto;
        a {
          position: relative;
          display: block;
          padding: 0.3125rem 1.25rem;
          &::after {
            content: '';
            position: absolute;
            inset: auto 1.25rem 0;
            height: 2px;
            background: var(--color-red);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform .3s ease-out;
          }
          &:hover::after {
            transform: scaleX(1);
          }
        }
      }
      .-contact {
        position: relative;
        overflow: hidden;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 10.625rem;
        padding-inline: 1.25rem;
        font-weight: bold;
        white-space: nowrap;
        background: var(--color-yellow);
        color: var(--color-red);
        transition: all .3s ease-out;
        z-index: 1;
        span {
          color: #191919;
          transition: color .3s ease-out;
        }
        &::before {
          content: '';
          position: absolute;
          inset: 0;
          background: var(--color-red);
          transform: translateX(-100%);
          transition: transform .3s ease-out;
          z-index: -1;
        }
        &:hover {
          color: var(--color-yellow);
          background: none;
          span {
            color: #fff;
          }
          &::before {
            transform: translateX(0);
          }
        }
      }
    }
  }
}

.my-main {
  display: flow-root;
  position: relative;
  margin-top: 1.875rem;
  &.-bg01 {
    background: #F5F4F5;
  }
}

.my-footer {
  display: flow-root;
  position: relative;
  background: var(--color-yellow);
  padding-top: 3.75rem;
  text-align: center;
  .my-footer-pagetop {
    position: relative;
    > a {
      position: absolute;
      top: -7.5rem;
      right: 0;
      width: 8.15188rem;
      height: 7.35375rem;
      background: url(../img/icon-pagetop.svg?v1) center / contain no-repeat;
      font-weight: bold;
      font-size: 1rem;
      text-align: center;
      color: #fff;
      padding-top: 5.1125rem;
      transition: opacity .3s ease-out;
      &:hover {
        opacity: .8;
      }
    }
  }
  .my-footer-logo {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    font-size: 1.875rem;
    color: #fff;
    transition: opacity .3s ease-out;
    &:hover {
      opacity: .8;
    }
    img {
      width: 10.375rem;
    }
  }
  .my-footer-sns {
    display: flex;
    justify-content: center;
    gap: 1.25rem;
    margin-block: 1.25rem 1.875rem;
    a {
      width: 1.875rem;
      transition: opacity .3 ease-out;
      &:hover {
        opacity: .8;
      }
      img {
        display: block;
        width: 100%;
      }
    }
  }
  .my-footer-address {
    font-size: 0.9375rem;
    font-weight: bold;
    line-height: 2;
    margin-bottom: 1.25rem;
  }
  .my-footer-tel {
    position: relative;
    display: inline-block;
    font-size: 1.5625rem;
    font-weight: bold;
    color: var(--color-red);
    border-bottom: 1px solid var(--color-red);
    margin-bottom: 1.25rem;
    transition: all .3s ease-out;
    svg {
      path {
        transition: all .3s ease-out;
      }
    }
    &:hover {
      opacity: .8;
    }
  }
  .my-footer-info {
    font-size: 0.9375rem;
  }
  .my-footer-nav {
    display: flex;
    justify-content: center;
    gap: 3.75rem;
    margin-top: 5.625rem;
    ul {
      list-style: none;
      padding: 0;
      margin: 0;
    }
    > ul {
      display: flex;
      flex-wrap: wrap;
      gap: 1.875rem 3.75rem;
      > li {
        text-align: left;
        white-space: nowrap;
        > a {
          display: block;
          position: relative;
          font-weight: bold;
          font-size: 1.25rem;
          letter-spacing: 0.2em;
          color: var(--color-red);
          &::after {
            content: '';
            position: absolute;
            inset: auto 0 0;
            height: 1px;
            background: var(--color-red);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform .3s ease-out;
          }
          &:hover::after {
            transform: scaleX(1);
          }
        }
        > ul {
          display: flex;
          flex-direction: column;
          gap: 1.25rem;
          margin-top: 1.75rem;
          > li {
            > a {
              font-weight: bold;
              font-size: 0.9375rem;
              color: var(--color-body);
              &:hover {
                color: var(--color-red);
                text-decoration: underline;
                text-underline-offset: 0.25em;
              }
            }
          }
        }
      }
    }
    .-contact {
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: 10.625rem;
      padding-inline: 1.25rem;
      font-weight: bold;
      white-space: nowrap;
      background: var(--color-red);
      border: 1px solid var(--color-red);
      color: var(--color-yellow);
      transition: all .3s ease-out;
      z-index: 1;
      span {
        color: #fff;
      }
      &::before {
        content: '';
        position: absolute;
        inset: 0;
        background: var(--color-body);
        transform: translateX(-100%);
        transition: transform .3s ease-out;
        z-index: -1;
      }
      &:hover {
        background: none;
        &::before {
          transform: translateX(0);
        }
      }
    }
  }
  small {
    display: flow-root;
    border-top: 2px solid var(--color-red);
    font-size: 0.875rem;
    padding: 1.25rem;
    margin-top: 3.75rem;
  }
}

#home_hero {
  .carousel {
    &::after {
      content: '';
      position: absolute;
      right: 1.875rem;
      bottom: 0.3125rem;
      width: 3.125rem;
      height: 1.9375rem;
      background: url(../img/icon-paws-w.svg) center / contain no-repeat;
    }
  }
  .carousel-indicators [data-bs-target] {
    width: 70px;
    height: 5px;
    background: #fff;
    border: 0;
    opacity: 1;
  }
  .carousel-indicators .active {
    background: var(--color-body);
  }
  .-coupon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    max-width: 46.25rem;
    height: 10.375rem;
    background: url(../img/home_hero-bg01.jpg?v1) bottom center / cover no-repeat;
    margin: 3.125rem auto 0;
    padding-block: 2.375rem;
    font-size: 1.875rem;
    color: #fff;
    svg {
      width: 2.125rem;
      transition: transform .3s ease-out;
    }
    &:hover {
      svg {
        transform: translateY(0.625rem);
      }
    }
  }
}

#home_message {
  .my-cols {
    gap: 3.125rem;
    .-img {
      width: 34%;
      img {
        display: block;
        width: 100%;
      }
    }
    .-txt {
      flex: 1;
      font-size: 0.9375rem;
      font-weight: bold;
      p {
        line-height: 2;
      }
    }
  }
}

#home_news {
  .my-container {
    > .my-cols {
      .-txt {
        flex: 1;
        > .my-cols {
          gap: 3.125rem;
          background: var(--color-gray-light);
          padding: 6.25rem;
          margin-right: -1.875rem;
          > div {
            flex: 1;
            position: relative;
            table {
              width: 100%;
              font-weight: bold;
              tr {
                border-bottom: 2px solid var(--color-yellow);
                td {
                  padding-block: 1rem;
                  a {
                    display: flex;
                    span:nth-of-type(1) {
                      width: 8rem;
                    }
                  }
                }
              }
            }
            .my-link01 {
              position: absolute;
              right: 0;
              bottom: -3.8rem;
            }
          }
        }
      }
      .-img {
        width: 34%;
        padding-top: 3.75rem;
        z-index: -1;
        img {
          display: block;
          width: 100%;
        }
      }
    }
  }
}

#home_menu {
  .-bg {
    position: relative;
    background: var(--color-yellow);
    padding-bottom: 6.25rem;
    &::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3.75rem;
      background: #fff;
    }
    .-img {
      position: relative;
      width: fit-content;
      margin: 0 auto 3.75rem;
      picture:nth-child(1) img {
        display: block;
        max-width: 100%;
        margin-inline: auto;
        mix-blend-mode: multiply;
      }
      picture:nth-child(2) img {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        width: 74%;
        border-radius: 10px;
        margin-inline: auto;
      }
    }
    .my-container {
      max-width: calc(62.5rem + var(--padding-container) * 2);
      .my-cols {
        gap: 3.125rem;
        .my-title01 {
          white-space: nowrap;
        }
        > div {
          font-size: 0.9375rem;
          font-weight: bold;
          line-height: 2;
        }
      }
    }
  }
}

#home_recommend {
  .-lead {
    text-align: center;
    font-size: 0.9375rem;
    font-weight: bold;
    line-height: 2;
  }
  .my-cols {
    justify-content: space-between;
    gap: 2.5rem;
    margin-top: 2.5rem;
    li {
      width: 28.125rem;
      img {
        display: block;
        width: 100%;
      }
      dl {
        margin-top: 2rem;
        dt {
          display: flex;
          align-items: center;
          margin-bottom: 1rem;
          &::after {
            content: '';
            flex: 1;
            height: 2px;
            background: var(--color-yellow);
          }
          .-num {
            font-size: 30px;
            letter-spacing: 0.3em;
            color: var(--color-yellow);
          }
          .-title {
            font-weight: bold;
            font-size: 1.25rem;
            padding-inline: 1.25rem 2.5rem;
          }
        }
        dd {
          font-size: 0.9375rem;
          font-weight: bold;
          line-height: 2.5;
          .my-link01 {
            margin-top: 2.5rem;
          }
        }
      }
    }
  }
}

#home_staff_wrap {
  &::after {
    content: '';
    position: absolute;
    top: 13rem;
    right: 0;
    bottom: 0;
    left: 0;
    background: url(../img/home_staff_wrap-bg01.jpg) center / cover no-repeat;
    z-index: -1;
  }
}

#home_staff {
  padding-bottom: 6.25rem;
  .my-rows {
    > .my-cols {
      gap: 3.125rem;
      dl {
        flex: 1;
        dt {
          font-size: 1.25rem;
          margin-bottom: 1.25rem;
          small {
            display: block;
            font-weight: bold;
            color: var(--color-red);
            letter-spacing: 0.3em;
            margin-bottom: 0.625rem;
          }
          span {
            font-weight: bold;
          }
        }
        dd {
          font-size: 0.9375rem;
          font-weight: bold;
          line-height: 2;
        }
      }
      & + .my-cols {
        border-top: 2px dashed #b8b8b8;
        padding-top: 4.375rem;
        margin-top: 4.375rem;
      }
    }
  }
}

#home_movie {
  iframe {
    display: block;
    width: 100%;
    max-width: 56.25rem;
    height: auto;
    aspect-ratio: 16 / 9;
    margin-inline: auto;
  }
}

#menu {
  table {
    width: 100%;
    max-width: 43.75rem;
    font-weight: bold;
    margin: 0 auto 3.125rem;
    tbody {
      tr {
        border-bottom: 2px solid var(--color-yellow);
        th {
          font-size: 0.9375rem;
        }
        td {
          text-align: right;
          font-size: 1.25rem;
          padding: 2.5rem;
        }
      }
    }
  }
  .-colorant {
    background: var(--color-yellow);
    padding: 3.125rem 1rem;
    text-align: center;
    font-weight: bold;
    margin-top: 4.375rem;
    h3 {
      display: inline-block;
      width: 20rem;
      background: var(--color-red);
      padding-block: 1.25rem;
      margin-bottom: 1.25rem;
      span {
        font-size: 0.9375rem;
        color: var(--color-yellow);
      }
      strong {
        display: block;
        font-size: 1.25rem;
        color: #fff;
      }
    }
    .my-cols {
      flex-wrap: wrap;
      justify-content: center;
      gap: 1.25rem;
      font-size: 0.9375rem;
      margin-top: 1.5rem;
      li {
        width: 20rem;
        background: #fff;
        padding: 1rem;
        border-radius: 0.3125rem;
      }
    }
  }
  .-note01 {
    text-align: center;
    font-size: 0.9375rem;
    font-weight: bold;
    line-height: 2;
  }
}

#recommend {
  .my-container {
    > .my-cols {
      & + .my-cols {
        margin-top: 6.25rem;
      }
      .-img {
        width: 52.8%;
        z-index: 0;
        img {
          display: block;
          max-width: 100%;
          margin-inline: auto;
        }
      }
      .-txt {
        flex: 1;
        z-index: 1;
        dl {
          background: var(--color-yellow);
          padding: 2.5rem;
          margin-top: 3.125rem;
          margin-left: -10%;
          dt {
            margin-bottom: 1.875rem;
            .-en {
              display: flex;
              align-items: center;
              gap: 1.25rem;
              font-size: 1.5625rem;
              font-weight: bold;
              letter-spacing: 0.3em;
              .-num {
                font-size: 1.875rem;
              }
            }
            strong {
              display: block;
              font-size: 1.5625rem;
              font-weight: bold;
            }
          }
          dd {
            p {
              font-size: 0.9375rem;
              font-weight: bold;
              line-height: 2.5;
            }
            .my-btn01 {
              margin-left: 0;
            }
          }
        }
      }
      &:nth-last-of-type(even) {
        flex-direction: row-reverse;
        .-txt {
          dl {
            margin-left: 0;
            margin-right: -10%;
          }
        }
      }
    }
  }
}

#qa {
  details {
    max-width: 62.5rem;
    font-size: 0.9375rem;
    font-weight: bold;
    line-height: 2;
    margin: 1.875rem auto 0;
    &::details-content {
      height: 0;
      overflow: clip;
      transition: height .3s ease-out, content-visibility .3s allow-discrete;
    }
    &[open]&::details-content {
      height: auto;
    }
    > summary {
      position: relative;
      background: var(--color-yellow);
      list-style: none;
      padding: 1.25rem 4rem 1.25rem 5.625rem;
      &::-webkit-details-marker {
        display: none;
      }
      &::before {
        content: 'Q';
        position: absolute;
        top: 1.25rem;
        left: 3.125rem;
        font-size: 1.875rem;
        font-weight: bold;
        line-height: 1;
      }
      &::after {
        content: '';
        position: absolute;
        top: 0;
        right: 1.875rem;
        bottom: 0;
        margin-block: auto;
        width: 1.0625rem;
        height: 0.625rem;
        background: url(../img/icon-arrow.svg) center / contain no-repeat;
        transform: rotate(180deg);
        transition: transform .3s ease-out;
      }
    }
    &[open] > summary::after {
      transform: rotate(0);
    }
    > div {
      position: relative;
      padding: 1.25rem 1.25rem 1.25rem 5.625rem;
      background: #fff;
      &::before {
        content: 'A';
        position: absolute;
        top: 1.25rem;
        left: 3.125rem;
        font-size: 1.875rem;
        font-weight: bold;
        line-height: 1;
        color: var(--color-red);
      }

    }
  }
}

#access {
  .-map {
    p {
      text-align: center;
      font-size: 0.9375rem;
      font-weight: bold;
      line-height: 2;
    }
    iframe {
      display: block;
      width: 100%;
      height: 37.5rem;
      margin-block: 3.125rem 1.875rem;
    }
    .-note {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 1.25rem;
      &::before {
        content: '';
        display: block;
        width: 2.10938rem;
        height: 1.44125rem;
        background: url(../img/icon-car.svg) center / contain no-repeat;
      }
    }
  }
  .-details {
    margin-top: 6.25rem;
    padding-top: 1.875rem;
    border-top: 2px solid var(--color-yellow);
    table {
      width: 100%;
      border-collapse: separate;
      border-spacing: 0 1.875rem;
      font-size: 0.9375rem;
      font-weight: bold;
      line-height: 2;
      tbody {
        tr {
          th {
            background: var(--color-yellow);
            color: var(--color-red);
            padding-inline: 1rem;
            text-align: center;
            white-space: nowrap;
            font-weight: normal;
            .-en {
              display: inline-block;
              margin-right: 1.25rem;
              font-weight: bold;
              font-size: 1.25rem;
              letter-spacing: 0.2em;
            }
          }
          td {
            padding-inline: 1.875rem;
          }
        }
      }
    }
  }
}

#news {
  .my-container {
    max-width: calc(68.125rem + var(--padding-container));
    .-year {
      margin-bottom: 1.875rem;
      select {
        font-weight: bold;
        letter-spacing: 0.2em;
        color: var(--color-body);
        width: 15rem;
        margin-inline: auto;
        border-color: var(--color-yellow);
      }
    }
    .my-cols {
      flex-wrap: wrap;
      justify-content: space-between;
      row-gap: 1.875rem;
      > li {
        width: 48.6%;
        a {
          position: relative;
          display: block;
          padding: 1.875rem 3.125rem;
          background: #fff;
          &::after {
            content: '';
            position: absolute;
            inset: 0 1.875rem 0 auto;
            margin-block: auto;
            width: 0.8275rem;
            height: 0.78063rem;
            background: url(../img/icon-arrow-link.svg) center / contain no-repeat;
            transition: transform .3s ease-out;
          }
          &:hover::after {
            transform: translateX(0.625rem);
          }
          dl {
            font-weight: bold;
            line-height: 2;
            dt {
              letter-spacing: 0.2em;
            }
            dd {
              font-size: 0.9375rem;
            }
          }
        }
      }
    }
    article {
      padding: 3.125rem;
      background: #fff;
      line-height: 2;
      margin-bottom: 3.125rem;
      > time {
        font-weight: bold;
        letter-spacing: 0.2em;
        color: var(--color-red);
      }
      > h3 {
        font-weight: bold;
        font-size: 1.25rem;
        padding-block: 0.625rem 1.875rem;
        margin-bottom: 1.875rem;
        border-bottom: 2px solid var(--color-yellow);
      }
    }
  }
}

#before_after {
  .-lead {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2.5rem;
    font-size: 0.9375rem;
    font-weight: bold;
    text-align: center;
  }
  .-list {
    margin-top: 6.25rem;
    padding-block: 3.125rem;
    background: url(../img/before_after-bg01.jpg) center / cover no-repeat;
    .my-cols {
      flex-wrap: wrap;
      justify-content: center;
      gap: 3.75rem 2.5rem;
      li {
        a {
          display: block;
          position: relative;
          background: #000;
          &::after {
            content: '';
            position: absolute;
            inset: auto 0 1.875rem;
            margin-inline: auto;
            width: 7.75rem;
            height: 0.625rem;
            border-right: 2px solid #fff;
            border-bottom: 1px solid #fff;
            transform: skewX(225deg) translateX(-0.5rem);
            transition: transform .3s ease-out;
          }
          &:hover::after {
            transform: skewX(225deg) translateX(.125rem);
          }
          img {
            display: block;
            object-fit: cover;
            width: 27.5rem;
            height: 19.75rem;
            opacity: .45;
          }
          figcaption {
            position: absolute;
            inset: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            text-align: center;
            font-weight: bold;
            font-size: 1.25rem;
            color: #fff;
          }
        }
      }
    }
  }
  #imgModal {
    .modal-body {
      img {
        display: block;
        width: 100%;
      }
      figcaption {
        font-size: 1.25rem;
        font-weight: bold;
        text-align: center;
        margin-top: 1.25rem;
      }
    }
  }
}

#contact {
  .my-container {
    max-width: calc(75rem + var(--padding-container) * 2);
    > section {
      margin-top: 6.25rem;
      background: #fff;
      padding: 1.875rem 1.25rem;
      > h3 {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 1rem;
        font-weight: bold;
        font-size: 0.9375rem;
        margin-bottom: 1.875rem;
        .-en {
          font-weight: normal;
          font-size: 1.5625rem;
          letter-spacing: 0.2em;
        }
      }
      > p {
        text-align: center;
        font-weight: bold;
        font-size: 0.9375rem;
      }
      > .my-btn01 {
        width: 100%;
        max-width: 25rem;
        font-size: 1.25rem;
        letter-spacing: 0.2em;
        margin-block: 1.875rem 0.625rem;
      }
    }
  }
}

#footer_coupon {
  background: #fff;
  .-coupon {
    position: relative;
    display: block;
    max-width: 85rem;
    margin: -6rem auto 0;
    z-index: 0;
    img {
      display: block;
      width: 100%;
    }
    > dl {
      position: absolute;
      top: 25%;
      right: 13.5%;
      bottom: 17%;
      left: 13.5%;
      display: flex;
      flex-direction: column;
      justify-content: space-around;
      align-items: center;
      background: var(--color-yellow);
      border: 1.25rem solid #fff;
      padding: 1rem 1.25rem;
      filter: drop-shadow(0px 0px 80px rgba(0, 0, 0, 0.17));
      > dt {
        font-weight: bold;
        font-size: 1.875rem;
        letter-spacing: 0.2em;
        color: var(--color-red);
      }
      > dd {
        font-weight: bold;
        font-size: 0.9375rem;
        width: 100%;
        max-width: 35rem;
        > dl {
          display: flex;
          justify-content: space-between;
          > dd {
            strong {
              display: inline-block;
              font-weight: bold;
              font-size: 0.75rem;
              width: 1.5625rem;
              text-align: center;
              background: var(--color-red);
              color: #fff;
              vertical-align: text-bottom;
            }
          }
        }
      }
    }
  }
  .my-container {
    max-width: 62.5rem;
    p {
      font-size: 0.9375rem;
      font-weight: bold;
      line-height: 2;
    }
    .my-btn01 {
      margin-top: 1.875rem;
    }
  }
}

#footer_contact {
  background: url(../img/footer_contact-bg.jpg) center / cover no-repeat;
  .my-cols {
    gap: 2.5rem;
    max-width: 85rem;
    margin-inline: auto;
    dl {
      flex: 1;
      background: #fff;
      padding: 1.875rem;
      border-radius: 0.625rem;
      font-size: 0.9375rem;
      text-align: center;
      dt {
        font-size: 1.25rem;
        letter-spacing: 0.2em;
        padding-top: 2.1875rem;
        background: top center / auto 1.5625rem no-repeat;
        margin-bottom: 1.25rem;
      }
      &.-tel {
        dt {
          background-image: url(../img/icon-tel.svg?v1);
        }
        dd {
          .-number {
            display: inline-block;
            font-weight: 500;
            font-size: 1.875rem;
            letter-spacing: 0.2em;
            line-height: 1.1;
            border-bottom: 2px solid var(--color-yellow);
            transition: border-bottom-color .3s ease-out;
            &:hover {
              border-bottom-color: var(--color-red);
            }
          }
          .-time {
            font-weight: bold;
            margin-top: 1.25rem;
          }
        }
      }
      &.-mail {
        dt {
          background-image: url(../img/icon-mail.svg?v1);
        }
        dd {
          .my-btn01 {
            margin-bottom: 1.5625rem;
          }
        }
      }
    }
  }
}

#footer_calendar {
  .my-cols {
    flex-wrap: wrap;
    justify-content: center;
    gap: 3.75rem;
  }
}

/* `xxl` applies to x-large devices (large desktops, less than 1400px) */
@media (max-width: 1399.98px) {

}

/* `xl` applies to large devices (desktops, less than 1200px) */
@media (max-width: 1199.98px) {
  #home_news {
    .my-container {
      > .my-cols {
        .-txt {
          > .my-cols {
            margin-right: 0;
          }
        }
        .-img {
          display: none;
        }
      }
    }
  }

  #home_recommend {
    .my-cols {
      flex-wrap: wrap;
      justify-content: center;
    }
  }
}

/* `lg` applies to medium devices (tablets, less than 992px) */
@media (max-width: 991.98px) {
  .my-sec {
    padding-block: 3.125rem;
    &.-icon {
      padding-top: 10.125rem;
      &::before {
        top: 3.375rem;
      }
    }
  }

  .my-header {
    .my-container {
      display: block;
      height: auto;
      margin-bottom: 0.9375rem;
      .my-header-logo {
        display: flex;
        justify-content: center;
        padding-top: 2.5rem;
      }
      .my-header-open,
      .my-header-close {
        display: block;
        position: fixed;
        top: 0;
        right: 0;
        width: 3.125rem;
        height: 3.125rem;
        background: var(--color-yellow) url(../img/icon-menu-open.svg) center / 1.5625rem no-repeat;
        z-index: 10;
      }
      .my-header-close {
        background-image: url(../img/icon-menu-close.svg);
      }
      .my-header-nav {
        display: none;
      }
      #menu-flag:checked + .my-header-nav {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        height: auto;
        background: var(--color-body);
        overflow-y: auto;
        z-index: 10;
        .my-header-logo {
          display: flex;
        }
        ul {
          flex-direction: column;
          align-items: center;
          gap: 1.25rem;
          margin: 1.25rem 0;
          a {
            color: #fff;
            &:hover {
              color: var(--color-red);
            }
          }
        }
        .-contact {
          border: 1px solid var(--color-yellow);
          height: 8.625rem;
          margin-bottom: 1.25rem;
        }
      }
    }
  }

  .my-footer {
    padding-top: 10.5rem;
    .my-footer-pagetop {
      > a {
        top: -11.2rem;
        right: 0;
        left: 0;
        margin-inline: auto;
      }
    }
    .my-footer-nav {
      display: none;
    }
  }

  #home_staff_wrap {
    &::after {
      top: 13.4rem;
      background-image: url(../img/home_staff_wrap-bg01-sp.jpg);
    }
  }

  #footer_contact {
    background-image: url(../img/footer_contact-bg-sp.jpg);
    .my-cols {
      flex-direction: column;
      gap: 1.875rem;
    }
  }

  #menu {
    table {
      display: block;
      tbody {
        display: block;
        tr {
          display: block;
          padding-block: 2.5rem;;
          th {
            display: block;
            margin-bottom: 0.9375rem;
          }
          td {
            display: block;
            text-align: left;
            padding: 0;
          }
        }
      }
    }
    .-note01 {
      text-align: left;
    }
  }

  #recommend {
    .my-container {
      > .my-cols {
        flex-direction: column;
        & + .my-cols {
          margin-top: 3.125rem;
        }
        .-img {
          width: 100%;
        }
        .-txt {
          dl {
            margin-left: 0;
          }
        }
        &:nth-last-of-type(even) {
          flex-direction: column;
          .-txt {
            dl {
              margin-right: 0;
              dt {
                .-en {
                  font-size: 1.25rem;
                }
              }
            }
          }
        }
      }
    }
  }

  #access {
    .-map {
      p {
        text-align: left;
      }
      iframe {
        height: 31.25rem;
      }
    }
    .-details {
      table {
        display: block;
        tbody {
          display: block;
          tr {
            display: block;
            th {
              display: block;
              padding-inline: 1rem;
            }
            td {
              display: block;
              padding: 1.25rem 0 1.875rem;
              text-align: center;
            }
          }
        }
      }
    }
  }
}

/* `md` applies to small devices (landscape phones, less than 768px) */
@media (max-width: 767.98px) {
  #home_hero {
    .-coupon {
      background-image: url(../img/home_hero-bg01-sp.jpg?v1);
      font-size: 1.25rem;
    }
  }

  #home_message {
    .my-cols {
      flex-direction: column-reverse;
      gap: 1.875rem;
      .-img {
        width: auto;
      }
      .-txt {
        .my-title01 {
          align-items: center;
        }
      }
    }
  }

  #home_news {
    .my-container {
      > .my-cols {
        .-txt {
          > .my-cols {
            flex-direction: column;
            gap: 1.875rem;
            padding: 3.125rem 1.25rem 6.25rem;
            .my-title01 {
              align-items: center;
            }
            > div {
              table {
                tr {
                  td {
                    a {
                      flex-direction: column;
                      gap: 0.5rem;
                    }
                  }
                }
              }
              .my-link01 {
                right: 0;
              }
            }
          }
        }
      }
    }
  }

  #home_menu {
    .-bg {
      padding-bottom: 3.125rem;
      &::before {
        height: 6.25rem;
      }
      .-img {
        margin-bottom: 3.125rem;
        picture:nth-child(2) img {
          width: 80%;
        }
      }
      .my-container {
        .my-cols {
          flex-direction: column;
          gap: 1.875rem;
          .my-title01 {
            align-items: center;
          }
        }
      }
    }
  }

  #home_recommend {
    .-lead {
      text-align: left;
    }
    .my-cols {
      flex-direction: column;
      gap: 3rem;
      li {
        width: 100%;
      }
    }
  }

  #home_staff {
    padding-bottom: 3.125rem;
    .my-rows {
      > .my-cols {
        flex-direction: column;
        align-items: center;
        gap: 1.875rem;
        dl {
          dt {
            text-align: center;
          }
        }
        & + .my-cols {
          padding-top: 1.875rem;
          margin-top: 1.875rem;
        }
      }
    }
  }

  #qa {
    details {
      > summary {
        padding-inline: 4.0625rem 3.125rem;
        &::before {
          left: 1.25rem;
        }
        &::after {
          right: 1.25rem;
        }
      }
      > div {
        padding-inline: 4.0625rem 1.25rem;
        &::before {
          left: 1.25rem;
        }
      }
    }
  }

  #news {
    .my-container {
      .my-cols {
        > li {
          width: 100%;
          a {
            padding-inline: 1.25rem 2.5rem;
            &::after {
              content: '';
              right: 1.25rem;
            }
            &:hover::after {
              transform: translateX(0.625rem);
            }
            dl {
              font-weight: bold;
              line-height: 2;
              dt {
                letter-spacing: 0.2em;
              }
              dd {
                font-size: 0.9375rem;
              }
            }
          }
        }
      }
    }
  }

  #before_after {
    .-lead {
      gap: 1rem;
    }
    .-list {
      margin-top: 3.125rem;
      .my-cols {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 1.875rem;
        li {
          a {
            &::after {
              bottom: 1.5625rem;
            }
            img {
              width: 100%;
              height: auto;
              aspect-ratio: 353 / 130;
            }
          }
        }
      }
    }
  }

  #footer_coupon {
    .-coupon {
      > dl {
        position: absolute;
        top: 15%;
        right: 5.5%;
        bottom: 15%;
        left: 5.5%;
        > dd {
          > dl {
            flex-direction: column;
            align-items: center;
            > dt {
              margin-bottom: 1rem;
            }
          }
        }
      }
    }
  }
}

/* `sm` applies to x-small devices (portrait phones, less than 576px) */
@media (max-width: 575.98px) {

}

@media (max-width: 392.98px) {
  :root {
    font-size: calc(100vw * 16 / 393);
  }
}
