/*
 * Shared HANDA / Otemachi internal-page presentation.
 *
 * WordPress owns all wording and section order. This file owns only the
 * approved visual frame, and is activated through an explicit body class.
 */

body.hamille-internal-page-frame {
  --internal-frame-heading-ink: #2e5278;
  --internal-frame-body-ink: #444;
  --internal-frame-supporting-ink: #555;
  --internal-frame-muted-ink: #66727f;
  --internal-frame-link-ink: #1e6ea6;
  --internal-frame-heading-rule: #35a1e2;
  --internal-frame-subheading-rule: #35a1e2;
  --internal-frame-card-rule: #9dbfd9;
  --internal-frame-card-border: #d7e4ee;
  --internal-frame-card-surface: #fff;
  --internal-frame-soft-surface: #f6f9fb;
  --internal-frame-section-space: 72px;
}

/* Both themes use the same 20px reading gutter on internal-page content. */
body.hamille-internal-page-frame :is(#secondary, .main) .entry-content {
  box-sizing: border-box;
  padding-right: 20px !important;
  padding-left: 20px !important;
  color: var(--internal-frame-body-ink);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: 0;
}

body.hamille-internal-page-frame .entry-content :where(p, li, dd):not([class*="fs"]):not([style*="font-size"]) {
  color: var(--internal-frame-body-ink);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: 0;
}

body.hamille-internal-page-frame .entry-content :where(p, li, dd) > a:not([class]) {
  color: var(--internal-frame-link-ink);
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}

/* WordPress media must never make the document wider than its reading column. */
body.hamille-internal-page-frame .entry-content img {
  max-width: 100% !important;
  height: auto;
}

/* Access payment methods use one clinic-approved banner instead of icon tiles. */
body.hamille-internal-page-frame.page-access :is(#secondary, .main) .payment-card-strip {
  box-sizing: border-box;
  display: block;
  width: min(820px, 100%);
  margin: 0 auto;
  padding: clamp(12px, 1.8vw, 18px);
  border: 0;
  border-radius: 6px;
  background: #fff;
  box-shadow: none;
}

body.hamille-internal-page-frame.page-access :is(#secondary, .main) .payment-card-strip img {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
  margin: 0 auto;
  padding: 0 !important;
  object-fit: contain;
}

body.hamille-internal-page-frame .entry-content h2[id^="l"] {
  scroll-margin-top: 120px;
}

/* The legacy slash and offset duplicate are decorative noise. */
body.hamille-internal-page-frame :is(#secondary, .main) .heading::before {
  content: none !important;
  display: none !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) .heading {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  position: relative;
  width: 100%;
  margin: 0 0 30px;
}

body.hamille-internal-page-frame :is(#secondary, .main) .heading h2:not(.wp-block-heading):not(.has-background):not([style*="background"]) {
  box-sizing: border-box;
  display: block !important;
  width: fit-content !important;
  max-width: calc(100% - 64px) !important;
  min-height: 0;
  margin: 0 auto 40px !important;
  padding: 0 20px 5px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--internal-frame-heading-rule) !important;
  border-radius: 9999px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--internal-frame-heading-ink) !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  letter-spacing: .04em !important;
  text-align: center;
  overflow-wrap: anywhere;
  word-break: keep-all;
  line-break: strict;
  text-wrap: balance;
  text-shadow: none !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) .heading h2 :where(span, strong, em, mark, a) {
  color: inherit !important;
}

/* Standalone section headings use the same Otemachi visual contract. */
body.hamille-internal-page-frame :is(#secondary, .main) :is(#faq > h2, .hamille-related-content__title) {
  box-sizing: border-box;
  width: fit-content !important;
  max-width: calc(100% - 64px) !important;
  margin: 0 auto 40px !important;
  padding: 0 20px 5px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--internal-frame-heading-rule) !important;
  border-radius: 9999px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--internal-frame-heading-ink) !important;
  font-size: 30px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  letter-spacing: .04em !important;
  text-align: center;
  text-shadow: none !important;
}

