/*
 * hmcf_freepage.css — 2026-10-06 整理版
 * color.css の現行ページ向け設定を包含。併用不要。
 * 現行の宣言値・詳細度・順序・メディア条件を維持。
 * ご利用ガイド・会員案内・定期便のページ内 style は別管理。
 */

/* =========================================================
   01 / 共通パーツ
========================================================= */

.hmcf-notice {
  width: min(100%, 960px);
  margin: clamp(36px, 5vw, 48px) auto 0 !important;
  padding: 17px 20px;
  border: 1px solid #ded7cd;
  border-radius: 6px;
  background: #f7f5f2;
  color: #353634;
  font-size: 14px;
  line-height: 1.8;
}

.hmcf-notice--warning {
  border-color: #dcc9a7;
  background: #fffaf0;
}

.hmcf-section-head {
  max-width: 960px;
  margin: 0 auto 42px;
}

.hmcf-section-title {
  position: relative;
  margin: 0;
  padding-bottom: 20px;
  color: var(--hmcf-text, #353634);
  font-size: clamp(25px, 3vw, 34px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .03em;
}

.hmcf-section-title::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 3px;
  border-radius: 2px;
  background: var(--hmcf-accent, #a5855e);
  content: "";
}

.hmcf-section-description {
  margin: 17px 0 0 !important;
  color: var(--hmcf-muted, #746f68);
}

.hmcf-card {
  border: 1px solid var(--hmcf-line, #ded7cd);
  border-radius: 8px;
  background: #fff;
}

.hmcf-feature-button {
  display: flex;
  width: fit-content;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  margin: 30px auto 0;
  padding: 12px 30px;
  border: 1px solid var(--hmcf-accent, #a5855e);
  border-radius: 999px;
  background: var(--hmcf-accent, #a5855e);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .2s ease;
}

.hmcf-feature-button:hover {
  opacity: .82;
}

/* =========================================================
   02 / サイズガイド
========================================================= */

.hmcf-sizeguide {
  --sg-ink: #353634;
  --sg-muted: #746f68;
  --sg-accent: #a5855e;
  --sg-accent-dark: #765f45;
  --sg-bg: #f5efe5;
  --sg-soft: #fbf8f2;
  --sg-line: #ded7cd;
  --sg-green: #668568;
  --hmcf-text: var(--sg-ink);
  --hmcf-muted: var(--sg-muted);
  --hmcf-accent: var(--sg-accent);
  --hmcf-line: var(--sg-line);
  width: min(100%,1136px);
  margin-inline: auto;
  color: var(--sg-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.85;
}

.hmcf-sizeguide *,
.hmcf-sizeguide *::before,
.hmcf-sizeguide *::after {
  box-sizing: border-box;
}

.hmcf-sizeguide img {
  display: block;
  max-width: 100%;
  height: auto;
}

.hmcf-sizeguide :where(p,h2,h3,dl,dd) {
  margin: 0;
}

.hmcf-sizeguide [id] {
  scroll-margin-top: 100px;
}

.hmcf-sizeguide__intro {
  padding: clamp(48px,8vw,88px) clamp(20px,6vw,64px);
  background: var(--sg-bg);
  text-align: center;
}

.hmcf-sizeguide__title {
  font-size: clamp(29px,4vw,42px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .04em;
}

.hmcf-sizeguide__lead {
  max-width: 680px;
  margin: 22px auto 0!important;
  color: var(--sg-muted);
}

.hmcf-sizeguide__section {
  padding: clamp(60px,8vw,96px) clamp(18px,5vw,56px);
}

.hmcf-sizeguide__section--soft {
  background: var(--sg-soft);
}

.hmcf-sizeguide__measure-visuals {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-sizeguide__measure-visuals figure {
  margin: 0;
  padding: clamp(16px,3vw,28px);
}

.hmcf-sizeguide__points {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px;
  max-width: 960px;
  margin: 28px auto 0;
  padding: 0;
  list-style: none;
}

.hmcf-sizeguide__point {
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 16px;
  padding: 22px;
}

.hmcf-sizeguide__point-mark {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 50%;
  background: var(--sg-accent);
  color: #fff;
  font-weight: 700;
  line-height: 1;
}

.hmcf-sizeguide__point h3 {
  margin-bottom: 3px;
  font-size: 18px;
  line-height: 1.5;
}

.hmcf-sizeguide__point p {
  color: var(--sg-muted);
  font-size: 14px;
  line-height: 1.7;
}

.hmcf-sizeguide__tips {
  max-width: 960px;
  margin: 28px auto 0;
  padding: 24px 28px;
  border-left: 3px solid var(--sg-accent);
  background: var(--sg-bg);
}

.hmcf-sizeguide__tips p+p {
  margin-top: 6px;
}

.hmcf-sizeguide__belly-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-sizeguide__belly-item {
  padding: clamp(20px,3vw,30px);
}

.hmcf-sizeguide__belly-title {
  margin-bottom: 20px!important;
  font-size: clamp(18px,2vw,21px);
  line-height: 1.5;
}

.hmcf-sizeguide__models {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 28px;
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-sizeguide__model {
  padding: clamp(22px,4vw,34px);
}

.hmcf-sizeguide__model-photo img {
  width: min(100%,280px);
  margin-inline: auto;
}

.hmcf-sizeguide__model-head {
  margin-top: 20px;
  text-align: center;
}

.hmcf-sizeguide__model-name {
  font-size: 23px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .04em;
}

.hmcf-sizeguide__model-breed {
  margin-top: 3px!important;
  color: var(--sg-muted);
  font-size: 13px;
}

.hmcf-sizeguide__specs {
  margin-top: 20px!important;
}

.hmcf-sizeguide__spec-row {
  display: grid;
  grid-template-columns: 88px minmax(0,1fr);
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #ebe6de;
  font-size: 14px;
  line-height: 1.6;
}

.hmcf-sizeguide__spec-row dt {
  color: var(--sg-muted);
}

.hmcf-sizeguide__spec-row dd {
  font-weight: 500;
}

.hmcf-sizeguide__size-value {
  color: var(--sg-accent-dark);
  font-size: 17px;
  font-weight: 700!important;
}

.hmcf-sizeguide__contact {
  display: grid;
  grid-template-columns: minmax(180px,.35fr) minmax(0,.65fr);
  gap: 28px;
  align-items: center;
  max-width: 900px;
  margin: clamp(44px,7vw,72px) auto 0;
  padding: clamp(26px,5vw,44px);
  border-radius: 8px;
  background: #f1f5ef;
}

.hmcf-sizeguide__contact-title {
  color: #526f55;
  font-size: clamp(20px,2.4vw,25px);
  font-weight: 600;
}

.hmcf-sizeguide__contact-text {
  color: #4f554f;
}

@media(max-width:767px) {
  .hmcf-sizeguide {
    font-size: 15px;
  }

  .hmcf-sizeguide__section {
    padding: 54px 18px;
  }

  .hmcf-sizeguide__measure-visuals,
  .hmcf-sizeguide__points,
  .hmcf-sizeguide__belly-grid,
  .hmcf-sizeguide__models {
    grid-template-columns: 1fr;
  }

  .hmcf-sizeguide__contact {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

@media(max-width:420px) {
  .hmcf-sizeguide__point {
    grid-template-columns: 40px minmax(0,1fr);
    gap: 12px;
    padding: 18px 16px;
  }

  .hmcf-sizeguide__spec-row {
    grid-template-columns: 76px minmax(0,1fr);
    font-size: 13px;
  }
}

/* =========================================================
   03 / SUMISEN
========================================================= */

.hmcf-sumisen {
  --su-ink: #353634;
  --su-muted: #746f68;
  --su-accent: #8b6262;
  --su-bg: #faf0f0;
  --su-soft: #fff9f9;
  --su-line: #e5d2d2;
  --hmcf-text: var(--su-ink);
  --hmcf-muted: var(--su-muted);
  --hmcf-accent: var(--su-accent);
  --hmcf-line: var(--su-line);
  width: min(100%,1136px);
  margin-inline: auto;
  color: var(--su-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.85;
}

.hmcf-sumisen *,
.hmcf-sumisen *::before,
.hmcf-sumisen *::after {
  box-sizing: border-box;
}

.hmcf-sumisen img {
  display: block;
  max-width: 100%;
  height: auto;
}

.hmcf-sumisen :where(p,h2,h3,ul) {
  margin: 0;
}

.hmcf-sumisen p+p {
  margin-top: 1em;
}

.hmcf-sumisen [id] {
  scroll-margin-top: 100px;
}

.hmcf-sumisen__hero img {
  width: 100%;
}

.hmcf-sumisen__intro {
  padding: clamp(48px,8vw,88px) clamp(20px,6vw,64px);
  background: var(--su-bg);
  text-align: center;
}

.hmcf-sumisen__lead {
  font-size: clamp(25px,3.6vw,40px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
}

.hmcf-sumisen__tagline {
  margin-top: 18px!important;
  color: var(--su-accent);
  font-weight: 700;
}

.hmcf-sumisen__copy {
  max-width: 760px;
  margin: 30px auto 0;
  text-align: left;
}

.hmcf-sumisen__video {
  position: relative;
  width: min(calc(100% - 36px),900px);
  margin: clamp(44px,7vw,76px) auto;
  aspect-ratio: 16/9;
  overflow: hidden;
  background: #000;
}

.hmcf-sumisen__video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.hmcf-sumisen__section {
  padding: clamp(60px,8vw,96px) clamp(18px,5vw,56px);
}

.hmcf-sumisen__section--tint {
  background: var(--su-soft);
}

.hmcf-sumisen__heading {
  max-width: 960px;
  margin: 0 auto clamp(36px,5vw,52px);
}

.hmcf-sumisen__body {
  max-width: 760px;
  margin-inline: auto;
}

.hmcf-sumisen__subheading {
  margin-bottom: 16px!important;
  font-size: clamp(21px,2.5vw,27px);
  line-height: 1.5;
}

.hmcf-sumisen__subheading--spaced {
  margin-top: 52px!important;
}

.hmcf-sumisen__emphasis {
  margin-bottom: 24px!important;
  font-size: clamp(18px,2vw,21px);
  font-weight: 700;
  line-height: 1.7;
}

.hmcf-sumisen__note {
  padding: clamp(22px,4vw,34px);
  border-left: 3px solid var(--su-accent);
  background: var(--su-bg);
}

.hmcf-sumisen__list {
  padding-left: 1.3em;
}

.hmcf-sumisen__list li+li {
  margin-top: 10px;
}

.hmcf-sumisen__images {
  display: grid;
  gap: 24px;
  width: min(100%,900px);
  margin: 34px auto 0;
  justify-items: center;
}

.hmcf-sumisen__images--two {
  grid-template-columns: repeat(2,minmax(0,1fr));
}

.hmcf-sumisen__images img,
.hmcf-sumisen__image-frame {
  width: 100%;
}

.hmcf-sumisen__features {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 12px;
  margin: 30px 0;
  padding: 0;
  list-style: none;
}

.hmcf-sumisen__features li {
  display: grid;
  min-height: 68px;
  place-items: center;
  padding: 12px;
  border: 1px solid var(--su-line);
  border-radius: 8px;
  background: #fff;
  font-weight: 700;
  text-align: center;
}

.hmcf-sumisen__alert {
  margin: 30px auto 0!important;
  padding: 18px 20px;
  border: 1px solid #decaca;
  border-radius: 6px;
  background: #fff7f7;
  color: #8b443d;
  text-align: center;
  font-weight: 700;
}

.hmcf-sumisen__data-intro {
  max-width: 760px;
  margin: 0 auto 38px!important;
  color: var(--su-muted);
}

.hmcf-sumisen__data-list {
  display: grid;
  gap: 24px;
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-sumisen__data-card {
  padding: clamp(24px,4vw,40px);
}

.hmcf-sumisen__data-card h3 {
  margin-bottom: 14px!important;
  font-size: clamp(20px,2.3vw,25px);
  line-height: 1.5;
}

.hmcf-sumisen__data-card>p {
  max-width: 760px;
  margin-inline: auto;
}

.hmcf-sumisen__data-card>img {
  width: min(100%,720px);
  margin: 30px auto 0;
}

.hmcf-sumisen__data-images {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  margin-top: 28px;
}

.hmcf-sumisen__data-images img {
  width: 100%;
}

.hmcf-sumisen__summary {
  padding: clamp(44px,7vw,76px) clamp(20px,6vw,64px);
  background: var(--su-bg);
}

.hmcf-sumisen__summary-text {
  max-width: 760px;
  margin-inline: auto;
}

.hmcf-sumisen__summary img {
  width: min(100%,700px);
  margin: 36px auto 0;
}

@media(max-width:767px) {
  .hmcf-sumisen {
    font-size: 15px;
  }

  .hmcf-sumisen__intro {
    text-align: left;
  }

  .hmcf-sumisen__lead,
  .hmcf-sumisen__tagline {
    text-align: center;
  }

  .hmcf-sumisen__lead br {
    display: none;
  }

  .hmcf-sumisen__section {
    padding: 54px 18px;
  }

  .hmcf-sumisen__images--two,
  .hmcf-sumisen__data-images {
    grid-template-columns: 1fr;
  }

  .hmcf-sumisen__features {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

/* =========================================================
   04 / ナノミックス
========================================================= */

.hmcf-nanomix {
  --nm-ink: #353634;
  --nm-muted: #6f746f;
  --nm-accent: #58766f;
  --nm-dark: #3f5e58;
  --nm-bg: #fffff4;
  --nm-soft: #f3f7f4;
  --nm-line: #d9e2dd;
  --hmcf-text: var(--nm-ink);
  --hmcf-muted: var(--nm-muted);
  --hmcf-accent: var(--nm-accent);
  --hmcf-line: var(--nm-line);
  width: min(100%,1136px);
  margin-inline: auto;
  color: var(--nm-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.85;
}

.hmcf-nanomix *,
.hmcf-nanomix *::before,
.hmcf-nanomix *::after {
  box-sizing: border-box;
}

.hmcf-nanomix img {
  display: block;
  max-width: 100%;
  height: auto;
}

.hmcf-nanomix :where(p,h2,h3,dl,dd,ul) {
  margin: 0;
}

.hmcf-nanomix p+p {
  margin-top: 1em;
}

.hmcf-nanomix [id] {
  scroll-margin-top: 100px;
}

.hmcf-nanomix__hero img {
  width: 100%;
}

.hmcf-nanomix__intro {
  padding: clamp(48px,8vw,88px) clamp(20px,6vw,64px);
  background: var(--nm-bg);
  text-align: center;
}

.hmcf-nanomix__eyebrow {
  color: var(--nm-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
}

.hmcf-nanomix__lead {
  margin-top: 16px!important;
  font-size: clamp(27px,4vw,42px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .04em;
}

.hmcf-nanomix__copy {
  max-width: 760px;
  margin: 30px auto 0;
  text-align: left;
}

.hmcf-nanomix__patents {
  max-width: 760px;
  margin: 34px auto 0;
  padding: clamp(22px,4vw,32px);
  border: 1px solid var(--nm-line);
  background: rgba(255,255,255,.72);
  text-align: left;
}

.hmcf-nanomix__patents-title {
  margin-bottom: 14px!important;
  color: var(--nm-dark);
  font-weight: 700;
}

.hmcf-nanomix__patents-title small {
  margin-left: 8px;
  color: var(--nm-muted);
  font-size: 12px;
  font-weight: 500;
}

.hmcf-nanomix__patents ol {
  margin: 0;
  padding-left: 1.5em;
}

.hmcf-nanomix__patents li+li {
  margin-top: 6px;
}

.hmcf-nanomix__section {
  padding: clamp(60px,8vw,96px) clamp(18px,5vw,56px);
}

.hmcf-nanomix__section--tint {
  background: var(--nm-soft);
}

.hmcf-nanomix__section--data {
  background: #fafbf9;
}

.hmcf-nanomix__body {
  max-width: 800px;
  margin-inline: auto;
}

.hmcf-nanomix__main-image {
  width: min(100%,480px);
  margin: 36px auto;
}

.hmcf-nanomix__wide-image {
  width: min(100%,760px);
  margin: 36px auto;
}

.hmcf-nanomix__subheading {
  margin: 48px 0 22px!important;
  font-size: clamp(21px,2.5vw,27px);
}

.hmcf-nanomix__functions {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--nm-line);
}

.hmcf-nanomix__functions>div {
  display: grid;
  grid-template-columns: 210px minmax(0,1fr);
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid var(--nm-line);
}

.hmcf-nanomix__functions dt {
  color: var(--nm-dark);
  font-weight: 700;
}

.hmcf-nanomix__note {
  margin-top: 36px;
  padding: 24px 28px;
  border-left: 3px solid var(--nm-accent);
  background: var(--nm-bg);
}

.hmcf-nanomix__technology-card {
  display: grid;
  grid-template-columns: minmax(180px,.38fr) minmax(0,.62fr);
  gap: 30px;
  align-items: center;
  margin-top: 42px;
  padding: clamp(22px,4vw,36px);
}

.hmcf-nanomix__technology-card h3 {
  margin-bottom: 12px!important;
  font-size: clamp(20px,2.4vw,25px);
}

.hmcf-nanomix__feature-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-nanomix__feature {
  padding: 28px;
}

.hmcf-nanomix__feature span {
  color: var(--nm-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
}

.hmcf-nanomix__feature h3 {
  margin: 12px 0!important;
  font-size: 20px;
}

.hmcf-nanomix__feature p {
  color: var(--nm-muted);
  font-size: 14px;
}

.hmcf-nanomix__marks {
  width: min(100%,720px);
  margin: 42px auto;
}

.hmcf-nanomix__certification {
  display: grid;
  grid-template-columns: 120px minmax(0,1fr);
  gap: 28px;
  align-items: center;
  max-width: 760px;
  margin-inline: auto;
  padding: 28px;
}

.hmcf-nanomix__certification img {
  width: 110px;
  margin-inline: auto;
}

.hmcf-nanomix__certification h3 {
  margin-bottom: 8px!important;
  font-size: 21px;
}

.hmcf-nanomix__data-list {
  display: grid;
  gap: 24px;
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-nanomix__data-card {
  padding: clamp(24px,4vw,40px);
}

.hmcf-nanomix__data-card h3 {
  margin-bottom: 14px!important;
  font-size: clamp(20px,2.3vw,25px);
}

.hmcf-nanomix__data-card ul {
  padding-left: 1.4em;
}

.hmcf-nanomix__data-card img {
  width: min(100%,720px);
  margin: 30px auto 0;
}

.hmcf-nanomix__data-value {
  color: var(--nm-dark);
  font-size: clamp(22px,3vw,30px);
  font-weight: 700;
}

.hmcf-nanomix__research-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 20px;
  max-width: 960px;
  margin: 36px auto 0;
}

.hmcf-nanomix__research-grid section {
  padding: 26px;
  border-top: 3px solid var(--nm-accent);
  background: #fff;
}

.hmcf-nanomix__research-grid h3 {
  margin-bottom: 12px!important;
  font-size: 18px;
  line-height: 1.5;
}

.hmcf-nanomix__research-grid p {
  color: var(--nm-muted);
  font-size: 14px;
  line-height: 1.8;
}

.hmcf-nanomix__summary {
  padding: clamp(46px,7vw,76px) clamp(20px,6vw,64px);
  background: var(--nm-bg);
  text-align: center;
}

.hmcf-nanomix__summary>p {
  max-width: 760px;
  margin-inline: auto;
}

.hmcf-nanomix__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  margin-top: 28px;
  padding: 12px 28px;
  border: 1px solid var(--nm-dark);
  border-radius: 999px;
  background: var(--nm-dark);
  color: #fff!important;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .2s ease;
}

.hmcf-nanomix__button:hover {
  opacity: .82;
}

@media(max-width:767px) {
  .hmcf-nanomix {
    font-size: 15px;
  }

  .hmcf-nanomix__intro {
    text-align: left;
  }

  .hmcf-nanomix__eyebrow,
  .hmcf-nanomix__lead {
    text-align: center;
  }

  .hmcf-nanomix__section {
    padding: 54px 18px;
  }

  .hmcf-nanomix__functions>div {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .hmcf-nanomix__technology-card,
  .hmcf-nanomix__feature-grid,
  .hmcf-nanomix__research-grid {
    grid-template-columns: 1fr;
  }

  .hmcf-nanomix__certification {
    grid-template-columns: 88px minmax(0,1fr);
    gap: 18px;
    padding: 22px;
  }

  .hmcf-nanomix__certification img {
    width: 80px;
  }

  .hmcf-nanomix__patents-title small {
    display: block;
    margin: 4px 0 0;
  }
}

/* =========================================================
   05 / ワンダフルテラヘルツ
========================================================= */

.hmcf-terahertz {
  --th-ink: #353634;
  --th-muted: #6d7472;
  --th-accent: #4f8179;
  --th-dark: #35665f;
  --th-bg: #f0faf8;
  --th-soft: #f7fbfa;
  --th-line: #d5e5e1;
  --hmcf-text: var(--th-ink);
  --hmcf-muted: var(--th-muted);
  --hmcf-accent: var(--th-accent);
  --hmcf-line: var(--th-line);
  width: min(100%,1136px);
  margin-inline: auto;
  color: var(--th-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.85;
}

.hmcf-terahertz *,
.hmcf-terahertz *::before,
.hmcf-terahertz *::after {
  box-sizing: border-box;
}

.hmcf-terahertz img {
  display: block;
  max-width: 100%;
  height: auto;
}

.hmcf-terahertz :where(p,h2,h3) {
  margin: 0;
}

.hmcf-terahertz p+p {
  margin-top: 1em;
}

.hmcf-terahertz [id] {
  scroll-margin-top: 100px;
}

.hmcf-terahertz__hero img {
  width: 100%;
}

.hmcf-terahertz__intro {
  padding: clamp(48px,8vw,88px) clamp(20px,6vw,64px);
  background: var(--th-bg);
  text-align: center;
}

.hmcf-terahertz__eyebrow {
  color: var(--th-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
}

.hmcf-terahertz__lead {
  margin-top: 16px!important;
  font-size: clamp(27px,4vw,42px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .04em;
}

.hmcf-terahertz__copy {
  max-width: 760px;
  margin: 30px auto 0;
  text-align: left;
}

.hmcf-terahertz__difference {
  max-width: 880px;
  margin: 54px auto 0;
  padding: clamp(28px,5vw,48px);
  border: 1px solid var(--th-line);
  border-radius: 12px;
  background: #fff;
}

.hmcf-terahertz__difference-label {
  color: var(--th-accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
}

.hmcf-terahertz__difference h2 {
  margin: 10px 0 28px!important;
  font-size: clamp(24px,3.5vw,34px);
  line-height: 1.5;
}

.hmcf-terahertz__comparison {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
  margin-bottom: 26px;
}

.hmcf-terahertz__comparison div {
  padding: 20px;
  border: 1px solid var(--th-line);
  border-radius: 8px;
  background: var(--th-soft);
}

.hmcf-terahertz__comparison div:last-child {
  border-color: var(--th-accent);
  background: var(--th-bg);
}

.hmcf-terahertz__comparison span {
  display: block;
  margin-bottom: 7px;
  color: var(--th-muted);
  font-size: 12px;
}

.hmcf-terahertz__comparison strong {
  font-size: clamp(16px,2vw,19px);
  line-height: 1.55;
}

.hmcf-terahertz__difference>p:last-child {
  max-width: 720px;
  margin-inline: auto;
  text-align: left;
}

.hmcf-terahertz__section {
  padding: clamp(60px,8vw,96px) clamp(18px,5vw,56px);
}

.hmcf-terahertz__section--tint {
  background: var(--th-soft);
}

.hmcf-terahertz__body {
  max-width: 800px;
  margin-inline: auto;
}

.hmcf-terahertz__subheading {
  margin-bottom: 18px!important;
  font-size: clamp(21px,2.5vw,27px);
  line-height: 1.5;
}

.hmcf-terahertz__subheading--spaced {
  margin-top: 54px!important;
}

.hmcf-terahertz__wide-image {
  width: min(100%,760px);
  margin: 36px auto;
}

.hmcf-terahertz__note {
  margin-top: 34px;
  padding: 24px 28px;
  border-left: 3px solid var(--th-accent);
  background: var(--th-bg);
}

.hmcf-terahertz__effect-image {
  width: min(100%,620px);
  margin: 0 auto 38px;
}

.hmcf-terahertz__memo {
  margin-top: 30px;
  padding: 22px 26px;
  border: 1px solid var(--th-line);
  background: #fff;
}

.hmcf-terahertz__memo-title {
  margin-bottom: 6px!important;
  color: var(--th-dark);
  font-weight: 700;
}

.hmcf-terahertz__effect-list {
  display: grid;
  gap: 24px;
  max-width: 960px;
  margin: 42px auto 0;
}

.hmcf-terahertz__effect {
  display: grid;
  grid-template-columns: minmax(0,1fr) 240px;
  gap: 32px;
  align-items: center;
  padding: clamp(24px,4vw,38px);
}

.hmcf-terahertz__effect:nth-child(even) {
  grid-template-columns: 240px minmax(0,1fr);
}

.hmcf-terahertz__effect:nth-child(even)>div {
  order: 2;
}

.hmcf-terahertz__effect span {
  color: var(--th-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
}

.hmcf-terahertz__effect h3 {
  margin: 10px 0 12px!important;
  font-size: clamp(20px,2.4vw,25px);
}

.hmcf-terahertz__effect p {
  color: var(--th-muted);
}

.hmcf-terahertz__effect img {
  width: 100%;
}

.hmcf-terahertz__summary {
  padding: clamp(46px,7vw,76px) clamp(20px,6vw,64px);
  background: var(--th-bg);
  text-align: center;
}

.hmcf-terahertz__summary>p {
  max-width: 760px;
  margin-inline: auto;
}

@media(max-width:767px) {
  .hmcf-terahertz {
    font-size: 15px;
  }

  .hmcf-terahertz__intro {
    text-align: left;
  }

  .hmcf-terahertz__eyebrow,
  .hmcf-terahertz__lead,
  .hmcf-terahertz__difference {
    text-align: center;
  }

  .hmcf-terahertz__comparison {
    grid-template-columns: 1fr;
  }

  .hmcf-terahertz__section {
    padding: 54px 18px;
  }

  .hmcf-terahertz__effect,
  .hmcf-terahertz__effect:nth-child(even) {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .hmcf-terahertz__effect:nth-child(even)>div {
    order: 0;
  }

  .hmcf-terahertz__effect img {
    width: min(100%,320px);
    margin-inline: auto;
  }
}

/* =========================================================
   06 / 歯磨き
========================================================= */

.hmcf-dental {
  --dc-ink: #353634;
  --dc-muted: #746f68;
  --dc-accent: #a5855e;
  --dc-dark: #765f45;
  --dc-bg: #fbf3da;
  --dc-soft: #f8f5ef;
  --dc-line: #e3d9c9;
  --hmcf-text: var(--dc-ink);
  --hmcf-muted: var(--dc-muted);
  --hmcf-accent: var(--dc-accent);
  --hmcf-line: var(--dc-line);
  width: min(100%,1136px);
  margin-inline: auto;
  color: var(--dc-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.85;
}

.hmcf-dental *,
.hmcf-dental *::before,
.hmcf-dental *::after {
  box-sizing: border-box;
}

.hmcf-dental img {
  display: block;
  max-width: 100%;
  height: auto;
}

.hmcf-dental :where(p,h2,h3,ol) {
  margin: 0;
}

.hmcf-dental p+p {
  margin-top: 1em;
}

.hmcf-dental [id] {
  scroll-margin-top: 100px;
}

.hmcf-dental a {
  color: #526f55;
  text-underline-offset: 3px;
}

.hmcf-dental__intro {
  padding: clamp(48px,8vw,88px) clamp(20px,6vw,64px);
  background: var(--dc-bg);
  text-align: center;
}

.hmcf-dental__eyebrow {
  color: var(--dc-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
}

.hmcf-dental__lead {
  margin-top: 16px!important;
  font-size: clamp(27px,4vw,42px);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .04em;
}

.hmcf-dental__copy {
  max-width: 760px;
  margin: 30px auto 0;
  text-align: left;
}

.hmcf-dental__section {
  padding: clamp(60px,8vw,96px) clamp(18px,5vw,56px);
}

.hmcf-dental__section--soft {
  background: var(--dc-soft);
}

.hmcf-dental__flow {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(240px,.42fr);
  gap: 34px;
  align-items: center;
  max-width: 900px;
  margin-inline: auto;
}

.hmcf-dental__flow ol {
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--dc-line);
}

.hmcf-dental__flow li {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--dc-line);
  font-weight: 600;
}

.hmcf-dental__flow li span {
  color: var(--dc-accent);
  font-size: 13px;
  letter-spacing: .1em;
}

.hmcf-dental__step {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(260px,.42fr);
  gap: 36px;
  max-width: 960px;
  margin-inline: auto;
  padding: clamp(24px,4vw,40px);
}

.hmcf-dental__step+.hmcf-dental__step {
  margin-top: 28px;
}

.hmcf-dental__step-no {
  color: var(--dc-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .14em;
}

.hmcf-dental__step-copy h3 {
  margin: 8px 0 18px!important;
  font-size: clamp(21px,2.5vw,27px);
}

.hmcf-dental__step-copy>a {
  display: inline-block;
  margin-top: 18px;
  font-weight: 700;
}

.hmcf-dental__step-images {
  display: grid;
  gap: 12px;
  align-content: start;
}

.hmcf-dental__step-images img {
  width: 100%;
  border-radius: 8px;
}

.hmcf-dental__step-images--sequence {
  grid-template-columns: repeat(2,minmax(0,1fr));
}

.hmcf-dental__step-images--sequence img:first-child {
  grid-column: 1/-1;
}

/* 歯磨き完了の文言とイラスト */
.hmcf-dental__finish {
  text-align: center;
}

.hmcf-dental__finish img {
  margin-inline: auto;
}

.hmcf-dental__plus-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 24px;
  max-width: 900px;
  margin-inline: auto;
}

.hmcf-dental__plus-grid section {
  overflow: hidden;
}

.hmcf-dental__plus-grid section>div {
  padding: 26px;
}

.hmcf-dental__plus-grid h3 {
  margin-bottom: 12px!important;
  font-size: 21px;
}

.hmcf-dental__plus-grid img {
  width: 100%;
}

@media(max-width:767px) {
  .hmcf-dental {
    font-size: 15px;
  }

  .hmcf-dental__intro {
    text-align: left;
  }

  .hmcf-dental__eyebrow,
  .hmcf-dental__lead {
    text-align: center;
  }

  .hmcf-dental__section {
    padding: 54px 18px;
  }

  .hmcf-dental__flow,
  .hmcf-dental__step,
  .hmcf-dental__plus-grid {
    grid-template-columns: 1fr;
  }

  .hmcf-dental__flow img {
    width: min(100%,360px);
    margin-inline: auto;
  }

  .hmcf-dental__step-images {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

/* =========================================================
   07 / 強制給餌
========================================================= */

.hmcf-assistedfeeding {
  --af-ink: #353634;
  --af-muted: #746f68;
  --af-accent: #9a705f;
  --af-dark: #755246;
  --af-bg: #f8eee8;
  --af-soft: #faf7f3;
  --af-tint: #f3f6f1;
  --af-line: #e2d5ce;
  --hmcf-text: var(--af-ink);
  --hmcf-muted: var(--af-muted);
  --hmcf-accent: var(--af-accent);
  --hmcf-line: var(--af-line);
  width: min(100%,1136px);
  margin-inline: auto;
  color: var(--af-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.85;
}

.hmcf-assistedfeeding *,
.hmcf-assistedfeeding *::before,
.hmcf-assistedfeeding *::after {
  box-sizing: border-box;
}

.hmcf-assistedfeeding img {
  display: block;
  max-width: 100%;
  height: auto;
}

.hmcf-assistedfeeding :where(p,h2,h3,ol,figure,figcaption) {
  margin: 0;
}

.hmcf-assistedfeeding p+p {
  margin-top: 1em;
}

.hmcf-assistedfeeding [id] {
  scroll-margin-top: 100px;
}

.hmcf-assistedfeeding a {
  color: #526f55;
  text-underline-offset: 3px;
}

.hmcf-assistedfeeding__hero img {
  width: 100%;
}

.hmcf-assistedfeeding__intro {
  padding: clamp(48px,8vw,88px) clamp(20px,6vw,64px);
  background: var(--af-bg);
  text-align: center;
}

.hmcf-assistedfeeding__eyebrow {
  color: var(--af-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
}

.hmcf-assistedfeeding__lead {
  margin-top: 16px!important;
  font-size: clamp(27px,4vw,42px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
}

.hmcf-assistedfeeding__copy {
  max-width: 760px;
  margin: 30px auto 0;
  text-align: left;
}

.hmcf-assistedfeeding__important {
  max-width: 800px;
  margin: 42px auto 0;
  padding: clamp(22px,4vw,32px);
  border: 1px solid #d8bfae;
  border-radius: 8px;
  background: #fffaf7;
  text-align: left;
}

.hmcf-assistedfeeding__important-title {
  color: #8a4e3f;
  font-size: 18px;
  font-weight: 700;
}

.hmcf-assistedfeeding__important-title::before {
  margin-right: 8px;
  content: "●";
  font-size: 10px;
  vertical-align: 2px;
}

.hmcf-assistedfeeding__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  padding: 28px clamp(18px,5vw,56px);
  border-bottom: 1px solid var(--af-line);
  background: #fff;
}

.hmcf-assistedfeeding__nav a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  padding: 8px 17px;
  border: 1px solid var(--af-line);
  border-radius: 999px;
  background: #fff;
  color: var(--af-ink);
  font-size: 14px;
  text-decoration: none;
  transition: background .2s ease,color .2s ease;
}

.hmcf-assistedfeeding__nav a::after {
  margin-left: 8px;
  color: var(--af-accent);
  content: "↓";
}

.hmcf-assistedfeeding__nav a:hover {
  background: var(--af-bg);
  color: var(--af-dark);
}

.hmcf-assistedfeeding__section {
  padding: clamp(60px,8vw,96px) clamp(18px,5vw,56px);
}

.hmcf-assistedfeeding__section--soft {
  background: var(--af-soft);
}

.hmcf-assistedfeeding__section--tint {
  background: var(--af-tint);
}

.hmcf-assistedfeeding__section--products {
  background: #fbfaf8;
}

.hmcf-assistedfeeding__product-group {
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-assistedfeeding__product-group+.hmcf-assistedfeeding__product-group {
  margin-top: 58px;
  padding-top: 52px;
  border-top: 1px solid var(--af-line);
}

.hmcf-assistedfeeding__product-group>h3 {
  margin-bottom: 8px!important;
  font-size: clamp(20px,2.5vw,25px);
  line-height: 1.5;
}

.hmcf-assistedfeeding__product-group>p {
  margin-bottom: 26px;
  color: var(--af-muted);
}

.hmcf-assistedfeeding__body {
  max-width: 900px;
  margin-inline: auto;
}

.hmcf-assistedfeeding__food-block {
  padding: clamp(24px,4vw,38px);
}

.hmcf-assistedfeeding__food-block+.hmcf-assistedfeeding__food-block {
  margin-top: 24px;
}

.hmcf-assistedfeeding__label,
.hmcf-assistedfeeding__powder-label {
  color: var(--af-accent);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .15em;
}

.hmcf-assistedfeeding__food-block h3,
.hmcf-assistedfeeding__powder h3 {
  margin: 8px 0 16px!important;
  font-size: clamp(21px,2.5vw,27px);
  line-height: 1.5;
}

.hmcf-assistedfeeding__memo {
  margin-top: 28px;
  padding: 24px 28px;
  border-left: 3px solid var(--af-accent);
  background: var(--af-bg);
}

.hmcf-assistedfeeding__memo-title {
  margin-bottom: 6px!important;
  color: var(--af-dark);
  font-weight: 700;
}

.hmcf-assistedfeeding__powder {
  margin-top: 28px;
  padding: clamp(24px,4vw,38px);
  border-radius: 8px;
  background: #f1f5ef;
}

.hmcf-assistedfeeding__steps {
  display: grid;
  gap: 16px;
  max-width: 900px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.hmcf-assistedfeeding__steps li {
  display: grid;
  grid-template-columns: 90px minmax(0,1fr);
  gap: 24px;
  padding: 24px 28px;
}

.hmcf-assistedfeeding__steps li>span {
  color: var(--af-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
}

.hmcf-assistedfeeding__steps h3 {
  margin-bottom: 7px!important;
  font-size: 19px;
  line-height: 1.5;
}

.hmcf-assistedfeeding__steps p {
  color: var(--af-muted);
}

.hmcf-assistedfeeding__howto-images {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 18px;
  max-width: 960px;
  margin: 38px auto 0;
}

.hmcf-assistedfeeding__howto-images figure {
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
}

.hmcf-assistedfeeding__howto-images img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}

.hmcf-assistedfeeding__howto-images figcaption {
  padding: 12px 14px;
  color: var(--af-muted);
  font-size: 13px;
  line-height: 1.6;
}

.hmcf-assistedfeeding__tool-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 22px;
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-assistedfeeding__tool-grid section {
  padding: clamp(24px,4vw,34px);
}

.hmcf-assistedfeeding__tool-grid span {
  color: var(--af-accent);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
}

.hmcf-assistedfeeding__tool-grid h3 {
  margin: 8px 0 14px!important;
  font-size: clamp(20px,2.3vw,24px);
}

.hmcf-assistedfeeding__tool-grid p {
  color: var(--af-muted);
}

.hmcf-assistedfeeding__topping-list {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  max-width: 960px;
  margin-inline: auto;
}

.hmcf-assistedfeeding__topping {
  padding: 28px;
  border-top: 3px solid #84997f;
}

.hmcf-assistedfeeding__topping:last-child {
  grid-column: 1/-1;
}

.hmcf-assistedfeeding__topping h3 {
  margin-bottom: 12px!important;
  font-size: 20px;
}

.hmcf-assistedfeeding__topping p {
  color: var(--af-muted);
}

.hmcf-assistedfeeding__story {
  margin-top: 30px;
  padding-top: 28px;
  border-top: 1px solid var(--af-line);
}

.hmcf-assistedfeeding__story p {
  color: var(--af-muted);
}

.hmcf-assistedfeeding__message {
  padding: clamp(58px,8vw,92px) clamp(20px,6vw,64px);
  background: var(--af-bg);
}

.hmcf-assistedfeeding__message-copy {
  max-width: 760px;
  margin-inline: auto;
}

.hmcf-assistedfeeding__message-copy h2 {
  margin: 10px 0 26px!important;
  font-size: clamp(27px,4vw,38px);
}

.hmcf-assistedfeeding__cheer {
  margin-top: 34px!important;
  color: var(--af-dark);
  font-size: clamp(20px,2.8vw,26px);
  font-weight: 700;
  line-height: 1.7;
}

.hmcf-assistedfeeding__signature {
  text-align: right;
}

.hmcf-assistedfeeding__memory-photos {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  max-width: 900px;
  margin: 42px auto 0;
}

.hmcf-assistedfeeding__memory-photos img {
  width: 100%;
  border-radius: 8px;
}

@media(max-width:767px) {
  .hmcf-assistedfeeding {
    font-size: 15px;
  }

  .hmcf-assistedfeeding__intro {
    text-align: left;
  }

  .hmcf-assistedfeeding__eyebrow,
  .hmcf-assistedfeeding__lead {
    text-align: center;
  }

  .hmcf-assistedfeeding__lead br {
    display: none;
  }

  .hmcf-assistedfeeding__nav {
    justify-content: flex-start;
    padding: 22px 18px;
  }

  .hmcf-assistedfeeding__section {
    padding: 54px 18px;
  }

  .hmcf-assistedfeeding__steps li {
    grid-template-columns: 1fr;
    gap: 5px;
    padding: 21px 20px;
  }

  .hmcf-assistedfeeding__howto-images {
    grid-template-columns: 1fr;
  }

  .hmcf-assistedfeeding__howto-images figure {
    display: grid;
    grid-template-columns: minmax(120px,.42fr) minmax(0,.58fr);
    align-items: center;
  }

  .hmcf-assistedfeeding__tool-grid,
  .hmcf-assistedfeeding__topping-list {
    grid-template-columns: 1fr;
  }

  .hmcf-assistedfeeding__topping:last-child {
    grid-column: auto;
  }

  .hmcf-assistedfeeding__memory-photos {
    gap: 10px;
  }

  .hmcf-assistedfeeding__product-group+.hmcf-assistedfeeding__product-group {
    margin-top: 44px;
    padding-top: 40px;
  }
}

@media(max-width:420px) {
  .hmcf-assistedfeeding__nav a {
    padding-inline: 14px;
    font-size: 13px;
  }

  .hmcf-assistedfeeding__howto-images figure {
    grid-template-columns: 1fr;
  }
}

