/*
 * TKTX product-page presentation.
 * Description styles originated in Code Snippets56. Phase043 retires the
 * image-sticky rules from55 and owns product jump controls in this asset.
 */

/* Source: ④tktx-商品説明-共通デザインcss.code-snippets.php */
/* =========================================================
   TKTX 商品説明 共通CSS
========================================================= */

.tktx-product-desc {
  line-height: 1.86;
  font-size: 15.5px;
  color: #222;
}

.tktx-product-desc p {
  margin: 0 0 1em;
}

.tktx-product-desc .tktx-product-benefits {
  margin: 0 0 12px;
  padding: 0;
  border: none;
  background: transparent;
}

.tktx-product-desc .tktx-benefit-item {
  margin: 0 0 3px;
  padding: 0;
  color: #d10736;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.42;
  letter-spacing: 0.01em;
}

.tktx-product-desc .tktx-benefit-icon {
  display: inline-block;
  margin-right: 4px;
  color: #0a9b58;
  font-size: 0.95em;
  vertical-align: 0.02em;
}

.tktx-product-desc .tktx-cart-button-area {
  margin: 12px 0 22px;
}

.tktx-product-desc .tktx-cart-button-area a,
.tktx-product-desc .tktx-cart-button-area a:link,
.tktx-product-desc .tktx-cart-button-area a:visited,
.tktx-product-desc .tktx-cart-button-area a:hover,
.tktx-product-desc .tktx-cart-button-area a:active,
.tktx-product-desc .tktx-cart-button-area button,
.tktx-product-desc .tktx-cart-button-area input[type="button"],
.tktx-product-desc .tktx-cart-button-area input[type="submit"] {
  color: #fff !important;
  text-decoration: none !important;
}

.tktx-product-desc .tktx-product-intro {
  margin: 0 0 24px;
}

.tktx-product-desc .tktx-product-intro p {
  margin-bottom: 1em;
}

.tktx-product-desc .tktx-note {
  font-size: 14.3px;
  color: #555;
}

.tktx-product-desc .tktx-volume-block {
  margin: 0 0 0.1em !important;
}

.tktx-product-desc .tktx-volume-note {
  margin: 0 !important;
  font-size: 13.2px;
  line-height: 1.65;
  color: #555;
}

.tktx-product-desc h2 {
  margin-top: 30px;
  margin-bottom: 14px;
}

.tktx-product-desc h3 {
  margin-top: 22px;
  margin-bottom: 10px;
}

.tktx-product-desc .tktx-step-list {
  margin: 0 0 26px 0;
  padding: 0;
  counter-reset: tktx-step;
}

.tktx-product-desc .tktx-step-item {
  margin-bottom: 1.35em;
  padding: 0;
  counter-increment: tktx-step;
}

.tktx-product-desc .tktx-step-item:last-child {
  margin-bottom: 0;
}

.tktx-product-desc .tktx-step-title {
  display: flex;
  align-items: baseline;
  gap: 0.45em;
  margin-bottom: 7px;
  padding-bottom: 3px;
  border-bottom: 1px solid #d7e4f2;
  color: #1d5ea8;
  font-size: 16.3px;
  font-weight: 700;
  line-height: 1.5;
}

.tktx-product-desc .tktx-step-title::before {
  content: counter(tktx-step) ".";
  flex: 0 0 auto;
  font-weight: 700;
  color: #1d5ea8;
}

.tktx-product-desc .tktx-step-text {
  margin: 0;
}

.tktx-product-desc .tktx-caution-list {
  margin: 0 0 16px 0;
  padding: 0;
}

.tktx-product-desc .tktx-caution-item {
  position: relative;
  margin: 0 0 7px;
  padding: 8px 10px 8px 32px;
  line-height: 1.55;
  font-size: 14.8px;
  background: #f8fbff;
  border: 1px solid #e2edf6;
  border-radius: 5px;
  color: #222;
}

.tktx-product-desc .tktx-caution-item::before {
  content: "!";
  position: absolute;
  left: 10px;
  top: 8px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #1d5ea8;
  color: #fff;
  font-size: 11px;
  line-height: 16px;
  text-align: center;
  font-weight: 700;
}

.tktx-product-desc .tktx-caution-item:last-child {
  margin-bottom: 0;
}

