.product .child-fv__ttl {
  font-size: 28rem;
}

@media screen and (min-width: 768px) {
  .product .child-fv__ttl {
    font-size: 36rem;
  }
}
.product .ttl-pattern-1 {
  font-size: 32rem;
}

@media screen and (min-width: 400px) {
  .product .ttl-pattern-1 {
    font-size: 34rem;
  }
}
.anchor-target {
  padding-top: 120rem;
  margin-top: -120rem;
}

.sec-product-search {
  margin-bottom: 48rem;
  display: flex;
  justify-content: center;
}
@media screen and (min-width: 400px) {
  .sec-product-search {
    margin-bottom: 50rem;
    justify-content: end;
  }
}

.searchform {
  width: 100%;
  position: relative;
}
@media screen and (min-width: 400px) {
  .searchform {
    width: 360rem;
  }
}

.searchform input {
  width: 100%;
  padding: 8rem 14rem 8rem 16rem;
  border-radius: 50rem;
  border: 1px solid #0458A2;
  font-weight: 400;
  background-color: #fff;
  align-items: center;
}
@media screen and (min-width: 400px) {
  .searchform input {
    padding: 12rem 28rem 12rem 30rem;
  }
}

.searchform input::placeholder {
  font-size: 14rem;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
}
@media screen and (min-width: 400px) {
  .searchform input::placeholder {
    font-size: 16rem;
  }
}

.sec-product-search-btn {
  position: absolute;
  top: 50%;
  right: 16rem;
  transform: translateY(-50%);
  z-index: 10;
}

.sec-product-search-btn svg {
  width: 20rem;
}

.sort-btns-table {
  width: 100%;
}
.sort-btns-table__wrap {
  overflow-x: scroll;
  white-space: nowrap;
}
.sort-btns-table tr {
  display: block;
  border-top: 1px solid #E3E3E3;
  border-bottom: 1px solid #E3E3E3;
  padding: 10rem 0 20rem 15rem;
}
@media screen and (min-width: 768px) {
  .sort-btns-table tr {
    display: table-row;
    padding: 0rem;
  }
}
.sort-btns-table th {
  text-align: left;
  display: flex;
  align-items: center;
  padding: 0;
}
@media screen and (min-width: 768px) {
  .sort-btns-table th {
    text-align: auto;
    display: table-cell;
    width: 184rem;
    padding: 20rem 30rem;
  }
}
.sort-btns-table td {
  display: block;
  padding: 2% 0;
}
@media screen and (min-width: 768px) {
  .sort-btns-table td {
    padding: 30rem 100rem 30rem 0rem;
    display: table-cell;
    padding: 5% 0;
  }
}
.sort-btns-table tbody:nth-child(even) {
  background-color: #F4F7FF;
}
.sort-btns-table .sort-btns__wrap {
  display: flex;
  gap: 10rem;
  flex-wrap: wrap;
}
.sort-btns-table__title {
  font-size: 25rem;
  letter-spacing: 0.05em;
  line-height: 2;
  font-weight: 700;
  margin-right: 15rem;
}
@media screen and (min-width: 768px) {
  .sort-btns-table__title {
    font-size: 18rem;
    margin-bottom: 10rem;
    margin-right: 0;
  }
}
.sort-btns-table__text {
  display: block;
  font-size: 16rem;
  letter-spacing: 0.05em;
  line-height: 1.5;
  font-weight: 400;
}
@media screen and (min-width: 768px) {
  .sort-btns-table {
    gap: 15rem;
  }
}

.btn-sort {
  border: 1px solid #0458A2;
  border-radius: 50rem;
  padding: 4rem 16rem;
  font-size: 14rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.4375;
  background-color: #fff;
  cursor: pointer;
}
.btn-sort--active {
  background-color: #0458A2;
  color: #fff;
  text-decoration: none;
}
.btn-sort:hover {
  background-color: #0458A2;
  color: #fff;
  text-decoration: none;
}
.btn-sort::before {
  display: none;
}
@media screen and (min-width: 768px) {
  .btn-sort {
    padding: 6rem 20rem;
    font-size: 16rem;
  }
}

.sort-table {
  width: 100%;
}
.sort-table__wrap {
  overflow: scroll;
  max-height: 600rem;
}
tr .sort-table__item {
  width: 100%;
}
@media screen and (min-width: 768px) {
  tr .sort-table__item {
    width: 249rem;
  }
}
tr .sort-table__item-id {
  color: #0458A2;
  font-weight: 700;
  text-decoration: underline;
  transition: opacity 0.3s;
  cursor: pointer;
}
tr .sort-table__item-id:hover {
  opacity: 0.7;
}
.sort-table td {
  border-top: 1px solid rgba(195, 195, 195, 0.7647058824);
  border-bottom: 1px solid rgba(195, 195, 195, 0.7647058824);
  border-right: 1px solid rgba(195, 195, 195, 0.7647058824);
  padding: 20rem 15rem;
  display: table-cell;
}
.sort-table td:last-child {
  border-right: none;
}
.sort-table th {
  display: table-cell;
  background-color: #0458A2;
  color: #fff;
  border-left: 1px solid #fff;
  text-align: center;
  padding: 20rem 15rem;
  white-space: nowrap;
}
.sort-table th:last-child {
  border-right: 1px solid #fff;
}
.sort-table th:nth-child(1) {
  width: 20%;
}
.sort-table th:nth-child(2) {
  width: 8%;
}
.sort-table th:nth-child(3) {
  width: 12%;
}
.sort-table th:nth-child(4) {
  width: 20%;
}
.sort-table th:nth-child(5) {
  width: 40%;
}
.sort-table tbody {
  position: relative;
}
.sort-table tbody tr:first-of-type {
  position: sticky;
  z-index: 10;
  top: 0px;
}

