@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Roboto+Condensed:wght@400;500;700&display=swap");

/* ============================================
   page-hernia 専用CSS（独自クラス版）
   デザイン: hernia-lp.vercel.app 準拠
   ============================================ */

/* --- ベースフォントサイズ --- */
.page-hernia {
  font-size: 16px !important;
}
@media (max-width: 767px) {
  .page-hernia {
    font-size: 14px !important;
  }
}

/* --- リセット（コメントアウト：既存テーマとの干渉を避けるため） ---
.page-hernia {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.75;
  color: #333;
}
@media (max-width: 767px) {
  .page-hernia {
    font-size: 14px;
  }
}
.page-hernia *,
.page-hernia *::before,
.page-hernia *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
.page-hernia img {
  max-width: 100%;
  height: auto;
  display: block;
}
.page-hernia a {
  color: inherit;
  text-decoration: none;
}
.page-hernia ul,
.page-hernia ol {
  list-style: none;
}
.page-hernia h1,
.page-hernia h2,
.page-hernia h3,
.page-hernia h4,
.page-hernia h5,
.page-hernia h6,
.page-hernia p {
  margin: 0 !important;
}
.page-hernia button {
  cursor: pointer;
  background: none;
  border: none;
  font: inherit;
  color: inherit;
}
--- */

/* --- ユーティリティ --- */
.hn-container {
  max-width: 1140px;
  margin: 0 auto;
  padding: 0 20px;
}
.hn-container--narrow {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 20px;
}
.hn-center {
  text-align: center;
}
.hn-bold {
  font-weight: 700;
}
.hn-color-green {
  color: #009c6c;
}
.hn-color-red {
  color: #e53e3e !important;
}
.hn-color-orange {
  color: #f57e29;
}
.hn-marker-green {
  background: linear-gradient(
    to bottom,
    transparent 50%,
    rgba(0, 156, 108, 0.2) 50%
  );
}
.hn-marker-orange {
  background: linear-gradient(
    to bottom,
    transparent 50%,
    rgba(245, 126, 41, 0.3) 50%
  );
}
.hn-marker-yellow {
  background: linear-gradient(transparent 50%, rgba(255, 230, 100, 0.5) 50%);
}
.hn-marker-mint {
  background: linear-gradient(transparent 50%, rgba(0, 156, 108, 0.15) 50%);
}
.hn-note {
  font-size: 14px;
  color: rgba(51, 51, 51, 0.6);
  text-align: center;
  margin-top: 16px !important;
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .hn-pc-only {
    display: none;
  }
  .hn-sp-only {
    display: inline;
  }
}
@media (min-width: 768px) {
  .hn-pc-only {
    display: block;
  }
  .hn-sp-only {
    display: none;
  }
}

