@charset "UTF-8";
/* ============================================================
   SKINFONIA 定期便ページ用 CSS  v3（2026/09/29）
   ・FAQをQ/A帯＋アコーディオン（p-subscription-v3.js と併用）
   ・「便利な使い方」の見出しを緑帯＋白アイコンで視認性UP
   ・スマホの対象アイテムをコンパクト化
   ============================================================ */

/* ---------- 本文内に残っている重複ヘッダーを隠す ---------- */
.l-wrapper .l-wrapper > .c-announce_bar,
.l-wrapper .l-wrapper > .c-header__inner { display: none !important; }

/* ---------- 共通 ---------- */
.mv_img img,
.sb_course_1_itms img,
.course_sub img,
.sb_course_1_use img,
.sb_course_2_m_itm img,
.sb_course_2_itms img { max-width: 100%; height: auto; display: block; margin: 0 auto; }

.p-page_content__inner.u-text--body {
  max-width: 1040px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
  font-size: 16px;
  line-height: 1.9;
  color: #333;
}

/* ---------- メインビジュアル ---------- */
.mv_img { width: 100%; }
.mv_img img { width: 100%; }
.mv_ttl { text-align: center; padding: 56px 24px 8px; }
.mv_ttl h3 { font-size: 22px; line-height: 2; letter-spacing: .08em; font-weight: normal; margin: 0; }

