#ndx-table-container,
#ndx-item-container {
  /*
  --main-color: #04b7de;
  --main-dark-color: #13b0e4;
  --main-light-color: #def2fe;
  --main-text-black: #111;
  */

  --star-high-color: #ff2600;
  --star-mid-color: #ff7e33;
  --star-low-color: #ffaf54;

  font-size: 14px;
  color: var(--main-text-black);
  text-align: left;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: -apple-system, BlinkMacSystemFont, Roboto, arial, helvetica,
    Hiragino Kaku Gothic ProN, "ヒラギノ角ゴ ProN W3", Meiryo, sans-serif;
  font-weight: normal;
  word-break: break-word;
  word-wrap: break-word;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;

  svg.icon {
    width: 20px;
    height: 20px;
    color: #999;
  }
  svg.icon-arrow-down {
    font-size: 20px;
    width: 20px;
    height: 20px;
  }
  svg.icon-autorenew {
    font-size: 12px;
    width: 12px;
    height: 12px;
  }
  svg.icon-arrow-up-right {
    color: #fff;
    width: 14px;
    height: 14px;
    margin-left: 4px;
  }

  b {
    all: unset;
    display: block;
    &::before,
    &::after {
      all: unset;
      content: unset;
    }
  }

  b {
    background: linear-gradient(transparent 60%, rgba(254, 198, 214, 0.6) 60%);
    padding: 0 2px 2px;
    font-weight: 700;
    display: inline;
  }

  button {
    outline: none;
  }

  .hidden {
    display: none;
  }

  .score-high {
    color: var(--star-high-color);
  }
  .score-mid {
    color: var(--star-mid-color);
  }
  .score-low {
    color: var(--star-low-color);
  }
  .custom-score-label {
    font-weight: bold;
  }
  .custom-star-rating {
    display: flex;
    align-items: center;
    font-family: sans-serif;
    .custom-stars {
      position: relative;
      display: inline-block;
      font-size: 10px;
      font-weight: bold;
      line-height: 1;
      white-space: nowrap;
    }
    .custom-stars-outer {
      color: #ccc;
    }
    .custom-stars-inner {
      position: absolute;
      top: 0;
      left: 0;
      white-space: nowrap;
      overflow: hidden;
      pointer-events: none;
    }
    .custom-stars-text {
      font-weight: bold;
    }
  }

  .feedback {
    display: flex;
    -webkit-box-pack: end;
    justify-content: end;
    a {
      display: flex;
      align-items: center;
      gap: 4px;
      text-decoration: none;
      color: #999;
      font-size: 12px;
      letter-spacing: normal;
      &:hover {
        text-decoration: underline;
      }
      img {
        width: 16px;
        height: 16px;
      }
    }
  }

  .rating {
    position: relative;
    display: inline-block;
    font-size: 12px;
    line-height: 1;
    letter-spacing: -1px;
  }
  .stars-base i {
    color: #e7e7e7;
  }
  .stars-fill {
    position: absolute;
    top: 0;
    left: 0;
    white-space: nowrap;
    overflow: hidden;
    color: var(--star-low-color);
  }

  .ndx-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    font-size: 12px;
    padding: 8px 0;
    button {
      cursor: pointer;
      min-height: 32px;
      padding: 4px 8px;
      background-color: #fff;
      border: 1px solid #e7e7e7;
      border-radius: 4px;
      box-shadow: none;
      font-weight: normal;
      outline: none;
      &:hover {
        background-color: #f7f7f7;
        color: var(--main-text-black);
      }
      &.selected {
        color: #0eb03a;
        background-color: #f5fcf6;
        border-color: #0eb03a;
      }
    }
  }

  .ndx-table-wrapper {
    overflow-x: auto;
    white-space: nowrap;
    letter-spacing: normal;
    .ndx-table {
      table-layout: fixed;
      width: 100%;
      border-collapse: collapse;
      font-size: 10px;
      line-height: 1.4;

      th,
      td,
      p,
      span {
        font-size: 10px;
        line-height: 1.375;
      }

      th,
      td {
        color: var(--main-text-black);
        padding: 4px;
        white-space: normal;
        word-break: break-word;
        box-sizing: border-box;
        vertical-align: middle;
      }
      th {
        border: 1px solid #c1c1c1;
        background-color: #fcfdfd;
        width: 60px;
        color: #666;
        &:nth-child(4),
        &:nth-child(n + 6) {
          background-color: #f0f0f0;
        }
        &:nth-child(7),
        &:nth-child(8),
        &:nth-child(17) {
          width: 80px;
        }
        &:nth-child(9),
        &:nth-child(15),
        &:last-child {
          width: 100px;
        }
        &:nth-child(10),
        &:nth-child(11),
        &:nth-child(12),
        &:nth-child(13),
        &:nth-child(14) {
          background-color: #ddd;
        }

        &.name {
          text-align: center;
        }
        &.img {
          text-align: center;
          width: 50px;
        }
        &.url {
          width: 60px;
        }
      }
      td {
        height: 56px;
        border: 1px solid #c1c1c1;
        &.name {
          p:nth-child(1) {
            color: #999;
            -webkit-line-clamp: 1;
          }
          a {
            text-decoration: underline;
            cursor: pointer;
            color: var(--main-text-black);
          }
        }
        .rankimg {
          width: 20px;
          margin-left: 6px;
          margin-bottom: 4px;
        }
        .rank {
          align-items: center;
          border-radius: 999px;
          display: flex;
          justify-content: center;
          font-weight: 700;
          height: 16px;
          width: 16px;
          min-width: 16px;
          padding: 0 2px;
          margin-left: 8px;
          text-wrap-mode: nowrap;
        }
        .no1 {
          background-color: #f2b50d;
          color: #fff;
        }
        .no2 {
          background-color: #738c8c;
          color: #fff;
        }
        .no3 {
          background-color: #b36b4d;
          color: #fff;
        }
        &:nth-child(10),
        &:nth-child(11),
        &:nth-child(12),
        &:nth-child(13),
        &:nth-child(14) {
          font-weight: bold;
        }
        p {
          -webkit-box-orient: vertical;
          display: -webkit-box;
          -webkit-line-clamp: 3;
          overflow: hidden;
          margin-bottom: 0;
        }
        img.img {
          max-height: 40px;
          max-width: 40px;
        }
        a.url {
          display: flex;
          align-items: center;
          height: 40px;
          background-color: #0eb03a;
          border-radius: 4px;
          box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.1);
          cursor: pointer;
          position: relative;
          vertical-align: top;
          width: auto;
          padding: 0px 0px 4px;
          min-height: 40px;
          color: #fff;
          text-decoration: none;
        }
        svg.icon-close {
          color: #b54300;
          font-size: 16px;
          width: 16px;
          height: 16px;
        }
        svg.icon-check {
          color: #02aa74;
          font-size: 16px;
          width: 16px;
          height: 16px;
        }
      }
      th:nth-child(1),
      td:nth-child(1) {
        position: sticky;
        left: 0;
        z-index: 2;
        width: 32px;
        border-left: 1px solid #ccc;
        border-right: 0;
      }
      th:nth-child(2),
      td:nth-child(2) {
        position: sticky;
        left: 32px; /* 1列目の幅と同じ */
        z-index: 2;
        width: 85px;
        border-right: none;
        border-left: 0;
        &::after {
          content: "";
          position: absolute;
          top: 0;
          right: 0;
          width: 4px; /* 線の太さ */
          height: 100%;
          border-right: 3px double #e7e7e7;
          pointer-events: none;
        }
      }
      th:nth-child(3),
      td:nth-child(3) {
        border-left: none;
      }
      th:last-child,
      td:last-child {
        border-left: 1px solid #ccc;
      }
      tr:nth-child(2n-1) {
        background-color: #fff;
        td:nth-child(1),
        td:nth-child(2) {
          background-color: #fff;
        }
      }
      tr:nth-child(2n) {
        background-color: #fbfbfb;
        td:nth-child(1),
        td:nth-child(2) {
          background-color: #fbfbfb;
        }
      }
      tr:last-child {
        border-bottom: 1px solid #ccc;
      }
    }
  }
  .ndx-table-wrapper tbody tr:nth-of-type(n + 11) {
    display: none;
  }
  .ndx-table-wrapper tbody tr:nth-of-type(10) td {
    border-bottom: 1px solid #ccc;
  }
  #ndx-table-all {
    display: none;
  }
  #ndx-table-all:checked ~ .ndx-table-wrapper tbody tr:nth-of-type(10) td {
    border-bottom: none;
  }
  #ndx-table-all:checked ~ .ndx-table-wrapper tbody tr {
    display: table-row;
  }
  #ndx-table-all:checked ~ label {
    display: none;
  }
  label[for="ndx-table-all"] {
    border: 1px solid #0eb03a;
    border-radius: 4px;
    display: block;
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    color: #0eb03a;
    margin-top: 12px;
    padding: 4px;
    &:hover {
      background-color: #f5fcf6;
    }
    svg.icon-arrow-down {
      color: #0eb03a;
    }
    div:nth-child(1) {
      bottom: 100%;
      position: absolute;
      width: 100%;
      z-index: 1;
      background: linear-gradient(
        180deg,
        rgba(255, 255, 255, 0) 0%,
        #f7f7f7 100%
      );
      height: 30px;
    }
    div:nth-child(2) {
      display: inline-flex;
      align-items: center;
      padding: 6px;
    }
  }

  .ndx-map-wrapper {
    margin-top: 40px;
    .title {
      color: #333;
      background: none;
      font-feature-settings: "palt" 1;
      font-size: 20px;
      font-weight: bold;
      letter-spacing: 0.04em;
      line-height: 125%;
      margin-top: 2em;
      margin-bottom: 1em;
      padding: 0;
    }
    .area {
      font-size: 10px;
      font-weight: bold;
      background-color: #eee;
      padding: 4px 8px;
    }
    .map-container {
      position: relative;
      width: 100%;
      padding-top: 66.66%; /* 3:2 アスペクト比想定（元の比率より少し縦を狭くして見切れるように） */
      overflow: hidden;
    }

    .map-container iframe {
      position: absolute;
      top: -70px;
      left: 0;
      width: 100%;
      height: calc(100% + 70px);
      border: 0;
    }
  }

  .ndx-item-wrapper {
    margin-top: 50px;
    .title.rankimg {
      padding-bottom: 0;
      img {
        display: inline;
        width: 32px;
        margin-bottom: 12px;
        margin-right: 6px;
      }
    }
    .ref {
      font-size: 10px;
      text-align: right;
      margin: 10px 0;
      a {
        text-decoration: none;
        color: #bbb;
      }
    }
    .oname a {
      cursor: text;
    }

    .carousel-wrapper {
      .glide {
        position: relative;
        width: 100%;
      }

      .glide__slide {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
      }

      .glide__slide img {
        width: 320px;
        height: 240px;
        object-fit: cover;
        display: block;
        border: none;
      }

      .glide__arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        background: rgba(0, 0, 0, 0.5);
        color: white;
        border: none;
        font-size: 24px;
        width: 30px;
        height: 30px;
        cursor: pointer;
        display: none;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        z-index: 10;
        pointer-events: auto;
      }

      .glide__arrow--left {
        left: 15px;
        &:before {
          content: "";
          position: absolute;
          top: 50%;
          left: 50%;
          width: 12px;
          height: 12px;
          border-top: 2px solid currentColor;
          border-right: 2px solid currentColor;
          transform: translate(-35%, -50%) rotate(-135deg);
        }
      }

      .glide__arrow--right {
        right: 15px;
        &:before {
          content: "";
          position: absolute;
          top: 50%;
          left: 50%;
          width: 12px;
          height: 12px;
          border-top: 2px solid currentColor;
          border-right: 2px solid currentColor;
          transform: translate(-65%, -50%) rotate(45deg);
        }
      }

      .glide__slides {
        padding-left: 0;
      }

      .glide__arrows {
        pointer-events: none;
      }

      .glide__bullets {
        position: absolute;
        bottom: 20px;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        gap: 8px;
        z-index: 10;
        pointer-events: auto;
      }

      .glide__bullet {
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: rgba(255, 255, 255, 0.6);
        opacity: 0.6;
        border: none;
        transition: all 0.3s ease;
        cursor: pointer;
        padding: 0;
      }

      .glide__bullet--active {
        background: rgba(255, 255, 255, 1);
        opacity: 1;
      }
    }
    @media screen and (min-width: 768px) {
      .carousel-wrapper {
        .glide__slide img {
          width: 640px;
          height: 480px;
        }
        .glide__arrow {
          width: 35px;
          height: 35px;
        }
      }
    }

    .feature-summary-wrapper {
      display: flex;
      flex-wrap: wrap;
      gap: 6px 2%;
      margin-bottom: 20px;
      div {
        padding: 6px 4px;
        border: 1.5px solid #888;
        font-weight: bold;
        font-size: 11px;
        background: #fff;
        position: relative;
        text-align: center;
        width: 32%;
        &.no {
          color: #bbb;
          border-color: #bbb;
          background: #fafafa;
          position: relative;
          overflow: hidden;

          > span {
            font-size: 11px;
            position: relative;
            z-index: 1;
            display: inline-block;
          }

          &:after {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            z-index: 0;
            width: 100%;
            height: 100%;
            background-image: linear-gradient(
              to left bottom,
              #fafafa 49%,
              #bbb 49.5%,
              #bbb 50.5%,
              #fafafa 51%
            );
            pointer-events: none;
          }
        }
      }
    }

    .feature-wrapper {
      margin-bottom: 20px;
    }

    .ndx-item-table {
      margin-bottom: 20px;
      table {
        font-size: 14px;
        color: #333;
        line-height: 1.375;
        th,
        td {
          border: 1px solid #c1c1c1;
        }
        th {
          width: 100px;
          background-color: var(--main-light-color);
          font-size: 14px;
          font-weight: 700;
          padding: 0.5em 0.75em;
        }
        td {
          vertical-align: middle;
          white-space: pre-wrap;
          font-weight: 500;
          padding: 0.5em 0.75em;
        }
      }
    }

    .price-wrapper {
      margin-bottom: 30px;
      .price-tab {
        display: flex;
        flex-wrap: wrap;
        label {
          order: -1;
          min-width: 80px;
          padding: 4px 8px;
          background-color: #fff;
          color: var(--main-text-black);
          font-weight: 700;
          font-size: 14px;
          margin-bottom: 0;
          text-align: center;
          cursor: pointer;
        }
        input {
          display: none;
        }
        & > div {
          display: none;
          width: 100%;
          padding: 20px;
          background-color: #fff;
          border: 2px solid var(--main-text-black);
        }
        label:has(:checked) {
          background-color: var(--main-text-black);
          color: #fff;
        }
        label:has(:checked) + div {
          display: block;
        }
      }
    }

    .review-wrapper {
      margin-bottom: 20px;
      .review-card {
        display: flex;
        align-items: flex-start;
        gap: 20px;
        margin-bottom: 20px;

        .user-icon {
          width: 70px;
          height: 70px;
          background-image: url("/column/wp-content/uploads/2025/06/icon_userreview_1.svg");
          background-repeat: no-repeat;
          background-position: center;
          background-size: 100%;
          flex-shrink: 0;
        }

        .review-bubble {
          background: #fff;
          padding: 16px;
          border-radius: 4px;
          position: relative;
          box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);

          &:before {
            content: "";
            position: absolute;
            left: -10px;
            top: 16px;
            width: 0;
            height: 0;
            border-top: 10px solid transparent;
            border-right: 10px solid #fff;
            border-bottom: 10px solid transparent;
          }

          .source {
            font-size: 12px;
            color: #888;
            text-align: right;
          }

          p {
            margin-bottom: 0;
          }
        }
      }

      .review-toggle {
        display: flex;
        flex-direction: column-reverse;
        summary {
          display: inline-flex;
          align-items: center;
          gap: 6px;
          font-size: 14px;
          cursor: pointer;
          list-style: none;
          margin-bottom: 12px;
          color: var(--main-text-black);
          &:-webkit-details-marker {
            display: none;
          }
        }

        .icon::before {
          content: "＋";
          display: inline-block;
          width: 18px;
          height: 18px;
          line-height: 18px;
          text-align: center;
          color: #fff;
          background-color: var(--main-text-black);
          border-radius: 50%;
          font-weight: bold;
          font-size: 14px;
        }

        &[open] .icon::before {
          content: "−";
        }
      }
    }

    .access-wrapper {
      margin-bottom: 20px;
      .access-item {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        margin-bottom: 12px;
        .text {
          font-weight: bold;
        }
      }
      .access-map {
        iframe {
          width: 100%;
          aspect-ratio: 16/9;
          border: 0;
        }
      }
    }

    .ndx-item {
      margin-bottom: 60px;
      .label-circle {
        color: #3073b5;
        border: 1px solid #3073b5;
        border-radius: 15px;
        padding: 2px 10px;
        letter-spacing: normal;
      }
      .btn-wrapper {
        text-align: center;
        margin-bottom: 20px;

        .txt {
          font-size: 14px;
          font-weight: 700;
          color: #333;
          background: linear-gradient(transparent 64%, #fcf69f 0%);
        }
        .roundbtn {
          color: #fff;
          padding: 12px 24px;
          background-color: #0eb03a;
          display: inline-flex;
          justify-content: center;
          align-items: center;
          font-size: 16px;
          font-weight: 700;
          border-radius: 999px;
          box-shadow: inset 0px -4px 0px rgba(0, 0, 0, 0.1);
          cursor: pointer;
          text-decoration: none;
          margin-top: 6px;
          min-height: 50px;
          /* min-width: 280px; */
          width: 100%;
          transition: transform 0.25s, box-shadow 0.25s, -webkit-transform 0.25s;
          &:hover {
            box-shadow: 0 0 0 transparent !important;
            -webkit-transform: translate3d(0, 4px, 0);
            transform: translate3d(0, 4px, 0);
          }
        }
      }
      .recs-wrapper {
        font-size: 14px;
        color: #333;
        margin-top: -10px;
        margin-bottom: 20px;

        .recs {
          color: var(--main-dark-color);
          background-color: #fff;
          font-size: 13.6px;
          font-weight: 700;
          display: inline-flex;
          left: 1em;
          line-height: 1;
          padding: 0.5em 0.75em;
          position: relative;
          top: 1em;
          z-index: 1;
          max-width: 90%;
        }
        .recsc {
          border: 1px solid var(--main-dark-color);
          clear: both;
          margin-top: -2px;
          padding: 2em 1.25em 1.25em;
          position: relative;
          border-radius: 4px;
          z-index: 0;
        }
      }
      .desc {
        font-size: 14px;
        font-weight: 500;
        line-height: 1.8;
        margin-bottom: 20px;
        a {
        }
        .small {
          font-size: 10px;
        }
      }
    }
  }
}