/* --- セクション --- */
.hn-section {
  padding: 48px 0;
}
.hn-section--white {
  background: #fff;
}
.hn-section--alt {
  background: #f8f8f6;
}
.hn-section--warning {
  padding: 64px 0;
  background: #f8f8f6;
}
@media (max-width: 767px) {
  .hn-section--warning {
    padding: 0px 0 !important;
  }
}
.hn-section__lead {
  font-size: 18px !important;
  color: rgba(51, 51, 51, 0.8) !important;
  max-width: 700px;
  margin: 0 auto 32px;
  line-height: 1.7;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-section__lead {
    max-width: 100%;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}

/* --- 見出し --- */
.hn-heading {
  text-align: center;
  margin-bottom: 32px;
}
.hn-heading__en {
  display: inline-block;
  font-size: 16px;
  font-weight: 600;
  color: #f57e29;
  font-family: "Roboto Condensed", sans-serif;
  position: relative;
  padding-bottom: 8px;
  margin-bottom: 8px;
}
.hn-heading__en::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 2px;
  background: #f57e29;
  border-radius: 999px;
}
.hn-heading__en--green {
  color: #009c6c;
}
.hn-heading__en--green::after {
  background: #009c6c;
}
.hn-heading__ttl {
  font-size: 36px !important;
  font-weight: 700 !important;
  color: #333;
  line-height: 1.1;
  margin-top: 8px;
}
.hn-heading__ttl--md {
  font-size: 30px !important;
  line-height: 1.2;
}
.hn-heading__ttl--warning {
  font-size: 36px !important;
  line-height: 1.1;
}
.hn-heading__lead {
  font-size: 20px !important;
  color: rgba(51, 51, 51, 0.8) !important;
  margin-top: 12px;
  text-align: center !important;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .hn-heading__ttl {
    font-size: min(28px, 6.6vw) !important;
  }
  .hn-heading__ttl--md {
    font-size: 22px !important;
  }
  .hn-heading__ttl--warning {
    font-size: 24px !important;
  }
  .hn-heading__lead {
    font-size: 16px !important;
    max-width: 100%;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}

/* ============================================ ヒーロー ============================================ */
.hn-hero {
  position: relative;
  overflow: hidden;
}
.hn-hero__inner {
  position: relative;
  padding: 56px 0 64px;
}
@media (max-width: 767px) {
  .hn-hero__inner {
    padding: 36px 0 20px;
  }
}
.hn-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
}
@media (min-width: 1024px) {
  .hn-hero__bg {
    mask-image: linear-gradient(
      to right,
      rgba(0, 0, 0, 0.45) 0%,
      rgba(0, 0, 0, 0.6) 15%,
      rgba(0, 0, 0, 0.75) 32%,
      rgba(0, 0, 0, 0.9) 50%,
      #000 70%,
      #000 100%
    );
    -webkit-mask-image: linear-gradient(
      to right,
      rgba(0, 0, 0, 0.45) 0%,
      rgba(0, 0, 0, 0.6) 15%,
      rgba(0, 0, 0, 0.75) 32%,
      rgba(0, 0, 0, 0.9) 50%,
      #000 70%,
      #000 100%
    );
  }
}
.hn-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0.5),
    rgba(255, 255, 255, 0.85) 30%,
    #fff
  );
}
@media (min-width: 768px) {
  .hn-hero__overlay {
    background: linear-gradient(
      to right,
      rgba(255, 255, 255, 0.6) 0%,
      rgba(255, 255, 255, 0.55) 30%,
      rgba(255, 255, 255, 0.45) 45%,
      transparent 60%
    );
  }
}
.hn-hero__content {
  position: relative;
  z-index: 10;
}
.hn-hero__card-wrap {
  position: relative;
  max-width: 740px;
  margin-bottom: 40px;
}
.hn-hero__badge {
  position: absolute;
  top: -24px;
  left: -10px;
  z-index: 20;
  width: 144px;
  height: 144px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f57e29, #f4590b);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  border: 4px solid #fff;
  color: #fff;
  font-weight: 700;
}
.hn-hero__badge span:first-child {
  font-size: 14px;
  line-height: 1.6;
}
.hn-hero__badge span:last-child {
  font-size: 20px;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .hn-hero__card-wrap {
    margin-bottom: 24px;
    margin-left: auto;
    margin-right: auto;
  }
  .hn-hero__badge {
    width: 90px;
    height: 90px;
    top: -16px;
    left: -8px;
  }
  .hn-hero__badge span:first-child {
    font-size: 11px;
    line-height: 1.4;
  }
  .hn-hero__badge span:last-child {
    font-size: 14px;
    line-height: 1.4;
  }
}
.hn-hero__card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
  padding: 20px 24px 20px 128px;
  display: flex;
  align-items: center;
  gap: 24px;
}
@media (max-width: 767px) {
  .hn-hero__card {
    padding: 16px;
    padding-top: 48px;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
  }
}
.hn-hero__card-img {
  flex-shrink: 0;
  width: 220px;
  height: 160px;
  object-fit: contain;
}
@media (max-width: 767px) {
  .hn-hero__card-img {
    width: 400px;
    max-width: 95%;
    height: auto;
  }
}
.hn-hero__card-body h3 {
  font-size: 26px !important;
  font-weight: 700 !important;
  color: #009c6c;
  margin-bottom: 6px;
  line-height: 1.3;
}
@media (max-width: 767px) {
  .hn-hero__card-body h3 {
    font-size: 18px !important;
  }
}
.hn-hero__card-body p {
  font-size: 16px;
  color: rgba(51, 51, 51, 0.8);
  line-height: 1.6;
  margin-bottom: 8px !important;
}
@media (max-width: 767px) {
  .hn-hero__card-body p {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
.hn-hero__card-label {
  display: inline-block;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  background: #f57e29;
  padding: 6px 16px;
  border-radius: 4px;
}
.hn-hero__catch {
  max-width: 740px;
  min-height: 380px;
}
@media (max-width: 767px) {
  .hn-hero__catch {
    min-height: auto;
    text-align: center !important;
    margin: 0 auto;
  }
  .hn-hero__catch * {
    text-align: center !important;
  }
}
.hn-hero__achievement {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 4px;
}
@media (max-width: 767px) {
  .hn-hero__achievement {
    justify-content: center;
  }
}
@media (max-width: 767px) {
  .hn-hero__achievement {
    justify-content: center;
    text-align: center;
  }
}
.hn-hero__laurel {
  width: 48px;
  height: 72px;
  flex-shrink: 0;
}
.hn-hero__laurel--right {
  transform: scaleX(-1);
}
@media (max-width: 767px) {
  .hn-hero__laurel {
    width: 36px;
    height: 54px;
  }
}
.hn-hero__achievement-text {
  color: #b89642;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.hn-hero__achievement-label {
  font-size: clamp(14px, 2.5vw, 20px) !important;
  font-weight: 700;
  white-space: nowrap;
}
.hn-hero__achievement-number {
  font-size: clamp(36px, 9vw, 68px) !important;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.02em;
  font-family: "Roboto Condensed", sans-serif;
}
.hn-hero__achievement-unit {
  font-size: clamp(10px, 2.5vw, 20px) !important;
  font-weight: 700;
  white-space: nowrap;
}
.hn-hero__achievement-unit sup {
  font-size: 10px;
}
.hn-hero__achievement-note {
  font-size: clamp(8px, 2.5vw, 11px) !important;
  color: #999;
  margin-bottom: 16px;
}
.hn-hero__ttl {
  font-size: clamp(16px, 4vw, 32px) !important;
  font-weight: 700 !important;
  line-height: 1.3;
  margin-bottom: 12px;
}
.hn-hero__ttl-line1 {
  display: block;
  margin-bottom: 8px;
  color: #333;
}
.hn-hero__ttl-line2 {
  display: block;
}
.hn-hero__ttl-big {
  font-size: clamp(24px, 10vw, 56px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em;
  white-space: nowrap;
  line-height: 1;
}

.hn-hero__ttl-sub {
  display: inline;
  font-size: clamp(14px, 5vw, 28px) !important;
  margin-left: 0;
  margin-top: 12px;
  color: #333;
  line-height: 1.1;
  padding-left: 0.25em;
}
@media (max-width: 767px) {
  .hn-hero__ttl-sub {
    display: block;
    padding-left: 0;
  }
}
.hn-hero__desc {
  font-size: 20px;
  color: rgba(51, 51, 51, 0.8);
  line-height: 1.6;
  margin-top: 24px;
}
.hn-hero__desc p {
  margin-bottom: 4px !important;
}
@media (max-width: 767px) {
  .hn-hero__desc {
    font-size: 16px;
  }
}
.hn-hero__rate {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 999px;
  padding: 8px 20px 8px 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(255, 165, 0, 0.15);
  margin-top: 24px;
  margin-bottom: 40px;
}
.hn-hero__rate img {
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  object-fit: contain;
  transform: scale(1.6) translateX(-2px);
  margin-right: 14px;
}
.hn-hero__rate-number {
  font-size: 30px;
  font-weight: 800;
  color: #f57e29;
  margin-right: 4px;
}
@media (max-width: 767px) {
  .hn-hero__rate-number {
    font-size: 28px;
  }
}
.hn-hero__rate-text {
  font-size: 18px;
  font-weight: 700;
  color: rgba(51, 51, 51, 0.9);
  margin-bottom: 0 !important;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .hn-hero__rate-text {
    font-size: 17px;
  }
}
.hn-hero__rate-note {
  font-size: 10px;
  color: #999;
  line-height: 1.4;
  margin-top: 4px;
  margin-bottom: 0 !important;
}

/* CTA BAR */
.hn-cta-bar {
  background: linear-gradient(to right, #fff7ed, #fff, #f0fdf4);
  border-top: 1px solid rgba(255, 165, 0, 0.15);
  border-bottom: 1px solid rgba(255, 165, 0, 0.15);
  padding: 20px 0 24px;
  position: relative;
  z-index: 10;
}
.hn-cta-bar__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 767px) {
  .hn-cta-bar__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.hn-cta-bar__phone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: linear-gradient(135deg, #f57e29, #f4590b);
  /* border-radius: 12px; */
  padding: 16px 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  color: #fff !important;
  transition: all 0.3s;
}
.hn-cta-bar__phone * {
  color: #fff !important;
}
.hn-cta-bar__phone:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}
.hn-cta-bar__mail {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: linear-gradient(135deg, #009e69, #008a67);
  /* border-radius: 12px; */
  padding: 16px 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  color: #fff !important;
  transition: all 0.3s;
}
.hn-cta-bar__mail * {
  color: #fff !important;
}
.hn-cta-bar__mail:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15);
}
.hn-cta-bar__label {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.hn-cta-bar__number {
  font-size: 34px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
  font-family: "Roboto Condensed", sans-serif;
}
@media (max-width: 767px) {
  .hn-cta-bar__number {
    font-size: 28px;
  }
}
.hn-cta-bar__mail-text {
  font-size: 28px;
  font-weight: 900;
  line-height: 1;
}
@media (max-width: 767px) {
  .hn-cta-bar__mail-text {
    font-size: 22px;
  }
}
.hn-cta-bar__time {
  font-size: 13px;
  font-weight: 700;
  opacity: 0.95;
}

/* ============================================ 動画 ============================================ */
.hn-video-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 20px;
}
@media (max-width: 767px) {
  .hn-video-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.hn-video-item__wrap {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  /* border-radius: 8px; */
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.hn-video-item__wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}
.hn-video-item h4 {
  font-size: 18px;
  font-weight: 500;
  color: #333;
  margin-top: 8px;
  line-height: 1.6;
  text-align: center;
}
@media (max-width: 767px) {
  .hn-video-item h4 {
    font-size: 15px;
    text-align: left;
  }
}
.hn-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #009c6c !important;
  border: 2px solid #009c6c;
  border-radius: 999px;
  padding: 12px 24px;
  transition: all 0.3s;
}
.hn-btn-outline:hover {
  background: #009c6c;
  color: #fff !important;
}
.hn-btn-outline svg {
  width: 16px;
  height: 16px;
  stroke: #009c6c;
}
.hn-btn-outline:hover svg {
  stroke: #fff;
}

/* ============================================ 症例 ============================================ */
.hn-case-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
@media (max-width: 767px) {
  .hn-case-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
.hn-case-card {
  display: block;
  background: #fff;
  /* border-radius: 0; */
  overflow: hidden;
  box-shadow: none;
  transition: all 0.3s;
}
.hn-case-card:hover h3 {
  color: #a27c4a;
}
.hn-case-card__thumb {
  width: 100%;
  height: 160px;
  background: #e5e5e5;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #aaa;
  font-size: 14px;
  overflow: hidden;
}
.hn-case-card__thumb picture {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
.hn-case-card__thumb img,
.hn-case-card__thumb-img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block !important;
}
@media (max-width: 767px) {
  .hn-case-card__thumb {
    height: 120px;
  }
}
.hn-case-card__body {
  padding: 20px;
}
@media (max-width: 767px) {
  .hn-case-card__body {
    padding: 12px;
  }
}
.hn-case-card__date {
  display: block;
  font-size: 14px;
  color: #8f8f8f;
  margin-top: 12px;
  margin-bottom: 0;
  line-height: 1.3;
  font-family: "Akshar", sans-serif;
  letter-spacing: 0.05em;
}
.hn-case-card__body h3 {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin-bottom: 0;
  line-height: 1.4;
  transition: color 0.3s;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
@media (max-width: 767px) {
  .hn-case-card__body h3 {
    font-size: 14px !important;
  }
}
.hn-case-card__cat-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 12px !important;
  list-style: none !important;
  padding: 0 !important;
}
@media (max-width: 767px) {
  .hn-case-card__cat-list {
    margin-bottom: 8px !important;
  }
}
.hn-case-card__cat-item {
  color: #fff !important;
  background: #bccd62;
  padding: 4px 8px;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.3;
}
@media (max-width: 767px) {
  .hn-case-card__cat-item {
    font-size: 10px !important;
  }
}
.hn-case-card__info {
  font-size: 15px;
  color: rgba(51, 51, 51, 0.7);
  line-height: 1.6;
  margin-top: 12px !important;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .hn-case-card__info {
    display: none !important;
  }
}

/* ============================================ WHY US ============================================ */
#why-repair-cell {
  padding-bottom: 20px !important;
}
@media (max-width: 767px) {
  #why-repair-cell {
    padding-bottom: 10px !important;
  }
}
.hn-whyus__lead {
  font-size: 18px !important;
  color: rgba(51, 51, 51, 0.8) !important;
  max-width: 640px;
  margin: 0 auto 24px !important;
  text-align: center !important;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .hn-whyus__lead {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
.hn-whyus__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 767px) {
  .hn-whyus__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.hn-whyus__card {
  background: #fff;
  /* border-radius: 4px; */
  overflow: hidden;
  border: solid 2px #f5a623;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.hn-whyus__card-head {
  background: linear-gradient(to right, #f28c28, #f5a623);
  padding: 12px 16px;
}
.hn-whyus__card-head h4 {
  color: #fff;
  font-weight: 700;
  font-size: 20px;
  text-align: center;
  line-height: 1.4;
}
@media (max-width: 767px) {
  .hn-whyus__card-head h4 {
    font-size: 15px;
  }
}
.hn-whyus__card-body {
  padding: 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.hn-whyus__card-body p {
  font-size: 16px;
  color: rgba(51, 51, 51, 0.7);
  text-align: center;
  line-height: 1.6;
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .hn-whyus__card-body p {
    text-align: left;
  }
}
.hn-whyus__card-body img {
  width: 100%;
  object-fit: contain;
  margin-top: auto;
  padding-top: 12px;
}
@media (max-width: 767px) {
  .hn-whyus__card-body img {
  }
}

/* ============================================ CHECK CASE ============================================ */
.hn-case-select {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  max-width: 960px;
  margin: 0 auto 48px;
}
@media (max-width: 767px) {
  .hn-case-select {
    grid-template-columns: 1fr;
  }
}
.hn-case-select__btn {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  text-align: left !important;
  padding: 20px !important;
  /* border-radius: 12px !important; */
  border: 2px solid !important;
  background: #fff !important;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04) !important;
  width: 100% !important;
}
.hn-case-select__btn:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
  transform: translateY(-2px);
}
.hn-case-select__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: auto;
  padding: 10px 0;
  border-radius: 999px;
  font-size: 16px !important;
  font-weight: 700;
  color: #fff;
  transition: opacity 0.3s;
}
.hn-case-select__cta--green {
  background: #009c6c;
}
.hn-case-select__cta--orange {
  background: #f57e29;
}
.hn-case-select__btn:hover .hn-case-select__cta {
  opacity: 0.85;
}
.hn-case-select__btn--green {
  border-color: #009c6c !important;
}
.hn-case-select__btn--orange {
  border-color: #f57e29 !important;
}
.hn-case-select__tag {
  display: inline-block !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #fff !important;
  padding: 6px 16px !important;
  border-radius: 999px !important;
  margin-bottom: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.hn-case-select__tag--green {
  background: #009c6c !important;
}
.hn-case-select__tag--orange {
  background: #f57e29 !important;
}
.hn-case-select__item {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-size: 18px !important;
  color: #333 !important;
  margin-bottom: 8px;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .hn-case-select__item {
    font-size: 16px !important;
  }
}
.hn-case-detail {
  background: #fff;
  /* border-radius: 12px; */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  margin-bottom: 48px;
}
.hn-case-detail__header {
  padding: 16px 24px;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 16px;
}
.hn-case-detail__header--green {
  background: #009c6c;
}
.hn-case-detail__header--orange {
  background: #f57e29;
}
.hn-case-detail__tag {
  display: inline-block;
  font-size: 18px;
  font-weight: 700;
  padding: 4px 16px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 999px;
  flex-shrink: 0;
}
.hn-case-detail__header h3 {
  font-size: 24px;
  font-weight: 700;
}
@media (max-width: 767px) {
  .hn-case-detail__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 16px;
  }
  .hn-case-detail__header h3 {
    font-size: 16px;
  }
}
.hn-case-detail__body {
  padding: 24px;
}
@media (max-width: 767px) {
  .hn-case-detail__body {
    padding: 16px;
  }
}
.hn-case-detail__lead {
  font-size: 20px !important;
  font-weight: 700 !important;
  margin-bottom: 20px;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .hn-case-detail__lead {
    font-size: 16px !important;
    margin-bottom: 12px !important;
  }
}
.hn-case-detail__grid {
  display: grid;
  grid-template-columns: 15fr 14fr;
  gap: 20px;
  margin-bottom: 24px;
}
@media (max-width: 767px) {
  .hn-case-detail__grid {
    grid-template-columns: 1fr;
  }
}
.hn-case-detail__imgs {
  position: relative;
}
.hn-case-detail__img-main {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  /* border-radius: 12px; */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.hn-case-detail__img-sub {
  position: absolute;
  bottom: 0;
  right: -10px;
  width: 144px;
  height: 144px;
  object-fit: cover;
  /* border-radius: 12px; */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  border: 4px solid #fff;
}
@media (max-width: 767px) {
  .hn-case-detail__img-sub {
    width: 112px;
    height: 112px;
    bottom: 0px;
    right: -4px;
  }
}
.hn-case-detail__situation-ttl {
  font-size: 16px;
  font-weight: 700;
  color: #333;
  margin-bottom: 16px;
}
.hn-check-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  /* border-radius: 12px; */
  border: 1px solid;
  margin-bottom: 12px;
}
.hn-check-list.hn-check-list--green {
  margin-bottom: 0 !important;
}
.hn-check-list--green li {
  background: rgba(0, 156, 108, 0.05);
  border-color: rgba(0, 156, 108, 0.15);
}
.hn-check-list--orange li {
  background: rgba(245, 126, 41, 0.05);
  border-color: rgba(245, 126, 41, 0.15);
}
.hn-check-list__icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}
.hn-check-list--green .hn-check-list__icon {
  background: #009c6c;
}
.hn-check-list--orange .hn-check-list__icon {
  background: #f57e29;
}
.hn-check-list li span:last-child {
  font-size: 18px;
  color: rgba(51, 51, 51, 0.8);
  font-weight: 500;
  margin-bottom: 0 !important;
  line-height: 1.4;
}
@media (max-width: 767px) {
  .hn-check-list li {
    padding: 12px;
    gap: 10px;
  }
  .hn-check-list__icon {
    width: 28px;
    height: 28px;
    font-size: 12px;
  }
  .hn-check-list li span:last-child {
    font-size: 14px !important;
  }
}
.hn-knowledge-box {
  border-top: 2px solid #fbbf24;
  padding-top: 20px;
  margin: 24px 0;
}
.hn-knowledge-box__grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 24px;
  align-items: center;
}
@media (max-width: 767px) {
  .hn-knowledge-box__grid {
    grid-template-columns: 1fr;
  }
}
.hn-knowledge-box__ttl {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #92400e;
  margin-bottom: 12px;
  line-height: 1.4;
}
.hn-knowledge-box__text {
  font-size: 16px !important;
  line-height: 1.7;
  color: rgba(51, 51, 51, 0.7);
}
.hn-knowledge-box__source {
  font-size: 11px !important;
  color: rgba(51, 51, 51, 0.4) !important;
  margin-top: 8px !important;
  line-height: 1.5;
  word-break: break-all;
}
.hn-knowledge-box__source a {
  color: #009c6c !important;
  word-break: break-all;
}
.hn-knowledge-box__img {
  width: 100%;
  max-width: 360px;
  object-fit: contain;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .hn-knowledge-box__img {
    object-fit: cover;
    aspect-ratio: 12/8;
  }
}
.hn-info-box {
  /* border-radius: 8px; */
  padding: 20px;
  margin-top: 24px;
}
.hn-info-box--green {
  background: rgba(0, 156, 108, 0.05);
  border: 1px solid rgba(0, 156, 108, 0.2);
}
.hn-info-box--green p:last-child {
  margin-bottom: 0 !important;
}
.hn-info-box--orange {
  background: rgba(245, 126, 41, 0.05);
  border: 1px solid rgba(245, 126, 41, 0.2);
}
.hn-info-box--orange p:last-child {
  margin-bottom: 0 !important;
}
.hn-info-box p {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  color: #333;
  margin-bottom: 12px !important;
}
.hn-info-box p:last-child {
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .hn-info-box p {
    font-size: 14px !important;
  }
}

/* ============================================ WARNING ============================================ */
.hn-warning-badges {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 8px;
}
.hn-warning-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(254, 202, 202, 1);
  color: #b91c1c;
  font-size: 14px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
}
.hn-warning-label {
  font-size: 14px;
  font-weight: 600;
  color: #f57e29;
}
.hn-warning__lead {
  font-size: 20px !important;
  color: rgba(51, 51, 51, 0.8) !important;
  line-height: 1.7;
  max-width: 700px;
  margin: 0 auto 32px;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-warning__lead {
    max-width: 100%;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
.hn-warning__sub-ttl {
  font-size: 18px !important;
  font-weight: 700 !important;
  margin-bottom: 16px;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-warning__sub-ttl {
    text-align: left !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin-left: auto;
    margin-right: auto;
  }
}
.hn-symptom-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 32px;
}
@media (max-width: 767px) {
  .hn-symptom-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.hn-symptom-card {
  background: #fff;
  /* border-radius: 8px; */
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  border: 1px solid #f0f0f0;
}
.hn-symptom-card > img {
  width: 100%;
  height: 192px;
  object-fit: cover;
}
@media (max-width: 767px) {
  .hn-symptom-card > img {
    height: 160px;
  }
}
.hn-symptom-card__body {
  padding: 16px;
}
.hn-symptom-card__body h4 {
  font-size: 18px;
  font-weight: 700;
  color: #333;
  margin-bottom: 4px;
}
.hn-symptom-card__body p {
  font-size: 16px;
  color: rgba(51, 51, 51, 0.7);
  line-height: 1.45;
  margin-bottom: 4px !important;
}
.hn-warning-box {
  max-width: 896px;
  margin: 0 auto 32px;
}
.hn-warning-box__header {
  background: #dc2626;
  /* border-radius: 12px 12px 0 0; */
  padding: 12px 20px;
}
.hn-warning-box__header h4 {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
}
.hn-warning-box__body {
  background: #fff;
  /* border-radius: 0 0 12px 12px; */
  padding: 24px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
  border: 1px solid #e5e5e5;
  border-top: none;
}
.hn-warning-box__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
}
@media (max-width: 767px) {
  .hn-warning-box__grid {
    grid-template-columns: 1fr;
  }
}
.hn-warning-box__grid img {
  width: 100%;
  border-radius: 8px;
}
.hn-warning-box__body p {
  font-size: 18px;
  color: rgba(51, 51, 51, 0.8);
  line-height: 1.7;
  margin-bottom: 12px !important;
}

/* --- 虫歯の例え図（HTML/CSS版） --- */
.hn-cavity {
  background: #fff;
  /* border-radius: 12px; */
  padding: clamp(16px, 3vw, 24px) clamp(12px, 2vw, 20px);
  border: 1px solid #e5e5e5;
}
.hn-cavity__title {
  font-size: clamp(18px, 4vw, 28px) !important;
  font-weight: 900 !important;
  color: #333;
  text-align: center !important;
  margin-bottom: clamp(8px, 1.5vw, 16px);
}
@media (max-width: 767px) {
  .hn-cavity__title {
    font-size: clamp(14px, 4.8vw, 28px) !important;
  }
}
.hn-cavity__stages {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
}
.hn-cavity__stage {
  text-align: center;
  flex: 1;
}
.hn-cavity__label {
  font-size: clamp(10px, 1.8vw, 18px) !important;
  font-weight: 700 !important;
  color: #333;
  margin-bottom: clamp(2px, 0.5vw, 6px);
  min-height: clamp(24px, 4vw, 36px);
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.3 !important;
  text-align: center !important;
  min-height: 2.6em;
}
@media (max-width: 767px) {
  .hn-cavity__label {
    font-size: clamp(10px, 3.6vw, 18px) !important;
  }
}
.hn-cavity__img-wrap {
  width: 100%;
  padding: 0 clamp(2px, 1vw, 10px);
  margin-bottom: clamp(2px, 0.5vw, 6px);
}
.hn-cavity__img-wrap img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  margin: 0 auto;
}
.hn-cavity__status {
  font-size: clamp(12px, 2.2vw, 18px) !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  padding: 0;
  text-align: center !important;
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .hn-cavity__status {
    font-size: clamp(10px, 3.4vw, 18px) !important;
  }
}
.hn-cavity__status small {
  font-size: clamp(8px, 1.5vw, 12px) !important;
  font-weight: 400 !important;
  display: block;
}
.hn-cavity__status--red {
  color: #dc2626;
}
.hn-cavity__status--yellow {
  color: #333;
}
.hn-cavity__status--gray {
  color: #333;
}
.hn-cavity__message {
  background: #dc2626;
  color: #fff;
  font-size: clamp(14px, 2.8vw, 20px) !important;
  font-weight: 700 !important;
  text-align: center;
  padding: clamp(10px, 2vw, 16px) clamp(12px, 2vw, 24px);
  border-radius: 8px;
  margin-top: clamp(10px, 2vw, 18px);
  line-height: 1.5;
}
@media (max-width: 767px) {
  .hn-cavity__message {
    font-size: clamp(10px, 4vw, 20px) !important;
  }
}
/* --- 神経損傷の進行図 --- */
.hn-nerve-progression {
  max-width: 900px;
  margin: 0 auto 32px;
  text-align: center;
}
.hn-nerve-progression__title {
  font-size: clamp(16px, 2.5vw, 22px) !important;
  font-weight: 500 !important;
  margin-bottom: 20px;
  line-height: 1.6;
}
.hn-nerve-progression__title strong {
  font-weight: 900 !important;
  font-size: clamp(18px, 3vw, 26px) !important;
}
.hn-nerve-progression > p {
  font-size: 18px;
  color: rgba(51, 51, 51, 0.8);
  margin-top: 16px;
  line-height: 1.4;
}
@media (max-width: 767px) {
  .hn-nerve-progression > p {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}

/* カード全体：オレンジの太いborder + 角丸 */
.hn-nerve-card {
  /* border-radius: 20px; */
  border: 3px solid #e8940a;
  background: #faeaea;
  overflow: visible;
  margin-top: 2.5em;
}

/* 上部赤帯：カード上辺に配置 */
.hn-nerve-card__header {
  background: #c22a2a;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(10px, 1.8vw, 16px) clamp(14px, 2.2vw, 24px);
  gap: 12px;
  border-radius: 40px;
  margin-top: -2em;
}
.hn-nerve-card__header-left {
  font-size: clamp(18px, 3vw, 28px) !important;
  font-weight: 900 !important;
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 767px) {
  .hn-nerve-card__header-left {
    justify-content: center;
    text-align: center;
  }
}
.hn-nerve-card__icon {
  font-size: clamp(20px, 3vw, 30px);
  flex-shrink: 0;
}
.hn-nerve-card__header-right {
  font-size: clamp(8px, 1.4vw, 14px) !important;
  font-weight: 400 !important;
  color: #fff;
  text-align: right;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .hn-nerve-card__header-right {
    text-align: center;
  }
}

/* 中央：画像 */
.hn-nerve-card__body {
  padding: clamp(10px, 1.5vw, 20px) clamp(10px, 1.5vw, 20px);
}
.hn-nerve-card__body img {
  width: 100%;
  margin: 0 auto;
}

/* 下部赤帯：角丸 + 左右下に余白 */
.hn-nerve-card__footer {
  background: #c22a2a;
  color: #fff;
  font-size: clamp(16px, 2.8vw, 26px) !important;
  font-weight: 900 !important;
  text-align: center;
  padding: clamp(10px, 1.8vw, 16px) clamp(14px, 2.2vw, 24px);
  margin: 0 clamp(10px, 1.5vw, 20px) clamp(10px, 1.5vw, 20px);
  border-radius: 12px;
}

@media (max-width: 767px) {
  .hn-nerve-card__header {
    flex-direction: column;
    gap: 4px;
    align-items: center;
  }
  .hn-nerve-card__header-right {
    text-align: left;
  }
}

/* ============================================ 吹き出し ============================================ */
.hn-talk-wrap {
  max-width: 800px;
  margin: 32px auto;
}
.hn-talk {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 16px;
}
.hn-talk--cell {
  flex-direction: row-reverse;
}
.hn-talk__icon {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  overflow: visible;
}
@media (max-width: 767px) {
  .hn-talk__icon {
    width: 56px;
    height: 56px;
  }
}
.hn-talk__bubble {
  position: relative;
  border-radius: 16px;
  padding: 16px 20px;
  font-size: 16px;
  line-height: 1.7;
  font-weight: 700;
  max-width: 560px;
  border: 2px solid;
}
.hn-talk__bubble--green {
  background: #fff;
  border-color: #009c6c;
  color: #009c6c;
}
.hn-talk__bubble--red {
  background: #fff;
  border-color: #ef5350;
  color: #c62828;
}
.hn-talk__bubble--green::before {
  content: "";
  position: absolute;
  top: 16px;
  left: -10px;
  border-style: solid;
  border-width: 8px 10px 8px 0;
  border-color: transparent #009c6c transparent transparent;
}
.hn-talk__bubble--green::after {
  content: "";
  position: absolute;
  top: 18px;
  left: -7px;
  border-style: solid;
  border-width: 6px 7px 6px 0;
  border-color: transparent #fff transparent transparent;
}
.hn-talk--cell .hn-talk__bubble--red::before {
  content: "";
  position: absolute;
  top: 16px;
  right: -10px;
  left: auto;
  border-style: solid;
  border-width: 8px 0 8px 10px;
  border-color: transparent transparent transparent #ef5350;
}
.hn-talk--cell .hn-talk__bubble--red::after {
  content: "";
  position: absolute;
  top: 18px;
  right: -7px;
  left: auto;
  border-style: solid;
  border-width: 6px 0 6px 7px;
  border-color: transparent transparent transparent #fff;
}
@media (max-width: 767px) {
  .hn-talk__bubble {
    max-width: 100%;
    font-size: 14px;
  }
}

/* ============================================ ROOT CAUSE ============================================ */
.hn-cause__content {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 32px;
  align-items: start;
  margin-bottom: 32px;
}
@media (max-width: 767px) {
  .hn-cause__content {
    grid-template-columns: 1fr;
  }
}
.hn-cause__img {
  width: 100%;
  max-width: 320px;
  /* border-radius: 8px; */
}
@media (max-width: 767px) {
  .hn-cause__img {
    max-width: none;
  }
}
.hn-cause__text p {
  font-size: 18px;
  line-height: 1.7;
  color: rgba(51, 51, 51, 0.8);
  margin-bottom: 12px !important;
}
.hn-cause__conclusion {
  background: rgba(0, 156, 108, 0.03);
  border: 3px solid #009c6c;
  /* border-radius: 12px; */
  padding: 32px 40px;
  margin-top: 32px;
  text-align: center !important;
  text-align: center;
}
@media (max-width: 767px) {
  .hn-cause__conclusion {
    padding: 20px;
  }
}
.hn-cause__conclusion p {
  font-size: 20px;
  line-height: 1.7;
  color: #333;
  font-weight: 500;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-cause__conclusion p {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
.hn-cause__conclusion-highlight {
  color: #009c6c;
  font-size: 24px !important;
  font-weight: 800 !important;
  margin-top: 12px;
  margin-bottom: 0 !important;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-cause__conclusion-highlight {
    text-align: left !important;
  }
}

/* ============================================ 再生医療と手術の違い ============================================ */
.hn-compare-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 32px;
}
@media (max-width: 767px) {
  .hn-compare-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.hn-compare-col {
  background: #fff;
  /* border-radius: 12px; */
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.hn-compare-col__header {
  padding: clamp(12px, 2vw, 16px) clamp(14px, 2vw, 20px) !important;
  color: #fff !important;
  text-align: center !important;
}
.hn-compare-col__header--green {
  background: linear-gradient(135deg, #009e69, #008a67) !important;
}
.hn-compare-col__header--gray {
  background: #666 !important;
}
.hn-compare-col__header h3 {
  font-size: 22px !important;
  font-weight: 700 !important;
  text-align: center !important;
  color: #fff !important;
}
@media (max-width: 767px) {
  .hn-compare-col__header h3 {
    font-size: 18px !important;
  }
}
.hn-compare-col__header p {
  font-size: 14px !important;
  opacity: 0.9;
  text-align: center !important;
  color: #fff !important;
  margin-bottom: 0 !important;
}
.hn-compare-col__body {
  padding: clamp(12px, 2vw, 20px) !important;
}
.hn-compare-item {
  margin-bottom: 16px;
  text-align: center !important;
}
.hn-compare-item p {
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: rgba(51, 51, 51, 0.8) !important;
  margin-bottom: 8px !important;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-compare-item p {
    font-size: 14px !important;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
.hn-compare-item img {
  max-width: 400px !important;
  width: 100% !important;
  max-height: 215px !important;
  object-fit: contain !important;
  /* border-radius: 8px; */
  margin: 0 auto 8px !important;
}
.hn-compare-item__note {
  font-size: 13px !important;
  color: #999 !important;
  text-align: center !important;
}
.hn-compare-item__alert {
  font-size: 16px !important;
  color: #dc2626 !important;
  text-align: center !important;
  font-weight: 700 !important;
}

/* ============================================ 中間CTA ============================================ */
.hn-mid-cta {
  padding: 64px 0 !important;
  background: linear-gradient(to bottom, #009c6c, #006b4a) !important;
  text-align: center !important;
}
.hn-mid-cta .hn-container {
  background: #fff !important;
  /* border-radius: 20px !important; */
  padding: 48px 40px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important;
  max-width: 1000px !important;
  width: 90%;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .hn-mid-cta .hn-container {
    padding: 32px 20px !important;
  }
}
.hn-mid-cta__label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #009c6c !important;
  margin-bottom: 16px !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 8px 24px !important;
  /* background: #009c6c !important; */
}
.hn-mid-cta__label svg {
  flex-shrink: 0;
  stroke: #009c6c !important;
  width: 28px !important;
  height: 28px !important;
}
@media (max-width: 767px) {
  .hn-mid-cta__label {
    font-size: 20px !important;
    margin-bottom: 8px !important;
  }
  .hn-mid-cta__label svg {
    width: 20px !important;
    height: 20px !important;
  }
}
.hn-mid-cta__ttl {
  font-size: 36px !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin-bottom: 12px !important;
  line-height: 1.2 !important;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-mid-cta__ttl {
    font-size: 22px !important;
  }
}
.hn-mid-cta__lead {
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.7) !important;
  margin-bottom: 28px !important;
  text-align: center !important;
}
.hn-mid-cta__btns {
  display: flex !important;
  justify-content: center !important;
  gap: 16px !important;
  margin-bottom: 16px !important;
}
@media (max-width: 767px) {
  .hn-mid-cta__btns {
    flex-direction: column !important;
    align-items: center !important;
  }
}
.hn-mid-cta__tel {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: #f57e29 !important;
  color: #fff !important;
  padding: 14px 32px !important;
  border-radius: 999px !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  font-family: "Roboto Condensed", sans-serif;
  transition: all 0.3s;
}
.hn-mid-cta__tel svg {
  stroke: #fff !important;
}
.hn-mid-cta__tel:hover {
  opacity: 0.9;
}
.hn-mid-cta__mail-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: linear-gradient(135deg, #009e69, #008a67) !important;
  color: #fff !important;
  padding: 14px 32px !important;
  border-radius: 999px !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  transition: all 0.3s;
}
.hn-mid-cta__mail-btn svg {
  stroke: #fff !important;
}
.hn-mid-cta__mail-btn:hover {
  opacity: 0.9;
}
.hn-mid-cta__time {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  font-size: 14px !important;
  color: rgba(51, 51, 51, 0.6) !important;
  text-align: center !important;
  margin-bottom: 0 !important;
}
.hn-mid-cta__time svg {
  flex-shrink: 0;
  stroke: rgba(51, 51, 51, 0.6) !important;
}

/* ============================================ FEATURES ============================================ */
.hn-features__lead {
  max-width: 700px;
  margin: 0 auto 32px !important;
  text-align: center !important;
}
.hn-features__lead p {
  font-size: 18px !important;
  color: rgba(51, 51, 51, 0.8) !important;
  line-height: 1.8 !important;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-features__lead p {
    font-size: 15px !important;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
.hn-features__lead strong {
  font-weight: 700;
}
.hn-features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 767px) {
  .hn-features__grid {
    grid-template-columns: 1fr !important;
    gap: 12px;
  }
}
.hn-features__card {
  background: #fff;
  /* border-radius: 4px; */
  overflow: hidden;
  border: solid 2px #f5a623;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.hn-features__card-head {
  background: linear-gradient(to right, #f28c28, #f5a623);
  padding: 12px 16px;
}
.hn-features__card-head h3 {
  color: #fff;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  line-height: 1.4;
}
@media (max-width: 767px) {
  .hn-features__card-head h3 {
    font-size: 15px;
  }
}
.hn-features__card-body {
  padding: 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.hn-features__card-body p {
  font-size: 16px;
  color: rgba(51, 51, 51, 0.7);
  text-align: center;
  line-height: 1.6;
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .hn-features__card-body p {
    text-align: left !important;
  }
}
.hn-features__card-body img {
  width: 100%;
  object-fit: contain;
  margin-top: auto;
  padding-top: 12px;
}
@media (max-width: 767px) {
  .hn-features__card-body img {
  }
}

/* ============================================
   特長詳細 共通（hn-fd）
   ============================================ */
@media (max-width: 767px) {
  #feature-detail-1 > .hn-container {
    display: flex !important;
    flex-direction: column !important;
  }
  #feature-detail-1 .hn-fd__header {
    order: 1;
  }
  #feature-detail-1 .hn-fd__image {
    order: 2;
  }
  #feature-detail-1 .hn-fd__lead {
    order: 3;
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
  #feature-detail-1 .hn-talk-wrap {
    order: 4;
  }
}
.hn-fd__header {
  text-align: center;
  margin-bottom: 32px;
}
.hn-fd__badge-row {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 4px;
  margin-bottom: 8px;
}
.hn-fd__doctor-finger {
  width: 56px;
  height: 56px;
  object-fit: contain;
  margin-bottom: -8px;
}
@media (min-width: 768px) {
  .hn-fd__doctor-finger {
    width: 80px;
    height: 80px;
  }
}
.hn-fd__badge-text {
  display: flex;
  align-items: center;
  gap: 8px;
}
.hn-fd__badge-label {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #333;
}
@media (min-width: 768px) {
  .hn-fd__badge-label {
    font-size: 16px !important;
  }
}
.hn-fd__badge-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #009c6c;
  color: #fff;
  font-size: 14px !important;
  font-weight: 700 !important;
  padding: 4px 16px;
  border-radius: 999px;
}
@media (min-width: 768px) {
  .hn-fd__badge-num {
    font-size: 16px !important;
  }
}
.hn-fd__title-box {
  background: #fff;
  border: solid 2px #009c6c;
  border-radius: 4px;
  padding: 20px 24px;
  text-align: center;
  width: fit-content;
  max-width: 540px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .hn-fd__title-box {
    padding: 10px 16px;
  }
}
.hn-fd__title-box h3 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #333;
  line-height: 1.4;
}
@media (min-width: 640px) {
  .hn-fd__title-box h3 {
    font-size: 22px !important;
  }
}
@media (min-width: 768px) {
  .hn-fd__title-box h3 {
    font-size: 26px !important;
  }
}
@media (min-width: 1024px) {
  .hn-fd__title-box h3 {
    font-size: 30px !important;
  }
}
.hn-fd__lead {
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.8);
  max-width: 640px;
  margin: 0 auto 32px;
  text-align: center !important;
  line-height: 1.7;
}
@media (max-width: 767px) {
  .hn-fd__lead {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
@media (min-width: 768px) {
  .hn-fd__lead {
    font-size: 20px !important;
  }
}
.hn-fd__image {
  margin-bottom: 32px;
}
.hn-fd__image img {
  display: block;
  margin: 0 auto;
  width: 100%;
  border-radius: 0 !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
@media (min-width: 768px) {
  .hn-pc-only {
    display: inline;
  }
}
@media (max-width: 767px) {
  .hn-pc-only {
    display: none;
  }
}

/* ============================================
   特長② 脊髄腔内ダイレクト注射療法
   ============================================ */
.hn-section--feature2 {
  padding: 0;
}
.hn-f2__header {
  background: #facc15;
  color: #333;
  padding: 32px 20px;
  text-align: center;
}
.hn-f2__header .hn-fd__badge-text {
  justify-content: center;
  margin-bottom: 8px;
}
.hn-f2__header-ttl {
  font-size: 22px !important;
  font-weight: 700 !important;
  margin-bottom: 8px !important;
}
@media (min-width: 768px) {
  .hn-f2__header-ttl {
    font-size: 30px !important;
  }
}
.hn-f2__header-sub {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #009c6c;
  text-align: center !important;
  margin-bottom: 0 !important;
}
@media (min-width: 768px) {
  .hn-f2__header-sub {
    font-size: 20px !important;
  }
}

/* ホワイトボードキャラ */
.hn-f2__whiteboard {
  padding: 32px 0;
}
.hn-f2__whiteboard-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
@media (min-width: 768px) {
  .hn-f2__whiteboard-inner {
    flex-direction: row;
    gap: 24px;
  }
}
.hn-f2__whiteboard-img-wrap {
  flex-shrink: 0;
}
.hn-f2__whiteboard-img-wrap img {
  width: 100%;
  max-width: 320px;
}
@media (min-width: 768px) {
  .hn-f2__whiteboard-img-wrap img {
    max-width: 400px;
  }
}
.hn-f2__whiteboard-bubble {
  position: relative;
}
@media (min-width: 768px) {
  .hn-f2__whiteboard-bubble::before {
    content: "";
    position: absolute;
    top: 24px;
    left: -10px;
    border-style: solid;
    border-width: 8px 10px 8px 0;
    border-color: transparent #009c6c transparent transparent;
  }
  .hn-f2__whiteboard-bubble::after {
    content: "";
    position: absolute;
    top: 26px;
    left: -7px;
    border-style: solid;
    border-width: 6px 7px 6px 0;
    border-color: transparent #fff transparent transparent;
  }
}

/* 黄色帯バナー */
.hn-f2__banner {
  background: #facc15;
  padding: 16px 24px;
  text-align: center;
  margin-bottom: 32px;
}
.hn-f2__banner p {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #333;
  text-align: center !important;
  margin-bottom: 0 !important;
  line-height: 1.6;
}
@media (max-width: 767px) {
  .hn-f2__banner p {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
@media (min-width: 768px) {
  .hn-f2__banner p {
    font-size: 20px !important;
  }
}
.hn-f2__banner-highlight {
  color: #009c6c;
  background: #fff;
  padding: 2px 8px;
  border-radius: 4px;
  display: inline;
}

/* 比較セクション */
.hn-f2__compare {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 40px;
  align-items: start;
}
@media (max-width: 767px) {
  .hn-f2__compare-left {
    order: 2;
  }
  .hn-f2__compare-right {
    order: 1;
  }
}
@media (min-width: 768px) {
  .hn-f2__compare {
    grid-template-columns: 1fr 1fr;
  }
}
.hn-f2__text {
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.8);
  line-height: 1.7;
}
.hn-f2__text:last-child {
  margin-bottom: 0 !important;
}
@media (min-width: 768px) {
  .hn-f2__text {
    font-size: 18px !important;
  }
}
.hn-f2__compare-right img {
  width: 100%;
  /* border-radius: 8px; */
}

/* 施術風景 */
.hn-f2__treatment-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 40px;
  align-items: center;
}
@media (min-width: 768px) {
  .hn-f2__treatment-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.hn-f2__treatment-img {
  /* border-radius: 8px; */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

/* STEPカード */
.hn-f2__steps {
  margin-bottom: 40px;
}
.hn-f2__steps-ttl {
  font-size: 20px !important;
  font-weight: 700 !important;
  text-align: center;
  color: #009c6c;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .hn-f2__steps-ttl {
    font-size: 24px !important;
  }
}
.hn-f2__steps-box {
  background: #fff;
  /* border-radius: 12px; */
  border: 2px solid #e5e5e5;
  padding: 16px;
}
@media (min-width: 768px) {
  .hn-f2__steps-box {
    padding: 32px;
  }
}
.hn-f2__steps-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: center;
}
@media (min-width: 768px) {
  .hn-f2__steps-inner {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}
.hn-f2__steps-img {
  width: 100%;
  /* border-radius: 8px; */
}
.hn-f2__steps-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.hn-f2__step-item {
  display: flex;
  gap: 16px;
}
.hn-f2__step-label {
  display: inline-block;
  background: #009c6c;
  color: #fff;
  font-size: 14px !important;
  font-weight: 700 !important;
  padding: 8px 16px;
  border-radius: 4px;
  flex-shrink: 0;
  height: fit-content;
}
.hn-f2__step-item p {
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.8);
  padding-top: 4px;
  margin-bottom: 0 !important;
}
@media (min-width: 768px) {
  .hn-f2__step-item p {
    font-size: 18px !important;
  }
}

/* 補足＋吹き出し */
.hn-f2__supplement {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 40px;
  align-items: start;
}
@media (min-width: 768px) {
  .hn-f2__supplement {
    grid-template-columns: 1fr 1.1fr;
  }
}

/* ============================================
   特長③ 2億個投与
   ============================================ */
#feature-detail-3 {
  margin-bottom: -48px !important;
}
#feature-detail-3 .hn-fd__lead {
  max-width: 800px;
}
@media (max-width: 767px) {
  #feature-detail-3 .hn-fd__lead {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
.hn-f3__desc {
  max-width: 800px;
  margin: 0 auto 32px;
}
.hn-f3__desc p {
  font-size: 18px !important;
  color: rgba(51, 51, 51, 0.9);
  line-height: 1.7;
  margin-bottom: 12px !important;
  text-align: center !important;
}
@media (max-width: 767px) {
  .hn-f3__desc p {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
@media (max-width: 767px) {
  .hn-f3__dosage-img {
    max-width: 640px;
    margin: 0 auto;
  }
}

/* ============================================
   投与方法による効果範囲の違い（COMPARISON）
   ============================================ */
.hn-dosage__lead {
  text-align: center;
  color: rgba(51, 51, 51, 0.8);
  max-width: 640px;
  margin: 0 auto 24px;
  font-size: 16px !important;
  line-height: 1.7;
}
@media (max-width: 767px) {
  .hn-dosage__lead {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
.hn-dosage__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .hn-dosage__grid {
    grid-template-columns: 1fr 1fr;
  }
}
.hn-dosage__card {
  /* border-radius: 12px; */
  overflow: hidden;
  border: 2px solid;
}
.hn-dosage__card--green {
  border-color: rgba(0, 156, 108, 0.3);
}
.hn-dosage__card--blue {
  border-color: #93c5fd;
}
.hn-dosage__card-header {
  padding: 16px;
}
.hn-dosage__card-header--green {
  background: linear-gradient(
    to right,
    rgba(0, 156, 108, 0.1),
    rgba(0, 156, 108, 0.05)
  );
}
.hn-dosage__card-header--blue {
  background: linear-gradient(to right, #eff6ff, #dbeafe);
}
.hn-dosage__card-tag {
  display: inline-block;
  background: #facc15;
  color: #333;
  font-size: 12px !important;
  font-weight: 700 !important;
  padding: 4px 12px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.hn-dosage__card-header h4 {
  font-size: 20px !important;
  font-weight: 700 !important;
}
.hn-dosage__card--green .hn-dosage__card-header h4 {
  color: #009c6c;
}
.hn-dosage__card--blue .hn-dosage__card-header h4 {
  color: #2563eb;
}
.hn-dosage__card-body {
  background: #fff;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
}
@media (min-width: 640px) {
  .hn-dosage__card-body {
    flex-direction: row;
  }
}
.hn-dosage__card-img {
  width: 66%;
  max-height: 192px;
  object-fit: contain;
}
@media (min-width: 640px) {
  .hn-dosage__card-img {
    width: 26%;
    max-height: 192px;
  }
}
.hn-dosage__card-list {
  flex: 1;
  margin-bottom: 0 !important;
}
.hn-dosage__card-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.8);
  margin-bottom: 8px;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .hn-dosage__card-list li {
    font-size: 18px !important;
  }
}
.hn-dosage__dot {
  font-weight: 700 !important;
  flex-shrink: 0;
}
.hn-dosage__dot--orange {
  color: #f97316;
}
.hn-dosage__dot--blue {
  color: #3b82f6;
}
.hn-dosage__blue-text {
  color: #2563eb;
}
.hn-dosage__red-text {
  color: #dc2626;
  font-weight: 700 !important;
}
.hn-dosage__conclusion {
  background: hsl(58, 31%, 46%);
  /* border-radius: 12px; */
  padding: 16px 24px;
  text-align: center;
}
.hn-dosage__conclusion p {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #fff;
  margin-bottom: 0 !important;
  text-align: left;
}
@media (min-width: 768px) {
  .hn-dosage__conclusion p {
    font-size: 22px !important;
    text-align: center;
  }
}

/* ============================================
   特長④ 脂肪由来幹細胞
   ============================================ */
.hn-f4__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 32px;
}
@media (min-width: 768px) {
  .hn-f4__grid {
    grid-template-columns: 0.9fr 1fr;
    gap: 24px;
  }
}
.hn-f4__img-wrap img {
  width: 100%;
  /* border-radius: 12px; */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.hn-f4__checklist {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hn-f4__checklist h4 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #333;
  margin-bottom: 12px;
}
.hn-f4__checklist ul {
  display: flex;
  flex-direction: column;
  gap: 12px;

  margin-bottom: 0 !important;
}
.hn-f4__checklist li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.8);
  line-height: 1.4;
}
@media (min-width: 768px) {
  .hn-f4__checklist li {
    font-size: 18px !important;
  }
}
.hn-f4__research {
  background: rgba(0, 156, 108, 0.05);
  /* border-radius: 12px; */
  padding: 16px;
  margin-bottom: 32px;
  text-align: center;
}
@media (min-width: 768px) {
  .hn-f4__research {
    padding: 24px;
  }
}
.hn-f4__research h4 {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #009c6c;
  margin-bottom: 16px;
}
.hn-f4__research img {
  max-width: 640px;
  margin: 0 auto 16px;
  border-radius: 8px;
}
.hn-f4__research > p {
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.8);
  max-width: 640px;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .hn-f4__research > p {
    font-size: 18px !important;
  }
}
/* 横スクロール（SP） */
.page-hernia .hn-scroll-note {
  display: none !important;
  align-items: center !important;
  justify-content: flex-end !important;
  column-gap: 5px !important;
  margin: 10px 0 5px !important;
  font-size: 11px !important;
  color: rgba(51, 51, 51, 0.5) !important;
}
@media (max-width: 767px) {
  .page-hernia .hn-scroll-note {
    display: flex !important;
  }
}
.hn-scroll-note::after {
  display: block;
  width: 20px;
  height: 4px;
  border-bottom: 1px solid currentColor;
  border-right: 2px solid currentColor;
  transform: skewX(60deg);
  content: "";
}
.hn-scroll-content {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
@media (max-width: 767px) {
  .hn-scroll-content__inner {
    min-width: 700px;
  }
}
.hn-scroll-content img {
  width: 100%;
}

.page-hernia .hn-f4__research-source {
  font-size: 10px !important;
  color: rgba(51, 51, 51, 0.4) !important;
  margin-top: 12px !important;
  text-align: left !important;
  word-break: break-all !important;
}
.hn-f4__research-source a {
  color: #009c6c;
}
.hn-f4__research-source a:hover {
  text-decoration: underline;
}

/* ============================================
   特長⑤ 自己血培養
   ============================================ */
.hn-f5__intro {
  margin-bottom: 24px;
}
.hn-f5__intro > h4 {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #333;
  margin-bottom: 24px;
}
.hn-f5__intro-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: center;
}
@media (min-width: 768px) {
  .hn-f5__intro-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.hn-f5__nobox {
  display: grid;
  grid-template-columns: 120px 1fr;
  height: 170px;
  overflow: hidden;
}
.hn-f5__nobox-inner {
  display: contents;
}
.hn-f5__nobox-label {
  background: linear-gradient(90deg, #fe7b0e, #ff9c49);
  color: #fff;
  font-weight: 700;
  font-size: 2rem;
  display: grid;
  place-content: center;
}
.hn-f5__nobox-content {
  padding: 30px;
  background-color: #ffffff;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.hn-f5__nobox-check {
  display: flex;
  align-items: center;
  gap: 8px;
}
.page-hernia .hn-f5__nobox-check p.hn-bold {
  margin-bottom: 0 !important;
  font-size: 2.4rem;
}
@media (max-width: 767px) {
  .hn-f5__nobox-check p.hn-bold {
    font-size: 1.8rem !important;
  }
}
.hn-f5__nobox-sub {
  font-size: 1.8rem !important;
  color: rgba(51, 51, 51, 0.6);
  margin-bottom: 0 !important;
}
@media (max-width: 767px) {
  .hn-f5__nobox-sub {
    font-size: 1.4rem !important;
  }
}
.hn-f5__nobox-img {
  width: 137px;
  flex-shrink: 0;
}
.hn-f5__nobox-img img {
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .hn-f5__nobox {
    grid-template-columns: 1fr;
    height: auto;
    padding-top: 10px;
  }
  .hn-f5__nobox-label {
    padding: 0.1em 0;
  }
  .hn-f5__nobox-content {
    padding: 20px;
  }
  .hn-f5__nobox-img {
    width: 120px;
  }
}

/* 詳細説明 */
.hn-f5__detail {
  margin-bottom: 40px;
}
.hn-f5__detail-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  align-items: start;
}
@media (max-width: 767px) {
  .hn-f5__detail-grid > img {
    order: -1 !important;
  }
}
@media (min-width: 768px) {
  .hn-f5__detail-grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}
.hn-f5__detail-grid--reverse {
  direction: ltr;
}
@media (min-width: 768px) {
  .hn-f5__detail-grid--reverse {
    direction: ltr;
  }
  .hn-f5__detail-grid--reverse > img {
    order: -1;
  }
}
.hn-f5__detail h4 {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #333;
  margin-bottom: 16px;
}
.hn-f5__detail p {
  color: rgba(51, 51, 51, 0.8);
  line-height: 1.7;
  margin-bottom: 0 !important;
}
.hn-f5__detail img {
  width: 100%;
  border-radius: 0px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

/* ============================================
   特長⑥ 化学薬品不使用
   ============================================ */
#feature-detail-6 {
  margin-bottom: -48px !important;
}
@media (max-width: 767px) {
  #feature-detail-6 {
    margin-bottom: -48px !important;
  }
}
.hn-f6__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 32px;
  align-items: center;
}
@media (min-width: 768px) {
  .hn-f6__grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}
.hn-f6__lab-img {
  width: 100%;
  /* border-radius: 8px; */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
.hn-f6__text {
  display: block;
}
.hn-f6__text p {
  font-size: 18px !important;
  line-height: 1.7;
  color: rgba(51, 51, 51, 0.8);
}
@media (max-width: 767px) {
  .hn-f6__text p {
    font-size: 15px !important;
  }
}

/* ============================================
   安全性注意事項
   ============================================ */
.hn-safety {
  max-width: 960px;
  margin: 0 auto;
  background: #fff;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.hn-safety__header {
  background: #fde047;
  border-radius: 0;
  padding: 24px 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
}
@media (max-width: 767px) {
  .hn-safety__header {
    padding: 20px 16px;
    flex-direction: column;
  }
}
.hn-safety__icon {
  flex-shrink: 0;
  color: #333;
}
.hn-safety__header p {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #333 !important;
  margin-bottom: 0 !important;
  line-height: 1.5 !important;
  text-align: left;
}
@media (min-width: 768px) {
  .hn-safety__header p {
    font-size: 20px !important;
    text-align: center;
  }
}
.hn-safety__body {
  background: #fff;
  border: none;
  border-radius: 0;
  padding: 40px;
}
@media (max-width: 767px) {
  .hn-safety__body {
    padding: 20px 20px 32px;
  }
}
.hn-safety__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 768px) {
  .hn-safety__grid {
    grid-template-columns: 420px 1fr;
  }
}
.hn-safety__img {
  width: 100%;
  border-radius: 0;
}
.hn-safety__text {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-align: left;
  word-break: break-all;
}
.hn-safety__text p {
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: rgba(51, 51, 51, 0.8);
  margin-bottom: 0 !important;
}
@media (min-width: 768px) {
  .hn-safety__text p {
    font-size: 18px !important;
  }
}
@media (max-width: 767px) {
  .hn-safety__text p {
    line-height: 1.8 !important;
  }
}
.page-hernia .hn-safety__source {
  font-size: 14px !important;
  color: rgba(51, 51, 51, 0.8) !important;
  text-align: left !important;
  margin-top: 10px !important;
}
.hn-safety__source a {
  color: #009c6c;
  display: block;
  font-size: 14px !important;
  line-height: 1.6;
}
.hn-safety__source a:hover {
  text-decoration: underline;
}

/* ============================================
   品質保証
   ============================================ */
.hn-quality__intro {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 16px;
}
.hn-quality__intro-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
}
.hn-quality__intro-bubble {
  font-size: 20px !important;
  padding: 8px 20px;
}
.hn-quality__intro-bubble::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translateY(-50%);
  border-style: solid;
  border-width: 8px 10px 8px 0;
  border-color: transparent #009c6c transparent transparent;
}
.hn-quality__intro-bubble::after {
  content: "";
  position: absolute;
  left: -7px;
  top: 50%;
  transform: translateY(-50%);
  border-style: solid;
  border-width: 6px 7px 6px 0;
  border-color: transparent #fff transparent transparent;
}
.hn-quality__ttl {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #333;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .hn-quality__ttl {
    font-size: 30px !important;
  }
}
.hn-quality__content {
  margin-bottom: 32px;
}
.hn-quality__content figure {
  margin: 0;
}
.hn-quality__content img {
  width: 100%;
  height: auto;
}

