@charset "UTF-8";

/*---- ページカテゴリーTOP（一覧）PC版 ----*/
main a {
  color: var( --col_Gold );
  font-feature-settings: "palt";
  text-decoration: underline;

  &[target*="_blank"]::after {
    background-color: var( --col_Gold );
  }

  &:hover {
    text-decoration: none;
  }
}

.h1.block-pagecategory-caption--text {
  text-align: center;
  position: relative;
  padding: 0;
  margin: 0 auto 32px;
  font-size: 3rem;
}

.ctop-heading {
  margin: 0 auto 32px;
  width: 960px;
  overflow: hidden;

  img {
    vertical-align: bottom;
  }
}

p.pgcat-lead {
  margin: 16px 0 0;
  text-align: center;
}

ul.pgcat-list-top {
  --bgCol: var( --col_Background );
  --bdrCol: var( --cl-a );
  border-bottom: 1px dashed #dcdcdc;
  margin: -12px auto 32px;
  padding: 0 0 6px;
  width: 640px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px;

  li {
    --bgCol: var( --cl-br );
    box-sizing: border-box;
    width: 96px;
    border: .5px solid transparent;
    border-radius: 50%;
    transition: .3s;
    display: block grid;
    place-items: center;
    position: relative;

    &.active,
    &:has(a:hover) {
      border: 1px solid var( --bgCol );
    }

    &.pgcat-greeting {
      --bgCol: var( --col_ScGift );
      a::before { mask-image: var( --gsPict-greeting ); }
    }
    &.pgcat-babygift {
      --bgCol: var( --col_ScBabygift );
      a::before { mask-image: var( --gsPict-babygift ); }
    }
    &.pgcat-bridal {
      --bgCol: var( --col_ScBridal );
      a::before { mask-image: var( --gsPict-bridal ); }
    }
    &.pgcat-uchiiwai {
      --bgCol: var( --col_ScBridal );
      a::before { mask-image: var( --gsPict-uchiiwai ); }
    }
    &.pgcat-memorial {
      --bgCol: var( --col_ScMemorial );
      a::before { mask-image: var( --gsPict-memorial ); }
    }
    &.pgcat-corpgift {
      --bgCol: var( --col_ScCorpgift );
      a::before { mask-image: var( --gsPict-corpgift ); }
    }

    a {
      width: 100%;
      aspect-ratio: 1 / 1;
      border-radius: 50%;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-decoration: none;
      transition: .15s;

      &::before {
        content: "";
        display: block;
        width: 60%;
        aspect-ratio: 1 / 1;
        background-color: var( --bgCol );
        transition: .15s;
      }

      span {
        letter-spacing: .05em;
        font-family: var( --ff-serif );
        font-feature-settings: "palt";
        font-size: 1.4rem;
        color: var( --cl-a );
        opacity: 0;
        transition: .6s;
      }
    }

    a:hover {
      opacity: .75;

      span {
        color: var( --bgCol );
        opacity: 1;
      }
    }
  }
}

ul.pgcat-list-top.coltop { /*---- コラムTOP用 ----*/
  width: 720px;

  li {
    width: 106px;

    a {
      gap: 4px;
      transition: .15s;

      span {
        opacity: unset;
        display: block;
      }

      &:hover {
        gap: 0;
      }
    }
  }
}

ul.pgcat-list-top:has(.active) { /*---- 下層用 ----*/
  li {

    &.active {
      border: 0;
      padding: 10px;
      width: calc((100% - (6px * 5)) /6);

      a {
        border-width: 0;
        gap: 2px;

        span {
          display: block;
          opacity: 1;
          font-weight: 600;
          font-size: 1.4rem;
          color: var( --bgCol );
          border-bottom: 2px solid var( --bgCol );
        }
      }
    }

    a {
      span {
        font-size: 0;
        opacity: 0;
        transition: .15s;
      }
    }
  }

  li:has(a:hover) {
    a {
      span {
        margin-top: -2px;
        font-size: 1.3rem;
        opacity: 1;
      }
    }
  }
}

.block-pagecategory-page-list {
  order: 99;

  .pager {
    margin: 10px 0 0;
  }

  .block-pagecategory-page-list--frame {
    display: flex;
    flex-wrap: wrap;
    gap: 32px 8px;
    margin: 20px 0 20px;
    padding: 50px 100px;
    border: 1px dotted #ccc;
    border-width: 1px 0;

    .block-pagecategory-page-list--page {
      position: relative;
      flex-basis: calc((100% - 16px) /3);
      background: var( --col_columnBg );
      padding: 0;
    }
  }
}

