@charset "UTF-8";

/*---- エラーページ ----*/
.page-customerror {
  .pane-main {

    /*-- エラー部分 --*/
    .block-custom-error {
      margin: 12px 0 0;
      padding: 48px 0;
      text-align: center;
      background: color-mix(in srgb, var(--col_paleGray, #f5f5fa) 100%, transparent);

      .block-custom-error--title {
        margin-top: 0;
        padding: 0;
        line-height: 2;
        font-weight: 700;
        font-size: 2.2rem;
        word-break: auto-phrase;

        .codedown & {
          color: var(--cl-dn, #d9534f) !important;
        }
      }

      .block-custom-error--lead {
        margin-top: 16px;
        line-height: 1.7;
        font-family: var(--ff-serif);
        font-weight: 600;
        font-size: 2.2rem;

        a {
          color: var(--col_Gold);
          text-decoration: none;
        }
      }
      .block-custom-error--message {
        margin: 24px auto 0;
        padding: 0 0;
        line-height: 2;
        font-feature-settings: "palt";
      }
      .block-custom-error--code {
        displaY: block;
        font-weight: 600;
        color: var(--cl-dn, #d9534f);

        &::before,
        &::after {
          margin: 0 0.2em;
          font-weight: 400;
          color: var(--cl-br, #433d37);
        }
        &::before { content: "（"; }
        &::after { content: ")"; }
      }

      .action-buttons {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 16px;

        .action {
          .block-custom-error--to-top {
            display: flex;
            align-items: center;
            justify-content: center;
          }
        }
        .block-custom-error-404--history-back {
          border-radius: 5px;
          text-decoration: underline;
          display: flex;
          align-items: center;
          justify-content: center;
          padding: 0 16px;
          background-color: color-mix(in srgb, var(--col_paleGray) 100%, #ffffff);
          height: 44px;
          min-width: 96px;
          text-decoration: none;
          color: #333333;

          &:hover {
            text-decoration: none;
          }
        }
      }
    }

    /*-- サービス紹介 --*/
    .block-custom-error--service {
      border-top: 1px solid color-mix(in srgb, var(--cl-heading, #444444) 30%, transparent);
      margin: 20px auto 0;
      padding: 20px 0 0;
      text-align: center;

      .block-custom-error--service-title {
        line-height: 1.5em;
        letter-spacing: -0.05em;
        font-size: 2.0rem;
      }

      .block-custom-error--service-lead {
        margin: 12px 0 0;
        text-align: center;
        font-feature-settings: "palt";
      }

      ul.block-custom-error--service-items {
        display: flex;
        flex-wrap: wrap;
        margin: 20px 0 0;
        gap: 20px 10px;

        li {
          width: calc((100% - 10px) /2);
          display: flex;
          flex-direction: column;

          &:nth-child(n+3) {
            width: 100%;

            h3 {
              padding: 12px;
              min-height: unset;
            }
          }

          a {
            display: block;
            color: var(--col_Gold);

            &::after {
              background-color: var(--col_Gold, #baa66d);
            }

            &:has(> img)::after {
              display: none;
            }
          }

          img {
            display: block;
            width: 100%;
            aspect-ratio: 3 / 2;
          }

          h3 {
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 0 0 12px;
            border-bottom: 1px solid color-mix(in srgb, var(--cl-heading, #444444) 30%, transparent);
            padding: 0;
            min-height: 4.5em;
            letter-spacing: 0.025em;
            font-weight: 700;
            font-size: 1.8rem;

            a {
              text-decoration: none;
            }
          }

          p {
            text-align: justify;
            font-feature-settings: "palt";
            font-size: 1.3rem;
          }
        }
      }
    }
  }
}

@media screen and (max-width: 640px) { /* SPのみ */
  /*---- 独立ページ(500系 etc.) ----*/
  .independent {
    .block-menu-btn {
      display: none !important;
    }
  }

  #header-news {
    display: none;
  }

  .page-customerror {
    .pane-main {
      .block-custom-error {
        .block-custom-error--title,
        .block-custom-error--lead {
          span {
            display: none;
          }
        }
        .action-buttons {
          .action {
            .block-custom-error--to-top {
              height: 64px;
              letter-spacing: 0.05em;
            }
          }
        }
      }
    }
  }

  /*---- ヘッダー ----*/
  .wrapper > nav.block-gnav { display: none !important; }

  #header.block-header {
    z-index: 100;
    position: sticky;
    top: 0;
    height: 50px;
    width: 100vw;
    box-shadow: 0 0 3px #00000033;
    overflow: hidden;
    overscroll-behavior: none;

    .js-block-header-top {
      padding: 1px;
      display: flex;
      flex-direction: row-reverse;
      justify-content: space-between;
      height: 50px;
      background: #ffffff;

      .block-menu-btn { /* メニュ－ */
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: 0;
        width: 48px;
        aspect-ratio: 1 / 1;
        text-align: center;
        letter-spacing: -0.05rem;
        font-size: 0.9rem;
      }

      .icon-cart { /* カート */
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        gap: 1px;
        margin: 0;
        width: 48px;
        aspect-ratio: 1 / 1;
        color: transparent;
        background-position: center;
        background-repeat: no-repeat;
        text-decoration: none;

        .block-headernav--cart-count {
          text-align: center;
        }

        svg {
          flex-shrink: 0;
          display: block;
          width: 28px;
          aspect-ratio: 1 / 1;
          fill: none;
          stroke: var(--col_MypreBlue, #00467f);
          stroke-linecap: round;
          stroke-linejoin: round;
          stroke-width: 1.5px;

          & + span {
            display: block;
            width: 100%;
            height: auto;
            bottom: 5px;
            text-align: center;
            line-height: 1;
            letter-spacing: -0.05em;
            font-weight: 600;
            font-size: 0.8rem;
            color: var(--col_MypreBlue, #00467f);
            transition: 0.2s;
          }
        }
      }
    }

    header.container {
      z-index: 100;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      padding: 0;
      position: fixed;
      top: 50px;
      height: calc(100dvh - 50px);
      background: var(--col_paleGray, #f5f5fa);
      backdrop-filter: blur(80px);
      overscroll-behavior-y: none;
      overflow-y: scroll;
      box-shadow: inset 0 0px 200px rgb(0 0 0 / 20%);
      -webkit-overflow-scrolling: touch;

      .block-header-logo { /* ロゴ */
        display: none;
      }

      .block-header-right { /* ユーティリティ */
        z-index: 110;
        order: 1;
        display: flex;
        align-items: center;
        position: sticky;
        top: 0;
        margin: 0;
        padding: 0 0 11px;
        width: 100%;

        .block-headernav-right {
          padding: 9px 12px 12px;
          border-radius: 0 0 8px 8px;
          width: 100vw;
          box-shadow: 0 0 15px #00000020;
          background: var(--col_Background, #ffffff);

          ul {
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            gap: 12px 8px;
            justify-content: space-between;
            width: 100%;

            li {
              box-sizing: border-box;
              flex-basis: calc((100% - 16px) / 3);
              height: 36px;
              background: var(--col_paleGray, #f5f5fa);
              overflow: hidden;
              border-radius: 5px;

              &:has(.icon-user), &:has(.icon-regist) {
                display: flex;
                border: 1px solid var(--col_MypreBlue, #00467f);
                height: 44px;
                overflow: hidden;
                flex-basis: 100%;
                background: #ffffff;

                a {
                  align-items: center;
                  letter-spacing: 0.1em;
                }
              }

              &:has(.icon-cart) {
                display: none;
              }

              a {
                display: flex;
                flex-direction: row;
                align-items: center;
                justify-content: center;
                border-radius: 4px;
                position: relative;
                min-width: 56px;
                height: 100%;
                width: 100%;
                padding: 4px;
                color: var(--col_MypreBlue, #00467f);
                transition: 0.2s;
                font-size: 1.2rem;
                text-decoration: none;

                svg {
                  position: relative;
                  left: -3px;
                  width: 24px;
                  height: 28px;
                  flex-shrink: 0;
                  fill: none;
                  stroke: var(--col_MypreBlue, #00467f);
                  stroke-linecap: round;
                  stroke-linejoin: round;
                  stroke-width: 1.5px;
                  stroke: var(--col_MypreBlue, #00467f);

                  & + span {
                    display: block;
                    margin-top: 2px;
                    text-align: left;
                    line-height: 1;
                    font-feature-settings: "palt";
                    font-weight: 600;
                    font-size: 1.1rem;
                    letter-spacing: -0.01em;
                    color: var(--col_MypreBlue, #00467f);
                  }
                }
              }
            }
          }
        }
      }

      nav.block-gnav { /* グローバルナビ */
        order: 2;

        ul {
          li.block-gnav-item {
            --bgc: #000000;
            position: relative;
            padding: 0 12px 8px;
            border-radius: 8px 0 0 0;
            background: var(--bgc);
            box-shadow: 0 -3px 5px #0000000f;
            transition: 0.1s;

            & + & {
              margin-top: -8px;
            }

            &:has(> a) {
              border-radius: 8px 8px 0 0;

              & > a {
                display: flex;
                justify-content: space-between;
                align-items: center;

                .block-gnav-submenu {
                  display: block;

                  figure {
                    padding: 0;
                    line-height: 1.2;
                    text-align: center;
                    font-size: 1.2rem;
                    color: #ffffff;
                    opacity: 0.75;
                    
                    img { display: none; }
                  }
                }
              }
            }

            /*-- ハンバーガー お祝い・お礼 --*/
            &.gnav-greeting {
              --bgc: var(--col_ScGift, #ffb339);
            }
            /*-- ハンバーガー 出産祝い --*/
            &.gnav-babygift {
              --bgc: var(--col_ScBabygift, #b19b7b);
            }
            /*-- ハンバーガー 引出物・結婚内祝い --*/
            &.gnav-bridal {
              --bgc: var(--col_ScBridal, #b9d5bb);
            }
            /*-- ハンバーガー ご供花・ご香典のお返し --*/
            &.gnav-memorial {
              --bgc: var(--col_ScMemorial, #c79ad1);
            }
            /*-- ハンバーガー 法人ギフト --*/
            &.gnav-corpgift {
              --bgc: var(--col_ScCorpgift, #9ca7bc);
              padding-bottom: 0;
            }

            .block-gnav-ttl {
              .block-gnav-ttl-txt {
                display: flex;
                align-items: center;
                justify-content: space-between;
                position: relative;
                width: 100%;
                height: 56px;
                color: #ffffff;
                cursor: pointer;

                a {
                  display: flex;
                  gap: 4px;
                  align-items: center;
                  color: #ffffff;
                  text-decoration: none;

                  .is-open & {
                    font-weight: 600;
                  }

                  &::before {
                    content: "";
                    display: block;
                    width: 16px;
                    height: 16px;
                    background: #ffffff;
                    mask: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCAzNiAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIxNyIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTE2IDI0TDIyIDE4TDE2IDEyIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4=) no-repeat 0 0 / cover;
                  }
                }

                span {
                  font-size: 1.6rem;
                  letter-spacing: 0.1em;
                }

                .block-gnav-ttl-plus {
                  position: relative;
                  width: 16px;
                  right: 0;
                  aspect-ratio: 1 / 1;
                  background: #ffffff;

                  .is-open & {
                    box-shadow: 0 0 5px #0000000c;
                    transition: 0.7s;
                  }

                  &::before,
                  &::after {
                    content: "";
                    display: block;
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    width: 8px;
                    height: 2px;
                    margin-top: -1px;
                    margin-left: -4px;
                    background: var(--bgc);
                  }
                  &::after {
                    transform: rotate(90deg);
                    transition: 0.15s;
                  }
                  .is-open &::after {
                    transform: rotate(180deg);
                  }
                }
              }

              .block-gnav-submenu {
                .block-gnav-submenu-content {
                  display: flex;
                  flex-direction: column;
                  gap: 4px;
                  padding-bottom: 20px;

                  li {
                    border-radius: 4px;
                    box-shadow: 0 0 5px #00000010;
                    background: #ffffff;
                    overflow: hidden;

                    a {
                      display: flex;
                      flex-direction: row;
                      align-items: center;
                      position: relative;
                      min-height: 48px;
                      padding: 0 28px 0 0;
                      text-decoration: none;
                      letter-spacing: 0.05em;

                      &::after {
                        content: "";
                        display: block;
                        position: absolute;
                        top: 50%;
                        right: 10px;
                        width: 5px;
                        height: 9px;
                        margin-top: -4px;
                        background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1LjA2MSIgaGVpZ2h0PSI4LjcwNyI+PHBhdGggZD0ibS4zNTQuMzU0IDQgNC00IDQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzQ2NDc0OCIvPjwvc3ZnPg==");
                        background-position: center;
                        background-repeat: no-repeat;
                        background-size: contain;
                      }

                      figure {
                        display: flex;
                        flex-shrink: 0;
                        align-items: center;
                        gap: 8px;
                        padding: 0;
                        height: 64px;
                        width: 100%;
                        overflow: hidden;

                        img {
                          flex-shrink: 0;
                          display: block;
                          width: 96px;
                          max-height: 100%;
                          aspect-ratio: 4 / 3;
                          object-fit: cover;
                        }

                        figcaption {
                          word-break: keep-all;
                          font-weight: 600;
                          font-size: 1.45rem;
                          line-height: 1.5;

                          li > a & {
                            display: block;
                          }

                          br {
                            display: none;
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }

      .block-header-left {
        order: 3;
        height: 500px;
      }
    }
  }
}

@media screen and (min-width: 641px) { /* PCのみ */
  .page-customerror {
    .pane-main {
      width: 1060px;

      /*-- エラー部分 --*/
      .block-custom-error {
        margin: 0;
        padding: 72px 0;

        .block-custom-error--title {
          margin-top: 0;
          line-height: 1.7;
        }

        .block-custom-error--lead {
          margin: -30px auto 0;
          font-family: var(--ff-serif);
          font-weight: 600;
          line-height: 1.7;

        }
        .block-custom-error--message {
          font-feature-settings: unset;
        }
        .block-custom-error--code {
            display: inline;
        }

        .action-buttons {

          .action {
            .block-custom-error--to-top {
              width: 300px;
            }
          }
        }
      }

      /*-- サービス紹介 --*/
      .block-custom-error--service {
        margin: 12px auto 0;
        padding: 48px 0 0;

        .block-custom-error--service-title {
          margin: 0;
          font-size: 2.2rem;
        }

        .block-custom-error--service-lead {
          margin: 16px 0 0;
          padding: 0 0 12px;
          font-feature-settings: unset;
        }

        ul.block-custom-error--service-items {
          margin: 24px 0 0;
          gap: 20px;

          li {
            width: calc((100% - 60px) /4) !important;

            a {
              display: block;
              color: var(--col_Gold);

              &::after {
                background-color: var(--col_Gold, #baa66d);
              }

              &:has(> img)::after {
                display: none;
              }
            }

            h3 {
              min-height: 4em !important;
              padding: 0 !important;
              line-height: 1.35;
              letter-spacing: 0;
            }

            p {
              line-height: 1.7;
              font-feature-settings: "palt";
              font-size: 1.4rem;
            }
          }
        }
      }
    }
  }

  /*---- 独立ページ(500系 etc.) ----*/
  .independent {
    height: 100%;

    html:has(&) {
      height: 100vh;
    }
    .wrapper {
      position: relative;
      display: flex;
      height: 100%;
    }
    .block-header-logo {
      margin: 0 auto;
    }
    .pane-contents {
      display: flex;
      flex-grow: 1;
      align-items: center;
      margin: 0;
      padding: 0;
      min-height: unset;
    }
    footer.pane-footer {
      .footer-content {
        .block-footer-contact {
          width: 100%;
          display: flex;
          flex-direction: row;
          flex-wrap: wrap;

          h2 {
            text-align: center;
            width: 100%;
          }

          > div {
            margin: 0 !important;
            width: calc((100% - 24px) /2);
          }
        }
      }
    }
  }
}