/* ============================================
   治療の流れ（FLOW）
   ============================================ */
.hn-flow__list {
  max-width: 960px;
  margin: 0 auto;
  list-style: none;
  padding: 0;
}
.hn-flow__list > li {
  padding: 40px 50px;
  background-color: #f6f6f3;
}
.hn-flow__list > li:not(:last-of-type) {
  margin-bottom: 50px;
  position: relative;
}
.hn-flow__list > li:not(:last-of-type)::after {
  content: "";
  width: 80px;
  height: 30px;
  background: url(../../img/treatment/cmn/tri.png) no-repeat center/contain;
  position: absolute;
  left: 50%;
  bottom: -40px;
  transform: translateX(-50%);
}
.hn-flow__flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.hn-flow__flex figure {
  width: 28%;
  margin: 0;
}
.hn-flow__flex figure img {
  width: 100%;
  height: auto;
}
.hn-flow__txt-area {
  width: calc(72% - 40px);
}
.hn-flow__num-flex {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
}
.hn-flow__num {
  font-weight: 700;
  font-size: 5.2rem;
  line-height: 1.4;
  color: #009c6c;
  margin-right: 20px;
  margin-bottom: 0 !important;
}
.hn-flow__step-ttl {
  font-size: 2.4rem;
  line-height: 1.4;
}
.hn-flow__txt-wrap p {
  font-size: 1.8rem;
  line-height: 1.8;
  color: #8f8f8f;
}
.hn-flow__sub-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.hn-flow__sub-list li {
  font-size: 1.8rem;
  line-height: 1.8;
  color: #8f8f8f;
}
@media screen and (max-width: 767px) {
  .hn-flow__list > li {
    padding: 5px 15px 15px;
  }
  .hn-flow__list > li:not(:last-of-type) {
    margin-bottom: 40px;
  }
  .hn-flow__list > li:not(:last-of-type)::after {
    width: 64px;
    height: 24px;
    bottom: -32px;
  }
  .hn-flow__flex {
    flex-direction: column-reverse;
  }
  .hn-flow__flex figure {
    width: 100%;
  }
  .hn-flow__txt-area {
    width: 100%;
    margin-bottom: 20px;
  }
  .hn-flow__num-flex {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 30px;
  }
}

