@charset "UTF-8";
/* =========================================================
   2026-10-16 追加：メニュー別ページ（thermal-bed / pelvic-floor / whitening）
   style.css（ヘッダー・フッター・FAQ）と add-20261016.css（追従CTA等）の上に重ねる
========================================================= */

.sub-page{ background:#f7f4f1; }
.sub-page main{ padding-top:82px; }
@media (max-width:900px){ .sub-page main{ padding-top:68px; } }

.sub-eyebrow{
  margin:0 0 10px;
  font-family:Inter, sans-serif;
  font-size:12px;
  letter-spacing:.24em;
  color:#caa66a;
}
.sub-h2{
  margin:0 0 28px;
  font-size:28px;
  font-weight:400;
  line-height:1.5;
  letter-spacing:.05em;
  color:#222;
}
.sub-note{
  margin:18px 0 0;
  font-size:13px;
  line-height:1.8;
  color:#777;
}

/* ---------- breadcrumb ---------- */
.sub-breadcrumb{
  max-width:1100px;
  margin:0 auto;
  padding:18px 20px 0;
  font-size:12px;
  color:#888;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.sub-breadcrumb a{ color:#888; text-decoration:none; }
.sub-breadcrumb a:hover{ color:#3f97a3; }
.sub-breadcrumb [aria-current]{ color:#444; }

/* ---------- hero ---------- */
.sub-hero{
  max-width:1100px;
  margin:0 auto;
  padding:36px 20px 0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:48px;
  align-items:center;
}
.sub-h1{
  margin:0 0 18px;
  font-size:38px;
  font-weight:500;
  line-height:1.35;
  letter-spacing:.04em;
  color:#50b0be;
}
.sub-lead{
  margin:0;
  font-size:15px;
  line-height:2;
  color:#555;
}
.sub-hero-img img{
  display:block;
  width:100%;
  height:440px;
  object-fit:cover;
  border-radius:22px;
}
.sub-cta-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px 14px;
  align-items:center;
  margin-top:26px;
}
.sub-cta-row-center{ justify-content:center; }
.sub-btn{
  display:inline-block;
  padding:16px 32px;
  background:#50b0be;
  color:#fff;
  border-radius:999px;
  font-size:15px;
  letter-spacing:.05em;
  text-decoration:none;
  transition:.35s cubic-bezier(.22,.61,.36,1);
}
.sub-btn:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(78,166,166,.35); }
.sub-btn-sub{
  display:inline-block;
  padding:15px 26px;
  background:#fff;
  color:#3f97a3;
  border:1px solid #50b0be;
  border-radius:999px;
  font-size:14px;
  text-decoration:none;
  transition:.35s cubic-bezier(.22,.61,.36,1);
}
.sub-btn-sub:hover{ transform:translateY(-2px); }
.sub-btn-light{ background:#fff; color:#3f97a3; }
.sub-btn-sub-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.85); }

/* ---------- summary ---------- */
.sub-summary{
  max-width:1060px;
  margin:40px auto 0;
  padding:0 20px;
}
.sub-summary dl{
  margin:0;
  background:#fff;
  border-radius:18px;
  box-shadow:0 10px 30px rgba(78,166,166,.08);
  padding:26px 30px;
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:20px;
}
.sub-summary dt{
  font-family:Inter, sans-serif;
  font-size:11px;
  letter-spacing:.2em;
  color:#caa66a;
  margin-bottom:4px;
}
.sub-summary dd{
  margin:0;
  font-size:15px;
  font-weight:500;
  line-height:1.6;
  color:#222;
}
.sub-summary dd span{
  display:block;
  font-size:12px;
  font-weight:400;
  color:#777;
}

/* ---------- sections ---------- */
.sub-sec{ padding:90px 20px 0; }
.sub-sec-white{ background:#fff; margin-top:90px; padding-bottom:80px; }
.sub-sec-white + .sub-sec{ padding-top:80px; }
.sub-inner{ max-width:1060px; margin:0 auto; }

.sub-who{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:16px;
}
.sub-who-item{
  position:relative;
  background:#fff;
  border-radius:16px;
  padding:22px 24px 22px 50px;
  font-size:15px;
  line-height:1.9;
  color:#333;
  box-shadow:0 10px 30px rgba(78,166,166,.06);
}
.sub-who-item::before{
  content:"";
  position:absolute;
  left:24px;
  top:32px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#50b0be;
}
.sub-who-item strong{ font-weight:500; }

.sub-machine{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:48px;
  align-items:start;
}
.sub-machine-img img{
  display:block;
  width:100%;
  height:400px;
  object-fit:cover;
  border-radius:18px;
}
.sub-facts{
  margin:0;
  display:grid;
  grid-template-columns:110px 1fr;
  gap:10px 16px;
  font-size:14px;
  line-height:1.8;
}
.sub-facts dt{ color:#888; }
.sub-facts dd{ margin:0; color:#333; }
.sub-effects{
  margin-top:24px;
  background:#f7f4f1;
  border-radius:14px;
  padding:18px 20px;
}
.sub-effects-title{ margin:0 0 10px; font-size:14px; font-weight:500; color:#222; }
.sub-effects ul{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.sub-effects li{
  background:#fff;
  border:1px solid #d9eef1;
  color:#3f97a3;
  border-radius:999px;
  padding:6px 14px;
  font-size:13px;
}
.sub-effects-note{ margin:10px 0 0; font-size:12px; color:#888; line-height:1.7; }
.sub-caution{
  margin:20px 0 0;
  font-size:13px;
  line-height:1.8;
  color:#666;
}
.sub-caution strong{ font-weight:500; color:#444; }

.sub-option{
  margin-top:40px;
  display:grid;
  grid-template-columns:200px 1fr;
  gap:24px;
  align-items:center;
  background:#f7f4f1;
  border-radius:18px;
  padding:20px;
}
.sub-option img{
  width:100%;
  height:140px;
  object-fit:cover;
  border-radius:12px;
  display:block;
}
.sub-option-badge{ margin:0; font-size:12px; color:#caa66a; letter-spacing:.1em; }
.sub-option-name{ margin:4px 0 6px; font-size:18px; font-weight:500; color:#222; }
.sub-option-text{ margin:0; font-size:14px; line-height:1.8; color:#555; }

/* ---------- compare table ---------- */
.sub-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.sub-table{
  width:100%;
  min-width:560px;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  font-size:14px;
  line-height:1.7;
}
.sub-table th, .sub-table td{
  padding:16px 18px;
  border-bottom:1px solid #eee;
  text-align:left;
  vertical-align:top;
}
.sub-table thead th{ background:#f3f1ed; font-weight:500; color:#444; font-size:13px; }
.sub-table thead th:last-child{ background:#e6f4f6; color:#2f7f8a; }
.sub-table tbody th{ font-weight:500; color:#666; width:22%; }
.sub-table td:last-child{ color:#2f7f8a; font-weight:500; }
.sub-table tbody tr:last-child th, .sub-table tbody tr:last-child td{ border-bottom:none; }

/* ---------- steps ---------- */
.sub-steps{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:16px;
}
.sub-step{
  background:#fff;
  border-radius:16px;
  padding:22px 20px;
  box-shadow:0 10px 30px rgba(78,166,166,.06);
}
.sub-step-num{ font-family:Inter, sans-serif; font-size:26px; color:#50b0be; }
.sub-step-title{ margin:6px 0 6px; font-size:15px; font-weight:500; color:#222; }
.sub-step-text{ margin:0; font-size:13px; line-height:1.8; color:#555; }

/* ---------- price ---------- */
.sub-prices{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:16px;
}
.sub-price{
  background:#fff;
  border-radius:16px;
  padding:24px 16px;
  text-align:center;
}
.sub-price-em{ border:2px solid #caa66a; }
.sub-price-label{ margin:0; font-size:12px; letter-spacing:.2em; color:#caa66a; }
.sub-price-num{ margin:8px 0 6px; font-size:40px; color:#50b0be; line-height:1; font-weight:400; }
.sub-price-num span{ font-size:13px; color:#555; margin-left:2px; }
.sub-price-text{ margin:0; font-size:13px; color:#666; }

/* ---------- FAQ（style.css の faq-* を流用し余白だけ調整） ---------- */
.sub-faq{ padding:110px 20px; margin-top:90px; }

/* ---------- CTA ---------- */
.sub-cta{
  background:#50b0be;
  color:#fff;
  text-align:center;
  padding:70px 20px;
}
.sub-cta-title{ margin:0 0 14px; font-size:26px; line-height:1.6; font-weight:400; }
.sub-cta-sub{ margin:0; font-size:14px; opacity:.92; }

/* ---------- other menu ---------- */
.sub-others{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:16px;
  padding-bottom:100px;
}
.sub-other-card{
  display:flex;
  gap:18px;
  align-items:center;
  background:#fff;
  border-radius:16px;
  padding:14px;
  text-decoration:none;
  color:#222;
  box-shadow:0 10px 30px rgba(78,166,166,.06);
  transition:.3s ease;
}
.sub-other-card:hover{ transform:translateY(-2px); }
.sub-other-card img{
  width:120px;
  height:86px;
  object-fit:cover;
  border-radius:10px;
  flex-shrink:0;
}
.sub-other-card strong{ display:block; font-size:16px; font-weight:500; margin-bottom:4px; }
.sub-other-card span span{ font-size:13px; color:#666; line-height:1.6; }

/* ---------- SP ---------- */
@media (max-width:768px){
  .sub-hero{
    grid-template-columns:1fr;
    gap:24px;
    padding-top:20px;
  }
  .sub-hero-img{ order:-1; }
  .sub-hero-img img{ height:240px; }
  .sub-h1{ font-size:27px; }
  .sub-lead{ font-size:14px; }
  .sub-cta-row a{ flex:1 1 100%; text-align:center; }
  .sub-summary dl{
    grid-template-columns:repeat(2, minmax(0,1fr));
    padding:18px 16px;
    gap:14px 12px;
  }
  .sub-h2{ font-size:22px; }
  .sub-sec{ padding-top:60px; }
  .sub-sec-white{ margin-top:60px; padding-bottom:56px; }
  .sub-who{ grid-template-columns:1fr; }
  .sub-machine{ grid-template-columns:1fr; gap:24px; }
  .sub-machine-img img{ height:240px; }
  .sub-facts{ grid-template-columns:84px 1fr; font-size:13px; }
  .sub-option{ grid-template-columns:1fr; }
  .sub-option img{ height:160px; }
  .sub-steps{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .sub-prices{ grid-template-columns:1fr; }
  .sub-faq{ padding:60px 20px; margin-top:60px; }
  .sub-cta-title{ font-size:21px; }
  .sub-others{ grid-template-columns:1fr; padding-bottom:70px; }
}

/* 図解画像は切り抜かずに表示 */
.sub-machine-img-contain img{ object-fit:contain; background:#fff; }

/* =========================================================
   コラム（column/*.html）
========================================================= */
.sub-column-link{ margin:-70px 0 0; padding-bottom:100px; font-size:14px; }
.sub-column-link a{ color:#3f97a3; text-underline-offset:3px; }
.col-article{
  max-width:780px;
  margin:0 auto;
  padding:36px 20px 0;
  color:#333;
}
.col-h1{
  margin:0 0 14px;
  font-size:34px;
  font-weight:500;
  line-height:1.45;
  letter-spacing:.04em;
  color:#50b0be;
}
.col-meta{ margin:0; font-size:12px; color:#888; }
.col-answer{
  margin:32px 0 0;
  background:#fff;
  border-left:none;
  border-radius:16px;
  padding:24px 26px;
  box-shadow:0 10px 30px rgba(78,166,166,.08);
}
.col-answer-label{
  margin:0 0 8px;
  font-size:12px;
  letter-spacing:.2em;
  color:#caa66a;
}
.col-answer p:last-child{ margin:0; font-size:15px; line-height:2; }
.col-answer strong, .col-sec strong{ font-weight:500; color:#222; background:linear-gradient(transparent 62%, #d9eef1 62%); }
.col-toc{
  margin:28px 0 0;
  border:1px solid #e6e1db;
  border-radius:14px;
  padding:18px 22px;
}
.col-toc-title{ margin:0 0 8px; font-size:13px; color:#888; }
.col-toc ol{ margin:0; padding-left:1.4em; font-size:14px; line-height:2; }
.col-toc a{ color:#3f97a3; text-decoration:none; }
.col-toc a:hover{ text-decoration:underline; }
.col-sec{ margin-top:64px; scroll-margin-top:100px; }
.col-h2{
  margin:0 0 18px;
  padding-bottom:12px;
  border-bottom:1px solid #e6e1db;
  font-size:23px;
  font-weight:500;
  line-height:1.5;
  color:#222;
}
.col-sec > p{ margin:0 0 16px; font-size:15px; line-height:2; }
.col-steps{
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:col;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.col-steps li{
  counter-increment:col;
  position:relative;
  background:#fff;
  border-radius:14px;
  padding:18px 20px 18px 64px;
}
.col-steps li::before{
  content:counter(col, decimal-leading-zero);
  position:absolute;
  left:20px;
  top:16px;
  font-family:Inter, sans-serif;
  font-size:22px;
  color:#50b0be;
}
.col-step-title{ margin:0 0 4px; font-size:16px; font-weight:500; color:#222; }
.col-steps li p:last-child{ margin:0; font-size:14px; line-height:1.9; color:#555; }
.col-note{ margin:14px 0 0 !important; font-size:13px !important; color:#777; line-height:1.8 !important; }
.col-alert{
  background:#fff7ef;
  border:1px solid #f0d9bf;
  border-radius:14px;
  padding:20px 22px;
}
.col-alert p{ margin:0 0 10px; font-size:14px; line-height:1.9; }
.col-alert ul{ margin:0; padding-left:1.3em; font-size:14px; line-height:2; color:#5a4636; }
.col-mr{
  display:grid;
  grid-template-columns:240px 1fr;
  gap:24px;
  align-items:start;
  background:#fff;
  border-radius:16px;
  padding:20px;
  margin:20px 0 0;
}
.col-mr img{ width:100%; height:200px; object-fit:cover; border-radius:12px; display:block; }
.col-article + .sub-faq{ margin-top:80px; }
@media (max-width:768px){
  .col-article{ padding-top:20px; }
  .col-h1{ font-size:26px; }
  .col-h2{ font-size:20px; }
  .col-mr{ grid-template-columns:1fr; }
  .col-mr img{ height:200px; }
  .col-steps li{ padding:16px 16px 16px 54px; }
  .col-steps li::before{ left:16px; font-size:19px; }
  .sub-column-link{ margin-top:-50px; padding-bottom:70px; }
  .sub-sec .sub-others + .sub-column-link{ }
}

/* =========================================================
   2026-10-29 追加：使い放題プラン（membership.html）
========================================================= */
.mem-table td, .mem-table th{ text-align:center; }
.mem-table tbody th{ text-align:left; }
.mem-table td:last-child{ font-weight:400; }
.mem-cheaper{ color:#2f7f8a !important; }
.mem-cheaper strong{ font-size:17px; font-weight:500; }
.mem-cheaper-single{ color:#888 !important; font-size:13px; }
.mem-menus{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:18px;
}
.mem-menu{
  display:flex;
  flex-direction:column;
  gap:6px;
  background:#f7f4f1;
  border-radius:16px;
  padding:14px 14px 20px;
  text-decoration:none;
  color:#222;
  transition:.3s ease;
}
.mem-menu:hover{ transform:translateY(-2px); }
.mem-menu img{ width:100%; height:170px; object-fit:cover; border-radius:12px; display:block; margin-bottom:8px; }
.mem-menu-cat{ font-family:Inter, sans-serif; font-size:11px; letter-spacing:.24em; color:#caa66a; }
.mem-menu strong{ font-size:17px; font-weight:500; }
.mem-menu-text{ font-size:13px; line-height:1.8; color:#555; }
.sub-mem-link{ margin:14px 0 0; font-size:14px; }
.sub-mem-link a{ color:#3f97a3; text-underline-offset:3px; }
@media (max-width:768px){
  .mem-menus{ grid-template-columns:1fr; }
  .mem-menu img{ height:180px; }
  .mem-table{ min-width:520px; }
}
