@charset "utf-8";/* ============================================================   Custom Properties============================================================ */ :root {  --color-primary: #1a6fa8;  --color-primary-light: #eaf3fb;  --color-primary-mid: #c2ddf0;  --color-danger: #d9360b;  --color-danger-light: #fff4f1;  --color-danger-mid: #f5c3b3;  --color-caution: #b45f00;  --color-caution-light: #fff8f0;  --color-caution-mid: #f5d9b0;  --color-text: #1c1c1c;  --color-text-sub: #555555;  --color-border: #dde6ee;  --color-bg: #f2f5f8;  --color-white: #ffffff;  --border-radius-base: 10px;  --border-radius-sm: 6px;  --shadow-base: 0 2px 8px rgba(0, 0, 0, 0.07);}/* ============================================================   Block: product-page   基本フォント設定・ラッパー   font-size: 17px / line-height: 2.0 / letter-spacing: 0.06em============================================================ */#product-page__wrapper {  max-width: 790px;  margin: 0 auto;  padding: 20px 16px 48px;  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;  font-size: 17px;  line-height: 2.0;  letter-spacing: 0.06em;  color: var(--color-text);  background: var(--color-bg);}/* 共通: p */#product-page__wrapper p {  margin-bottom: 14px;}#product-page__wrapper p:last-child {  margin-bottom: 0;}/* 共通: a */#product-page__wrapper a {  color: var(--color-primary);  font-weight: 700;  overflow-wrap: break-word;  text-underline-offset: 3px;}/* ============================================================   Block: section-card   各セクション共通カード============================================================ */.section-card {  background: var(--color-white);  border-radius: var(--border-radius-base);  box-shadow: var(--shadow-base);  padding: 24px 20px;  margin-bottom: 16px;}/* 共通見出し h2 */.section-card h2 {  font-size: 20px;  font-weight: 700;  color: var(--color-text);  padding: 0 0 10px 14px;  border-left: 4px solid var(--color-primary);  margin-bottom: 18px;  letter-spacing: 0.04em;}/* FAQ見出し h3 */.section-card h3 {  font-size: 17px;  font-weight: 700;  color: var(--color-danger);  padding-bottom: 10px;  border-bottom: 2px solid var(--color-danger-light);  margin-bottom: 16px;  letter-spacing: 0.04em;}/* ============================================================   Block: product-intro   商品説明文（SEO最適化・最上部配置）============================================================ */.product-intro {  background: var(--color-white);  border-radius: var(--border-radius-base);  box-shadow: var(--shadow-base);  padding: 24px 20px;  margin-bottom: 16px;}.product-intro p {  color: var(--color-text-sub);}.product-intro em {  font-style: normal;  font-weight: 700;  color: var(--color-danger);  background: #fff0ed;  padding: 0 4px;  border-bottom: 2px solid var(--color-danger);}/* ============================================================   Block: size-check   適合確認・重要インフォメーション（最優先表示）============================================================ */.size-check {  background: var(--color-caution-light);  border: 2px solid var(--color-caution-mid);  border-radius: var(--border-radius-base);  box-shadow: var(--shadow-base);  padding: 24px 20px;  margin-bottom: 16px;}.size-check__heading {  display: flex;  align-items: center;  gap: 10px;  font-size: 18px;  font-weight: 700;  color: var(--color-caution);  margin-bottom: 18px;  letter-spacing: 0.04em;}.size-check__heading__icon {  display: inline-flex;  align-items: center;  justify-content: center;  width: 32px;  height: 32px;  min-width: 32px;  background: var(--color-caution);  color: var(--color-white);  border-radius: 50%;  font-size: 18px;  font-weight: 700;  line-height: 1;}/* サイズ表示ボックス */.size-check__spec {  background: var(--color-white);  border: 1px solid var(--color-caution-mid);  border-radius: 8px;  padding: 20px 16px;  margin-bottom: 18px;  text-align: center;}.size-check__spec-label {  font-size: 17px;  font-weight: 700;  color: var(--color-caution);  letter-spacing: 0.06em;  margin-bottom: 6px;}.size-check__spec-main {  font-size: 44px;  font-weight: 700;  color: var(--color-primary);  letter-spacing: 0.04em;  line-height: 1.2;}.size-check__spec-detail {  font-size: 14px;  font-weight: 700;  color: var(--color-primary);  letter-spacing: 0.04em;  margin-top: 12px;  margin-bottom: 0;}/* 確認ステップ */.size-check__steps {  list-style: none;  counter-reset: step-counter;  margin-bottom: 16px;}.size-check__steps li {  counter-increment: step-counter;  display: block;  position: relative;  padding: 12px 0 12px 72px;  border-bottom: 1px solid var(--color-caution-mid);  font-size: 16px;  line-height: 1.8;}.size-check__steps li:last-child {  border-bottom: none;  padding-bottom: 0;}.size-check__steps li::before {  content: "STEP "counter(step-counter);  position: absolute;  left: 0;  top: 14px;  color: var(--color-caution);  font-size: 14px;  font-weight: 700;  letter-spacing: 0.06em;  white-space: nowrap;}/* 注意書き */.size-check__note {  display: flex;  align-items: flex-start;  gap: 10px;  background: var(--color-white);  border-left: 3px solid var(--color-caution);  border-radius: 0 var(--border-radius-sm) var(--border-radius-sm) 0;  padding: 10px 14px;  font-size: 15px;  font-weight: 700;  color: var(--color-caution);  margin-bottom: 0;}.size-check__note::before {  content: "※";  flex-shrink: 0;}/* ============================================================   Block: feature-list   商品特徴リスト============================================================ */.feature-list {  list-style: none;  margin-top: 14px;}.feature-list li {  color: var(--color-text-sub);  background: var(--color-primary-light);  border-left: 3px solid var(--color-primary-mid);  border-radius: 0 var(--border-radius-sm) var(--border-radius-sm) 0;  padding: 10px 14px;  margin-bottom: 8px;}.feature-list li:last-child {  margin-bottom: 0;}/* ============================================================   Block: spec-table   仕様テーブル============================================================ */.spec-table {  width: 100%;  border-collapse: collapse;}.spec-table tr {  border-bottom: 1px solid var(--color-border);}.spec-table tr:last-child {  border-bottom: none;}.spec-table th {  background: var(--color-primary-light);  color: var(--color-primary);  font-weight: 700;  padding: 12px 14px;  text-align: left;  width: 36%;  white-space: nowrap;  vertical-align: middle;}.spec-table td {  padding: 12px 14px;  vertical-align: middle;}/* ============================================================   Block: price-block   価格セクション============================================================ */.price-block__badge {  display: inline-flex;  align-items: center;  gap: 6px;  background: var(--color-danger);  color: var(--color-white);  font-weight: 700;  border-radius: 20px;  padding: 6px 16px;  margin-bottom: 16px;  font-size: 16px;}.price-block__badge::before {  content: "★";  font-size: 13px;}.price-block ul {  list-style: none;}.price-block li {  display: flex;  align-items: center;  justify-content: space-between;  gap: 16px;  padding: 14px 0;  border-bottom: 1px solid var(--color-border);}.price-block li:last-child {  border-bottom: none;}.price-block p {  color: var(--color-text-sub);  margin-bottom: 0;  font-size: 16px;}.price-block__link {  font-size: 14px;  color: var(--color-primary);  text-decoration: none;  display: block;  margin-top: 2px;  font-weight: 400;}.price-block__link:hover {  text-decoration: underline;}.price-block__amount {  font-size: 22px;  font-weight: 700;  color: var(--color-text);  white-space: nowrap;  flex-shrink: 0;}.price-block__amount--total {  font-size: 26px;  color: var(--color-danger);}.tax-included {  font-size: 14px;}/* ============================================================   Block: faq-item   Q&Aアコーディオン============================================================ */.faq-item {  border: 1px solid var(--color-border);  border-radius: 8px;  margin-bottom: 10px;  overflow: hidden;}.faq-item__summary {  list-style: none;  -webkit-tap-highlight-color: transparent;  cursor: pointer;  display: grid;  grid-template-columns: auto 1fr auto;  align-items: flex-start;  gap: 12px;  padding: 16px;  font-weight: 700;  user-select: none;  line-height: 1.7;}.faq-item__summary::-webkit-details-marker {  display: none;}.faq-item__badge {  display: inline-flex;  align-items: center;  justify-content: center;  background: var(--color-primary);  color: var(--color-white);  font-size: 14px;  font-weight: 700;  border-radius: 4px;  padding: 2px 10px;  flex-shrink: 0;  margin-top: 3px;}.faq-item__arrow {  color: var(--color-primary);  font-size: 12px;  margin-top: 6px;  transition: transform 0.25s ease;  flex-shrink: 0;}.faq-item[open] .faq-item__arrow {  transform: rotate(180deg);}.faq-item__answer {  padding: 16px 18px;  color: var(--color-text-sub);  border-top: 1px solid var(--color-border);  background: #fafcff;}/* ============================================================   Block: alert / Modifier: --danger============================================================ */.alert--danger {  display: flex;  align-items: flex-start;  gap: 10px;  background: var(--color-danger-light);  border: 1px solid var(--color-danger-mid);  border-radius: var(--border-radius-sm);  padding: 10px 14px;  font-weight: 700;  color: var(--color-danger);  margin-bottom: 12px;}.alert--danger::before {  content: "×";  flex-shrink: 0;}/* ============================================================   Block: exchange-banner============================================================ */.exchange-banner {  border-radius: var(--border-radius-base);  overflow: hidden;  box-shadow: var(--shadow-base);}.exchange-banner a {  display: block;}.exchange-banner img {  width: 100%;  display: block;}@media screen and (max-width: 599px) {  #product-page__wrapper {    padding: 14px 10px 40px;    font-size: 16px;    letter-spacing: 0.04em;  }  .section-card, .product-intro, .size-check {    padding: 18px 14px;  }  .section-card h2 {    font-size: 18px;    padding-left: 12px;    margin-bottom: 14px;  }  .section-card h3 {    font-size: 16px;  }  .size-check__heading {    font-size: 16px;    gap: 8px;  }  .size-check__heading__icon {    width: 28px;    height: 28px;    min-width: 28px;    font-size: 16px;  }  .size-check__spec-main {    font-size: 36px;  }  .size-check__steps li {    font-size: 15px;    padding-left: 66px;  }  .spec-table th {    width: 40%;    font-size: 15px;    padding: 10px 10px;    white-space: normal;  }  .spec-table td {    padding: 10px 10px;    font-size: 15px;  }  .price-block__amount {    font-size: 18px;  }  .price-block__amount--total {    font-size: 22px;  }  .price-block p {    font-size: 15px;  }  .faq-item__summary {    padding: 14px 12px;    gap: 10px;    font-size: 15px;  }  .faq-item__answer {    padding: 14px;    font-size: 15px;  }}