/* ============================================
   料金（PRICING）
   ============================================ */
#pricing {
  margin-bottom: -48px !important;
}
@media (max-width: 767px) {
  #pricing {
    margin-bottom: -48px !important;
  }
}
#pricing .hn-heading {
  margin-bottom: 8px !important;
}
.hn-pricing__main {
  background: #fff;
  /* border-radius: 12px; */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  padding: 24px;
  text-align: center !important;
  margin-bottom: 16px !important;
  margin-bottom: 24px;
}
.hn-pricing__main h3 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #333;
  margin-bottom: 8px !important;
  text-align: center !important;
}
.hn-pricing__sub {
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.7);
  margin-bottom: 4px !important;
  text-align: center !important;
}
@media (min-width: 768px) {
  .hn-pricing__sub {
    font-size: 18px !important;
  }
}
.hn-pricing__price {
  font-size: 32px !important;
  font-weight: 700 !important;
  color: #009c6c;
  margin-bottom: 8px !important;
  text-align: center !important;
}
@media (min-width: 768px) {
  .hn-pricing__price {
    font-size: 40px !important;
  }
}
.hn-pricing__yen {
  font-size: 18px !important;
}
.hn-pricing__tax {
  font-size: 14px !important;
  color: rgba(51, 51, 51, 0.6);
  margin-left: 4px;
}
.hn-pricing__inquiry {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: rgba(51, 51, 51, 0.8);
  text-align: center !important;
  margin-bottom: 0 !important;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .hn-pricing__inquiry {
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
  }
}
@media (min-width: 768px) {
  .hn-pricing__inquiry {
    font-size: 18px !important;
  }
}
.hn-pricing__note-box {
  background: rgba(0, 156, 108, 0.05);
  border-left: 4px solid #009c6c;
  /* border-radius: 0 8px 8px 0; */
  padding: 16px;
  margin-bottom: 24px;
}
.hn-pricing__note-box p {
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.8);
  line-height: 1.7;
  margin-bottom: 0 !important;
}
@media (min-width: 768px) {
  .hn-pricing__note-box p {
    font-size: 18px !important;
  }
}
.hn-pricing__other {
  background: #fff;
  /* border-radius: 12px; */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  padding: 20px;
}
.hn-pricing__other h3 {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #333;
  margin-bottom: 12px;
}
.hn-pricing__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
  font-size: 15px !important;
  color: rgba(51, 51, 51, 0.8);
}
@media (min-width: 768px) {
  .hn-pricing__row {
    font-size: 18px !important;
  }
}
.hn-pricing__row--last {
  border-bottom: none;
}