.block-pagecategory-page-list--page {
  .block-pagecategory-page-list--page-image {
    padding: 5px;

    figure {
      background: #fff;
      border-radius: 6px 6px 0 0;
      overflow: hidden;

      img {
        aspect-ratio: 16 / 9;
      }
    }
  }

  a {
    transition: .7s;
    opacity: 1;

    &:hover {
      opacity: .7;
    }
  }

  .block-pagecategory-page-list--date {
    display: none /*---- no other way to remove it by design ----*/;
  }

  .block-pagecategory-page-list--auto-new {
    display: block;
    width: 100%;

    &::before {
      content: "NEW";
      position: absolute;
      display: block;
      bottom: 8px;
      right: 8px;
      background: var( --col_MypreBlue );
      color: #fff;
      font-weight: 600;
      font-size: 1.4rem;
      padding: 0 6px;
      white-space: nowrap;
    }

    img {
      display: none;
    }
  }

  .block-pagecategory-page-list--page-caption {
    padding: 5px 10px 10px;
    line-height: 1.5;

    a {
      display: block;
      word-break: auto-phrase;
      text-decoration: none;
      color: var( --cl-a );

      &:hover {
        text-decoration: underline;
        color: var( --col_Gold );
      }
    }
  }
}

.block-pagecategory--pager-bottom.block-pagecategory--pager.pager {
  margin: 0 0 50px;
}

.block-pagecategory-caption {
  order: -10;
}
[class^="block-pagecategory-freespace"] {
  order: -5;
}

/*---- サブカテゴリーリスト ----*/
.block-pagecategory-subcategory-list {
  display: flex;
  flex-direction: row;
  justify-content: center;
  margin: -50px auto 32px;
  padding: 20px 0 10px;
  width: 960px;
  gap: 6px 4px;

  .block-pagecategory-subcategory-list--category {
    --bgCol: var( --col_Gold );
    display: flex;
    align-items: center;
    justify-content: center;
    flex-basis: unset;
    position: relative;
    padding: 0;
    min-height: 32px;
    transition: .3s;

    &:has(a[href*="/0greeting/"]) {
      --bgCol: var( --col_ScGift );
      a::before { mask-image: var( --gsPict-greeting ); }
    }

    &:has(a[href*="/0babygift/"]) {
      --bgCol: var( --col_ScBabygift );
      a::before { mask-image: var( --gsPict-babygift ); }
    }

    &:has(a[href*="/0gift/"]) {
      --bgCol: var( --col_ScBridal );
      a::before { mask-image:  var( --gsPict-bridal ); }
    }

    &:has(a[href*="/0bridal/"]) {
      --bgCol: var( --col_ScBridal );
      a::before { mask-image: var( --gsPict-uchiiwai ); }
    }

    &:has(a[href*="/0kouden/"]) {
      --bgCol: var( --col_ScMemorial );
      a::before { mask-image: var( --gsPict-memorial ); }
    }

    &:has(a[href*="corpgift/"]) {
      --bgCol: var( --col_ScCorpgift );
      a::before { mask-image: var( --gsPict-corpgift ); }
    }

    .block-pagecategory-subcategory-list--category-image {
      display: none;
    }
    .block-pagecategory-subcategory-list--category-caption {
      margin: 0;
      text-align: center;
      font-family: var( --ff-serif );
      font-size: 1.4rem;

      a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 10px;
        border: 1px solid currentColor;
        border-radius: 100px;
        width: 100%;
        height: 32px;
        padding: 0 16px;
        word-break: keep-all;
        text-decoration: none;
        transition: .15s;

        &:hover {
          gap: 0;
          color: var( --bgCol );
          border: 1px solid currentColor;
        }

        &::before {
          content: "";
          display: none;
          margin: 0 auto;
          width: 60%;
          aspect-ratio: 1 / 1;
          mask-size: 100%;
          mask-repeat: no-repeat;
          mask-position: 50% 50%;
          background-color: var( --bgCol );
        }
      }
    }
  }
}

.pane-contents {
  .container {
    position: relative;
    width: var( --wrapperW );
  }

  .pane-main {
    margin: 0;
    position: unset;
    display: flex;
    flex-direction: column;
  }

  .page-page & { /*-- 記事ページ --*/
    .container {
      display: flex;
      flex-direction: row-reverse;
      justify-content: space-between;
      align-items: stretch;

      .pane-left-menu {
        position: relative;
        display: block;
        margin: 0;
        width: 270px;
      }
      .pane-main {
        border-radius: 8px;
        width: 880px;
        background: var( --col_columnBg );
      }
    }
  }

}