.tktx-product-desc .tktx-alert {
  margin: 14px 0 0;
  padding: 10px 12px;
  border: 1px solid #f1c7c7;
  background: #fff7f7;
  color: #b00000;
  border-radius: 6px;
  font-size: 13.6px;
  line-height: 1.6;
}

.tktx-product-desc .tktx-promise-section h2 {
  margin-top: 32px;
}

.tktx-product-desc .tktx-promise-section h3 {
  margin: 22px 0 10px;
  padding: 8px 12px;
  border-left: 4px solid #69a3dd;
  background: #f7fbff;
  color: #1f4f78;
  font-size: 17px;
  line-height: 1.5;
}

.tktx-product-desc .tktx-image-row {
  display: flex;
  gap: 8px;
  margin: 12px 0 16px;
  align-items: flex-start;
  width: 100%;
  clear: both;
  box-sizing: border-box;
}

.tktx-product-desc .tktx-image-card {
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  border: none;
  background: transparent;
  box-sizing: border-box;
  padding: 0;
}

.tktx-product-desc .tktx-image-card img {
  width: 100%;
  height: auto;
  display: block;
}

.tktx-product-desc .tktx-single-image {
  margin: 12px 0 16px;
  text-align: left;
  clear: both;
}

.tktx-product-desc .tktx-single-image img {
  max-width: 100%;
  height: auto;
  display: block;
}

.tktx-product-desc .tktx-delivery-notice {
  margin: 16px 0;
  padding: 12px 14px;
  border: 1px solid #e8dfd2;
  background: #fffdf8;
  border-radius: 6px;
}

.tktx-product-desc .tktx-delivery-notice-title {
  margin: 0 0 0.55em;
  font-weight: 700;
  color: #333;
}

.tktx-product-desc .tktx-delivery-notice-list {
  margin: 0;
  padding: 0;
}

.tktx-product-desc .tktx-delivery-notice-item {
  position: relative;
  margin: 0 0 0.45em;
  padding-left: 1.05em;
  line-height: 1.55;
  font-size: 14.5px;
}

.tktx-product-desc .tktx-delivery-notice-item::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
  color: #d10736;
}

.tktx-product-desc .tktx-delivery-notice-item:last-child {
  margin-bottom: 0;
}

.tktx-product-desc .tktx-small-text {
  font-size: 13px;
  color: #555;
}

.tktx-product-desc .tktx-line-box {
  margin: 12px 0 14px;
}

.tktx-product-desc .tktx-line-box img {
  max-width: 100%;
  height: auto;
}

.tktx-product-desc .tktx-line-box a {
  display: inline-block;
  margin-top: 8px;
}

.tktx-product-desc .tktx-line-coupon-banner,
.tktx-product-desc .tktx-bottom-product-image,
.tktx-product-desc .tktx-set-banner-wrap,
.tktx-product-desc .tktx-product-name-tight {
  text-align: left;
  clear: both;
}

.tktx-product-desc .tktx-line-coupon-banner {
  margin: 22px 0 16px;
}

.tktx-product-desc .tktx-line-coupon-banner img {
  max-width: 100%;
  height: auto;
  display: block;
}

.tktx-product-desc .tktx-bottom-product-image {
  margin: 16px 0 14px;
}

.tktx-product-desc .tktx-bottom-product-image img {
  max-width: 300px;
  width: 100%;
  height: auto;
  display: block;
}

.tktx-product-desc .tktx-set-banner-wrap {
  margin: 14px 0 8px;
}

.tktx-product-desc .tktx-set-banner-wrap img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

.tktx-product-desc .tktx-product-name-tight {
  margin: 8px 0 18px;
  font-weight: 700;
  font-size: 16.2px;
  line-height: 1.45;
}

@media (max-width: 767px) {
  .tktx-product-desc {
    font-size: 15px;
    line-height: 1.84;
  }

  .tktx-product-desc .tktx-benefit-item {
    font-size: 16px;
    line-height: 1.45;
  }

  .tktx-product-desc .tktx-step-title {
    font-size: 15.6px;
  }

  .tktx-product-desc .tktx-caution-item {
    font-size: 14.5px;
    padding: 8px 10px 8px 31px;
  }

  .tktx-product-desc .tktx-promise-section h3 {
    font-size: 16px;
  }

  .tktx-product-desc .tktx-image-row {
    display: block;
  }

  .tktx-product-desc .tktx-image-card {
    margin-bottom: 8px;
  }

  .tktx-product-desc .tktx-product-name-tight {
    font-size: 15.8px;
  }
}