/* FAQ typography is shared; WordPress continues to own every question and answer. */
body.hamille-internal-page-frame :is(#secondary, .main) #faq,
body.hamille-internal-page-frame :is(#secondary, .main) #faq > h2,
body.hamille-internal-page-frame :is(#secondary, .main) #faq :is(p, nav, a, h3, li, summary, div[role="region"]) {
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  letter-spacing: 0 !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) #faq > p {
  color: #5a6b7d !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 2 !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) #faq nav a {
  color: #1e3c5a !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  text-align: left !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-h3 {
  color: #1f3a56 !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.75 !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list > li,
body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list summary,
body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list div[role="region"] {
  font-size: 16px !important;
  line-height: 1.6 !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list > li,
body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list div[role="region"] {
  color: #334b65 !important;
  font-weight: 500 !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list summary {
  color: #2b4768 !important;
  font-weight: 700 !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-toplink {
  font-weight: 400 !important;
}

/* Restore the section rhythm promised by the legacy class name. */
body.hamille-internal-page-frame :is(#secondary, .main) .entry-content > section.py-100 {
  box-sizing: border-box;
  padding-top: var(--internal-frame-section-space);
  padding-bottom: var(--internal-frame-section-space);
}

/* Generic content subheadings. Component-specific titles are restated below. */
body.hamille-internal-page-frame :is(#secondary, .main) .entry-content h3:not(:where(
  .wp-block-heading,
  .has-background,
  [style*="background"],
  .midashi,
  .nums_list h3,
  .nums_list_tlt_txt h3,
  .nums_list_tlt_img h3,
  .flow_01 h3,
  .type_inner h3,
  .fee_list h3,
  .list_col2 h3,
  .txt_box h3,
  .example h3,
  .service .treatment h3
)) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: 0 0 30px !important;
  padding: 0 0 10px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--internal-frame-subheading-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--internal-frame-heading-ink) !important;
  font-size: 22px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
  line-break: strict;
  text-shadow: none !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) .entry-content h3.align_c:not(.has-background):not([style*="background"]) {
  text-align: center;
}

/* Shared first-visit hierarchy below the Otemachi-style main heading. */
body.hamille-internal-page-frame :is(#secondary, .main) h3.midashi {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto 30px !important;
  padding: 0 0 10px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--internal-frame-subheading-rule) !important;
  background: transparent !important;
  color: var(--internal-frame-supporting-ink) !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-align: center;
  text-shadow: none !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) p.w75.align_c {
  width: 75% !important;
  max-width: 75% !important;
  margin-right: auto !important;
  margin-left: auto !important;
  color: #444 !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.85 !important;
  letter-spacing: 0 !important;
}

/* Shared editorial cards: one title and surface contract across both clinics. */
body.hamille-internal-page-frame--service :is(#secondary, .main) .fee_list {
  box-sizing: border-box;
  width: 75%;
  max-width: 75%;
  margin-right: auto;
  margin-left: auto;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .fee_list > .inner {
  box-sizing: border-box;
  border: 1px solid var(--internal-frame-card-border);
  border-radius: 6px;
  background: var(--internal-frame-card-surface);
  box-shadow: none;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .fee_list > .inner > h3:not(.has-background):not([style*="background"]),
body.hamille-internal-page-frame--service :is(#secondary, .main) .txt_box > h3:not(.has-background):not([style*="background"]),
body.hamille-internal-page-frame--service :is(#secondary, .main) .example .txt > h3:not(.has-background):not([style*="background"]) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: 0 0 16px !important;
  padding: 0 0 8px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--internal-frame-subheading-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--internal-frame-heading-ink) !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
  line-break: strict;
  text-shadow: none !important;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .list_col2 {
  box-sizing: border-box;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .list_col2 > .inner {
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid var(--internal-frame-card-border);
  border-radius: 6px;
  background: var(--internal-frame-card-surface);
  box-shadow: none;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .list_col2 > .inner > h3:not(.has-background):not([style*="background"]) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: 0 !important;
  padding: 10px 16px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--internal-frame-subheading-rule) !important;
  border-radius: 0 !important;
  background: var(--internal-frame-soft-surface) !important;
  box-shadow: none !important;
  color: var(--internal-frame-heading-ink) !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
  line-break: strict;
  text-align: center;
  text-shadow: none !important;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .txt_box {
  box-sizing: border-box;
  border: 1px solid var(--internal-frame-card-border);
  border-radius: 6px;
  background: var(--internal-frame-card-surface);
  box-shadow: none;
}

/* Tables keep their WordPress data and receive one shared scroll/readability shell. */
body.hamille-internal-page-frame :is(#secondary, .main) :is(.tbl-wrap, figure.table_wrap) {
  box-sizing: border-box;
  display: block;
  max-width: 100%;
  margin: 0 auto 40px;
  padding-bottom: 8px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-color: var(--internal-frame-card-rule) var(--internal-frame-soft-surface);
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

body.hamille-internal-page-frame :is(#secondary, .main) :is(.tbl-wrap, figure.table_wrap) > table {
  width: 100%;
  min-width: 620px;
  margin: 0;
  border-collapse: collapse;
}

body.hamille-internal-page-frame :is(#secondary, .main) table {
  width: 100%;
  margin: 0 auto 40px;
  border-collapse: collapse;
}

body.hamille-internal-page-frame :is(#secondary, .main) table :where(th, td) {
  box-sizing: border-box;
  padding: 16px 18px;
  border: 1px solid var(--internal-frame-card-border);
  color: var(--internal-frame-body-ink);
  font-size: 16px;
  line-height: 1.6;
  vertical-align: middle;
}

body.hamille-internal-page-frame :is(#secondary, .main) table th {
  background: var(--internal-frame-soft-surface);
  color: var(--internal-frame-heading-ink);
  font-weight: 700;
  text-align: center;
}

body.hamille-internal-page-frame :is(#secondary, .main) table td {
  background: rgba(255, 255, 255, .8);
  font-weight: 400;
}

/* Reserve a real lane for badges that sit 36px above their cards. */
body.hamille-internal-page-frame :is(#secondary, .main) :is(.nums_list, .nums_list_tlt_txt, .nums_list_tlt_img) {
  margin-top: 40px !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list {
  box-sizing: border-box;
  display: flex !important;
  align-items: stretch;
  flex-flow: row wrap;
  justify-content: center;
  width: 100% !important;
  max-width: 100% !important;
  gap: 60px 40px !important;
  margin: 40px auto 30px !important;
  padding: 28px 10px 10px !important;
  background: transparent;
  list-style: none;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  flex: 0 1 44%;
  flex-direction: column;
  justify-content: flex-start;
  width: 44% !important;
  max-width: 44% !important;
  margin: 0 !important;
  padding: 40px 30px !important;
  gap: 30px;
  position: relative;
  border: 1px solid var(--internal-frame-card-border);
  border-radius: 8px;
  background: var(--internal-frame-card-surface);
  box-shadow: none;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > h3 {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 0 5px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--internal-frame-card-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #333 !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
  line-break: strict;
  word-break: break-all;
  text-align: center;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > .txt > p {
  color: #333 !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.85 !important;
  letter-spacing: 0 !important;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li::before {
  content: "";
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -28px;
  left: 18px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--internal-frame-card-rule);
  box-shadow: none;
  color: #fff;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  text-shadow: none;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li:nth-child(1)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li:nth-child(1)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li:nth-child(1) > h3::before { content: "01."; }
body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li:nth-child(2)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li:nth-child(2)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li:nth-child(2) > h3::before { content: "02."; }
body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li:nth-child(3)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li:nth-child(3)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li:nth-child(3) > h3::before { content: "03."; }
body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li:nth-child(4)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li:nth-child(4)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li:nth-child(4) > h3::before { content: "04."; }
body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li:nth-child(5)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li:nth-child(5)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li:nth-child(5) > h3::before { content: "05."; }
body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li:nth-child(6)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li:nth-child(6)::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li:nth-child(6) > h3::before { content: "06."; }

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > .txt {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: flex-start;
  width: 100%;
  height: auto;
  margin: 0;
  color: var(--internal-frame-body-ink);
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > .txt:is(.num1, .num2, .num3, .num4, .num5) {
  display: block;
  position: static;
  width: 100%;
  height: auto;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > .txt:is(.num1, .num2, .num3, .num4, .num5) > p {
  position: static;
  width: 100%;
  margin: 0;
  transform: none;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > .img,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li > .img {
  width: 100%;
  height: auto;
  margin-top: auto;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > .img img,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li > .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Keep the approved numbered badge, but remove both shadow layers. */
body.hamille-internal-page-frame :is(#secondary, .main) :is(.nums_list, .nums_list_tlt_txt) > li::before,
body.hamille-internal-page-frame :is(#secondary, .main) .nums_list_tlt_img > li > h3::before {
  box-shadow: none !important;
  text-shadow: none !important;
}

/*
 * Treatment-detail component contract.
 * This replaces the duplicated contracts formerly appended to both themes.
 */
body.hamille-internal-page-frame--service :is(#secondary, .main) :is(.nums_list_tlt_txt, .nums_list_tlt_img) {
  box-sizing: border-box;
  display: flex !important;
  align-items: stretch;
  flex-flow: row wrap;
  justify-content: center;
  width: 100% !important;
  max-width: 100% !important;
  gap: 60px 40px !important;
  margin: 40px auto 30px !important;
  padding: 28px 10px 10px !important;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) :is(.nums_list_tlt_txt, .nums_list_tlt_img) > li {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  flex: 0 1 calc(50% - 20px);
  flex-direction: column;
  justify-content: center;
  position: relative;
  width: calc(50% - 20px) !important;
  max-width: calc(50% - 20px) !important;
  height: auto !important;
  margin: 0 !important;
  padding: 60px 30px 32px !important;
  border: 1px solid var(--internal-frame-card-border);
  border-radius: 8px;
  background: var(--internal-frame-card-surface);
  box-shadow: none;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li {
  min-height: 216px;
  gap: 10px;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li > .txt {
  width: 100%;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li {
  min-height: 300px;
  gap: 30px;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) :is(.nums_list_tlt_txt, .nums_list_tlt_img) > li > h3:not(.has-background):not([style*="background"]) {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 0 5px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--internal-frame-card-rule) !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #333 !important;
  font-size: 20px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  overflow-wrap: anywhere;
  line-break: strict;
  word-break: normal;
  text-align: center;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li > .txt > p {
  margin: 0 !important;
  color: #333 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.85 !important;
  letter-spacing: 0 !important;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li::before,
body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li > h3::before {
  content: "";
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -28px;
  left: 18px;
  width: 64px;
  max-width: 100%;
  height: 64px;
  margin: 0;
  border-radius: 50%;
  background: var(--internal-frame-card-rule) !important;
  box-shadow: none !important;
  color: #fff !important;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  text-shadow: none !important;
  transform: none;
}

body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_img > li > h3 {
  position: static;
}

@media (max-width: 840px) {
  body.hamille-internal-page-frame {
    --internal-frame-section-space: 56px;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .heading {
    margin-bottom: 30px;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .heading h2:not(.wp-block-heading):not(.has-background):not([style*="background"]) {
    max-width: calc(100% - 48px) !important;
    font-size: 24px !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) :is(#faq > h2, .hamille-related-content__title) {
    max-width: calc(100% - 48px) !important;
    font-size: 24px !important;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) :is(.nums_list_tlt_txt, .nums_list_tlt_img) > li {
    flex-basis: 75%;
    width: 75% !important;
    max-width: 75% !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li {
    padding-right: 24px !important;
    padding-left: 24px !important;
  }
}

@media (max-width: 639px) {
  body.hamille-internal-page-frame {
    --internal-frame-section-space: 44px;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .heading {
    margin-bottom: 24px;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .entry-content,
  body.hamille-internal-page-frame .entry-content :where(p, li, dd):not([class*="fs"]):not([style*="font-size"]) {
    font-size: 15.5px;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) #faq nav a,
  body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list > li,
  body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list summary,
  body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-list div[role="region"] {
    font-size: 14px !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) #faq .faq-h3 {
    font-size: 18px !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .entry-content h3:not(:where(
    .wp-block-heading,
    .has-background,
    [style*="background"],
    .midashi,
    .nums_list h3,
    .nums_list_tlt_txt h3,
    .nums_list_tlt_img h3,
    .flow_01 h3,
    .type_inner h3,
    .fee_list h3,
    .list_col2 h3,
    .txt_box h3,
    .example h3,
    .service .treatment h3
  )) {
    margin-bottom: 20px !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .heading h2:not(.wp-block-heading):not(.has-background):not([style*="background"]) {
    width: fit-content !important;
    max-width: calc(100% - 20px) !important;
    padding: 0 10px 5px !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
    overflow-wrap: anywhere;
    text-wrap: balance;
    white-space: normal;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) :is(#faq > h2, .hamille-related-content__title) {
    width: fit-content !important;
    max-width: calc(100% - 20px) !important;
    padding: 0 10px 5px !important;
    font-size: 17px !important;
    line-height: 1.5 !important;
    overflow-wrap: anywhere;
    text-wrap: balance;
    white-space: normal;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) h3.midashi {
    margin-bottom: 20px !important;
    padding-right: 12px !important;
    padding-left: 12px !important;
    font-size: 18px !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) p.w75.align_c {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 15.5px !important;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) .fee_list {
    width: 100%;
    max-width: 100%;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) .fee_list > .inner {
    padding: 22px 18px;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) .fee_list > .inner > h3:not(.has-background):not([style*="background"]),
  body.hamille-internal-page-frame--service :is(#secondary, .main) .txt_box > h3:not(.has-background):not([style*="background"]),
  body.hamille-internal-page-frame--service :is(#secondary, .main) .example .txt > h3:not(.has-background):not([style*="background"]),
  body.hamille-internal-page-frame--service :is(#secondary, .main) .list_col2 > .inner > h3:not(.has-background):not([style*="background"]) {
    font-size: 17px !important;
    line-height: 1.5 !important;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) .list_col2 {
    gap: 20px;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) .list_col2 > .inner {
    width: 100%;
    max-width: 100%;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) table :where(th, td) {
    padding: 12px 14px;
    font-size: 14px;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .nums_list {
    width: 100% !important;
    max-width: 100% !important;
    gap: 52px 0 !important;
    padding: 28px 0 0 !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li {
    flex-basis: 100%;
    width: 100% !important;
    max-width: 100% !important;
    padding: 52px 18px 24px !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > h3 {
    font-size: 17px !important;
    line-height: 1.45 !important;
  }

  body.hamille-internal-page-frame :is(#secondary, .main) .nums_list > li > .txt > p {
    font-size: 14px !important;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) :is(.nums_list_tlt_txt, .nums_list_tlt_img) {
    align-items: center;
    width: calc(100% + 40px) !important;
    max-width: calc(100% + 40px) !important;
    gap: 60px 0 !important;
    margin: 40px -20px 30px !important;
    padding: 28px 0 0 !important;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) :is(.nums_list_tlt_txt, .nums_list_tlt_img) > li {
    flex-basis: 100%;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0;
    padding: 60px 18px 24px !important;
    gap: 14px !important;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) :is(.nums_list_tlt_txt, .nums_list_tlt_img) > li > h3:not(.has-background):not([style*="background"]) {
    font-size: 17px !important;
    line-height: 1.45 !important;
  }

  body.hamille-internal-page-frame--service :is(#secondary, .main) .nums_list_tlt_txt > li > .txt > p {
    font-size: 14px !important;
  }
}