/* ---------- 見出し共通 ---------- */
.ttl, .sb_course_2_ttl, .sb_course_1_use_ttl { text-align: center; }
.ttl { margin: 64px 0 40px; }
.ttl h2, .sb_course_2_ttl h3 { font-size: 30px; letter-spacing: .12em; font-weight: normal; margin: 0; }
.ttl h2 strong { font-size: 46px; color: #73827a; margin: 0 6px; }
.sb_course_2_ttl { margin: 80px 0 40px; }

/* ---------- 5大特典 ---------- */
.sb_course_1_itms {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px;
}
.sb_course_1_itm { text-align: center; }
.sb_course_1_itm_img { width: 120px; margin: 0 auto 16px; }
.sb_course_1_itm_body_ttl h5 { font-size: 15px; color: #73827a; letter-spacing: .12em; margin: 0 0 6px; }
.sb_course_1_itm_body_ttl h5 strong { font-size: 26px; margin-left: 2px; }
.sb_course_1_itm_body_txt h5 { font-size: 17px; line-height: 1.6; margin: 0 0 10px; }
.sb_course_1_itm_body_txt p { font-size: 14px; line-height: 1.8; margin: 0 0 4px; }

.course_sub { max-width: 860px; margin: 56px auto; }

/* ---------- 便利な使い方 ---------- */
.sb_course_1_use { margin: 64px auto 40px; max-width: 860px; }
.sb_course_1_use_ttl { margin-bottom: 28px; }
.sb_course_1_use_ttl h4 { font-size: 24px; letter-spacing: .08em; font-weight: normal; margin: 0; }
.sb_course_1_use_itm { background: #f3f5f3; margin-bottom: 16px; }
.sb_course_1_use_itm_ttl {
  display: flex; align-items: center; gap: 14px;
  background: #73827a; padding: 14px 28px;
}
.sb_course_1_use_itm_ttl_img { width: 32px; flex-shrink: 0; margin: 0; }
.sb_course_1_use_itm_ttl h5 { font-size: 18px; font-weight: bold; color: #fff !important; letter-spacing: .08em; margin: 0; }
.sb_course_1_use_itm_body { padding: 22px 28px 16px; }
.sb_course_1_use_itm_body p { font-size: 15px; line-height: 1.9; margin: 0 0 8px; color: #333; }

/* ---------- 定期便 対象アイテム ---------- */
/* BEST SELLER（美容液） */
.sb_course_2_m_itm { background: #cdd6cf; padding: 36px; margin-bottom: 12px; }
.sb_course_2_m_itm_ttl { text-align: center; margin-bottom: 24px; }
.sb_course_2_m_itm_ttl h5 { font-size: 22px; letter-spacing: .25em; color: #fff; margin: 0; }
.sb_course_2_m_contents {
  background: #fff;
  display: grid;
  grid-template-columns: 26% 24% 1fr;
  align-items: center;
  gap: 32px;
  padding: 40px;
}
.sb_course_2_m_contents > a.sb_course_2_m_content_m:not(:has(img)) { display: none; }

/* その他の商品（2列カード） */
.sb_course_2_itms {
  background: #cdd6cf;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 12px;
}
.sb_course_2_itm {
  background: #fff;
  display: grid;
  grid-template-columns: 38% 1fr;
  align-items: center;
  gap: 24px;
  padding: 36px 28px;
}
.sb_course_2_itm_img img { max-height: 260px; width: auto; }

/* 商品テキスト（BEST SELLER・カード共通） */
.sb_course_2_m_content_3 h5 { font-size: 18px; line-height: 1.7; margin: 0 0 14px; }
.sb_course_2_m_content_3 p,
.sb_course_2_itm_body p { font-size: 15px; line-height: 1.7; margin: 0 0 6px; letter-spacing: .04em; }
.sb_course_2_m_content_3 h5 + p,
.sb_course_2_itm_body > p:first-child {
  display: inline-block;
  background: #73827a;
  color: #fff;
  font-size: 12px;
  line-height: 1;
  padding: 6px 16px;
  margin-bottom: 10px;
}
.sb_course_2_m_content_3 p strong,
.sb_course_2_itm_body p strong { font-size: 17px; font-weight: normal; }
.sb_course_2_m_content_3 .off_tag + p strong,
.sb_course_2_itm_body .off_tag + p strong { font-size: 26px; color: #333; }
.off_tag { width: 150px; margin: 8px 0 10px; }
.off_tag img { margin: 0; }
.sb_course_2_m_content_3 .btn a,
.sb_course_2_itm_body .btn a {
  display: block;
  max-width: 320px;
  background: #73827a;
  color: #fff !important;
  font-size: 16px;
  text-align: center;
  text-decoration: none;
  letter-spacing: .2em;
  padding: 14px 0;
  margin-top: 12px;
}
.sb_course_2_m_content_3 .btn a:hover,
.sb_course_2_itm_body .btn a:hover { opacity: .8; }

/* ---------- よくある質問（本文下部）：Q/A帯＋アコーディオン ---------- */
body .p-faq__anchor .c-inner { max-width: 960px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
body .p-faq__anchor ul { display: flex; justify-content: center; gap: 16px; padding: 0; margin: 72px auto 8px; list-style: none; }
body .p-faq__anchor a {
  display: block; border: 1px solid #73827a; color: #73827a; padding: 12px 32px;
  font-size: 15px; font-weight: bold; text-decoration: none; letter-spacing: .08em;
}
body .c-inner:has(> .p-faq__contents-wrap) { max-width: 960px; margin: 0 auto; padding: 0 24px; box-sizing: border-box; }
body .c-inner:has(> .p-faq__contents-wrap) > h2 {
  font-size: 24px; font-weight: bold; letter-spacing: .1em; color: #3f4b44;
  border-left: 5px solid #73827a; padding: 4px 0 4px 16px; margin: 64px 0 20px;
}
body .p-faq__contents-wrap {
  background: #fff;
  border: 1px solid #d7ddd8 !important;
  padding: 0 !important;
  margin: 0 0 10px;
  font-size: 15px; line-height: 1.9; color: #333;
}
/* JSが動く前（または動かない環境）の見え方：1行目を太字に */
body .p-faq__contents-wrap:not(.is-acc) { padding: 20px 24px !important; }
body .p-faq__contents-wrap:not(.is-acc)::first-line { font-weight: bold; color: #3f4b44; }

/* 質問（帯） */
.sf-faq-q {
  all: unset; box-sizing: border-box; cursor: pointer;
  display: grid; grid-template-columns: 36px 1fr 20px; align-items: center; gap: 14px;
  width: 100%; padding: 18px 22px; background: #eef1ee;
  font-size: 16px; font-weight: bold; line-height: 1.6; color: #2f3a33;
}
.sf-faq-q:hover { background: #e3e8e4; }
.sf-faq-q__mark, .sf-faq-a__mark {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  font-family: Georgia, serif; font-size: 18px; font-weight: bold; line-height: 1;
}
.sf-faq-q__mark { background: #73827a; color: #fff; }
.sf-faq-q__icon { position: relative; width: 20px; height: 20px; }
.sf-faq-q__icon::before, .sf-faq-q__icon::after {
  content: ""; position: absolute; top: 50%; left: 50%; width: 16px; height: 2px;
  background: #73827a; transform: translate(-50%, -50%); transition: transform .2s;
}
.sf-faq-q__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.is-open .sf-faq-q__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
/* 回答 */
.sf-faq-a { display: grid; grid-template-columns: 36px 1fr; gap: 14px; padding: 20px 22px 22px; }
.sf-faq-a[hidden] { display: none; }
.sf-faq-a__mark { border: 1px solid #73827a; color: #73827a; background: #fff; }
.sf-faq-a__text { font-size: 15px; line-height: 1.9; padding-top: 4px; }

/* ---------- スマホ ---------- */
@media screen and (max-width: 767px) {
  .p-page_content__inner.u-text--body { padding: 0 16px; font-size: 15px; }
  .mv_ttl { padding: 32px 16px 0; }
  .mv_ttl h3 { font-size: 16px; }
  .ttl { margin: 44px 0 24px; }
  .ttl h2, .sb_course_2_ttl h3 { font-size: 22px; }
  .ttl h2 strong { font-size: 34px; }
  .sb_course_2_ttl { margin: 56px 0 24px; }

  /* 5大特典：アイコン左・文字右の横並びで縦長を防ぐ */
  .sb_course_1_itms { grid-template-columns: 1fr; gap: 12px; }
  .sb_course_1_itm {
    display: grid; grid-template-columns: 72px 1fr; gap: 14px; align-items: center;
    text-align: left; background: #f3f5f3; padding: 14px 16px;
  }
  .sb_course_1_itm_img { width: 72px; margin: 0; }
  .sb_course_1_itm_body_ttl h5 { font-size: 13px; margin: 0 0 2px; }
  .sb_course_1_itm_body_ttl h5 strong { font-size: 20px; }
  .sb_course_1_itm_body_txt h5 { font-size: 16px; margin: 0 0 4px; }
  .sb_course_1_itm_body_txt p { font-size: 13px; }

  .course_sub { margin: 32px auto; }
  .sb_course_1_use { margin: 40px auto 24px; }
  .sb_course_1_use_ttl h4 { font-size: 20px; }
  .sb_course_1_use_itm_ttl { padding: 12px 16px; }
  .sb_course_1_use_itm_ttl_img { width: 26px; }
  .sb_course_1_use_itm_ttl h5 { font-size: 16px; }
  .sb_course_1_use_itm_body { padding: 16px 16px 10px; }
  .sb_course_1_use_itm_body p { font-size: 14px; }

  /* BEST SELLER：画像2枚を横並び、テキストは下 */
  .sb_course_2_m_itm { padding: 20px 10px; }
  .sb_course_2_m_contents { grid-template-columns: 1fr 1fr; gap: 12px; padding: 20px 14px; }
  .sb_course_2_m_content_1 img { max-height: 190px; width: auto; }
  .sb_course_2_m_content_2 img { max-height: 190px; width: auto; }
  .sb_course_2_m_content_3 { grid-column: 1 / -1; }
  .sb_course_2_m_content_3 h5 { font-size: 15px; margin-bottom: 10px; }

  /* 商品カード：1列、画像左・文字右 */
  .sb_course_2_itms { grid-template-columns: 1fr; gap: 10px; padding: 10px; }
  .sb_course_2_itm { grid-template-columns: 30% 1fr; gap: 12px; padding: 16px 12px; align-items: start; }
  .sb_course_2_itm_img img { max-height: 150px; }
  .sb_course_2_m_content_3 p,
  .sb_course_2_itm_body p { font-size: 13px; line-height: 1.6; margin-bottom: 4px; letter-spacing: 0; }
  .sb_course_2_m_content_3 h5 + p,
  .sb_course_2_itm_body > p:first-child { font-size: 11px; padding: 5px 12px; margin-bottom: 6px; }
  .sb_course_2_m_content_3 p strong,
  .sb_course_2_itm_body p strong { font-size: 14px; }
  .sb_course_2_m_content_3 .off_tag + p strong,
  .sb_course_2_itm_body .off_tag + p strong { font-size: 20px; }
  .off_tag { width: 110px; margin: 4px 0 6px; }
  .sb_course_2_m_content_3 .btn a,
  .sb_course_2_itm_body .btn a { max-width: none; font-size: 14px; padding: 11px 0; margin-top: 8px; letter-spacing: .12em; }

  /* FAQ */
  body .p-faq__anchor ul { flex-direction: column; gap: 8px; margin: 48px 0 8px; }
  body .p-faq__anchor a { text-align: center; }
  body .p-faq__anchor .c-inner { padding: 0 16px; }
  body .c-inner:has(> .p-faq__contents-wrap) { padding: 0 16px; }
  body .c-inner:has(> .p-faq__contents-wrap) > h2 { font-size: 19px; margin: 44px 0 14px; }
  .sf-faq-q { grid-template-columns: 30px 1fr 16px; gap: 10px; padding: 14px 14px; font-size: 15px; }
  .sf-faq-q__mark, .sf-faq-a__mark { width: 30px; height: 30px; font-size: 15px; }
  .sf-faq-q__icon { width: 16px; height: 16px; }
  .sf-faq-q__icon::before, .sf-faq-q__icon::after { width: 13px; }
  .sf-faq-a { grid-template-columns: 30px 1fr; gap: 10px; padding: 14px 14px 16px; }
  .sf-faq-a__text { font-size: 14px; line-height: 1.85; padding-top: 2px; }
}