/*---- 記事ページ ----*/
.block-page-caption {
  border-radius: 10px 10px 0 0;
  padding: 12px 0 0;
  order: 1;

  .h1.block-page-caption--text {
    width: 800px;
    margin: 0 auto;
  }
}

.pane-topic-path {
  min-height: unset;

  .block-topic-path {
    position: relative;
  }
}

.page-block-sns {
  order: 99;
  padding: 0 40px 36px;

  .tx-box > ul {
    display: flex;
    flex-direction: row;
    justify-content: end;
    height: 20px;

    li {
      position: relative;

      .fb_iframe_widget {
        line-height: 1;
      }
    }
  }
}

.block-page-block {
  border-radius: 0 0 10px 10px;
  padding: 10px 0 0px;
  order: 2;

  > div {
    margin: 0 auto;
    width: 800px;
  }

  h2 {
    position: relative;
    font-feature-settings: "palt";
    font-size: 3.0rem;
    margin: 80px 0 32px;

    &::before {
      content: "";
      display: block;
      margin-bottom: 30px;
      width: 4em;
      height: 2px;
      background: var( --cl-br );
    }
  }

  h3 {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    margin: 40px 0 24px;
    align-items: center;
    letter-spacing: .05em;
    font-feature-settings: "palt";
    font-size: 2.4rem;
    font-weight: 600;

    &::before {
      content: "";
      display: block;
      margin-right: 16px;
      width: 1px;
      height: 24px;
      background: var( --cl-br );
    }
  }

  h4 {
    margin: 20px 0 10px;
    font-size: 1.8rem;
  }

  .ss-num {
    display: inline !important;
    margin: 0 8px 0 0;
    line-height: 1 !important;
    font-size: 80%;
    vertical-align: baseline;
    opacity: 75%;
  }

  p {
    font-size: 1.7rem;
    line-height: 2.2;
    font-feature-settings: "palt";
    margin-bottom: 1em;
    text-align: justify;
    line-break: anywhere;
  }

  blockquote {
    padding: 50px 30px;
    font-size: 1.6rem;
    line-height: 2;
    font-style: italic;
    background: #fff;
    margin: 0 16px 1em;

    .inbq-right {
      text-align: right;
      margin-right: 50%;
    }

    .inbq-right100 {
      text-align: right;
    }
  }

  strong,
  em {
    font-weight: 600;
    font-style: normal;
  }

  ol,
  ul {
    margin: 30px 0;

    li {
      margin-bottom: 10px;
      font-size: 1.6rem;
      display: flex;
    }
  }

  ul li::before {
    content: "・";
  }

  hr {
    margin-top: 20px;
  }

  /*---- テーブル ----*/
  table {
    margin: 20px 0;

    tr {
      margin: 5px 0;

      th,
      td {
        font-size: 1.6rem;
      }
    }

    &.sheeten {
      margin: 0 auto 30px;
      border: 1px solid var( --cl-br );
      outline: 5px solid #fff;
      width: 100%;
      border-collapse: collapse;
      background: var( --cl-br );

      tr {
        border-top: 1px solid var( --cl-br );
        margin: 0;

        > * {
          padding: 12px;
          text-align: center;
          font-size: 1.6rem;
          background: #fff;
          border-collapse: collapse;

          & + * {
            border-left: 1px solid var( --cl-br );
          }
        }

        th {
          font-weight: 600;
          font-size: 1.8rem;
          background: var( --col_columnBg );

          &[scope="row"] {
              width: 30%;
          }
        }
      }
    }
  }

  /*---- おすすめ商品 ----*/
  .ttl-recom-items {
    margin-top: 20px;
    font-size: 1.8rem;
    padding: 0;

    &::before {
      display: none;
    }
  }
}

.block-page-block--contents-body-imgtext-1column img {
  margin-bottom: 20px;
}

.block-page-block--contents-goodslist {
  margin-top: 30px;
  display: flex;
  gap: 16px;

  dl {
    display: flex;
    flex-direction: column;
  }

  .block-page-block--goods-image {
    flex-shrink: 0;
    figure {
      background: #f5f5f5;
      padding: 5px;
    }
  }

  .block-page-block--goods-info {
    flex-shrink: 1;
    margin-top: 8px;
    height: 100%;
  }

  .block-page-block--goods-comment {
    flex-shrink: 0;
    margin-top: 0;
    font-weight: 600;
  }
}

.block-page-block--contents-img {
  margin: 50px auto 0;
  text-align: center;
  box-sizing: border-box;
  display: flex;
  justify-content: center;

  img {
    width: 600px;
    border: 5px #fff solid;
    box-shadow: 5px 5px 10px rgb(0 0 0 /.1);
    box-sizing: content-box;
  }
}