.sort-count {
  font-size: 22rem;
  letter-spacing: 0.05em;
  line-height: 1.4545;
  font-weight: 700;
  margin-bottom: 10rem;
}

.mb-24 {
  margin-bottom: 96rem;
}

.sort-result {
  font-size: 16rem;
  letter-spacing: 0.05em;
  padding: 13rem 0;
  line-height: 1.5;
  font-weight: 700;
  background-color: #F8F8F8;
}
.sort-result__count {
  font-size: 24rem;
  line-height: 1.4583333;
  color: #0458A2;
}

.product-modal__overlay {
  opacity: 0;
  z-index: -1;
  visibility: hidden;
  transition: opacity 0.3s;
  background-color: rgba(0, 0, 0, 0.5);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  display: flex;
  justify-content: center;
  align-items: center;
}
.product-modal__overlay.js-show {
  opacity: 1;
  z-index: 999;
  visibility: visible;
}

.product-modal {
  opacity: 0;
  z-index: -1;
  visibility: hidden;
  position: fixed;
  top: 5%;
  right: 5%;
  height: 100%;
  max-height: 90%;
  width: 90%;
  background-color: #fff;
  padding: 25rem 25rem 50rem 25rem;
  border-radius: 10rem;
  overflow-y: auto;
}
.product-modal__detail-btn {
  padding: 10rem 28rem;
  font-size: 14rem;
  min-width: 160rem;
}
@media screen and (min-width: 576px) {
  .product-modal__detail-btn {
    font-size: 16rem;
    padding: 17rem 30rem;
    min-width: 220rem;
  }
}
@media screen and (min-width: 768px) {
  .product-modal__detail-btn {
    font-size: 18rem;
    padding: 17rem 34rem;
    min-width: 265rem;
  }
}
.product-modal__header .product-modal__close {
  text-align: right;
}
.product-modal__header .product-modal__close-btn {
  display: inline;
  width: 30rem;
  height: 30rem;
  cursor: pointer;
}
.product-modal__body {
  padding: 0rem 0rem;
}
@media screen and (min-width: 768px) {
  .product-modal__body {
    padding: 0rem 20rem;
  }
}
@media screen and (min-width: 992px) {
  .product-modal__body {
    padding: 0rem 50rem;
  }
}
.product-modal__footer {
  text-align: center;
}
.product-modal.js-show {
  opacity: 1;
  z-index: 999;
  visibility: visible;
}
@media screen and (min-width: 576px) {
  .product-modal {
    padding: 25rem 25rem 50rem 25rem;
    max-height: 90%;
  }
}
@media screen and (min-width: 1272px), print {
  .product-modal {
    width: 929rem;
    top: 120rem;
    right: 100rem;
    padding: 25rem 25rem 50rem 25rem;
    max-height: calc(100% - 220rem);
  }
}

.table-border--product-modal tr {
  border-top: 1px solid #C4C4C4;
}
.table-border--product-modal tr:last-of-type {
  border-bottom: 1px solid #C4C4C4;
}
.table-border--product-modal th {
  padding: 20rem 16rem 6rem 16rem;
}
.table-border--product-modal td {
  padding: 0rem 16rem 20rem 16rem;
}
@media screen and (min-width: 768px) {
  .table-border--product-modal th {
    padding: 20rem 16rem;
    width: 222rem;
  }
  .table-border--product-modal td {
    padding: 20rem 16rem;
  }
}

.product-modal .product-modal__body > h3 {
  font-size: 32rem;
}
@media screen and (min-width: 400px) {
  .product-modal .product-modal__body > h3 {
    font-size: 34rem;
  }
}
.product-modal .product-modal__body > dl {
  width: 100%;
  border-bottom: 1px solid #C4C4C4;
}
.product-modal .product-modal__body > dl dt, .product-modal .product-modal__body > dl dd {
  display: block;
  width: 100%;
  font-size: 16rem;
  letter-spacing: 0.05em;
}
.product-modal .product-modal__body > dl dt {
  border-top: 1px solid #C4C4C4;
  padding: 20rem 16rem 6rem 16rem;
  font-weight: 700;
}
.product-modal .product-modal__body > dl dd {
  padding: 0rem 16rem 20rem 16rem;
  display: flex;
  align-items: center;
}
@media screen and (min-width: 768px) {
  .product-modal .product-modal__body > dl {
    display: grid;
    grid-template-columns: 222rem calc(100% - 222rem);
    row-gap: 0;
  }
  .product-modal .product-modal__body > dl dt, .product-modal .product-modal__body > dl dd {
    padding: 20rem 16rem;
    border-top: 1px solid #C4C4C4;
  }
}

.text-br {
  white-space: pre-line;
}/*# sourceMappingURL=style-product.css.map */