/* ============================================
   承認（APPROVAL）
   ============================================ */
#government-approval {
  margin-bottom: -48px !important;
}
@media (max-width: 767px) {
  #government-approval {
    margin-bottom: -48px !important;
  }
}
#government-approval .hn-heading {
  margin-bottom: 8px !important;
}
#government-approval .hn-heading__ttl {
  margin-bottom: 4px !important;
}
/*
   ============================================ */
.hn-approval__box {
  background: #fff;
  /* border-radius: 12px; */
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  padding: 24px;
}
.hn-approval__docs {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
@media (min-width: 768px) {
  .hn-approval__docs {
    grid-template-columns: 1fr 1fr;
  }
}
.hn-approval__doc-caption {
  font-size: 14px !important;
  color: rgba(51, 51, 51, 0.6);
  margin-bottom: 8px !important;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .hn-approval__doc-caption {
    font-size: 16px !important;
  }
}
.hn-approval__doc img {
  width: 100%;
  /* border-radius: 8px; */
  border: 1px solid #e5e5e5;
}
.hn-approval__desc {
  border-top: 1px solid #e5e5e5;
  padding-top: 16px;
}
.hn-approval__desc h3 {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #333;
  margin-bottom: 8px;
  line-height: 1.4;
}
.hn-approval__desc p {
  font-size: 16px !important;
  color: rgba(51, 51, 51, 0.8);
  line-height: 1.7;
  margin-bottom: 0 !important;
}
@media (min-width: 768px) {
  .hn-approval__desc p {
    font-size: 18px !important;
  }
}

/* ============================================
   FAQ
   ============================================ */
.hn-faq__list {
  max-width: 960px;
  margin: 20px auto 0;
  border-bottom: solid 1px #ddd;
}
.hn-faq__list > dl {
  border-top: solid 1px #ddd;
  padding: 40px 0 !important;
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .hn-faq__list > dl {
    padding: 20px 0 !important;
  }
}
.hn-faq__list > dl dt {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #333;
  display: flex;
  column-gap: 10px;
  line-height: 1.5;
}
@media (max-width: 767px) {
  .hn-faq__list > dl dt {
    font-size: 16px !important;
  }
}
.hn-faq__list > dl dt::before {
  content: "Q";
  font-family: "Akshar", sans-serif;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #009c6c;
  flex-shrink: 0;
  line-height: 1;
}
.hn-faq__list > dl dd {
  display: flex;
  margin-top: 20px !important;
  font-size: 18px !important;
  column-gap: 10px;
  line-height: 1.8;
  color: rgba(51, 51, 51, 0.8);
}
@media (max-width: 767px) {
  .hn-faq__list > dl dd {
    font-size: 14px !important;
    margin-top: 12px !important;
  }
}
.hn-faq__list > dl dd::before {
  content: "A";
  font-family: "Akshar", sans-serif;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #333;
  flex-shrink: 0;
  line-height: 1;
}

/* ============================================
   最終CTA
   ============================================ */
.hn-final-cta {
  padding: 64px 0;
  background: linear-gradient(to bottom, #009c6c, #006b4a);
}
.hn-final-cta__card {
  background: #fff;
  padding: 32px;
  /* border-radius: 16px; */
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
  text-align: center;
  position: relative;
  overflow: hidden;
}
@media (min-width: 768px) {
  .hn-final-cta__card {
    padding: 48px;
  }
}
.hn-final-cta__inner {
  position: relative;
  z-index: 10;
}
.hn-final-cta__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  /* background: #009c6c; */
  color: #009c6c;
  font-size: 28px !important;
  font-weight: 700 !important;
  padding: 8px 20px;
  border-radius: 999px;
  margin-bottom: 24px;
}
@media (max-width: 767px) {
  .hn-final-cta__badge {
    font-size: 20px !important;
    margin-bottom: 8px;
  }
}
.hn-final-cta__badge svg {
  flex-shrink: 0;
  stroke: #009c6c !important;
  width: 28px !important;
  height: 28px !important;
}
@media (max-width: 768px) {
  .hn-final-cta__badge svg {
    width: 20px !important;
    height: 20px !important;
  }
}
.hn-final-cta__ttl {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #009c6c;
  margin-bottom: 16px !important;
  line-height: 1.3;
  text-align: center !important;
}
@media (min-width: 768px) {
  .hn-final-cta__ttl {
    font-size: 36px !important;
  }
}
.hn-final-cta__sub {
  font-size: 16px !important;
  font-weight: 500 !important;
  color: #333;
  margin-bottom: 32px;
  text-align: center !important;
}
@media (min-width: 768px) {
  .hn-final-cta__sub {
    font-size: 18px !important;
  }
}
.hn-final-cta__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 32px;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 768px) {
  .hn-final-cta__grid {
    grid-template-columns: 1fr 1fr;
  }
}
.hn-final-cta__img {
  width: 100%;
  /* border-radius: 8px; */
  object-fit: cover;
  aspect-ratio: 16/9;
}
.hn-final-cta__checklist {
  padding: 24px 0;
  text-align: left;
}
@media (min-width: 768px) {
  .hn-final-cta__checklist {
    padding: 32px;
  }
}
.hn-final-cta__checklist h3 {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #009c6c;
  margin-bottom: 20px;
  text-align: center;
}
@media (min-width: 768px) {
  .hn-final-cta__checklist h3 {
    font-size: 20px !important;
  }
}
.hn-final-cta__check-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 12px;
}
.hn-final-cta__check-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #009c6c;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px !important;
  font-weight: 700 !important;
  margin-top: 2px;
}
@media (max-width: 767px) {
  .hn-final-cta__check-icon {
    width: 20px;
    height: 20px;
  }
}
.hn-final-cta__check-item p {
  font-size: 16px !important;
  font-weight: 500 !important;
  color: #333;
  line-height: 1.6;
  margin-bottom: 0 !important;
}
@media (min-width: 768px) {
  .hn-final-cta__check-item p {
    font-size: 18px !important;
  }
}
.hn-final-cta__btns {
  display: flex !important;
  flex-direction: row !important;
  gap: 16px;
  justify-content: center !important;
  align-items: center;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.hn-final-cta__btns .hn-cta-bar__phone,
.hn-final-cta__btns .hn-cta-bar__mail {
  padding: 14px 36px;
  font-size: 18px !important;
  font-weight: 900 !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border-radius: 999px !important;
  white-space: nowrap;
}
.hn-final-cta__btns .hn-cta-bar__phone svg,
.hn-final-cta__btns .hn-cta-bar__mail svg {
  flex-shrink: 0 !important;
  width: 20px !important;
  height: 20px !important;
}
@media (max-width: 767px) {
  .hn-final-cta__btns .hn-cta-bar__phone,
  .hn-final-cta__btns .hn-cta-bar__mail {
    padding: 10px 24px;
    font-size: 16px !important;
  }
}
.hn-final-cta__time {
  font-size: 16px !important;
  font-weight: 500 !important;
  color: rgba(51, 51, 51, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
@media (min-width: 768px) {
  .hn-final-cta__time {
    font-size: 18px !important;
  }
}