div:has(> .clmn-end-block) {
  width: 100%;

  hr {
    margin-bottom: 20px;
  }
}

p.column-article-link-gs {
  display: flex;
  justify-content: flex-end;
  margin: 0;

  a {
    position: relative;
    padding-right: 32px;
    background: none;

    &::after {
      content: "";
      display: block;
      position: absolute;
      inset: auto 20px auto auto;
      border: 1px solid #fff;
      border-width: 0 1px 1px 0;
      width: 8px;
      height: 8px;
      transform: rotate(-45deg);
    }
  }

  &.greeting a { background: var( --col_ScGift ); }
  &.babygift a { background: var( --col_ScBabygift ); }
  &.bridal   a { background: var( --col_ScBridal ); }
  &.uchiiwai a { background: var( --col_ScBridal ); }
  &.memorial a { background: var( --col_ScMemorial ); }
  &.corpgift a { background: var( --col_ScCorpgift ); }
}

h2.block-recom-item--header {
  margin-top: 40px;
  font-size: 2.2rem;

  &::before {
    display: none;
  }
}

/*---- 目次 ----*/
.toc-wrapper {
  position: absolute;
  inset: 0 0 0  auto;
  width: 270px;
}

details._toc  {
  --availTocHeight: calc(100vh - 36px);
  position: sticky;
  margin: 0;
  color: #666;
  transition: .6s;

  .wrapper:has(.UpMove) & {
    top: 0;
  }
  .wrapper:has(.DownMove) & {
    top: var( --updownMoveHeight );

    ol {
      height: calc( var( --availTocHeight ) - var( --updownMoveHeight ));
    }
  }

  summary {
    background-color: transparent;
    transition: .3s;
    cursor: pointer;
    display: flex;
    padding: 0 0 0 8px;
    align-items: center;
    height: 32px;
    gap: 6px;

    &::before {
      flex-shrink: 0;
      content: "";
      position: relative;
      display: block;
      width: 9px;
      height: 9px;
      border: 2px solid currentColor;
      border-width: 0 0 2px 2px;
      transform: rotate(-135deg) translateY(0);
      transition: .15s;
    }

    [open] & {
      font-weight: 600;
      color: var( --col_MypreBlue );

      &::before {
        transform: rotate(-45deg) translateY(-3px);
      }
    }

    &:hover {
      color: var( --col_Gold );
      background-color: var( --col_columnBg );
    }
  }

  ol {
    position: sticky;
    top: 0;
    margin: 0;
    overflow: visible auto;
    scrollbar-width: thin; 
    height: var( --availTocHeight );
    display: flex;
    flex-direction: column;
    transition: .6s;

    &::before {
      content: "";
      position: sticky;
      top: 0;
      display: block;
      height: 4px;
      width: 100%;
      padding: 2px;
      background: linear-gradient(#fffffdff calc(100% - 4px), #fffffd00 100%);
    }

    li {
      line-height: 1.5;
      margin: 0;

      a {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        width: 100%;
        color: #666;
        font-feature-settings: unset;
        text-decoration: none;
        text-align: justify;
        gap: 4px;
        transition: .3s;
        outline: 0 solid transparent;

        &.is-active {
          padding: 1px 0 1px 3px;
          color: var( --col_MypreBlue );
          font-weight: 600;

          &::after {
            opacity: 0;
          }
        }

        &::after {
          content: "";
          display: block;
          margin-top: calc((1lh - 16px) /2);
          height: 16px;
          aspect-ratio: 1 / 1;
          mask: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNC41IDRMOCA3LjVMMTEuNSA0IiAvPgo8cGF0aCBkPSJNNC41IDExLjVMMTEuNSAxMS41IiAvPgo8L3N2Zz4=") no-repeat 50% 50%;
          background-color: currentColor;
          opacity: 80%;
          transition: .3s;
        }

        &:hover {
          color: var( --col_Gold );
        }
      }
    }

    li.h1 {
      font-weight: 600;
      font-size: 1.5rem;
      padding: 0 0 4px;

      a {
        font-size: 1.6rem;

        &::after  {
          display: none;
        }
      }
    }

    li.h2 {
      margin: 16px 0 12px;
      display: block;
      break-inside: avoid;
      line-height: 1.3;
      border-bottom: 1px dashed #999;

      a {
        font-weight: 600;
        font-size: 1.5rem;
      }
    }

    li.h3 {
      margin: 0 0 6px;
      font-size: 1.4rem;

      a {
        font-feature-settings: "palt";
      }
    }
  }
}