.tktx-product-desc .tktx-space {
  height: 1em;
}

/* Product readability and touch targets. */
.tktx-item-header .item_page_title {
  font-size: 28px;
  line-height: 1.45;
  letter-spacing: 0;
  white-space: normal;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
}

#itempage .item-description,
#itempage .item-description p,
#itempage .item-description li,
#itempage .item-description dd,
#itempage .item-description td,
#itempage .item-description th,
#itempage .tktx-product-desc,
#itempage .tktx-product-desc p,
#itempage .tktx-product-desc li {
  font-size: 17px;
  line-height: 1.85;
}

#itempage .item-description h2,
#itempage .tktx-product-desc h2 {
  font-size: 24px;
  line-height: 1.55;
}

#itempage .item-description h3,
#itempage .tktx-product-desc h3 {
  font-size: 20px;
  line-height: 1.6;
}

#itempage .tktx-product-desc .tktx-note,
#itempage .tktx-product-desc .tktx-volume-note,
#itempage .tktx-product-desc .tktx-small-text,
#itempage .tktx-product-desc .tktx-alert {
  font-size: 15.5px;
  line-height: 1.75;
}

#itempage .skuform label,
#itempage .skuform select,
#itempage .skuform input,
#itempage .skuform button {
  font-size: 16px;
}

#itempage .skuform input[type="submit"],
#itempage .skuform button {
  min-height: 48px;
}

@media (max-width: 767px) {
  .tktx-item-header .item_page_title {
    font-size: 22px;
    line-height: 1.5;
  }

  #itempage .item-description,
  #itempage .item-description p,
  #itempage .item-description li,
  #itempage .item-description dd,
  #itempage .item-description td,
  #itempage .item-description th,
  #itempage .tktx-product-desc,
  #itempage .tktx-product-desc p,
  #itempage .tktx-product-desc li {
    font-size: 16px;
    line-height: 1.8;
  }

  #itempage .item-description h2,
  #itempage .tktx-product-desc h2 {
    font-size: 21px;
    line-height: 1.55;
  }

  #itempage .item-description h3,
  #itempage .tktx-product-desc h3 {
    font-size: 18px;
    line-height: 1.6;
  }

  #itempage .tktx-product-desc .tktx-note,
  #itempage .tktx-product-desc .tktx-volume-note,
  #itempage .tktx-product-desc .tktx-small-text,
  #itempage .tktx-product-desc .tktx-alert {
    font-size: 15.5px;
    line-height: 1.75;
  }
}

/* Product navigation and presentation, phase 043.
 * The discount explanation is hidden; Welcart pricing and form fields stay intact.
 */
#itempage #purchase-area {
  scroll-margin-top: 96px;
}

#itempage .skuform > .itemGpExp {
  display: none;
}

#itempage a.scroll-cart-button,
.tktx-item-jump-links > a {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 8px;
  background: #b70000;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
}

#itempage a.scroll-cart-button {
  display: flex;
  width: 100%;
  max-width: 420px;
  min-height: 52px;
  margin: 16px 0 20px;
  padding: 14px 20px;
}

#itempage a.scroll-cart-button:hover,
.tktx-item-jump-links > a:hover {
  background: #960000;
  color: #fff;
}

#itempage a.scroll-cart-button:focus-visible,
.tktx-item-jump-links > a:focus-visible {
  outline: 3px solid #174ea6;
  outline-offset: 3px;
}

.tktx-item-jump-links > a.fixed-cart-button {
  display: none;
}

.tktx-item-jump-links > a.rakuten-side-cart {
  display: flex;
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 100;
  min-width: 48px;
  padding: 18px 12px;
  writing-mode: vertical-rl;
  text-orientation: upright;
  border-radius: 8px 0 0 8px;
  transform: translateY(-50%);
}

/* 127: The bottom navigation owns mobile fixed space. Keep the in-content order link. */
@media (max-width: 999px) {
  .tktx-item-jump-links {
    display: none;
  }
}
