@charset "UTF-8";
/* -------------------------------------------*/
:root {
  /* Basic colors */
  --white: #fff;
  --black: #000;
  --base-color: #1e3e37;
  --primary: #19895e;
  --base-bg: #eaf4f2;
  --gray: #c7d6cc;
  --gray-muted: #5d898d;
  /* Brand and accent colors */
  --green-primary: var(--primary);
  --green: var(--primary);
  --green-heading: var(--primary);
  --green-control: #15996c;
  --footer-green: #449f87;
  --green-card: #60b99f;
  --green-card-border: #54b79c;
  --green-card-text: #54a88f;
  --green-label: #5bb799;
  --green-tag-border: #67b194;
  --green-recruit-hover: #5cad9d;
  --green-note: rgb(103 177 148 / 90%);
  --green-label-text: #70bca8;
  --green-news: #7ebcaf;
  --green-circle: #82ccbd;
  --green-recruit: #8ac6ba;
  --green-fv-border: #8bcdbd;
  --green-hover-soft: #96c1b0;
  --green-orbit-border: #b8e4db;
  --orange: #f48f3d;
  --orange-mobile: #ff963f;
  --orange-heading: #ff8431;
  --orange-deep: #ed8d1d;
  --text-olive: #767060;
  --ring-mint: #d3edea;
  --yellow-hover: #f4b53d;
  --coral-hover: #eb7e70;
  --peach: #f8ad6f;
  --maternity-tip-dot: #ebccb4;
  --pink-accent: #ff6c83;
  --error: #f00;
  /* Text colors */
  --text-green-dark: var(--base-color);
  --text-green-black: #131f15;
  --text-nav: #3b6055;
  --text-teal: #588d94;
  --text-teal-news: #5f8990;
  --text-teal-journal: #5d9695;
  --text-gray: #7f7f7f;
  --text-gray-light: #828282;
  --text-gray-muted: #939b9b;
  --text-brown: #9f714d;
  /* Background colors */
  --bg-mint-light: #e6f4f1;
  --heading-underline: #e6f2f1;
  --bg-green-pale: #e0f5ed;
  --bg-label: #e4f5ef;
  --bg-page-soft: #f8faf9;
  --bg-warm-light: #faf9f7;
  --bg-risk: #f7f8f8;
  --bg-panel-mint: #f2faf7;
  --bg-card-white: #fcfffd;
  --bg-pediatric-warm: #fdfaf5;
  --bg-icon: #fafffe;
  --bg-hover-cream: #fdf9ed;
  --bg-form-note: #fbefe3;
  --bg-code: #353c46;
  --bg-code-copy: #19274e;
  --ribbon-yellow: rgb(240 195 91 / 80%);
  --ribbon-mint: rgb(138 198 186 / 80%);
  --blue-info: #6ab5cc;
  --blue-info-dark: #24829f;
  --green-price: #6fc6b5;
  --bg-info-blue: #f8fdff;
  /* Border colors */
  --border-gray: #e0e0e0;
  --border-gray-dark: #b7b7b7;
  --border-header: #ebe8e3;
  --border-header-menu-open: #f0eeec;
  --border-footer: #c8d9d4;
  --border-mint: #d4e6e0;
  --border-mint-dotted: #d2e1de;
  --border-mint-light: #d9f1eb;
  --scrollbar-drawer: #c0e2db;
  --border-news-title: #dfefe8;
  --border-mint-orbit: #e2f1ee;
  --border-mint-journal: #cbded8;
  --border-teal: #5d898d;
  --border-light: #d1ddd8;
  --border-timeline: #bfbbb8;
  --flow-arrow: #c6dbd7;
  /* Alpha colors and shadows */
  --transparent: rgb(0 0 0 / 0%);
  --black-alpha-51: rgb(0 0 0 / 51%);
  --white-alpha-0: rgb(255 255 255 / 0%);
  --white-alpha-55: rgb(255 255 255 / 55%);
  --white-alpha-62: rgb(255 255 255 / 62%);
  --green-recruit-alpha-90: rgb(138 198 186 / 90%);
  --orange-alpha-90: rgb(244 143 61 / 90%);
  --yellow-alpha-90: rgb(244 181 61 / 90%);
  --decor-mint-alpha-65: rgb(232 244 238 / 65%);
  --decor-yellow-alpha-45: rgb(231 241 199 / 45%);
  --decor-orbit-alpha-75: rgb(210 243 235 / 75%);
  --decor-fv-yellow: #dde8be;
  --decor-fv-mint: #c9e8d9;
  --decor-fv-gray: #f4f5f4;
  --decor-page-yellow-alpha-35: rgb(221 232 190 / 35%);
  --decor-page-mint-alpha-35: rgb(201 232 217 / 35%);
  --decor-page-gray-alpha-60: rgb(244 245 244 / 60%);
  --shadow-footer: rgb(23 63 55 / 15%);
  --shadow-header: rgb(28 67 56 / 10%);
  --shadow-mega-menu: rgb(28 67 56 / 13%);
  --shadow-nav: rgb(30 62 55 / 12%);
  --shadow-card: rgb(29 72 63 / 8%);
  --shadow-guide: rgb(110 80 56 / 30%);
  --shadow-recruit: rgb(59 96 85 / 30%);
  --shadow-facilities-title: rgb(51 75 70 / 30%);
  --shadow-icon: rgb(18 94 76 / 6%);
  --shadow-orbit: rgb(79 160 142 / 18%);
  /* Typography */
  --base-font-family: "FOT-筑紫A丸ゴシック Std B", "Tsukushi A Round Gothic", sans-serif;
  --en-font-family: "FOT-筑紫A丸ゴシック Std B", "Tsukushi A Round Gothic", sans-serif;
  --base-font-size: 1.6rem;
  --light: 300;
  --regular: 400;
  --normal: 500;
  --semi-bold: 600;
  --bold: 700;
  --content-width: 104rem;
  --header-height: 7.6rem;
  --padding-pc: 2rem;
  --padding-sp: 2rem;
}
/* -------------------------------------------*/
/* -------------------------------------------*/
/* メディアクエリ
-------------------------------------------*/
/* トランジション
-------------------------------------------*/
/* ベンダープレフィックス
-------------------------------------------*/
/* レイアウト
-------------------------------------------*/
/* テキスト
-------------------------------------------*/
/* 画像
-------------------------------------------*/
/* 図形
-------------------------------------------*/
/* フォーム
-------------------------------------------*/
/* -------------------------------------------*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  border: 0;
  font-size: 100%;
  margin: 0;
  padding: 0;
  vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* -------------------------------------------*/
*,
*:before,
*:after {
  box-sizing: border-box;
}

html {
  -ms-overflow-style: scrollbar;
  font-size: 62.5%;
  overflow: auto;
}

html.is-font-loading body {
  visibility: hidden;
}

::-moz-selection {
  background-color: #f7f5d3;
  color: #19895e;
}

::selection {
  background-color: #f7f5d3;
  color: #19895e;
}

::-moz-selection {
  background-color: #f7f5d3;
  color: #19895e;
}

.grecaptcha-badge {
  display: none !important;
}

body {
  height: 100%;
}
body {
  color: var(--base-color);
  font-family: var(--base-font-family);
  font-size: var(--base-font-size);
  letter-spacing: 0.025em;
  line-height: 1.5;
  position: relative;
}
body :where(*) {
  letter-spacing: 0.025em;
}
body.is-open::before {
  opacity: 0.95;
  visibility: visible;
}
body::before {
  background-color: var(--bg-code);
  content: "";
  display: block;
  height: 100%;
  left: 0;
  margin: 0 calc(50% - 50vw);
  margin: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  transition-duration: 0.5s;
  transition-property: opacity, visibility;
  visibility: hidden;
  width: 100vw;
  width: 100%;
  z-index: -1;
  z-index: 50;
}

[tabindex="-1"]:focus {
  outline: 0 !important;
}

section {
  position: relative;
  width: 100%;
}

a,
button {
  color: inherit;
  text-decoration: none;
}

picture {
  display: block;
  line-height: 1.2;
}

img {
  max-width: 100%;
  vertical-align: middle;
}

svg:not(:root) {
  overflow: hidden;
}

input,
button,
select,
optgroup,
textarea {
  background-color: transparent;
  border: none;
  box-sizing: border-box;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
  position: relative;
  vertical-align: middle;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -webkit-border-radius: 0;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: var(--transparent);
}

button,
input {
  overflow: visible;
}

button,
select {
  text-transform: none;
}

button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}

button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

input[type=radio],
input[type=checkbox] {
  box-sizing: border-box;
  padding: 0;
}

input[type=date],
input[type=time],
input[type=datetime-local],
input[type=month] {
  -webkit-appearance: listbox;
}

textarea {
  overflow: auto;
  resize: vertical;
}

fieldset {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  border-offset: -2px;
  -webkit-appearance: none;
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  font: inherit;
  -webkit-appearance: button;
}

output {
  display: inline-block;
}
/* スクロールバー
-------------------------------------------*/
::-webkit-scrollbar-track {
  background-color: transparent;
}

::-webkit-scrollbar-thumb {
  background-color: var(--bg-code-copy);
  border-radius: 0.5rem;
}

::-webkit-scrollbar-button:start {
  display: none;
}

::-webkit-scrollbar-button:end {
  display: none;
}

.p-form-honeypot {
  height: 1px !important;
  left: -10000px !important;
  overflow: hidden !important;
  position: absolute !important;
  width: 1px !important;
}

/* -------------------------------------------*/
/* input / textarea
-------------------------------------------*/
input[type=text],
input[type=date],
input[type=password],
input[type=email],
input[type=time],
input[type=tel],
input[type=number] {
  border: 1px solid var(--border-gray);
  border-radius: 0.5rem;
  letter-spacing: 0.1em;
  line-height: 1;
  padding: 1rem 1.6rem;
  position: relative;
  width: 100%;
}

input[type=number] {
  -moz-appearance: textfield;
}

::-moz-placeholder {
  color: var(--border-gray-dark);
  font-size: 1.4rem;
}

::placeholder {
  color: var(--border-gray-dark);
  font-size: 1.4rem;
}

textarea {
  border: 1px solid var(--border-gray);
  border-radius: 0.5rem;
  font-size: 1.4rem;
  height: 25rem;
  letter-spacing: 0.1em;
  padding: 1rem;
  position: relative;
  width: 100%;
}

input[type=text]:disabled {
  background: transparent;
  cursor: not-allowed;
}
input[type=text]:disabled::-moz-placeholder {
  color: var(--base-bg);
  opacity: 1;
}
input[type=text]:disabled::placeholder {
  color: var(--base-bg);
  opacity: 1;
}

/* ラジオボタン
-------------------------------------------*/
input[type=radio] {
  display: none;
  vertical-align: middle;
}

input[type=radio] + .wpcf7-list-item-label {
  cursor: pointer;
  display: inline-block;
  margin: 0 2rem 1rem 0;
  padding: 1rem 1rem 1rem 4rem;
  position: relative;
  transition: 0.5;
  transition-property: color;
  vertical-align: middle;
}

input[type=radio] + .wpcf7-list-item-label::before {
  aspect-ratio: 1;
  border: 1px solid var(--text-gray);
  border-radius: 50%;
  box-sizing: border-box;
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: 0.5s ease;
  width: 2rem;
  z-index: 2;
}

input[type=radio] + .wpcf7-list-item-label::after {
  aspect-ratio: 1;
  background-color: var(--primary);
  border-radius: 50%;
  box-sizing: border-box;
  content: "";
  display: block;
  left: 0.4rem;
  opacity: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 1.2rem;
  z-index: 5;
}

input[type=radio]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

/* チェックボックス
-------------------------------------------*/
input[type=checkbox] {
  opacity: 0;
  vertical-align: middle;
}

.wpcf7-list-item {
  margin-left: 0;
}

input[type=checkbox] + .wpcf7-list-item-label {
  cursor: pointer;
  display: inline-block;
  line-height: 1;
  padding: 0 0 0 3rem;
  position: relative;
  transition: 0.5s;
}

input[type=checkbox] + .wpcf7-list-item-label::before {
  aspect-ratio: 1;
  background: var(--white);
  border: 1px var(--border-gray-dark) solid;
  border-radius: 0.3rem;
  box-sizing: border-box;
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 1.6rem;
  z-index: 2;
}

input[type=checkbox] + .wpcf7-list-item-label::after {
  aspect-ratio: 2/1;
  border-bottom: 0.3rem solid var(--primary);
  border-left: 0.3rem solid var(--primary);
  content: "";
  display: block;
  left: 0.3rem;
  opacity: 0;
  position: absolute;
  top: 0.5rem;
  transform: rotate(-45deg);
  transition: 0.5s;
  transition-property: color;
  width: 1rem;
  z-index: 3;
}

input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

/* 電話番号（複数カラム）
-------------------------------------------*/
.mwform-tel-field {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.mwform-tel-field > input {
  flex: 1;
  width: 100% !important;
}

/* セレクトボックス
-------------------------------------------*/
.select-parts {
  border: 1px var(--base-bg) solid;
  border-radius: 0.5rem;
  overflow: hidden;
  position: relative;
  width: 100%;
}
.select-parts::after {
  aspect-ratio: 1;
  border-bottom: 1px solid var(--text-gray);
  border-right: 1px solid var(--text-gray);
  content: "";
  margin-top: 0.2rem;
  pointer-events: none;
  position: absolute;
  right: 2rem;
  top: 50%;
  transform: translateY(-70%) rotate(45deg);
  width: 1rem;
  z-index: 5;
}

.select-parts select {
  background: var(--bg-form-note);
  border: none;
  box-shadow: none;
  color: var(--text-gray);
  cursor: pointer;
  font-size: 2rem;
  height: 4.5rem;
  letter-spacing: 0.1em;
  padding: 0 2rem 0 1.5rem;
  position: relative;
  text-indent: 0.01px;
  text-overflow: ellipsis;
  width: 100%;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  text-align: center;
}

/* ファイルアップロード
-------------------------------------------*/
input[type=file] + label {
  margin: 0 1rem 0 0;
  padding: 1.5rem 0;
  width: 16rem;
}
input[type=file] + label:after {
  left: 17rem;
}

/* バリデーション
-------------------------------------------*/
label.error {
  color: var(--error);
  font-size: 1.3rem;
}

.wpcf7-not-valid-tip {
  display: none;
}

/* -------------------------------------------*/
.c-btn {
  align-items: center;
  border-radius: 2.5rem;
  display: inline-flex;
  font-size: 1.6rem;
  justify-content: space-between;
  line-height: 1.875;
  min-height: 5rem;
  padding: 0 2rem 0 3rem;
  transition: background-color 0.25s ease;
}

.c-arrow-circle {
  aspect-ratio: 1;
  background-color: currentcolor;
  display: block;
  flex-shrink: 0;
  font-size: 0;
  -webkit-mask: url("../images/common/icon-arrow-circle.svg") center/contain no-repeat;
  mask: url("../images/common/icon-arrow-circle.svg") center/contain no-repeat;
}

.c-btn__icon {
  color: var(--white);
  width: 2rem;
}

.c-btn--orange {
  background: var(--orange);
  color: var(--white);
}

.c-btn--orange:focus-visible {
  background: var(--yellow-hover);
}

.c-btn--back {
  gap: 2rem;
  justify-content: center;
  margin: 6rem auto 0;
  padding: 0 2rem 0 0;
  width: 24.2rem;
}

.c-btn--back .c-btn__icon {
  transform: rotate(180deg);
}
.btn__link {
  border-bottom: 1px solid var(--black);
  display: block;
  font-size: 2rem;
  padding-bottom: 0.06em;
  padding-right: 2.6rem;
  position: relative;
  transition: 0.3s;
}
.btn__link::after {
  aspect-ratio: 14/8;
  background: url("../images/common/icon-arrow-circle.svg") no-repeat center/contain;
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(0, -50%);
  transition: 0.3s;
  width: 2rem;
}

/* サイズバリエーション
-------------------------------------------*/
.btn--sm .btn__link {
  font-size: 1.4rem;
  padding-right: 2rem;
}
.btn--sm .btn__link::after {
  aspect-ratio: 14/8;
  width: 1.4rem;
}

/* -------------------------------------------*/
.c-content-card {
  min-width: 0;
}

.c-content-card__media {
  aspect-ratio: 1/1;
  border-radius: 1rem;
  margin: 0 0 2.2rem;
  overflow: hidden;
}

.c-content-card__media img {
  display: block;
  width: 100%;
}

.c-content-card__title {
  color: var(--green-heading);
  font-size: 2.2rem;
  line-height: 1.6;
  margin: 0 0 1.4rem;
}

.c-content-card__copy {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}
.c-page-hero {
  margin: 0 auto;
  padding: 12.6rem 0 9rem;
  position: relative;
  width: calc(100% - 6.6rem);
}

.c-page-hero__media {
  margin: 0 auto;
  width: calc(100% - 6.6rem);
}

.c-page-hero__head {
  margin-top: 7.3rem;
  text-align: center;
}

.c-page-hero__title {
  color: var(--green-heading);
  font-size: 3.6rem;
}

.c-page-hero__label {
  color: var(--text-gray-muted);
  font-size: 1.8rem;
  margin: 0.2rem 0 0;
}

.c-page-hero__body {
  margin-top: 2rem;
}

.c-page-hero__lead {
  margin: 0 auto;
  max-width: 72rem;
  text-align: center;
}
.c-section-heading__head {
  display: grid;
  gap: 0.6rem;
}
.c-section-heading__label {
  color: var(--green);
  font-size: 1.6rem;
  letter-spacing: 0.04em;
}
.c-section-heading__title {
  color: var(--green);
  font-size: clamp(2.6rem, 2.3vw, 3.4rem);
  line-height: 1.4;
}
.c-section-heading__body {
  margin-top: 2.4rem;
}
.c-section-heading__body > :first-child {
  margin-top: 0;
}
.c-section-heading__body > :last-child {
  margin-bottom: 0;
}
.c-section-heading--center {
  text-align: center;
}

/* -------------------------------------------*/
.c-service-hero-decoration {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.c-service-hero-decoration__item {
  border-radius: 1rem;
  display: block;
  position: absolute;
}

.c-service-hero-decoration__item--1 {
  aspect-ratio: var(--service-decor-1-ratio, 1);
  background-color: var(--service-decor-1-color, transparent);
  display: var(--service-decor-1-display, block);
  inset: var(--service-decor-1-inset, auto);
  width: var(--service-decor-1-width, 0);
}

.c-service-hero-decoration__item--2 {
  aspect-ratio: var(--service-decor-2-ratio, 1);
  background-color: var(--service-decor-2-color, transparent);
  display: var(--service-decor-2-display, block);
  inset: var(--service-decor-2-inset, auto);
  width: var(--service-decor-2-width, 0);
}

.c-service-hero-decoration__item--3 {
  aspect-ratio: var(--service-decor-3-ratio, 1);
  background-color: var(--service-decor-3-color, transparent);
  display: var(--service-decor-3-display, block);
  inset: var(--service-decor-3-inset, auto);
  width: var(--service-decor-3-width, 0);
}

.c-service-hero-decoration__item--4 {
  aspect-ratio: var(--service-decor-4-ratio, 1);
  background-color: var(--service-decor-4-color, transparent);
  display: var(--service-decor-4-display, block);
  inset: var(--service-decor-4-inset, auto);
  width: var(--service-decor-4-width, 0);
}

.c-service-hero-decoration__item--5 {
  aspect-ratio: var(--service-decor-5-ratio, 1);
  background-color: var(--service-decor-5-color, transparent);
  display: var(--service-decor-5-display, block);
  inset: var(--service-decor-5-inset, auto);
  width: var(--service-decor-5-width, 0);
}

.c-service-hero-decoration__item--6 {
  aspect-ratio: var(--service-decor-6-ratio, 1);
  background-color: var(--service-decor-6-color, transparent);
  display: var(--service-decor-6-display, block);
  inset: var(--service-decor-6-inset, auto);
  width: var(--service-decor-6-width, 0);
}

/* -------------------------------------------*/
/* 診療案内ページ共通の導入部分（ラベル・タイトル・キャッチ・本文）*/
.c-treatment-hero {
  padding-top: 18.8rem;
  position: relative;
}

.c-treatment-hero__inner {
  position: relative;
  z-index: 1;
}

.c-treatment-hero__label {
  color: var(--green-heading);
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.c-treatment-hero__label span {
  color: var(--text-gray-muted);
  margin-left: 0.5rem;
}

.c-treatment-hero__title {
  color: var(--green-heading);
  font-size: 3.6rem;
  line-height: 1.25;
  margin: 0.8rem 0 0;
}

.c-treatment-hero__grid {
  align-items: start;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 54rem;
  margin-top: 6.6rem;
}

.c-treatment-hero__catch {
  color: var(--base-color);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.c-treatment-hero__body {
  margin-top: 0.9rem;
}

.c-treatment-hero__body p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.c-treatment-hero__body p + p {
  margin-top: 1.9rem;
}

/* 導入部の写真付きカード（訪問歯科・TCH・インプラント）
   背景は画面の左端から XD の x=1260 まで（コンテンツ幅より右へ 57px）、右側だけ角丸。
   写真は背景より上にはみ出す：背景の上端は --lead-card-bg-top（PC）、SP は 40px。
   写真の幅・本文の位置と間隔はページ側で指定する */
.c-treatment-lead-card {
  --lead-card-bg-top: 7rem;
  align-items: flex-start;
  display: flex;
  grid-column: 1/-1;
  position: relative;
  z-index: 0;
}

.c-treatment-lead-card::before {
  background-color: var(--bg-page-soft);
  border-radius: 0 2rem 2rem 0;
  content: "";
  inset: var(--lead-card-bg-top) -5.7rem 0 calc(50% - 50vw);
  position: absolute;
  z-index: -1;
}

.c-treatment-lead-card__image {
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

.c-treatment-lead-card__image img {
  display: block;
  width: 100%;
}

.c-treatment-lead-card__body {
  position: relative;
  z-index: 1;
}

.c-treatment-heading__title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.c-treatment-heading__text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.6rem 0 0;
}

.c-treatment-heading--compact .c-treatment-heading__title {
  font-size: 2rem;
  line-height: 1.6;
}

.c-treatment-heading--spacious .c-treatment-heading__text {
  margin-top: 2.4rem;
}

.c-underline-heading {
  text-align: center;
}

/* 中央寄せの見出し。XD の下線は文字の下に敷いた帯（PC／SP 高さ15px、文字幅より左右4pxずつ長い）。*/
/* 2行になったときも行ごとに帯が付くよう、インライン要素の背景で描く（box-decoration-break: clone）。*/
/* このフォントは文字の描画範囲が 1em で、ベースラインより下は 0.125em。*/
/* 下の padding で帯の重なり位置を XD に合わせている。*/
.c-underline-heading__title {
  background: linear-gradient(var(--heading-underline), var(--heading-underline)) no-repeat left bottom;
  background-size: 100% 1.5rem;
  border-radius: 0.2rem;
  box-decoration-break: clone;
  display: inline;
  padding: 0 0.4rem 0.1rem;
  -webkit-box-decoration-break: clone;
  color: var(--green-heading);
  font-size: 3.2rem;
  line-height: 1.40625;
}

.c-feature-box {
  display: flow-root;
  isolation: isolate;
  padding-bottom: 5rem;
  position: relative;
  z-index: 0;
}

.c-feature-box::before {
  background-color: var(--bg-page-soft);
  content: "";
  inset: 0 auto 0 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 122.6rem;
  z-index: -1;
}

.c-feature-box::after {
  aspect-ratio: 50/268;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  pointer-events: none;
  position: absolute;
  top: 3.1rem;
  width: 5rem;
  z-index: 1;
}

.c-feature-box--pediatric::after {
  background-image: url("../images/common/decoration-treatment.svg");
  right: calc(50% - 58.8rem);
}

.c-feature-box--preventive::after {
  background-image: url("../images/common/decoration-treatment.svg");
  right: calc(50% - 57.7rem);
}

.c-feature-box--maternity::after {
  background-image: url("../images/common/decoration-treatment.svg");
  left: calc(50% + 53.8rem);
}

.c-feature-box__header {
  align-items: center;
  background-color: var(--green-recruit-alpha-90);
  border-radius: 0.5rem;
  box-shadow: 0 0 0.6rem var(--shadow-facilities-title);
  display: inline-flex;
  margin: -2.8rem 0 0 -2.3rem;
  min-height: 10.6rem;
  padding: 2rem 3rem;
  width: 30.5rem;
}

.c-feature-box--maternity .c-feature-box__header {
  width: 37.6rem;
}

.c-feature-box__title {
  color: var(--white);
  font-size: 2.4rem;
  line-height: 1.875;
  margin: 0;
  white-space: nowrap;
  width: 100%;
}

.c-feature-box__list {
  display: grid;
  gap: 5rem;
  grid-template-columns: repeat(3, 30rem);
  margin: 5rem 2rem 0;
}

.c-feature-box__image {
  margin: 0;
}

.c-feature-box__image img {
  border-radius: 1rem;
  display: block;
  width: 100%;
}

/* SP は2行になる見出しがあるため行の高さを 27px にそろえる（1行でも XD と同じ位置）*/
.c-feature-box__item-title {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 2.5;
  margin: 1.7rem 0 0;
  text-align: center;
}

.c-feature-box__text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0 0.5rem;
}

.c-treatment-table {
  overflow-x: auto;
}

.c-treatment-table__table {
  border-collapse: collapse;
  width: 100%;
}

.scroll-hint-icon-wrap {
  z-index: 2;
}

.c-treatment-table--results .c-treatment-table__table {
  table-layout: fixed;
}

.c-treatment-table--results th,
.c-treatment-table--results td {
  color: var(--base-color);
  font-size: 1.8rem;
  height: 5rem;
  line-height: 1.7777777778;
  padding: 1rem 2rem;
  text-align: center;
}

.c-treatment-table--results thead th {
  border-bottom: 0.1rem solid var(--scrollbar-drawer);
}

.c-treatment-table--results tbody tr:nth-child(even) {
  background-color: var(--bg-page-soft);
}

.c-treatment-table--results th:first-child {
  text-align: left;
  width: 32%;
}

.c-treatment-table--price th,
.c-treatment-table--price td {
  border-bottom: 0.1rem solid var(--border-light);
}

.c-treatment-table--price th {
  text-align: left;
  vertical-align: top;
}

/* 費用の一覧（線で区切った「項目名｜金額」の2列）。ホワイトニング・審美・インプラント
   矯正の表（c-treatment-table--price）と文字の見た目は共通。SP の項目名の列の幅は --price-term-width
-------------------------------------------*/
.c-treatment-price {
  --price-term-width: 17.3rem;
  border-bottom: 1px solid var(--border-light);
}

.c-treatment-price__row {
  align-items: center;
  border-top: 1px solid var(--border-light);
  display: flex;
  gap: 2rem;
  justify-content: space-between;
  padding: 2.2rem 2rem 2.3rem;
}

.c-treatment-table--price th,
.c-treatment-price__term {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
}

.c-treatment-table--price td,
.c-treatment-price__value {
  color: var(--base-color);
  font-size: 1.6rem;
  line-height: 2;
  text-align: right;
}

.c-treatment-price__value {
  margin: 0;
}

/* 項目名の列の幅は --term-width（ページ側で上書きできる）*/
.c-treatment-list {
  --term-width: 28rem;
  margin-left: 0;
  margin-right: 0;
}

.c-treatment-list__row {
  border-top: 0.1rem solid var(--border-light);
  display: grid;
  grid-template-columns: var(--term-width) minmax(0, 1fr);
  position: relative;
}

.c-treatment-list__row:last-child {
  border-bottom: 0.1rem solid var(--border-light);
}

/* 罫線のうち項目名の列の部分だけ緑*/
.c-treatment-list__row::before,
.c-treatment-list__row:last-child::after {
  background-color: var(--green-primary);
  content: "";
  height: 0.1rem;
  left: 0;
  position: absolute;
  width: var(--term-width);
}

.c-treatment-list__row::before {
  top: -0.1rem;
}

.c-treatment-list__row:last-child::after {
  bottom: -0.1rem;
}

.c-treatment-list__term {
  align-self: center;
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  padding: 1rem 2rem;
}

.c-treatment-list__description {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
  padding: 2.3rem 4rem 2.2rem;
}

.c-treatment-list__note {
  align-items: center;
  aspect-ratio: 153/67;
  color: var(--orange);
  display: flex;
  font-size: 1.4rem;
  justify-content: center;
  left: 10.8rem;
  line-height: 1.4285714286;
  padding: 0.8rem;
  padding-bottom: 1.4em;
  position: absolute;
  top: -2.5rem;
  width: 15.3rem;
  z-index: 1;
}

.c-treatment-list--pediatric .c-treatment-list__note {
  background: url("../images/pediatric/graphic-01.svg") center/contain no-repeat;
}

/* Numbered treatment steps
-------------------------------------------*/
.c-treatment-steps {
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-treatment-steps__item {
  position: relative;
}

.c-treatment-steps__number {
  align-items: center;
  aspect-ratio: 1;
  background-color: var(--orange);
  border-radius: 50%;
  color: var(--white);
  display: inline-flex;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.c-treatment-steps__title,
.c-treatment-steps__text {
  margin: 0;
}

.c-treatment-steps--periodontal .c-treatment-steps__item {
  display: grid;
  grid-template-columns: 29rem 70rem;
  -moz-column-gap: 5rem;
  column-gap: 5rem;
  padding-bottom: 9rem;
}

.c-treatment-steps--periodontal .c-treatment-steps__item:last-child {
  padding-bottom: 0;
}

.c-treatment-steps--periodontal .c-treatment-steps__item:not(:last-child)::before {
  border-left: 0.2rem dotted var(--border-timeline);
  bottom: 2rem;
  content: "";
  left: 1.7rem;
  position: absolute;
  top: 5.5rem;
}

.c-treatment-steps--periodontal .c-treatment-steps__head {
  align-items: center;
  align-self: start;
  display: flex;
  gap: 3rem;
}

.c-treatment-steps--periodontal .c-treatment-steps__number {
  aspect-ratio: auto;
  flex: 0 0 3.5rem;
  font-size: 2rem;
  height: 3.5rem;
  line-height: 1.85;
  width: 3.5rem;
}

.c-treatment-steps--periodontal .c-treatment-steps__title {
  color: var(--base-color);
  font-size: 2.4rem;
  line-height: 1.75;
}

.c-treatment-steps--periodontal .c-treatment-steps__item:nth-child(3) .c-treatment-steps__title {
  color: var(--text-green-black);
}

.c-treatment-steps--periodontal .c-treatment-steps__body {
  padding-top: 1rem;
  width: 70rem;
}

.c-treatment-steps--periodontal .c-treatment-steps__body > p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0 0 3rem;
}

.c-treatment-steps--periodontal .c-treatment-steps__body > p:last-child {
  margin-bottom: 0;
}

.c-treatment-steps--periodontal .c-treatment-steps__body > p + p {
  margin-top: 1.9rem;
}

.c-treatment-steps--implant {
  display: grid;
  gap: 4.3rem;
}

.c-treatment-steps--implant .c-treatment-steps__item {
  align-items: center;
  display: grid;
  gap: 2.5rem;
  grid-template-columns: 3.8rem 25rem 1fr;
  min-height: 12.9rem;
}

.c-treatment-steps--implant .c-treatment-steps__item:nth-child(4) {
  min-height: 11.5rem;
}

.c-treatment-steps--implant .c-treatment-steps__item:not(:last-child)::after {
  border-left: 0.2rem dotted var(--border-timeline);
  bottom: -6.4rem;
  content: "";
  left: 1.8rem;
  position: absolute;
  top: 5.1rem;
}

.c-treatment-steps--implant .c-treatment-steps__number {
  font-size: 2rem;
  line-height: 1.85;
  width: 3.8rem;
}

.c-treatment-steps--implant .c-treatment-steps__title {
  font-size: 2.4rem;
  line-height: 1.75;
}

.c-treatment-steps--implant .c-treatment-steps__text {
  font-size: 1.6rem;
  line-height: 2;
}

/* リスク・副作用（重要事項）のグレーの箱
   入れ歯・矯正・ホワイトニング・審美・インプラントで共通。
   箱の位置（上の余白・幅）はページ側で指定する。
   内側の余白と見出し→箇条書きの間隔は変数（--risk-padding / --risk-list-gap）でページ側から変えられる
-------------------------------------------*/
.c-treatment-risk {
  --risk-padding: 5rem 8rem 5.1rem 8.1rem;
  --risk-list-gap: 1.8rem;
  background-color: var(--bg-risk);
  border-radius: 1rem;
  padding: var(--risk-padding);
}

.c-treatment-risk__title {
  font-size: 2.2rem;
  line-height: 1.9090909091;
  margin: 0;
}

/* 見出しの下の補足（※〜）*/
.c-treatment-risk__note {
  font-size: 1.6rem;
  line-height: 2;
  margin: -0.4rem 0 0;
}

.c-treatment-risk__list {
  list-style: none;
  margin: var(--risk-list-gap) 0 0;
  padding: 0;
}

.c-treatment-risk__note + .c-treatment-risk__list {
  margin-top: 2.1rem;
}

.c-treatment-risk__list li {
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 1.6rem;
  position: relative;
}

.c-treatment-risk__list li::before {
  content: "•";
  left: 0;
  position: absolute;
  top: 0;
}

/* 中黒を丸（塗りの円）で描く版。ホワイトニング・審美・インプラント */
.c-treatment-risk--dot .c-treatment-risk__list li::before {
  aspect-ratio: 1;
  background-color: currentcolor;
  border-radius: 50%;
  content: "";
  left: 0.2rem;
  top: 1.4rem;
  width: 0.5rem;
}

/* チェックアイコン付きの箇条書き（common/icon-check.svg）
   口腔外科・摂食嚥下・ドライマウス・訪問歯科・睡眠時無呼吸。並べ方（間隔・列）はページ側
-------------------------------------------*/
.c-check-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-check-list__item {
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 3.2rem;
  position: relative;
}

.c-check-list__item::before {
  aspect-ratio: 1;
  background: url("../images/common/icon-check.svg") center/contain no-repeat;
  content: "";
  left: 0;
  position: absolute;
  top: 0.5rem;
  width: 2.2rem;
}

/* PC は2列（縦に --check-list-rows 項目並べてから右の列へ。左の列の幅は --check-list-column、
   右の列は折り返さない＝max-content）、SP は1列 */
.c-check-list--columns {
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: var(--check-list-column) max-content;
  grid-template-rows: repeat(var(--check-list-rows), auto);
  row-gap: 1rem;
}

/* アイコンが小さい版（PC 20px）。XD でこのサイズの指定がある睡眠時無呼吸のページ */
.c-check-list--small .c-check-list__item {
  padding-left: 3rem;
}

.c-check-list--small .c-check-list__item::before {
  background-image: url("../images/common/icon-check.svg");
  top: 0.6rem;
  width: 2rem;
}

/* 丸アイコン（ミントの太い枠の丸）付きの見出し
   丸は PC 26px／SP 22px、文字は丸の左端から PC 41px／SP 32px。文字の大きさ・余白はページ側か --large
-------------------------------------------*/
.c-ring-heading {
  color: var(--green-heading);
  padding-left: 4.1rem;
  position: relative;
}

.c-ring-heading::before {
  aspect-ratio: 1;
  border: 0.4rem solid var(--ring-mint);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 0.9rem;
  width: 2.6rem;
}

/* 26px の大見出し（入れ歯・矯正・訪問歯科・睡眠時無呼吸）。折り返しても丸は1行目の横 */
.c-ring-heading--large {
  font-size: 2.6rem;
  line-height: 1.6153846154;
}

.c-ring-heading--large::before {
  top: 0.8rem;
  transform: none;
}

/* 枠が淡い色で太い版・中は白（TCH・ホワイトニング・審美）*/
/* 本文｜画像 の2列（SP は画像→本文の縦並び）。丸付きの大見出し（c-ring-heading--large）の下に置く
   入れ歯（ノンクラスプ）・矯正（治療法）・睡眠時無呼吸（OSA）。画像の幅（PC）は --media-image-width
-------------------------------------------*/
.c-treatment-media {
  --media-image-width: 36.1rem;
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  margin-top: 4.2rem;
}

.c-treatment-media__body {
  flex: 1;
  padding-top: 0.3rem;
}

.c-treatment-media__image {
  border-radius: 1.5rem;
  flex: 0 0 var(--media-image-width);
  margin: 0;
  overflow: hidden;
}

.c-treatment-media__image img {
  display: block;
  width: 100%;
}

.page-top {
  display: none;
}

.page-top img {
  display: block;
  width: 100%;
}

.footer {
  background: var(--footer-green);
  border-radius: 3rem 3rem 0 0;
  color: var(--white);
  height: 61.1rem;
  min-width: 106rem;
  padding-top: 10rem;
  position: relative;
  width: 100%;
}

.footer::before {
  background: var(--footer-behind, transparent);
  content: "";
  height: 3rem;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: -1;
}

.footer__inner {
  display: grid;
  grid-template-columns: 52rem 51.9rem;
  position: relative;
}

.footer__logo img {
  display: block;
  width: 23.2rem;
}

.footer__brand p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 2.2rem 0 0;
}

.footer__map {
  align-items: center;
  background: var(--white);
  border-radius: 2.3rem;
  box-shadow: 0 0 0.3rem rgba(19, 54, 45, 0.3);
  color: var(--footer-green);
  display: flex;
  font-size: 1.6rem;
  gap: 0.8rem;
  height: 4.6rem;
  justify-content: center;
  margin-top: 2.2rem;
  transition: background-color 0.2s ease, color 0.2s ease;
  width: 28.7rem;
}

.footer__map:focus-visible {
  background-color: var(--coral-hover);
  color: var(--white);
}

.footer__map::before {
  aspect-ratio: 13/18;
  background-color: currentColor;
  content: "";
  display: block;
  flex-shrink: 0;
  mask: url("../images/common/footer-map-pin.svg") center/contain no-repeat;
  width: 1.3rem;
  -webkit-mask: url("../images/common/footer-map-pin.svg") center/contain no-repeat;
}
.footer__hours-table {
  background: var(--white);
  border-radius: 1.5rem;
  height: 17.8rem;
  padding: 0 2.5rem;
}

.footer__hours table {
  border-collapse: collapse;
  color: var(--footer-green);
  font-size: 1.6rem;
  line-height: 2;
  table-layout: fixed;
  text-align: center;
  width: 100%;
}

.footer__hours th,
.footer__hours td {
  padding: 0;
  vertical-align: middle;
}

.footer__hours thead tr {
  height: 5.6rem;
}

.footer__hours tbody tr {
  border-top: 1px solid var(--gray);
  height: 6.1rem;
}

.footer__hours th:first-child {
  padding-left: 1.5rem;
  text-align: left;
  width: 15rem;
}

.footer__hours th:nth-child(2),
.footer__hours td:nth-child(2) {
  width: 4.45rem;
}

.footer__hours th:nth-child(3),
.footer__hours td:nth-child(3) {
  width: 4.4rem;
}

.footer__hours th:nth-child(4),
.footer__hours td:nth-child(4) {
  width: 4.3rem;
}

.footer__hours th:nth-child(5),
.footer__hours td:nth-child(5) {
  width: 4.4rem;
}

.footer__hours th:nth-child(6),
.footer__hours td:nth-child(6),
.footer__hours th:nth-child(7),
.footer__hours td:nth-child(7),
.footer__hours th:nth-child(8),
.footer__hours td:nth-child(8) {
  width: 4.5rem;
}

.footer__hours td {
  color: var(--peach);
  font-size: 0;
  line-height: 0;
}

.footer__hours td::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
}

.footer__hours td.is-open::before {
  border: 0.2rem solid var(--peach);
  border-radius: 50%;
  height: 2rem;
  width: 2rem;
}

.footer__hours td.is-partial::before {
  aspect-ratio: 10/9;
  background: var(--peach);
  width: 2rem;
  -webkit-mask: url("../images/common/icon-triangle-rounded.svg") center/contain no-repeat;
  mask: url("../images/common/icon-triangle-rounded.svg") center/contain no-repeat;
}

.footer__hours td.is-closed::before {
  background: var(--peach);
  height: 0.2rem;
  width: 2rem;
}

.footer__hours td.is-visit {
  font-size: 2rem;
  line-height: 1;
}

.footer__hours td.is-visit::before {
  display: none;
}

.footer__hours p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 2.2rem 0 0 1rem;
}

.footer__hours p + p {
  margin-top: 1.4rem;
}

.footer__hours-meta {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
}

.footer__hours-notes {
  min-width: 0;
}

.footer__reserve {
  background: var(--peach);
  border-radius: 50%;
  box-shadow: 0 0 0.3rem rgba(19, 54, 45, 0.3);
  color: var(--white);
  display: grid;
  flex: 0 0 auto;
  font-size: 1.6rem;
  gap: 0.4rem;
  height: 12rem;
  line-height: 2;
  margin-top: 2.2rem;
  place-content: center;
  text-align: center;
  transition: background-color 0.25s ease;
  width: 12rem;
}

.footer__reserve-icon {
  background: var(--white);
  display: block;
  height: 3.2rem;
  margin: 0 auto;
  mask: url("../images/common/icon-reservation.svg") center/contain no-repeat;
  width: 3.2rem;
  -webkit-mask: url("../images/common/icon-reservation.svg") center/contain no-repeat;
}

.footer__reserve:focus-visible {
  background: var(--coral-hover);
}
.footer__bottom {
  bottom: 4.2rem;
  display: flex;
  font-size: 1.4rem;
  justify-content: space-between;
  left: 0;
  line-height: 2.2857142857;
  position: absolute;
  right: 0;
  width: 100%;
}

.footer__bottom small {
  font-size: inherit;
}

.footer__links-list {
  display: flex;
  gap: 2.2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer__bottom a {
  text-decoration: underline;
  transition: opacity 0.2s ease;
}
.header {
  --mega-menu-height: 0rem;
  align-items: center;
  background: var(--white);
  border-radius: 0 0 0 2rem;
  color: var(--text-green-dark);
  display: flex;
  height: 7.6rem;
  padding: 0 2.5rem 0 4rem;
  position: absolute;
  right: 0;
  top: 0;
  width: 100.4rem;
  z-index: 21;
}
.header__logo {
  aspect-ratio: 270/250;
  display: block;
  left: 5.5rem;
  position: absolute;
  top: 1.5rem;
  width: 27rem;
  z-index: 21;
}

.header__logo picture,
.header__logo img {
  display: block;
  height: 100%;
  width: 100%;
}

.header__logo img {
  -o-object-fit: contain;
  object-fit: contain;
}

.header__logo.is-preparing {
  pointer-events: none;
  visibility: hidden;
}
.header__nav {
  align-self: stretch;
  margin-right: auto;
}

.header__nav-list {
  align-items: center;
  display: flex;
  gap: 2.5rem;
  height: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

.header__nav-item {
  align-items: center;
  display: flex;
  height: 100%;
  position: static;
}

.header__nav-link {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-size: 1.6rem;
  padding: 0;
  transition: color 0.2s ease;
  white-space: nowrap;
}

p.header__nav-link {
  cursor: default;
}

.header__nav-link.is-current,
.header__nav-link:focus-visible,
.header__nav-item--has-mega-menu:hover > .header__nav-link,
.header__nav-item--has-mega-menu:focus-within > .header__nav-link {
  color: var(--orange);
}

.mega-menu {
  background: transparent;
  border-radius: 0;
  border-top: 1px solid var(--border-header-menu-open);
  box-shadow: none;
  left: 0;
  max-height: 0;
  overflow: hidden;
  padding: 0 5rem;
  pointer-events: none;
  position: absolute;
  top: 100%;
  transition: max-height 0.3s ease, padding 0.3s ease, visibility 0s linear 0.3s;
  visibility: hidden;
  width: 100%;
}

.header__nav-item--has-mega-menu:hover > .mega-menu,
.header__nav-item--has-mega-menu:focus-within > .mega-menu {
  max-height: var(--mega-menu-height);
  padding: 3.5rem 5rem 5rem;
  pointer-events: auto;
  transition-delay: 0s;
  visibility: visible;
}
.header__nav-item--has-mega-menu:hover > .mega-menu .mega-menu__group,
.header__nav-item--has-mega-menu:focus-within > .mega-menu .mega-menu__group {
  opacity: 1;
  transform: translateY(0);
  transition-delay: var(--mega-menu-fade-delay);
}

.header.is-mega-menu-closing .mega-menu {
  max-height: 0;
  padding: 0 5rem;
  pointer-events: none;
  visibility: hidden;
}

.mega-menu__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  -moz-column-gap: 5rem;
  column-gap: 5rem;
  row-gap: 4.4rem;
}

.mega-menu__grid:has(.mega-menu__body--card) {
  grid-template-columns: repeat(2, 20.1rem);
}

.mega-menu__group {
  --mega-menu-fade-delay: 0.18s;
  min-width: 0;
  opacity: 0;
  transform: translateY(1rem);
  transition: opacity 0.25s ease, transform 0.25s ease;
}

.mega-menu__group:nth-child(n+3) {
  --mega-menu-fade-delay: 0.28s;
}

.mega-menu__group:nth-child(n+5) {
  --mega-menu-fade-delay: 0.38s;
}

.mega-menu__title {
  border-bottom: 1px solid var(--border-header);
  color: var(--text-brown);
  font-size: 1.4rem;
  line-height: 1.5;
  margin: 0;
  padding: 0 0 0.8rem 1rem;
  white-space: nowrap;
}

.mega-menu__body {
  display: flex;
  gap: 2.5rem;
  margin-top: 2.1rem;
  padding-left: 1rem;
}

.mega-menu__body--card {
  display: block;
  margin-top: 0.5rem;
  padding-left: 0;
}

.mega-menu__image {
  border-radius: 0.5rem;
  flex: 0 0 auto;
  height: 10rem;
  overflow: hidden;
  width: 14.1rem;
}

.mega-menu__image img {
  display: block;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.mega-menu__body--card .mega-menu__image {
  display: block;
  height: 14.2rem;
  width: 20.1rem;
}

.mega-menu__links {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  list-style: none;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.mega-menu__link-item {
  line-height: 1;
  min-width: 0;
}

.mega-menu__link {
  align-items: center;
  color: var(--base-color);
  display: inline-flex;
  font-size: 1.6rem;
  gap: 1.2rem;
  line-height: 2.1rem;
  white-space: nowrap;
}

.mega-menu__arrow {
  color: var(--orange);
  flex: 0 0 auto;
  transition: transform 0.2s ease;
  width: 1.4rem;
}

.mega-menu__card-label {
  align-items: center;
  display: inline-flex;
  font-size: 1.6rem;
  gap: 1.2rem;
  line-height: 2.1rem;
  margin-top: 1rem;
  padding-left: 0.5rem;
  transition: color 0.2s ease;
  white-space: nowrap;
}

.mega-menu__group--wide {
  grid-column: 1/-1;
}

.mega-menu__group--wide .mega-menu__links {
  display: grid;
  grid-template-columns: 17.1rem 30.3rem 1fr;
  grid-template-rows: repeat(2, 2.1rem);
  -moz-column-gap: 2.5rem;
  column-gap: 2.5rem;
  row-gap: 1.5rem;
}

.mega-menu__group--wide .mega-menu__link-item:nth-child(4) {
  grid-column: 2;
  grid-row: 2;
}

.mega-menu__group--wide .mega-menu__link-item:nth-child(5) {
  grid-column: 1;
  grid-row: 2;
}
.header__tel {
  align-items: center;
  display: flex;
  font-size: 2rem;
  gap: 0.8rem;
  margin-right: 2rem;
  white-space: nowrap;
}

.header__tel-icon {
  display: block;
  flex: 0 0 auto;
  width: 2.6rem;
}

.header__reserve {
  align-items: center;
  background: var(--orange);
  border-radius: 2.3rem;
  color: var(--white);
  display: flex;
  font-size: 1.6rem;
  justify-content: center;
  min-height: 4.6rem;
  min-width: 12.9rem;
  transition: background-color 0.2s ease;
}

.header__reserve:focus-visible {
  background: var(--coral-hover);
}
.top-mobile-actions {
  display: none;
}

.top-mobile-actions__tel,
.top-mobile-actions__reserve {
  align-items: center;
  border-right: 0.1rem solid var(--white-alpha-55);
  display: flex;
  font-size: 1.8rem;
  gap: 0.8rem;
  justify-content: center;
  line-height: 1;
  white-space: nowrap;
}

.top-mobile-actions__tel img {
  filter: brightness(0) invert(1);
  width: 1.4rem;
}

.top-mobile-actions__reserve img {
  width: 1.6rem;
}

.top-mobile-actions__menu {
  align-content: center;
  color: var(--white);
  display: grid;
  gap: 0.5rem;
  justify-items: center;
}

.top-mobile-actions__menu-icon {
  aspect-ratio: 21/16;
  display: block;
  position: relative;
  width: 2.1rem;
}

.top-mobile-actions__menu-icon i {
  background: currentColor;
  display: block;
  height: 0.2rem;
  left: 0;
  position: absolute;
  transition: top 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
  width: 100%;
}

.top-mobile-actions__menu-icon i:nth-child(1) {
  top: 0;
}

.top-mobile-actions__menu-icon i:nth-child(2) {
  top: 0.7rem;
}

.top-mobile-actions__menu-icon i:nth-child(3) {
  top: 1.4rem;
}

.top-mobile-actions__menu small {
  font-size: 1rem;
  line-height: 1;
}

.is-mobile-drawer-open .top-mobile-actions__menu-icon i:nth-child(1) {
  top: 0.7rem;
  transform: rotate(45deg);
}

.is-mobile-drawer-open .top-mobile-actions__menu-icon i:nth-child(2) {
  opacity: 0;
}

.is-mobile-drawer-open .top-mobile-actions__menu-icon i:nth-child(3) {
  top: 0.7rem;
  transform: rotate(-45deg);
}

.mobile-drawer {
  display: none;
}

html.is-mobile-drawer-open,
body.is-mobile-drawer-open {
  overflow: hidden;
}

body.is-mobile-drawer-open {
  position: fixed;
  width: 100%;
}

.is-mobile-drawer-open .mobile-drawer {
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
}

.mobile-drawer__panel {
  /* XD：薄い緑の地に、幅320px の白い面（上から50px）*/
  background-color: #f8fdfb;
  border-radius: 2rem 0 0;
  box-shadow: 0 0 1rem var(--shadow-nav);
  height: calc(100% - 2rem);
  margin: 2rem 0 0 1rem;
  overflow-y: auto;
  padding: 4.4rem 6rem 4.8rem;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-width: none;
  touch-action: pan-y;
}

.mobile-drawer__panel::-webkit-scrollbar {
  display: none;
}

.mobile-drawer__scrollbar {
  bottom: 2rem;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  right: 0.8rem;
  top: 6.5rem;
  transition: opacity 0.2s ease;
  width: 0.3rem;
  z-index: 3;
}

.mobile-drawer__scrollbar.is-active {
  opacity: 1;
}

.mobile-drawer__scrollbar i {
  background: var(--scrollbar-drawer);
  border-radius: 0.2rem;
  display: block;
  height: 6rem !important;
  position: absolute;
  right: 0;
  top: 0;
  transform: translate3d(0, 0, 0);
  width: 100%;
  will-change: transform;
}

.mobile-drawer__nav {
  width: 100%;
}

.mobile-drawer__list,
.mobile-drawer__links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.mobile-drawer__item + .mobile-drawer__item {
  margin-top: 2.3rem;
}

.mobile-drawer__primary-link,
.mobile-drawer__accordion {
  align-items: center;
  color: var(--base-color);
  display: flex;
  font-size: 1.8rem;
  line-height: 1.6666666667;
  min-height: 3rem;
  text-align: left;
  width: 100%;
}

.mobile-drawer__accordion {
  gap: 1.4rem;
  padding: 0;
}

.mobile-drawer__accordion i {
  aspect-ratio: 1;
  display: block;
  position: relative;
  width: 1.6rem;
}

.mobile-drawer__accordion i::before,
.mobile-drawer__accordion i::after {
  background: var(--green-primary);
  content: "";
  height: 0.2rem;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.2s ease;
  width: 100%;
}

.mobile-drawer__accordion i::after {
  transform: translateY(-50%) rotate(90deg);
}

.mobile-drawer__accordion[aria-expanded=true] i::after {
  transform: translateY(-50%) rotate(0);
}

.mobile-drawer__accordion-panel {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  overflow: hidden;
  padding: 0 0.5rem;
  transition: grid-template-rows 0.35s ease, padding 0.35s ease, opacity 0.35s ease;
}

.mobile-drawer__accordion-panel[hidden] {
  display: none;
}

.mobile-drawer__accordion-panel.is-open {
  grid-template-rows: 1fr;
  opacity: 1;
  padding-top: 2rem;
}

.mobile-drawer__accordion-inner {
  min-height: 0;
  overflow: hidden;
}

.mobile-drawer__links {
  display: grid;
  gap: 1.4rem;
}

.mobile-drawer__links a {
  align-items: flex-start;
  display: inline-flex;
  font-size: 1.6rem;
  gap: 1rem;
  line-height: 1.8;
}

.mobile-drawer__links a::before {
  aspect-ratio: 1;
  background: #67b194;
  content: "";
  flex: 0 0 auto;
  margin-top: 0.6rem;
  width: 1.8rem;
  -webkit-mask: url("../images/common/icon-arrow-circle.svg") center/contain no-repeat;
  mask: url("../images/common/icon-arrow-circle.svg") center/contain no-repeat;
}

.mobile-drawer__treatment-group {
  border-bottom: 0.1rem solid #e2efea;
  padding: 0 0 2.5rem;
}

.mobile-drawer__treatment-group + .mobile-drawer__treatment-group {
  padding-top: 2.8rem;
}

.mobile-drawer__treatment-group h2 {
  color: var(--green-primary);
  font-size: 1.5rem;
  line-height: 1.6;
  margin: 0 0 1rem;
}

.mobile-drawer__treatment-group .mobile-drawer__links a span {
  font-size: 1.8rem;
  line-height: 1.6;
}

.mobile-drawer__clinic {
  display: grid;
  grid-template-columns: 5.8rem 1fr;
  -moz-column-gap: 2rem;
  border-top: 1px solid #e2efea;
  column-gap: 2rem;
  margin: 3.1rem -3rem 0;
  padding: 3.6rem 0 0 0.5rem;
}

.mobile-drawer__clinic img {
  grid-row: 1/4;
  width: 5.8rem;
}

.mobile-drawer__clinic-name {
  color: var(--green-primary);
  font-size: 1.8rem;
  line-height: 1.7777777778;
}

.mobile-drawer__clinic p {
  font-size: 1.5rem;
  line-height: 1.6666666667;
  margin: 0.3rem 0 0;
}

.mobile-drawer__clinic a {
  font-size: 1.5rem;
  line-height: 2;
  margin-top: 0.2rem;
}

.mobile-drawer__hours {
  background: var(--white);
  border: 1px solid var(--green-primary);
  border-radius: 1rem;
  height: 14rem;
  margin: 1.8rem -3rem 0;
  overflow: hidden;
  position: relative;
}

.mobile-drawer__hours::before {
  background: var(--green-primary);
  content: "";
  height: 4.4rem;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 0;
}

.mobile-drawer__hours::after {
  background: var(--border-light);
  content: "";
  height: 1px;
  left: 1.5rem;
  position: absolute;
  right: 1.5rem;
  top: 9.1rem;
  z-index: 2;
}

.mobile-drawer__hours thead {
  background: var(--green-primary);
  color: var(--white);
}

/* 見出しの緑の帯は枠いっぱい（右の余白の分も）に広げる*/
.mobile-drawer__hours thead tr {
  height: 4.4rem;
}

.mobile-drawer__hours table {
  border-collapse: collapse;
  color: var(--green-primary);
  font-size: 1.4rem;
  line-height: 1.4285714286;
  position: relative;
  table-layout: fixed;
  text-align: center;
  width: calc(100% - 1.2rem);
  z-index: 1;
}

.mobile-drawer__hours th,
.mobile-drawer__hours td {
  padding: 0;
  vertical-align: middle;
  width: 2.7rem;
}

.mobile-drawer__hours th:last-child,
.mobile-drawer__hours td:last-child {
  white-space: nowrap;
  width: 2.95rem;
}

.mobile-drawer__hours th:first-child {
  padding-left: 1.5rem;
  text-align: left;
  width: 11.65rem;
}

.mobile-drawer__hours tbody tr {
  height: 4.7rem;
}

.mobile-drawer__hours tbody tr + tr {
  border-top: 0;
}

/* 記号（【構築用メモ】SP メニュー内は緑。フッターのオレンジとは色が異なる）。文字は読み上げ用に残し、形は CSS で描く*/
.mobile-drawer__hours tbody td {
  font-size: 0;
  line-height: 0;
}

.mobile-drawer__hours tbody td::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
}

.mobile-drawer__hours td.is-open::before {
  border: 0.15rem solid var(--green-primary);
  border-radius: 50%;
  height: 1.4rem;
  width: 1.4rem;
}

.mobile-drawer__hours td.is-partial::before {
  aspect-ratio: 10/9;
  background: var(--green-primary);
  width: 1.4rem;
  -webkit-mask: url("../images/common/icon-triangle-rounded.svg") center/contain no-repeat;
  mask: url("../images/common/icon-triangle-rounded.svg") center/contain no-repeat;
}

.mobile-drawer__hours td.is-closed::before {
  background: var(--green-primary);
  height: 0.15rem;
  width: 1.4rem;
}

.mobile-drawer__hours td.is-visit {
  font-size: 1.4rem;
  line-height: 1;
}

.mobile-drawer__hours td.is-visit::before {
  display: none;
}

.mobile-drawer__notes {
  font-size: 1.5rem;
  line-height: 2;
  margin: 1.2rem -3rem 0;
  padding-left: 0.5rem;
}

.mobile-drawer__notes p {
  margin: 0;
}

.mobile-drawer__notes p + p {
  margin-top: 0;
}

.mobile-drawer__notes-reception {
  font-size: 1.4rem;
}

.mobile-drawer__notes a {
  display: block;
  font-size: 1.4rem;
  margin: 3.4rem 0 0 auto;
  text-decoration: underline;
  width: -moz-fit-content;
  width: fit-content;
}

/* -------------------------------------------*/
.inner {
  margin: 0 auto;
  max-width: calc(var(--content-width) + var(--padding-pc) * 2);
  padding-inline: var(--padding-pc);
}

.inner-md {
  margin: 0 auto;
  max-width: calc(122.6rem + var(--padding-pc) * 2);
  padding-inline: var(--padding-pc);
}

.nav {
  margin-left: auto;
}

.nav__menu {
  display: flex;
  gap: 3rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav__link {
  color: var(--text-nav);
  font-size: 1.6rem;
}

.nav__link:focus-visible {
  outline: 0.2rem solid var(--orange);
  outline-offset: 0.4rem;
}
/* -------------------------------------------*/
.post h1 {
  font-size: 2.4rem;
  margin-top: 1rem;
}

.post__body {
  font-size: 1.6rem;
  line-height: 2;
}

.post__body h1 {
  margin: 1em 0;
}

.post__body h2 {
  font-size: 2.2rem;
  margin: 2em 0 1em;
  padding-left: 3rem;
  position: relative;
}
.post__body h2::before {
  background-color: var(--black);
  border-radius: 0.4rem;
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  width: 1rem;
}

.post__body h3 {
  border-bottom: 1px solid var(--black);
  font-size: 2rem;
  margin: 2em 0 1em;
  padding-bottom: 0.5rem;
}

.post__body h4 {
  font-size: 2rem;
  margin: 1.5em 0 0.5em;
  padding-left: 1.5em;
  position: relative;
}
.post__body h4::before {
  aspect-ratio: 1/1;
  background-color: var(--black);
  content: "";
  display: block;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  width: 0.8em;
}

.post__body h5,
.post__body h6 {
  font-size: 2rem;
  margin: 1em 0 0.5em;
}

.post__body p a {
  color: var(--black);
  text-decoration: underline;
}

.post__body strong,
.post__body b {
  font-family: "FOT-筑紫A丸ゴシック Std E", sans-serif;
}

.post .wp-block-image {
  margin: 2em 0;
}

.post .wp-block-image img {
  border-radius: 0.6rem;
}

/* -------------------------------------------*/
.wrapper {
  padding-top: 0;
  position: relative;
  text-align: left;
  width: 100%;
}

main,
.c-page-hero {
  opacity: 1;
  position: relative;
  width: 100%;
}

main.is-page-entering,
.c-page-hero.is-page-entering {
  animation: page-content-enter 0.4s linear both;
}

@keyframes page-content-enter {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes page-content-leave {
  to {
    opacity: 0;
  }
}
html.is-page-leaving main,
html.is-page-leaving .c-page-hero {
  animation: page-content-leave 0.1s linear both;
  pointer-events: none;
}
.main__inner {
  position: relative;
  width: 100%;
  z-index: 1;
}

/* エラーページ
-------------------------------------------*/
.main--error {
  padding-block: 22rem 22.5rem;
}

.main--error h1 {
  margin-inline: auto;
  width: 47rem;
}

.main--error .error-text {
  font-size: 1.7rem;
  margin-top: 7.5rem;
  text-align: center;
}

.main--error .error-link {
  display: block;
  font-feature-settings: "palt";
  font-size: 1.7rem;
  margin: 7.5rem auto 0;
  padding-bottom: 0.3rem;
  position: relative;
  text-align: center;
  width: -moz-fit-content;
  width: fit-content;
}

.main--error .error-link::after {
  background: linear-gradient(to right, var(--base-bg), var(--primary));
  bottom: 0;
  content: "";
  display: block;
  height: 1px;
  left: 0;
  position: absolute;
  width: 100%;
}

.main--error .main__inner {
  padding: 12rem 0;
}

.main--error .btn {
  margin: 4rem auto 0;
}

/* リンク無効化
-------------------------------------------*/
.no-link {
  opacity: 0.4 !important;
  pointer-events: none !important;
}

.no-link--ba {
  pointer-events: none !important;
}
.no-link--ba::before, .no-link--ba::after {
  opacity: 0.4 !important;
  pointer-events: none !important;
}

/* アクセス・診療時間
-------------------------------------------*/
.p-access {
  color: var(--base-color);
  overflow: hidden;
  padding-bottom: 19.2rem;
  width: 100%;
}

.p-access :where(h1, h2, p, figure, address) {
  margin: 0;
}

.p-access picture img {
  display: block;
  width: 100%;
}

/* ヒーロー（採用情報・プライバシーポリシー等と同じ寸法） */
.p-access__hero {
  padding-top: 12.6rem;
  text-align: center;
}

.p-access__hero-image {
  border-radius: 4rem;
  display: block;
  margin: 0 auto;
  max-width: 130rem;
  overflow: hidden;
  width: calc(100% - 6.6rem);
}

.p-access__title {
  margin-top: 7.6rem;
}

.p-access__title h1 {
  color: var(--green-heading);
  font-size: 3.6rem;
  line-height: 1.25;
}

.p-access__title p {
  color: var(--text-gray-muted);
  font-size: 1.8rem;
  line-height: 1.25;
  margin-top: 0.5rem;
}

/* 地図 */
.p-access__map {
  padding-top: 9.7rem;
}

.p-access__map-visual {
  aspect-ratio: 900/636;
  border-radius: 0.5rem;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
  width: 90rem;
}

.p-access__map-visual [data-google-map] {
  height: 100%;
  width: 100%;
}

.p-access__map-btn,
.p-access__address-btn {
  gap: 1rem;
  justify-content: center;
  padding: 0;
  width: 28.7rem;
}

.p-access__map-btn {
  margin: 3rem auto 0;
}

.p-access__btn-icon {
  flex-shrink: 0;
  height: auto;
  width: 1.3rem;
}

/* 住所・診療時間 */
.p-access__information {
  padding-top: 9.5rem;
}

.p-access__information-layout {
  display: flex;
  justify-content: space-between;
}

.p-access__address {
  align-items: flex-start;
  display: flex;
  gap: 3.1rem;
}

.p-access__clinic-logo {
  display: block;
  flex-shrink: 0;
  margin-top: 0.5rem;
  width: 9.3rem;
}

.p-access__clinic-name {
  color: var(--green-heading);
  font-size: 2.2rem;
  line-height: 1.4545454545;
}

.p-access__address-text {
  font-size: 1.6rem;
  font-style: normal;
  line-height: 2;
  margin-top: 0.7rem;
}

.p-access__address-btn {
  margin-top: 2.7rem;
}

.p-access__hours {
  margin-top: 0.5rem;
  width: 51rem;
}

.p-access__hours-table {
  border: 1px solid var(--green-heading);
  border-radius: 1.5rem;
  overflow: hidden;
}

.p-access__hours table {
  border-collapse: collapse;
  color: var(--green-heading);
  font-size: 1.6rem;
  line-height: 2;
  table-layout: fixed;
  text-align: center;
  width: 100%;
}

.p-access__hours th,
.p-access__hours td {
  font-weight: inherit;
  padding: 0;
  vertical-align: middle;
}

.p-access__hours thead tr {
  background-color: var(--green-heading);
  color: var(--white);
  height: 5.5rem;
}

.p-access__hours tbody tr {
  height: 6rem;
}

.p-access__hours tbody tr:first-child > * {
  background: linear-gradient(var(--border-light), var(--border-light)) center bottom/100% 1px no-repeat;
}

.p-access__hours tbody tr:first-child > :first-child {
  background-position: right bottom;
  background-size: calc(100% - 2rem) 1px;
}

.p-access__hours tbody tr:first-child > :last-child {
  background-position: left bottom;
  background-size: calc(100% - 2rem) 1px;
}

.p-access__hours tr > :first-child {
  padding-left: 3.5rem;
  text-align: left;
  width: 17rem;
}

.p-access__hours tr > :last-child {
  padding-right: 2.8rem;
  width: 7.3rem;
}

.p-access__hours td {
  color: var(--peach);
  font-size: 0;
  line-height: 0;
}

.p-access__hours td::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
}

.p-access__hours td.is-open::before {
  aspect-ratio: 1;
  border: 0.2rem solid var(--peach);
  border-radius: 50%;
  width: 2rem;
}

.p-access__hours td.is-partial::before {
  aspect-ratio: 10/9;
  background-color: var(--peach);
  width: 2rem;
  -webkit-mask: url("../images/common/icon-triangle-rounded.svg") center/contain no-repeat;
  mask: url("../images/common/icon-triangle-rounded.svg") center/contain no-repeat;
}

.p-access__hours td.is-closed::before {
  background-color: var(--peach);
  height: 0.2rem;
  width: 2rem;
}

.p-access__hours td.is-visit {
  font-size: 2rem;
  line-height: 1;
}

.p-access__hours td.is-visit::before {
  display: none;
}

.p-access__hours-note {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.7rem 0 0 1rem;
}

.p-access__hours-note + .p-access__hours-note {
  margin-top: 0.9rem;
}

/* 駐車場 */
.p-access__parking {
  padding-top: 5.2rem;
}

.p-access__parking-box {
  border: 0.2rem dotted var(--green-heading);
  border-radius: 1rem;
  margin-inline: -1rem;
  padding: 3.7rem 7.7rem 3.5rem;
}

.p-access__parking-title {
  color: var(--green-heading);
  font-size: 2.2rem;
  line-height: 1.4545454545;
  text-align: center;
}

.p-access__parking-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4.6rem 6rem;
  justify-content: center;
  margin-top: 2.5rem;
}

.p-access__parking-item {
  width: 42rem;
}

.p-access__parking-item img {
  border-radius: 1rem;
}

.p-access__parking-item figcaption {
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin-top: 1.3rem;
  text-align: center;
}

/* -------------------------------------------*/
.p-clinic {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-clinic figure {
  overflow: hidden;
}

.p-clinic img {
  display: block;
  width: 100%;
}

.p-clinic__section {
  isolation: isolate;
  position: relative;
}

/* 本文（コンセプト・メッセージ共通） */
.p-clinic__body p {
  font-size: 1.6rem;
  line-height: 2;
}

.p-clinic__body p + p {
  margin-top: 1.9rem;
}

/* 縦書きの英字（Concept / Message / Policy）。XD では SVG 化されているので画像で配置 */
.p-clinic__label {
  position: absolute;
  width: 7.7rem;
  z-index: -1;
}

.p-clinic__label img {
  height: auto;
}

/* 背景の半透明の角丸長方形（XD の飾り） */
.p-clinic__section--history::before,
.p-clinic__section--history::after,
.p-clinic__history::before,
.p-clinic__history::after,
.p-clinic__history-side::after {
  border-radius: 1rem;
  content: "";
  position: absolute;
  z-index: -2;
}

/* コンセプト
-------------------------------------------*/
.p-clinic__section--concept {
  padding-bottom: 7.9rem;
}

.p-clinic__label--concept {
  left: calc(50% - 56.8rem);
  top: 0.4rem;
}

.p-clinic__concept {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 65rem;
  padding-left: calc(var(--padding-pc) + 18rem);
  padding-right: calc(var(--padding-pc) + 4.3rem);
}

.p-clinic__concept .p-clinic__copy {
  padding-top: 3.1rem;
  position: relative;
  white-space: nowrap;
  z-index: 1;
}

.p-clinic__heading {
  color: var(--orange-deep);
  font-size: 2.4rem;
  line-height: 1.75;
}

.p-clinic__heading-line {
  display: block;
}

.p-clinic__concept .p-clinic__body {
  margin-top: 1.8rem;
}

.p-clinic__concept-image {
  border-radius: 2rem;
  grid-column: 2;
  grid-row: 1;
}

/* メッセージ（沿革）
-------------------------------------------*/
.p-clinic__section--history {
  padding-bottom: 24.1rem;
}

.p-clinic__section--history::before {
  background-color: var(--decor-page-gray-alpha-60);
  height: 91.2rem;
  left: calc(50% - 53.3rem);
  top: 0;
  width: 35.8rem;
}

.p-clinic__section--history::after {
  background-color: var(--decor-page-mint-alpha-35);
  height: 20.4rem;
  left: calc(50% + 39.9rem);
  top: 6.1rem;
  width: 33.8rem;
}

.p-clinic__history::before {
  background-color: var(--decor-page-yellow-alpha-35);
  height: 24rem;
  left: calc(50% - 70.8rem);
  top: 14.5rem;
  width: 33.8rem;
}

.p-clinic__history::after {
  background-color: var(--decor-page-mint-alpha-35);
  height: 8.3rem;
  left: calc(50% + 11.3rem);
  top: 84.8rem;
  width: 27.6rem;
}

.p-clinic__history-side::after {
  background-color: var(--decor-page-yellow-alpha-35);
  height: 10.6rem;
  left: calc(50% + 30.1rem);
  top: 88.6rem;
  width: 40.2rem;
}

.p-clinic__label--message {
  left: calc(50% + 48rem);
  top: 47.5rem;
}

.p-clinic__history {
  align-items: start;
  display: grid;
  gap: 4.2rem;
  grid-template-columns: 46.8rem 1fr;
  padding-left: calc(var(--padding-pc) + 3.3rem);
}

.p-clinic__history-heading {
  font-size: 2.8rem;
  line-height: 1.6071428571;
  margin: 14.8rem 0 0 2.9rem;
}

.p-clinic__history-lead,
.p-clinic__history-detail {
  display: block;
}

.p-clinic__history-detail {
  font-size: 2.2rem;
  line-height: 1.8181818182;
  margin-top: 0.7rem;
}

.p-clinic__history-photo {
  border-radius: 2rem;
  margin-top: 4.3rem;
}

.p-clinic__history-subimages {
  align-items: flex-start;
  display: flex;
  gap: 4.5rem;
  margin-top: 14.1rem;
}

.p-clinic__history-subimages figure:first-child {
  border-radius: 2rem;
  flex: 0 0 22.5rem;
}

.p-clinic__history-subimages figure:last-child {
  border-radius: 1.5rem;
  flex: 0 0 31rem;
  margin-top: 5.4rem;
}

.p-clinic__history .p-clinic__body {
  margin: 1.4rem 0 0 3rem;
  width: 47.5rem;
}

/* 診療方針
-------------------------------------------*/
.p-clinic__section--policy {
  align-items: flex-start;
  display: flex;
  padding-bottom: 14rem;
}

.p-clinic__policy-image {
  border-radius: 0 2rem 2rem 0;
  flex: 0 0 59.5rem;
  position: relative;
  z-index: 1;
}

.p-clinic__label--policy {
  left: 64.5rem;
  top: 14rem;
  width: 7.8rem;
  z-index: 2;
}

.p-clinic__policy-body {
  flex: 1;
  margin-top: 6.4rem;
  min-height: 97.5rem;
  padding: 7.8rem 6rem 0 17.3rem;
  position: relative;
}

.p-clinic__policy-body::before {
  background-color: var(--bg-warm-light);
  border-radius: 2rem 0 0 2rem;
  bottom: 0;
  content: "";
  left: -20.4rem;
  position: absolute;
  right: 0;
  top: 0;
  z-index: -1;
}

.p-clinic__policy-kicker {
  color: var(--text-olive);
  font-size: 2rem;
  line-height: 2.25;
}

.p-clinic__policy-item {
  margin-top: 3.7rem;
}

.p-clinic__policy-kicker + .p-clinic__policy-item {
  margin-top: 2.2rem;
}

.p-clinic__policy-item h3 {
  color: var(--orange);
  font-size: 2.4rem;
  line-height: 1.875;
  padding-left: 5rem;
  position: relative;
}

.p-clinic__policy-item h3 span {
  background-color: var(--orange);
  border-radius: 50%;
  color: var(--white);
  display: grid;
  font-size: 2rem;
  height: 3.2rem;
  left: 0.2rem;
  line-height: 1;
  place-content: center;
  position: absolute;
  top: calc(50% - 1.6rem);
  width: 3.2rem;
}

.p-clinic__policy-item p {
  font-size: 1.6rem;
  line-height: 2;
}

.p-clinic__policy-item p + p {
  margin-top: 1.9rem;
}

.p-clinic__policy-item h3 + p {
  margin-top: 1.7rem;
}

/* 院内ギャラリー（スライドショー）
-------------------------------------------*/
.p-clinic__section--gallery {
  overflow: hidden;
}

.p-clinic__gallery {
  height: 34rem;
  position: relative;
}

.p-clinic__gallery-set {
  animation: clinic-gallery-first-pc 62s linear infinite;
  backface-visibility: hidden;
  display: flex;
  flex: 0 0 auto;
  gap: 1rem;
  left: 0;
  position: absolute;
  top: 0;
  will-change: transform;
}

.p-clinic__gallery-set:nth-child(2) {
  animation-name: clinic-gallery-second-pc;
}

.p-clinic__gallery figure {
  aspect-ratio: 962/680;
  border-radius: 2rem;
  flex: 0 0 48.1rem;
}

.p-clinic__gallery figure:nth-child(2),
.p-clinic__gallery figure:nth-child(5) {
  aspect-ratio: 1;
  flex-basis: 34rem;
}

@keyframes clinic-gallery-first-pc {
  from {
    transform: translate3d(-25.4rem, 0, 0);
  }
  to {
    transform: translate3d(-340.9rem, 0, 0);
  }
}
@keyframes clinic-gallery-second-pc {
  from {
    transform: translate3d(290.1rem, 0, 0);
  }
  to {
    transform: translate3d(-25.4rem, 0, 0);
  }
}
@keyframes clinic-gallery-first-sp {
  from {
    transform: translate3d(-6.3rem, 0, 0);
  }
  to {
    transform: translate3d(-163.8rem, 0, 0);
  }
}
@keyframes clinic-gallery-second-sp {
  from {
    transform: translate3d(151.2rem, 0, 0);
  }
  to {
    transform: translate3d(-6.3rem, 0, 0);
  }
}
/* 治療の流れ
-------------------------------------------*/
.p-clinic__section--flow {
  padding: 13.3rem 0 20rem;
}

.p-clinic__flow {
  background-color: #f7faf9;
  border-radius: 1rem;
  display: grid;
  gap: 5rem;
  grid-template-columns: repeat(4, 25.5rem);
  justify-content: center;
  list-style: none;
  margin: 6rem -2.2rem 0;
  padding: 5rem 5rem 4.2rem;
}

.p-clinic__flow-item {
  position: relative;
  text-align: center;
}

.p-clinic__flow-item:not(:last-child)::after {
  aspect-ratio: 2/1.6;
  background: url("../images/common/icon_border_arrow.svg") center/contain no-repeat;
  content: "";
  left: calc(100% + 1.5rem);
  position: absolute;
  top: 11.5rem;
  transform: rotate(-90deg);
  width: 2rem;
}

.p-clinic__flow-item .c-content-card__media {
  margin: 0;
}

.p-clinic__flow-item .c-content-card__title {
  line-height: 2.0454545455;
  margin: 1.8rem 0 0;
}

.p-clinic__flow-item .c-content-card__copy {
  margin-top: 0.1rem;
}

.p-clinic__flow-end {
  background-color: #f7faf9;
  border-radius: 1rem;
  margin: 9.6rem -2.3rem 0;
  padding: 3.3rem 2rem;
  position: relative;
  text-align: center;
}

.p-clinic__flow-end::before {
  aspect-ratio: 2/1.6;
  background-color: #19895e;
  left: calc(50% - 1rem);
  position: absolute;
  top: -5.5rem;
  width: 2rem;
  -webkit-mask: url("../images/common/icon_border_arrow.svg") center/contain no-repeat;
  content: "";
  mask: url("../images/common/icon_border_arrow.svg") center/contain no-repeat;
}

.p-clinic__flow-end strong {
  color: var(--green-heading);
  display: block;
  font-size: 3rem;
  line-height: 1.5;
}

.p-clinic__flow-end p {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 1.5rem;
}

/* -------------------------------------------*/
.p-cavity-root-canal {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-cavity-root-canal__intro {
  padding-bottom: 12.4rem;
  position: relative;
}

/* 共通：本文・見出し・画像
-------------------------------------------*/
.p-cavity-root-canal__body p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-cavity-root-canal__body p + p {
  margin-top: 1.9rem;
}

.p-cavity-root-canal__section-head {
  margin-bottom: 2.6rem;
}

.p-cavity-root-canal__image,
.p-cavity-root-canal__diagram,
.p-cavity-root-canal__scene-image {
  margin: 0;
  overflow: hidden;
}

.p-cavity-root-canal__image img,
.p-cavity-root-canal__diagram img,
.p-cavity-root-canal__scene-image img {
  display: block;
  width: 100%;
}

.p-cavity-root-canal__section {
  position: relative;
}

/* できるだけ削らないむし歯治療 ＋ 根管治療（共通の背景）
-------------------------------------------*/
.p-cavity-root-canal__section--minimal {
  padding: 7.1rem 0 5.4rem;
}

.p-cavity-root-canal__section--minimal::before,
.p-cavity-root-canal__section--root::before {
  background-color: var(--bg-page-soft);
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  top: 0;
  width: min(100%, 126rem);
  z-index: -1;
}

.p-cavity-root-canal__section--minimal::before {
  border-top-right-radius: 2rem;
}

.p-cavity-root-canal__section--root::before {
  border-bottom-right-radius: 2rem;
}

.p-cavity-root-canal__section--minimal .p-cavity-root-canal__split {
  align-items: flex-start;
  display: flex;
  gap: 6.6rem;
}

.p-cavity-root-canal__section--minimal .p-cavity-root-canal__content {
  flex: 0 0 58rem;
}

.p-cavity-root-canal__image--minimal {
  border-radius: 2rem;
  flex: 0 0 34.5rem;
  margin-top: -13.1rem;
  width: 34.5rem;
}

.p-cavity-root-canal__section--root {
  padding-bottom: 8rem;
}

.p-cavity-root-canal__root-card {
  background-color: var(--white);
  border-radius: 1rem;
  margin-left: 6.3rem;
  padding: 4.9rem 7rem 3.9rem;
  position: relative;
  width: 99.4rem;
  z-index: 0;
}

.p-cavity-root-canal__root-card > .p-cavity-root-canal__section-head {
  margin-bottom: 3.4rem;
}

.p-cavity-root-canal__root-body {
  align-items: flex-start;
  display: flex;
  gap: 5rem;
}

.p-cavity-root-canal__diagram {
  border-radius: 1.5rem;
  flex: 0 0 22.4rem;
  width: 22.4rem;
}

.p-cavity-root-canal__root-body .p-cavity-root-canal__body {
  flex: 1;
  margin-top: 1.5rem;
}

/* 治療風景
-------------------------------------------*/
.p-cavity-root-canal__scene {
  padding: 14rem 0 14.1rem;
}

.p-cavity-root-canal__scene-image {
  border-radius: 0.5rem;
  margin: 0 auto;
  width: 103.2rem;
}

/* むし歯は、予防がいちばん大切です
-------------------------------------------*/
.p-cavity-root-canal__section--prevention {
  padding-bottom: 16.8rem;
}

.p-cavity-root-canal__section--prevention .p-cavity-root-canal__split {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  margin-inline: auto;
  max-width: 83.6rem;
}

.p-cavity-root-canal__section--prevention .p-cavity-root-canal__content {
  flex: 0 0 50rem;
}

.p-cavity-root-canal__image--prevention {
  border-radius: 2rem;
  flex: 0 0 27.6rem;
  width: 27.6rem;
}

.p-cavity-root-canal__link {
  margin: 1.9rem 0 0;
  width: 28.5rem;
}

.p-cavity-root-canal__link .c-btn {
  width: 100%;
}

/* 当院で行うむし歯予防
-------------------------------------------*/
.p-cavity-root-canal__section--care {
  padding-bottom: 20rem;
}

.p-cavity-root-canal__care-card {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  margin: 0 auto;
  padding: 7rem 7rem 5.4rem;
  position: relative;
  width: 98.5rem;
}

.p-cavity-root-canal__care-label {
  background-color: var(--green-recruit);
  border-radius: 0.5rem;
  left: 7rem;
  margin: 0;
  padding: 1.75rem 3rem;
  position: absolute;
  top: -2.8rem;
  width: 26.5rem;
}

.p-cavity-root-canal__care-label h2 {
  color: var(--white);
  font-size: 2rem;
  line-height: 2.25;
  margin: 0;
}

.p-cavity-root-canal__care-body {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
}

.p-cavity-root-canal__image--care {
  border-radius: 1.5rem;
  flex: 0 0 26.5rem;
  margin: 5rem 0 1.6rem;
  width: 26.5rem;
}

.p-cavity-root-canal__care-body .p-cavity-root-canal__body {
  flex: 1;
}

.p-contact {
  padding: 19rem 0 15rem;
}

.p-contact__hero {
  text-align: center;
}

.p-contact__title {
  color: var(--green-primary);
  font-size: 3.6rem;
  line-height: 1.4;
  margin: 0;
}

.p-contact__title-en {
  color: var(--text-gray-muted);
  font-size: 1.8rem;
  margin: 0.5rem 0 0;
}

.p-contact__content {
  margin-top: 7rem;
}

.p-contact__intro {
  font-size: 1.6rem;
  line-height: 2;
  text-align: center;
}

.p-contact__intro p {
  margin: 0;
}

.p-contact__tel {
  align-items: center;
  background-color: var(--bg-green-pale);
  border-radius: 1rem;
  color: var(--green-primary);
  display: flex;
  gap: 2rem;
  justify-content: center;
  margin: 3rem auto 0;
  padding: 1.8rem 3.5rem;
  width: -moz-fit-content;
  width: fit-content;
}

.p-contact__tel span {
  font-size: 1.4rem;
}

.p-contact__tel strong {
  font-size: 2.4rem;
  letter-spacing: 0.04em;
}

.p-contact__form {
  margin: 7.5rem auto 0;
  width: min(100%, 83.6rem);
}

.p-contact__form form {
  display: flex;
  flex-direction: column;
  gap: 3rem;
}

.p-contact__field {
  align-items: flex-start;
  display: flex;
  gap: 3rem;
}

.p-contact__label {
  align-items: center;
  display: flex;
  flex: 0 0 25.5rem;
  font-size: 1.8rem;
  gap: 1.2rem;
  min-height: 5rem;
}

.p-contact__required,
.p-contact__optional {
  border-radius: 0.4rem;
  color: var(--white);
  display: grid;
  font-size: 1.2rem;
  height: 2.6rem;
  place-content: center;
  width: 4.4rem;
}

.p-contact__required {
  background-color: #f08489;
}

.p-contact__optional {
  background-color: var(--gray-muted);
}

.p-contact__field > .wpcf7-form-control-wrap {
  flex: 1;
  min-width: 0;
}

.p-contact__field input,
.p-contact__field select,
.p-contact__field textarea {
  background-color: var(--bg-page-soft);
  border: 1px solid var(--border-light);
  border-radius: 0.5rem;
  font-size: 1.6rem;
  margin: 0;
  min-height: 5rem;
  padding: 1rem 1.5rem;
  width: 100%;
}

.p-contact__field textarea {
  min-height: 20rem;
  resize: vertical;
}

.p-contact__privacy {
  font-size: 1.5rem;
  line-height: 2;
  margin: 2rem 0 0;
  text-align: center;
}

.p-contact__privacy a {
  text-decoration: underline;
  text-underline-offset: 0.5rem;
}

.p-contact__consent {
  display: flex;
  font-size: 1.5rem;
  justify-content: center;
}

.p-contact__actions {
  display: flex;
  justify-content: center;
}

.p-contact__actions input {
  border: 0;
  cursor: pointer;
  justify-content: center;
  margin: 0;
  width: 18rem;
}

.p-contact__form .wpcf7-not-valid-tip {
  color: #e6595f;
  display: block;
  font-size: 1.4rem;
  margin-top: 0.5rem;
}

.p-contact__form .wpcf7-response-output {
  font-size: 1.4rem;
  margin: 2rem 0 0;
  padding: 1.2rem;
  text-align: center;
}

.p-contact__field .wpcf7-not-valid {
  background-color: #fffafa;
  border-color: #e6595f;
}

.p-contact__thanks {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 7rem;
  text-align: center;
}

.p-contact__thanks p {
  margin: 0;
}

.p-contact__thanks-note {
  background-color: var(--bg-green-pale);
  border-radius: 1rem;
  margin: 3.5rem auto 0 !important;
  padding: 2.5rem;
  text-align: left;
  width: min(100%, 76rem);
}

.p-contact__back {
  margin: 5rem auto 0;
}

.p-system-page {
  padding: 19rem 0 15rem;
  text-align: center;
}

.p-system-page__code {
  color: var(--green-tag-border);
  font-size: 7.2rem;
  font-weight: 700;
  line-height: 1;
  margin: 0;
}

.p-system-page__title {
  color: var(--green-primary);
  font-size: 3.2rem;
  line-height: 1.6;
  margin: 2rem 0 0;
}

.p-system-page__text,
.p-system-page__empty {
  font-size: 1.6rem;
  line-height: 2;
  margin: 3rem 0 0;
}

.p-search-form {
  display: flex;
  margin: 4rem auto 0;
  width: min(100%, 60rem);
}

.p-search-form input {
  background-color: var(--white);
  border: 1px solid var(--border-light);
  border-radius: 0.6rem 0 0 0.6rem;
  flex: 1;
  font-size: 1.6rem;
  min-width: 0;
  padding: 1.2rem 1.5rem;
}

.p-search-form button {
  background-color: var(--green-primary);
  border: 0;
  border-radius: 0 0.6rem 0.6rem 0;
  color: var(--white);
  cursor: pointer;
  padding: 0 2.5rem;
}

.p-system-page__results {
  list-style: none;
  margin: 7rem auto 0;
  padding: 0;
  text-align: left;
  width: min(100%, 85rem);
}

.p-system-page__results li {
  border-bottom: 1px dashed var(--border-light);
}

.p-system-page__results a {
  align-items: center;
  display: flex;
  gap: 2.5rem;
  padding: 2.2rem 1rem;
}

.p-system-page__results time {
  color: var(--gray-muted);
  flex: 0 0 10rem;
}

.p-system-page__results span {
  flex: 1;
}

.p-system-page__results .c-arrow-circle {
  flex: 0 0 auto;
}

/* -------------------------------------------*/
.p-dentures {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-dentures__intro {
  padding-bottom: 0;
  position: relative;
}

/* 入れ歯の種類
-------------------------------------------*/
.p-dentures__types {
  padding-top: 11.8rem;
}

.p-dentures__type-list {
  display: grid;
  gap: 8rem;
  grid-template-columns: repeat(2, 40.5rem);
  justify-content: center;
  margin-top: 7.1rem;
}

.p-dentures__type-image,
.p-dentures__bridge-image {
  margin: 0;
  overflow: hidden;
}

.p-dentures__type-image img,
.p-dentures__bridge-image img {
  display: block;
  width: 100%;
}

.p-dentures__type-image {
  border-radius: 2rem;
}

.p-dentures__type-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 2.4rem 0 0 2.8rem;
  position: relative;
}

.p-dentures__type-title::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: -1.8rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0.8rem;
}

.p-dentures__type-text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0.7rem 1rem 0;
}

/* ブリッジ（点線の枠）
-------------------------------------------*/
.p-dentures__bridge {
  align-items: flex-start;
  border: 0.2rem dotted var(--green-heading);
  border-radius: 1rem;
  display: flex;
  gap: 6rem;
  margin: 5.1rem auto 0;
  padding: 4.7rem 5.8rem 5.2rem;
  width: 99.8rem;
}

.p-dentures__bridge-body {
  flex: 1;
}

.p-dentures__bridge-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.1;
  margin: 0;
}

.p-dentures__bridge-body p,
.p-dentures__non-clasp-body p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-dentures__bridge-body p {
  margin-top: 1.8rem;
}

.p-dentures__bridge-body p + p,
.p-dentures__non-clasp-body p + p {
  margin-top: 1.9rem;
}

.p-dentures__bridge-image {
  border-radius: 1rem;
  flex: 0 0 35.4rem;
  margin-top: 1.1rem;
}

/* ノンクラスプデンチャー
-------------------------------------------*/
.p-dentures__non-clasp {
  padding-top: 9.2rem;
}

.p-dentures__section-head,
.p-dentures__non-clasp-top {
  margin-left: 6.4rem;
  width: 88.8rem;
}

.p-dentures__non-clasp-body .p-dentures__note {
  margin-top: 0;
  padding-left: 2.1rem;
  text-indent: -2.1rem;
}

/* メリット・デメリット
-------------------------------------------*/
.p-dentures__pros-cons {
  margin: 6rem auto 0;
  width: 93.9rem;
}

.p-dentures__panel {
  padding: 4.4rem 7rem 4.2rem 12.5rem;
  position: relative;
  z-index: 0;
}

.p-dentures__panel + .p-dentures__panel {
  margin-top: 3rem;
}

.p-dentures__panel::before {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-dentures__panel--cons::before {
  background-color: var(--bg-info-blue);
}

.p-dentures__panel-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.1;
  margin: 0;
  position: relative;
}

.p-dentures__panel--cons .p-dentures__panel-title {
  color: var(--blue-info-dark);
}

.p-dentures__panel-title::before {
  aspect-ratio: 1;
  background: url("../images/common/icon-check.svg") center/contain no-repeat;
  content: "";
  left: -4.5rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
}

.p-dentures__panel--cons .p-dentures__panel-title::before {
  background-image: url("../images/common/icon-information-blue.svg");
}

.p-dentures__panel-list {
  margin: 1.7rem 0 0;
  padding-left: 1.8rem;
}

.p-dentures__panel-item + .p-dentures__panel-item {
  margin-top: 2rem;
}

.p-dentures__panel-item dt {
  font-size: 1.8rem;
  line-height: 1.7777777778;
  position: relative;
}

.p-dentures__panel-item dt::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: -1.8rem;
  position: absolute;
  top: 1.2rem;
  width: 0.8rem;
}

.p-dentures__panel--cons .p-dentures__panel-item dt::before {
  background-color: var(--blue-info);
}

.p-dentures__panel-item dd {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0.1rem 0 0;
}

.p-dentures__panel-note {
  display: block;
  font-size: 1.4rem;
  line-height: 2.1428571429;
  padding-left: 1.9rem;
  text-indent: -1.9rem;
}

/* 入れ歯治療費用
-------------------------------------------*/
.p-dentures__price {
  padding: 13.4rem 0 20rem;
}

.p-dentures__price-table {
  margin: 7rem auto 0;
  width: 91rem;
}

.p-dentures__price-row {
  align-items: start;
  border-top: 1px solid var(--border-light);
  display: grid;
  grid-template-columns: 33.9rem 1fr;
  padding: 3rem 0 2.9rem;
}

.p-dentures__price-row:last-child {
  border-bottom: 1px solid var(--border-light);
}

.p-dentures__price-row--single {
  padding: 1.9rem 2rem 2.3rem 0;
}

.p-dentures__price-name {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: 0.3rem 0 0;
  padding-left: 2rem;
}

.p-dentures__price-list {
  margin: 0;
}

.p-dentures__price-item {
  align-items: center;
  display: flex;
  gap: 1.5rem;
}

.p-dentures__price-item + .p-dentures__price-item {
  margin-top: 1.5rem;
}

.p-dentures__price-badge {
  background-color: var(--green-tag-border);
  border-radius: 0.5rem;
  color: var(--white);
  flex: 0 0 12rem;
  font-size: 1.6rem;
  line-height: 2.375;
  text-align: center;
}

.p-dentures__price-value {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-dentures__price-row--single .p-dentures__price-value {
  margin-top: 0.3rem;
  text-align: right;
}

.p-dentures__price-note {
  font-size: inherit;
}

/* リスク・副作用（見た目は c-treatment-risk）
-------------------------------------------*/
.p-dentures__risk {
  margin: 14rem -1.4rem 0 -1.3rem;
}

/* -------------------------------------------*/
.p-dry-mouth {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-dry-mouth__intro {
  padding-bottom: 12.4rem;
}

.p-dry-mouth__symptoms-inner figure img,
.p-dry-mouth__cause-list figure img,
.p-dry-mouth__treatment-grid figure img {
  display: block;
  width: 100%;
}

/* 思い当たる症状
-------------------------------------------*/
.p-dry-mouth__symptoms-inner {
  align-items: flex-start;
  display: flex;
  gap: 7rem;
  padding-bottom: 6.5rem;
  padding-top: 6.4rem;
  position: relative;
  z-index: 0;
}

.p-dry-mouth__symptoms-inner::before {
  background-color: var(--bg-page-soft);
  border-radius: 0 2rem 2rem 0;
  bottom: 0;
  content: "";
  left: 0;
  margin: 0 0 0 calc(50% - 50vw);
  position: absolute;
  right: 3.6rem;
  top: 0;
  z-index: -1;
}

.p-dry-mouth__symptoms-inner > figure {
  flex: 0 0 24rem;
  margin: -13.4rem 0 0;
}

.p-dry-mouth__symptoms-inner > figure img {
  border-radius: 1.5rem;
}

.p-dry-mouth__symptoms-content {
  width: 73rem;
}

.p-dry-mouth__symptoms-content h2 {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 0;
}

.p-dry-mouth__symptoms-content header p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.1rem 0 0;
}

.p-dry-mouth__symptoms-list {
  --check-list-rows: 4;
  --check-list-column: 40.3rem;
  margin-top: 1.7rem;
}

/* 主な原因
-------------------------------------------*/
.p-dry-mouth__causes {
  padding: 13.3rem 0 12.5rem;
}

.p-dry-mouth__cause-list {
  display: grid;
  gap: 4rem;
  grid-template-columns: repeat(4, 23.8rem);
  margin: 7.2rem -1.6rem 0;
}

.p-dry-mouth__cause-list figure {
  margin: 0;
}

.p-dry-mouth__cause-list figure img {
  border-radius: 1rem;
}

.p-dry-mouth__cause-list h3 {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: 2.3rem 0 0;
  text-align: center;
}

.p-dry-mouth__cause-list p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0.5rem 1rem 0;
}

/* 検査（c-treatment-list）
-------------------------------------------*/
.p-dry-mouth__tests {
  padding-bottom: 13.3rem;
}

.p-dry-mouth__test-list {
  --term-width: 26rem;
  margin: 7.2rem auto 0;
  width: 90rem;
}

/* 治療
-------------------------------------------*/
.p-dry-mouth__treatment {
  padding-bottom: 19.1rem;
}

.p-dry-mouth__treatment-grid {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  margin: 6.2rem auto 0;
  width: 97.3rem;
}

.p-dry-mouth__treatment-content {
  width: 56.8rem;
}

.p-dry-mouth__treatment-content h3 {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-dry-mouth__treatment-content p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.9rem 0 0;
}

.p-dry-mouth__treatment-content h3 + p {
  margin-top: 1.8rem;
}

.p-dry-mouth__treatment-grid > figure {
  flex: 0 0 34.5rem;
  margin: 0;
}

.p-dry-mouth__treatment-grid > figure img {
  border-radius: 1.5rem;
}

/* -------------------------------------------*/
.p-facilities {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-facilities img {
  display: block;
  width: 100%;
}

.p-facilities figure {
  overflow: hidden;
}

.p-facilities__showcase-title,
.p-facilities__card h2 {
  background-color: var(--green-recruit-alpha-90);
  border-radius: 1rem;
  box-shadow: 0 0 0.3rem var(--shadow-facilities-title);
  color: var(--white);
}

/* 主要設備（CT・マイクロスコープ・CEREC）
-------------------------------------------*/
.p-facilities__showcase {
  margin-bottom: 16rem;
  position: relative;
}

.p-facilities__showcase:first-child {
  margin-top: 0.3rem;
}

.p-facilities__showcase:last-child {
  margin-bottom: 18rem;
}

.p-facilities__showcase-photo {
  border-radius: 2rem;
}

.p-facilities__showcase-copy {
  bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  left: 0;
  padding: 0 5rem 12.7rem;
  position: absolute;
  top: 0;
  width: 38.5rem;
  z-index: 0;
}

.p-facilities__showcase-copy::before {
  backdrop-filter: blur(1px) brightness(1.08);
  background: linear-gradient(to right, rgba(255, 255, 255, 0.7), transparent);
  border-radius: 2rem 0 0 2rem;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-facilities__showcase-title {
  display: flex;
  flex-direction: column;
  font-size: 2.6rem;
  height: 14rem;
  justify-content: center;
  left: 4rem;
  line-height: 1.2;
  margin: 0;
  position: absolute;
  text-align: center;
  top: 54.3rem;
  width: 30.5rem;
}

.p-facilities__showcase-title small {
  font-size: 1.6rem;
  margin-top: 1rem;
}

.p-facilities__showcase-copy h2 {
  font-size: 2.2rem;
  line-height: 2;
  white-space: nowrap;
}

.p-facilities__showcase-copy > p:last-child {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.6rem 0 0;
}

/* 設備一覧
-------------------------------------------*/
.p-facilities__equipment {
  padding-bottom: 12rem;
}

.p-facilities__grid {
  display: grid;
  gap: 11.2rem 10rem;
  grid-template-columns: repeat(2, 42rem);
  justify-content: center;
}

.p-facilities__card figure {
  border-radius: 1.5rem;
}

.p-facilities__card h2 {
  display: flex;
  flex-direction: column;
  font-size: 2.2rem;
  justify-content: center;
  line-height: 1.4;
  margin: -3.5rem auto 0;
  min-height: 7rem;
  position: relative;
  text-align: center;
  width: 36rem;
  z-index: 1;
}

.p-facilities__card h2 small {
  font-size: inherit;
}

.p-facilities__card p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 2.2rem 0 0;
  padding-inline: 1rem;
}

.p-facilities__link {
  display: flex;
  font-size: 1.6rem;
  margin: 2.2rem 1rem 0 auto;
  width: 28.5rem;
}

/* 院内技工室
-------------------------------------------*/
.p-facilities__lab-body {
  margin-inline: auto;
  max-width: 112.5rem;
  padding-top: 5rem;
  position: relative;
}

.p-facilities__lab figure {
  border-radius: 1.5rem;
  left: 0;
  position: absolute;
  top: 0;
  width: 50rem;
  z-index: 1;
}

.p-facilities__lab-copy {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-left: 37.5rem;
  min-height: 38.5rem;
  padding: 4rem 6.5rem 4rem 18.5rem;
}

.p-facilities__lab h2 {
  align-self: flex-start;
  color: var(--green-heading);
  display: inline-block;
  font-size: 2.4rem;
  line-height: 1.875;
  position: relative;
  z-index: 0;
}

.p-facilities__lab h2::before {
  background-color: var(--heading-underline);
  border-radius: 0.2rem;
  bottom: 0.2rem;
  content: "";
  height: 1.5rem;
  left: -0.5rem;
  position: absolute;
  right: -0.4rem;
  z-index: -1;
}

.p-facilities__lab p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 2.5rem 0 0;
}

/* 感染症対策
-------------------------------------------*/
.p-facilities__infection {
  padding: 13.8rem 0 20.3rem;
}

.p-facilities__infection-inner {
  display: flex;
  gap: 4rem;
  justify-content: space-between;
  max-width: calc(101.4rem + var(--padding-pc) * 2);
}

.p-facilities__infection h2 {
  color: var(--green-heading);
  font-size: 2.2rem;
  line-height: 2.0454545455;
}

.p-facilities__infection ol {
  counter-reset: infection;
  list-style: none;
  margin: 1.6rem 0 0;
  padding: 0;
}

.p-facilities__infection li {
  counter-increment: infection;
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 2.4rem;
  position: relative;
}

.p-facilities__infection li::before {
  content: counter(infection) ".";
  left: 0;
  position: absolute;
  top: 0;
}

.p-facilities__infection li + li,
.p-facilities__infection-copy > p {
  margin-top: 1.4rem;
}

.p-facilities__infection-copy > p {
  font-size: 1.6rem;
  line-height: 2;
}

.p-facilities__infection-photos {
  display: flex;
  flex: 0 0 31rem;
  flex-direction: column;
  gap: 1rem;
}

.p-facilities__infection-photos figure {
  border-radius: 1.5rem;
}

/* -------------------------------------------*/
.p-home-visit {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-home-visit img {
  display: block;
  width: 100%;
}

:where(.p-home-visit) p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-home-visit__intro {
  padding-bottom: 0;
  position: relative;
}

/* 訪問歯科診療が受けられる方（c-treatment-lead-card）
-------------------------------------------*/
.p-home-visit__eligibility {
  --lead-card-bg-top: 4rem;
  margin-top: 5.2rem;
}

.p-home-visit__eligibility-image {
  display: block;
  flex: 0 0 27rem;
  margin-left: -2.4rem;
}

.p-home-visit__eligibility-body {
  margin-left: 6rem;
  padding: 10.4rem 0 6.2rem;
}

.p-home-visit__eligibility-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 0;
}

.p-home-visit__eligibility-list {
  margin-top: 1.9rem;
  width: 78.6rem;
  -moz-columns: 2;
  columns: 2;
  -moz-column-gap: 0;
  column-gap: 0;
}

.p-home-visit__eligibility-list li {
  -moz-column-break-inside: avoid;
  break-inside: avoid;
}

.p-home-visit__eligibility-list li + li {
  margin-top: 1rem;
}

.p-home-visit__eligibility-list li:nth-child(4) {
  margin-top: 0;
  -moz-column-break-before: column;
  break-before: column;
}

.p-home-visit__eligibility-text {
  margin-top: 1.9rem;
}

/* 訪問歯科診療で出来ること
-------------------------------------------*/
.p-home-visit__services {
  padding-top: 13.3rem;
}

.p-home-visit__services-title,
.p-home-visit__scene-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 6.1rem 0 0;
  text-align: center;
}

.p-home-visit__services-lead {
  margin-top: 1.8rem;
  text-align: center;
}

.p-home-visit__service-list {
  background-color: var(--bg-card-white);
  border: 1rem solid var(--bg-panel-mint);
  border-radius: 1rem;
  display: grid;
  gap: 3.4rem 3rem;
  grid-template-columns: repeat(3, 25rem);
  list-style: none;
  margin: 4.2rem auto 0;
  padding: 5.4rem 7rem 6rem;
  width: 97rem;
}

.p-home-visit__service-list li {
  background-image: radial-gradient(circle, #5d898d 0.1rem, transparent 0.1rem);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.6rem 0.2rem;
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  padding: 0 0 1.4rem 2.8rem;
  position: relative;
}

.p-home-visit__service-list li::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 1rem;
  position: absolute;
  top: 1.2rem;
  width: 0.8rem;
}

/* 治療風景（入れ歯ページの「入れ歯の種類」と同じ見た目）
-------------------------------------------*/
.p-home-visit__scene-title {
  margin-top: 9.3rem;
}

.p-home-visit__scene-list {
  display: grid;
  gap: 8rem;
  grid-template-columns: repeat(2, 40.5rem);
  justify-content: center;
  margin-top: 4.1rem;
}

.p-home-visit__scene-image {
  border-radius: 2rem;
  margin: 0;
  overflow: hidden;
}

.p-home-visit__scene-name {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 2.4rem 0 0 2.8rem;
  position: relative;
}

.p-home-visit__scene-name::before,
.p-home-visit__facilities h4::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: -1.8rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0.8rem;
}

.p-home-visit__scene-text {
  margin: 0.7rem 1rem 0;
}

/* 施設・病院関係者様へ
-------------------------------------------*/
.p-home-visit__facilities {
  margin: 8.3rem auto 0;
  width: 80rem;
}

.p-home-visit__facilities-title + p {
  margin-top: 3.5rem;
}

.p-home-visit__facilities h4 {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 2.5rem 0 0;
  padding-left: 1.8rem;
  position: relative;
}

.p-home-visit__facilities h4::before {
  left: 0;
}

.p-home-visit__facilities h4 + p {
  margin-top: 0.9rem;
}

/* 訪問歯科診療がもたらすメリット
-------------------------------------------*/
.p-home-visit__benefits {
  padding-top: 12.4rem;
}

.p-home-visit__benefit-list {
  display: grid;
  gap: 4rem;
  grid-template-columns: repeat(4, 23.8rem);
  justify-content: center;
  margin: 7.2rem -1.6rem 0;
}

.p-home-visit__benefit-image {
  border-radius: 1rem;
  margin: 0;
  overflow: hidden;
}

.p-home-visit__benefit-title {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: 2.3rem 0 0;
  text-align: center;
}

.p-home-visit__benefit-text {
  margin: 0.6rem 1rem 0;
}

/* 対応エリア範囲
-------------------------------------------*/
.p-home-visit__area {
  padding-top: 12.4rem;
}

.p-home-visit__area-lead {
  margin-top: 6.4rem;
  text-align: center;
}

.p-home-visit__area-box {
  align-items: start;
  display: grid;
  grid-template-columns: 53.1rem 32.8rem;
  -moz-column-gap: 4rem;
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  column-gap: 4rem;
  margin: 4.2rem auto 0;
  padding: 5rem 5rem 4.2rem;
  width: 99.9rem;
}

.p-home-visit__area-list {
  border-top: 1px solid var(--border-light);
  margin: 0;
}

.p-home-visit__area-list > div {
  border-bottom: 1px solid var(--border-light);
  display: grid;
  grid-template-columns: 13.4rem 1fr;
  padding: 1.1rem 0 1.2rem 1rem;
}

.p-home-visit__area-list dt {
  color: var(--green-heading);
  font-size: 1.6rem;
  line-height: 2;
}

.p-home-visit__area-list dd {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-home-visit__area-note {
  grid-column: 1/-1;
  margin-top: 2.2rem;
  padding-left: 2.1rem;
  text-indent: -2.1rem;
}

.p-home-visit__area-image {
  border-radius: 1rem;
  margin: 0;
  overflow: hidden;
}

/* 訪問診療の流れ
-------------------------------------------*/
.p-home-visit__flow {
  padding: 13.3rem 0 19.1rem;
}

.p-home-visit__steps {
  list-style: none;
  margin: 6.9rem 0 0;
  padding: 0;
}

.p-home-visit__step {
  align-items: start;
  display: grid;
  grid-template-columns: 6.5rem 27.5rem 1fr;
  position: relative;
}

.p-home-visit__step + .p-home-visit__step {
  margin-top: 8.8rem;
}

.p-home-visit__step:not(:last-child)::after {
  background-image: radial-gradient(circle, var(--border-timeline) 0.1rem, transparent 0.1rem);
  background-position: center top;
  background-repeat: repeat-y;
  background-size: 0.2rem 0.6rem;
  bottom: -7.1rem;
  content: "";
  left: 1.6rem;
  position: absolute;
  top: 5.5rem;
  width: 0.2rem;
}

.p-home-visit__step-number {
  aspect-ratio: 1;
  background-color: var(--orange);
  border-radius: 50%;
  color: var(--white);
  display: grid;
  font-size: 2rem;
  line-height: 1;
  margin-top: 0.3rem;
  place-items: center;
  width: 3.5rem;
}

.p-home-visit__step-title {
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-home-visit__step-body {
  margin-top: 0.6rem;
}

.p-home-visit__step-button {
  margin: 2.1rem 0 0.9rem;
  width: 21rem;
}

.p-home-visit__step-button::after {
  aspect-ratio: 1;
  background: url("../images/home-visit/icon-01.svg") center/contain no-repeat;
  content: "";
  flex-shrink: 0;
  width: 1.6rem;
}

.p-home-visit__step-note {
  padding-left: 2.1rem;
  text-indent: -2.1rem;
}

/* お知らせ・医院ブログ 共通
-------------------------------------------*/
.journal {
  padding: 19.2rem 0 19.2rem;
  width: 100%;
}

.journal__heading {
  margin-bottom: 6rem;
}

.journal__heading-title {
  color: var(--green-primary);
  font-size: 3.6rem;
  line-height: 1.25;
  margin: 0;
}

.journal__heading-sub {
  color: var(--text-gray-muted);
  font-size: 1.8rem;
  line-height: 1.25;
  margin: 0.5rem 0 0;
}

/* ページャー */
.journal__pagination {
  margin-top: 14rem;
}

.journal__pagination ul {
  display: flex;
  gap: 1.5rem;
  justify-content: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.journal__pagination a,
.journal__pagination span {
  aspect-ratio: 1;
  border: 1px solid var(--green-primary);
  border-radius: 50%;
  color: var(--green-primary);
  display: grid;
  font-size: 2rem;
  line-height: 1;
  place-content: center;
  transition: opacity 0.3s;
  width: 5rem;
}

.journal__pagination a:hover {
  opacity: 0.5;
}

.journal__pagination .current {
  background-color: var(--green-primary);
  color: var(--white);
}

.journal__pagination .dots {
  align-items: center;
  align-self: center;
  aspect-ratio: auto;
  border: 0;
  color: var(--green-primary);
  display: flex;
  height: 5rem;
  justify-content: center;
  line-height: 1;
  width: auto;
}

/* 医院ブログ 一覧
-------------------------------------------*/
.journal__filter-row {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  justify-content: space-between;
  margin-bottom: 10rem;
  position: relative;
  z-index: 100;
}

.journal__selected-category {
  display: none;
}

.journal__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem 1.5rem;
}

.journal__filter,
.journal__select-button {
  align-items: center;
  border: 1px solid var(--green-tag-border);
  border-radius: 2.5rem;
  color: var(--green-tag-border);
  display: flex;
  font-size: 1.6rem;
  justify-content: center;
  line-height: 1.5;
  min-height: 5rem;
  padding: 0 3.9rem;
  transition: background-color 0.3s, color 0.3s;
  white-space: nowrap;
}

.journal__filter.is-current,
.journal__filter:hover,
.journal__select-button:hover,
.journal__select[open] .journal__select-button {
  background-color: var(--green-tag-border);
  color: var(--white);
}

.journal__selects {
  display: flex;
  flex-shrink: 0;
  gap: 2rem;
}

.journal__select {
  position: relative;
  width: 16rem;
}

.journal__select-button {
  background-color: var(--bg-green-pale);
  border-color: var(--bg-green-pale);
  color: var(--green-primary);
  cursor: pointer;
  list-style: none;
  padding: 0 1rem;
}

.journal__select-button::-webkit-details-marker {
  display: none;
}

.journal__select--category {
  display: none;
}

.journal__select--category .journal__select-button {
  background-color: var(--green-tag-border);
  border-color: var(--green-tag-border);
  color: var(--white);
}

.journal__select-list {
  background-color: var(--white);
  border-radius: 1rem;
  box-shadow: 0 0.3rem 1.2rem rgba(0, 0, 0, 0.08);
  left: 0;
  list-style: none;
  margin: 0;
  max-height: 23rem;
  overflow-y: auto;
  padding: 1.5rem 0;
  position: absolute;
  scrollbar-width: none;
  top: calc(100% + 1.5rem);
  width: 100%;
  z-index: 2;
}

.journal__select-list::-webkit-scrollbar {
  display: none;
}

.journal__select .journal__select-list > .ps__rail-y {
  background: transparent;
  bottom: auto !important;
  display: block;
  margin: 1.5rem 0 2rem;
  opacity: 1;
  right: 0.8rem !important;
  width: 2px;
}

.journal__select .journal__select-list .ps__thumb-y,
.journal__select .journal__select-list .ps__rail-y:hover > .ps__thumb-y,
.journal__select .journal__select-list .ps__rail-y:focus > .ps__thumb-y,
.journal__select .journal__select-list .ps__rail-y.ps--clicking .ps__thumb-y {
  background-color: #e8e3e1;
  border-radius: 0.1rem;
  height: 40px !important;
  right: 0;
  width: 2px;
}

.journal__select-list a {
  color: #393e40;
  display: block;
  font-size: 1.6rem;
  line-height: 2.5625;
  margin-inline: auto;
  max-width: calc(100% - 4rem);
  position: relative;
  text-align: center;
  width: -moz-fit-content;
  width: fit-content;
}

.journal__select--category .journal__select-list a::before,
.journal__select--archive .journal__select-list a::before {
  aspect-ratio: 1;
  background-color: transparent;
  border-radius: 50%;
  content: "";
  position: absolute;
  right: calc(100% + 1.2rem);
  top: 50%;
  transform: translateY(-50%);
  transition: background-color 0.3s;
  width: 0.7rem;
}

.journal__select--category .journal__select-list a:hover::before,
.journal__select--archive .journal__select-list a:hover::before {
  background-color: #c9e0d7;
}

.journal__select--category .journal__select-list a.is-current::before,
.journal__select--archive .journal__select-list a.is-current::before {
  background-color: var(--green-primary);
}

.journal__cards {
  display: grid;
  gap: 7rem;
  grid-template-columns: repeat(3, 1fr);
}

.journal-card__link {
  display: block;
}

.journal-card__image {
  aspect-ratio: 300/212;
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
}

.journal-card__image img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  transition: transform 0.3s;
}

.journal-card__body {
  padding: 1.6rem 1rem 0;
}

.journal-card__date {
  color: var(--gray-muted);
  display: block;
  font-size: 1.6rem;
  line-height: 1.875;
  transition: color 0.25s ease;
}

.journal-card__title {
  color: var(--base-color);
  display: -webkit-box;
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  transition: color 0.25s ease;
}

.journal-card__category {
  background-color: var(--bg-green-pale);
  border-radius: 0.3rem;
  color: var(--green-tag-border);
  font-size: 1.4rem;
  line-height: 2.1428571429;
  margin: 0.8rem 0 0;
  max-width: calc(16em + 3rem);
  overflow: hidden;
  padding: 0 1.5rem;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: -moz-fit-content;
  width: fit-content;
}

/* お知らせ 一覧
-------------------------------------------*/
.journal-card__link:focus-visible .journal-card__image img {
  transform: scale(1.05);
}

.journal-card__link:focus-visible .journal-card__date,
.journal-card__link:focus-visible .journal-card__title {
  color: var(--green-primary);
}
.journal--news .journal__heading {
  margin-bottom: 5.7rem;
}

.journal__news-list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  width: 85rem;
}

.journal__news-item {
  background-image: radial-gradient(circle, var(--border-light) 0.1rem, transparent 0.1rem);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.6rem 0.2rem;
}

.journal__news-link {
  align-content: center;
  align-items: baseline;
  display: grid;
  grid-template-columns: 11.4rem auto;
  min-height: 11rem;
  padding: 3rem 8rem 3rem 1rem;
  position: relative;
}

.journal__news-date {
  color: var(--gray-muted);
  font-size: 1.6rem;
  line-height: 1.875;
}

.journal__news-title {
  color: var(--base-color);
  font-size: 2rem;
  line-height: 2;
  max-width: 58rem;
}

.journal__news-link .c-arrow-circle {
  color: var(--green-tag-border);
  position: absolute;
  right: 1.1rem;
  top: 50%;
  transform: translateY(-50%);
  transition: color 0.3s;
  width: 3rem;
}

.journal__news-link:hover .c-arrow-circle {
  color: var(--green-primary);
}

/* 記事詳細
-------------------------------------------*/
.journal--single {
  padding-bottom: 17.6rem;
}

.journal--single .journal__heading {
  margin-bottom: 9.4rem;
}

.journal--single-blog .journal__heading-sub {
  font-size: 2.5rem;
}

.journal-article {
  margin-inline: auto;
  width: 83rem;
}

.journal-article__head {
  border-bottom: 1px solid var(--border-light);
  padding: 0 4rem 1.4rem;
}

.journal--single-news .journal-article__head {
  padding-bottom: 2.4rem;
}

.journal-article__date {
  color: var(--gray-muted);
  display: block;
  font-size: 1.6rem;
  line-height: 1.875;
}

.journal-article__category {
  background-color: var(--bg-green-pale);
  border-radius: 0.3rem;
  color: var(--green-tag-border);
  font-size: 1.4rem;
  line-height: 2.1428571429;
  margin: 1.3rem 0 0;
  max-width: calc(16em + 3rem);
  overflow: hidden;
  padding: 0 1.5rem;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: -moz-fit-content;
  width: fit-content;
}

.journal-article__title {
  color: var(--green-primary);
  font-size: 2.6rem;
  line-height: 2;
  margin: 1.2rem 0 0;
}

.journal-article__date + .journal-article__title {
  margin: 2rem 0 0;
}

.journal-article__image {
  margin: 7rem auto 0;
}

.journal-article__image img {
  border-radius: 2rem;
  display: block;
  width: 100%;
}

.journal-article__image--sub {
  width: 44.4rem;
}

.journal-article__image--notice {
  width: 75rem;
}

.journal-article__image--notice img {
  border-radius: 0;
}

/* 本文 */
.journal-article__body {
  color: var(--base-color);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 2;
  margin-top: 7rem;
  padding-inline: 4rem;
}

.journal-article__body > * {
  margin: 0;
}

.journal-article__body > * + * {
  margin-top: 2.8rem;
}

.journal-article__body img {
  height: auto;
  max-width: 100%;
}

.journal-article__body img.alignleft,
.journal-article__body figure.alignleft,
.journal-article__body .wp-caption.alignleft {
  float: left;
  margin: 0 3rem 2rem 0;
}

.journal-article__body img.aligncenter,
.journal-article__body figure.aligncenter,
.journal-article__body .wp-caption.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.journal-article__body img.alignright,
.journal-article__body figure.alignright,
.journal-article__body .wp-caption.alignright {
  float: right;
  margin: 0 0 2rem 3rem;
}

.journal-article__body figure:not(.alignleft):not(.alignright) {
  margin-inline: auto;
}

.journal-article__body h2 {
  color: var(--green-primary);
  font-size: 2.4rem;
  line-height: 2.0833333333;
  margin-top: 5.7rem;
}

.journal-article__body h3 {
  color: var(--green-primary);
  font-size: 2rem;
  line-height: 2.5;
  margin-top: 5rem;
}

.journal-article__body h2 + p {
  margin-top: 1.6rem;
}

.journal-article__body h3 + p {
  margin-top: 2rem;
}

.journal-article__body ul {
  list-style: none;
  margin-top: 4rem;
  padding: 0;
}

.journal-article__body ol {
  list-style: decimal;
  margin-top: 2.6rem;
  padding-left: 1.5em;
}

.journal-article__body li {
  padding-left: 1.8rem;
  position: relative;
}

.journal-article__body li + li {
  margin-top: 0.9rem;
}

.journal-article__body li::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: calc(1em - 0.4rem);
  width: 0.8rem;
}

.journal-article__body ol li {
  padding-left: 0;
}

.journal-article__body ol li::before {
  content: none;
}

.journal-article__body ul + p {
  margin-top: 4rem;
}

.journal-article__body > p:last-child {
  color: var(--text-green-black);
}

.journal-article__body a {
  text-decoration: underline;
  text-decoration-color: var(--green-primary);
  text-underline-offset: 0.6rem;
  transition: opacity 0.25s ease;
}

.journal-article__body strong,
.journal-article__body b {
  font-family: "FOT-筑紫A丸ゴシック Std E", sans-serif;
  font-weight: inherit;
}

.journal-article__body em {
  color: var(--pink-accent);
  font-style: normal;
}

.journal-article__body blockquote {
  background-color: var(--bg-green-pale);
  border-left: 0.4rem solid var(--green-tag-border);
  padding: 2rem 2.5rem;
}

.journal-article__body table {
  border-collapse: collapse;
  margin-top: 0;
  min-width: 100%;
  white-space: nowrap;
  width: -moz-max-content;
  width: max-content;
}

.journal-article__table + .journal-article__table {
  margin-top: 2rem;
}

.journal-article__body th,
.journal-article__body td {
  border: 1px solid var(--border-light);
  font-weight: inherit;
  padding: 1rem;
  text-align: left;
}

.journal-article__body th {
  background-color: var(--bg-green-pale);
}

/* 表：SP は左の列（項目）を固定して横スクロール */
.journal-article__table {
  margin-top: 4rem;
  overflow-x: auto;
  overflow-y: hidden;
}

.journal-article__table.scroll-hint {
  overflow-x: auto !important;
  overflow-y: hidden !important;
}

.journal-article__body ul + .journal-article__table {
  margin-top: 4rem;
}

.journal-article__table + p {
  margin-top: 4rem;
}

.journal-article__table table {
  border-collapse: separate;
  border-spacing: 0;
  font-size: 1.6rem;
  line-height: 2;
}

.journal-article__table th,
.journal-article__table td {
  background-color: var(--white);
  border-bottom: 1px solid var(--border-light);
  border-right: 1px solid var(--border-light);
  font-weight: inherit;
  padding: 1rem;
  text-align: center;
  white-space: nowrap;
  width: 10.4rem;
}

.journal-article__table tr:first-child > * {
  border-top: 1px solid var(--border-light);
}

.journal-article__table tr > :first-child {
  border-left: 1px solid var(--border-light);
}

.journal-article__table tr:first-child > :first-child {
  border-top-left-radius: 1rem;
}

.journal-article__table tr:first-child > :last-child {
  border-top-right-radius: 1rem;
}

.journal-article__table tr:last-child > :first-child {
  border-bottom-left-radius: 1rem;
}

.journal-article__table tr:last-child > :last-child {
  border-bottom-right-radius: 1rem;
}

.journal-article__table th {
  background-color: var(--green-tag-border);
  color: var(--white);
}

.journal-article__table tr:first-child th:not(:first-child) {
  background-color: var(--bg-page-soft);
  color: var(--green-tag-border);
}

/* 次の投稿・前の投稿・一覧に戻る */
.journal-article__table tr.is-table-heading > *,
.journal-article__table .is-table-heading {
  background-color: var(--green-tag-border) !important;
  color: var(--white) !important;
}

.journal-article__table tr.is-table-subheading > *,
.journal-article__table .is-table-subheading {
  background-color: var(--bg-page-soft) !important;
  color: var(--green-tag-border) !important;
}

.journal-article__table tr.is-table-heading > .is-table-subheading,
.journal-article__table tr.is-table-subheading > .is-table-heading,
.journal-article__table .is-table-heading.is-table-subheading {
  background-color: var(--green-tag-border) !important;
  color: var(--white) !important;
}

.journal-article__nav {
  align-items: flex-start;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  margin: 12.4rem 0 0 -10.5rem;
  width: 104rem;
}

.journal-article__related {
  color: var(--base-color);
  display: grid;
  gap: 0 3rem;
  grid-template-columns: 3rem 23rem;
}

.journal-article__related--previous {
  grid-template-columns: 23rem 3rem;
  justify-self: end;
}

.journal-article__related--next {
  justify-self: start;
}

.journal-article__direction {
  align-items: center;
  color: var(--green-primary);
  display: flex;
  flex-direction: column;
  font-size: 1.6rem;
  gap: 1.5rem;
  line-height: 1.125;
}

.journal-article__direction-text {
  letter-spacing: 0;
  writing-mode: vertical-rl;
}

.journal-article__related--next .journal-article__direction {
  grid-row: 1/3;
}

.journal-article__related--previous .journal-article__direction {
  grid-column: 2;
  grid-row: 1/3;
  margin-top: 1rem;
}

.journal-article__related--previous .c-arrow-circle {
  order: -1;
}

.journal-article__direction .c-arrow-circle {
  color: var(--green-tag-border);
  transition: color 0.3s;
  width: 3rem;
}

.journal-article__related--next .c-arrow-circle {
  transform: rotate(180deg);
}

.journal-article__related:hover .c-arrow-circle {
  color: var(--green-primary);
}

.journal-article__thumb {
  aspect-ratio: 230/163;
  border-radius: 1rem;
  display: block;
  overflow: hidden;
}

.journal-article__thumb img {
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  transition: transform 0.3s;
}

.journal-article__related:hover .journal-article__thumb img {
  transform: scale(1.05);
}

.journal-article__related-body {
  display: block;
  font-size: 1.6rem;
  line-height: 2;
  padding: 1.8rem 1rem 0;
}

.journal-article__related--previous .journal-article__related-body {
  grid-column: 1;
}

.journal-article__related-body time {
  display: block;
  line-height: 1.875;
}

.journal-article__related-title {
  display: -webkit-box;
  margin-top: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.journal-article__related:hover time,
.journal-article__related:hover .journal-article__related-title {
  text-decoration: underline;
  text-decoration-color: var(--green-primary);
}

.journal-article__back {
  color: var(--green-primary);
  font-size: 1.6rem;
  justify-self: center;
  line-height: 1.875;
  margin-top: 6.6rem;
}

.journal-article__back:hover {
  text-decoration: underline;
}

/* お知らせ詳細：サムネイルなし */
.journal--single-news .journal-article__related {
  gap: 0 1.5rem;
  grid-template-columns: 3rem 21rem;
}

.journal--single-news .journal-article__related--previous {
  gap: 0;
  grid-template-columns: 21rem 3rem;
}

.journal--single-news .journal-article__direction {
  flex-direction: row;
  grid-row: auto;
  line-height: 1.875;
  margin-top: 0;
}

.journal--single-news .journal-article__direction-text {
  letter-spacing: 0.025em;
  writing-mode: horizontal-tb;
}

.journal--single-news .journal-article__related--next .journal-article__direction {
  grid-column: 1/3;
}

.journal--single-news .journal-article__related--previous .c-arrow-circle {
  order: 0;
}

.journal--single-news .journal-article__related--previous .journal-article__direction {
  flex-direction: row;
  grid-column: 1/3;
  justify-content: flex-end;
}

.journal--single-news .journal-article__related-body {
  grid-column: 2;
  padding: 0.8rem 1.5rem 0 0;
}

.journal--single-news .journal-article__related--previous .journal-article__related-body {
  grid-column: 1;
}

.journal--single-news .journal-article__back {
  margin-top: 0;
}

.journal-image-modal {
  align-items: center;
  background-color: rgba(0, 0, 0, 0.8);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 2rem;
  position: fixed;
  z-index: 1000;
}

.journal-image-modal[hidden] {
  display: none;
}

.journal-image-modal__dialog {
  max-height: 100%;
  max-width: min(100%, 110rem);
  position: relative;
}

.journal-image-modal__image {
  display: block;
  max-height: calc(100vh - 4rem);
  max-width: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}

.journal-image-modal__close {
  aspect-ratio: 1;
  background-color: var(--green-primary);
  border: 1px solid var(--white);
  border-radius: 50%;
  font-size: 0;
  position: absolute;
  right: -1.2rem;
  top: -1.2rem;
  width: 3.6rem;
}

.journal-image-modal__close::before,
.journal-image-modal__close::after {
  background-color: var(--white);
  content: "";
  height: 1px;
  left: 50%;
  position: absolute;
  top: 50%;
  width: 2rem;
}

.journal-image-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.journal-image-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

body.is-journal-image-modal-open {
  overflow: hidden;
}

/* -------------------------------------------*/
.p-maternity {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-maternity__intro {
  padding-bottom: 12.4rem;
}

.p-maternity__prevention-image img,
.p-maternity__postpartum-box > figure img,
.p-maternity__advisor-figure img {
  display: block;
  width: 100%;
}

/* マイナス1歳からのむし歯予防
-------------------------------------------*/
.p-maternity__prevention {
  padding: 13.3rem 0 9.1rem;
}

.p-maternity__prevention-top {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin-top: 6.3rem;
}

.p-maternity__prevention-content {
  width: 62.8rem;
}

.p-maternity__prevention-content > header,
.p-maternity__prevention-content > p {
  padding-inline: 1rem;
}

.p-maternity__prevention-image {
  flex: 0 0 35.2rem;
  margin: 0;
  width: 35.2rem;
}

.p-maternity__prevention-image img {
  border-radius: 1.5rem;
}

.p-maternity__prevention-content > p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.8rem 0 0;
}

.p-maternity__importance {
  margin-top: 3.2rem;
  padding: 4rem 5rem 4.2rem;
  position: relative;
  z-index: 0;
}

.p-maternity__importance::before {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-maternity__importance h4 {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.1;
  margin: 0;
}

.p-maternity__importance > p,
.p-maternity__importance dd {
  font-size: 1.6rem;
  line-height: 2;
}

.p-maternity__importance > p {
  margin: 0;
}

.p-maternity__importance dl {
  margin: 2.5rem 0 0;
}

.p-maternity__importance dl > div {
  padding-left: 1.8rem;
  position: relative;
}

.p-maternity__importance dl > div + div {
  margin-top: 1.5rem;
}

.p-maternity__importance dl > div::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 1.2rem;
  width: 0.8rem;
}

.p-maternity__importance dt {
  color: var(--base-color);
  font-size: 1.8rem;
  line-height: 1.7777777778;
}

.p-maternity__importance dd {
  margin: 0.5rem 0 0;
}

/* 妊娠周期に応じた歯科診療
-------------------------------------------*/
.p-maternity__period {
  margin-top: 9.1rem;
}

.p-maternity__period > .p-maternity__section-head {
  padding-inline: 1rem;
}

.p-maternity__period .c-treatment-heading__text {
  margin-top: 1.8rem;
}

.p-maternity__period-list {
  margin-top: 3.2rem;
}

.p-maternity__period-item {
  align-items: center;
  display: flex;
  gap: 3.9rem;
  position: relative;
}

.p-maternity__period-item + .p-maternity__period-item {
  margin-top: 5.6rem;
}

.p-maternity__period-item:not(:last-child)::after {
  background-color: var(--green-primary);
  height: 1.5rem;
  left: 14.75rem;
  position: absolute;
  top: calc(100% + 2rem);
  width: 2rem;
  -webkit-mask: url("../images/common/icon_border_arrow.svg") center/contain no-repeat;
  content: "";
  mask: url("../images/common/icon_border_arrow.svg") center/contain no-repeat;
}

.p-maternity__period-item h4 {
  align-items: center;
  color: var(--green-heading);
  display: flex;
  flex: 0 0 31.5rem;
  flex-direction: column;
  font-size: 2rem;
  justify-content: center;
  line-height: 1.75;
  margin: 0;
  min-height: 12rem;
  padding: 2.5rem 2rem;
  position: relative;
  z-index: 0;
}

.p-maternity__period-item h4::before {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-maternity__period-item h4 small {
  display: block;
  font-size: inherit;
}

.p-maternity__period-item p {
  flex: 0 1 61rem;
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-maternity__period-note {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2;
  margin-top: 9rem;
  text-align: center;
}

.p-maternity__period-note p {
  margin: 0;
}

.p-maternity__period-note p + p {
  margin-top: 2rem;
}

/* 出産後のアドバイス
-------------------------------------------*/
.p-maternity__postpartum {
  padding-bottom: 13.3rem;
}

.p-maternity__postpartum-box {
  align-items: start;
  display: grid;
  grid-template-columns: 47.8rem 29.6rem;
  -moz-column-gap: 6rem;
  column-gap: 6rem;
  margin-inline: auto;
  padding: 6.1rem 8rem 7rem;
  position: relative;
  width: 99.4rem;
  z-index: 0;
}

.p-maternity__postpartum-box::before {
  background-color: var(--bg-warm-light);
  border-radius: 1rem;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-maternity__postpartum-content h2 {
  color: var(--text-brown);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-maternity__postpartum-content p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.8rem 0 0;
}

.p-maternity__postpartum-box > figure {
  margin: -10rem 0 0;
}

.p-maternity__postpartum-box > figure img {
  border-radius: 1.5rem;
}

.p-maternity__baby-tip {
  background-color: var(--white);
  border: 0.2rem dotted var(--text-brown);
  border-radius: 1rem;
  grid-column: 1/-1;
  margin: 5rem 0 0 -1rem;
  padding: 3.1rem 4rem 3rem;
}

.p-maternity__baby-tip h3 {
  color: var(--text-brown);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: 0;
  padding-left: 1.8rem;
  position: relative;
}

.p-maternity__baby-tip h3::before {
  aspect-ratio: 1;
  background-color: var(--maternity-tip-dot);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 1.2rem;
  width: 0.8rem;
}

.p-maternity__baby-tip p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0.5rem 0 0;
}

/* 女性健康アドバイザー
-------------------------------------------*/
.p-maternity__advisor {
  padding-bottom: 13.3rem;
}

.p-maternity__advisor-grid {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  margin: 6.2rem auto 0;
  width: 96.8rem;
}

.p-maternity__advisor-figure {
  flex: 0 0 34.5rem;
  margin: 0;
  position: relative;
}

.p-maternity__advisor-figure img {
  border-radius: 1.5rem;
}

.p-maternity__advisor-name {
  align-items: center;
  background-color: var(--green-recruit-alpha-90);
  border-radius: 0.5rem;
  box-shadow: 0 0 0.6rem var(--shadow-facilities-title);
  color: var(--white);
  display: flex;
  flex-direction: column;
  font-size: 2.2rem;
  height: 8.6rem;
  justify-content: center;
  line-height: 1.4545454545;
  margin: -3rem auto 0;
  position: relative;
  width: 21.4rem;
}

.p-maternity__advisor-name small {
  font-size: 1.6rem;
  line-height: 1.5;
}

.p-maternity__advisor-name small span {
  margin-left: 1rem;
}

.p-maternity__advisor-body h3 {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.875;
  margin: 0;
}

.p-maternity__advisor-body p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.7rem 0 0;
}

.p-maternity__advisor-body p + p {
  margin-top: 1.9rem;
}

/* よくあるお悩み
-------------------------------------------*/
.p-maternity__faq {
  padding-bottom: 20rem;
}

.p-maternity__faq-list {
  margin: 7.2rem auto 0;
  width: 84.5rem;
}

.p-maternity__faq-list > div {
  padding: 3.2rem 2rem 3.5rem 4rem;
  position: relative;
  z-index: 0;
}

.p-maternity__faq-list > div + div {
  margin-top: 1.5rem;
}

.p-maternity__faq-list > div::before {
  background-color: var(--bg-page-soft);
  border-radius: 0.5rem;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-maternity__faq-list dt,
.p-maternity__faq-list dd {
  align-items: center;
  display: flex;
  gap: 1.5rem;
  margin: 0;
}

.p-maternity__faq-list dt {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.1;
}

.p-maternity__faq-list dd {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 1.2rem;
}

.p-maternity__faq-list span {
  align-items: center;
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  color: var(--white);
  display: inline-flex;
  flex-shrink: 0;
  font-size: 1.4rem;
  justify-content: center;
  letter-spacing: 0;
  line-height: 1;
  width: 3.6rem;
}

.p-maternity__faq-list dd span {
  background-color: var(--white);
  border: 1px solid var(--green-tag-border);
  color: var(--green-tag-border);
}

/* -------------------------------------------*/
.p-oral-surgery {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-oral-surgery__intro {
  padding-bottom: 12.4rem;
  position: relative;
}

.p-oral-surgery__body p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-oral-surgery__body p + p {
  margin-top: 2.4rem;
}

/* こんな症状でお悩みではありませんか？
-------------------------------------------*/
.p-oral-surgery__symptoms {
  padding-bottom: 5.4rem;
  position: relative;
  z-index: 0;
}

.p-oral-surgery__symptoms::before {
  background-color: var(--bg-page-soft);
  border-radius: 0 2rem 2rem 0;
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  top: 0;
  width: min(100%, 126rem);
  z-index: -1;
}

.p-oral-surgery__symptoms-inner {
  align-items: flex-start;
  display: flex;
  gap: 8.8rem;
  padding-top: 6.4rem;
}

.p-oral-surgery__symptoms-content {
  margin-left: 3rem;
  width: 60rem;
}

.p-oral-surgery__symptoms-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 0;
}

.p-oral-surgery__symptoms-list {
  --check-list-rows: 3;
  --check-list-column: 30.2rem;
  margin-top: 1.9rem;
}

.p-oral-surgery__symptoms-text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 3rem 0 0;
}

.p-oral-surgery__symptoms-image {
  border-radius: 1.5rem;
  flex: 0 0 24.8rem;
  margin: -10.4rem 0 0;
  overflow: hidden;
  width: 24.8rem;
}

.p-oral-surgery__symptoms-image img,
.p-oral-surgery__image img,
.p-oral-surgery__card figure img {
  display: block;
  width: 100%;
}

/* 口腔がんについて
-------------------------------------------*/
.p-oral-surgery__section--cancer,
.p-oral-surgery__section--screening,
.p-oral-surgery__results {
  padding-top: 13.3rem;
}

.p-oral-surgery__split {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  margin: 6.2rem auto 0;
  max-width: 100%;
  width: 97.3rem;
}

.p-oral-surgery__content {
  width: 56.8rem;
}

.p-oral-surgery__content-head {
  margin-bottom: 2.6rem;
}

.p-oral-surgery__image {
  border-radius: 1.5rem;
  flex: 0 0 34.5rem;
  margin: 0;
  overflow: hidden;
  width: 34.5rem;
}

/* 口腔がんの初期症状
-------------------------------------------*/
.p-oral-surgery__check {
  background-color: var(--bg-warm-light);
  border-radius: 0.5rem;
  margin: 4.4rem auto 0;
  max-width: 100%;
  padding: 4.3rem 0 4.2rem;
  width: 75rem;
}

.p-oral-surgery__check-head {
  text-align: center;
}

.p-oral-surgery__check-title {
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: 0;
}

.p-oral-surgery__check-lead {
  color: var(--text-brown);
  font-size: 1.6rem;
  line-height: 2;
  margin: 1rem 0 0;
}

.p-oral-surgery__check-list {
  display: grid;
  gap: 0.4rem 0;
  grid-auto-flow: column;
  grid-template-columns: 34.6rem auto;
  grid-template-rows: repeat(6, auto);
  list-style: none;
  margin: 0.9rem 0 0 9.5rem;
  padding: 0;
}

.p-oral-surgery__check-list li {
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 1.8rem;
  position: relative;
}

.p-oral-surgery__check-list li::before {
  aspect-ratio: 1;
  background-color: var(--maternity-tip-dot);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 1.2rem;
  width: 0.8rem;
}

/* 当院で行う口腔がんの検診
-------------------------------------------*/
.p-oral-surgery__screening-head {
  margin-top: 6.3rem;
  text-align: center;
}

.p-oral-surgery__screening-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-oral-surgery__screening-lead {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.8rem 0 0;
}

.p-oral-surgery__tests {
  margin: 4.2rem auto 0;
  max-width: 100%;
  width: 90rem;
}

.p-oral-surgery__tests-row {
  display: grid;
  grid-template-columns: 26rem 56rem;
  -moz-column-gap: 4rem;
  border-top: 1px solid var(--border-light);
  column-gap: 4rem;
}

.p-oral-surgery__tests-row:last-child {
  border-bottom: 1px solid var(--border-light);
}

.p-oral-surgery__tests dt {
  align-items: center;
  border-top: 1px solid var(--green-heading);
  color: var(--green-heading);
  display: flex;
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: -0.1rem 0;
  padding-left: 2rem;
}

.p-oral-surgery__tests-row:last-child dt {
  border-bottom: 1px solid var(--green-heading);
}

.p-oral-surgery__tests dd {
  margin: 0;
  padding: 2.3rem 0 2.1rem;
}

.p-oral-surgery__tests dd p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-oral-surgery__tests .p-oral-surgery__tests-note {
  margin-top: 0.5rem;
  padding-left: 2.1rem;
  position: relative;
}

.p-oral-surgery__tests-mark {
  left: 0;
  position: absolute;
  top: 0;
}

/* その他口腔外科で対応する主な治療内容
-------------------------------------------*/
.p-oral-surgery__section--treatments {
  padding-top: 13.4rem;
}

.p-oral-surgery__cards {
  display: grid;
  gap: 6.4rem 8rem;
  grid-template-columns: repeat(2, 35rem);
  justify-content: center;
  margin-top: 7.2rem;
}

.p-oral-surgery__card figure {
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
}

.p-oral-surgery__card h3 {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: 2.3rem 1rem 0;
  padding-left: 1.8rem;
  position: relative;
}

.p-oral-surgery__card h3::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 1.2rem;
  width: 0.8rem;
}

.p-oral-surgery__card > p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0.6rem 1rem 0;
}

.p-oral-surgery__card > .p-oral-surgery__card-link {
  margin: 2.4rem 0 0 1rem;
  width: 28.5rem;
}

.p-oral-surgery__card-link .c-btn {
  width: 100%;
}

/* 治療実績（SP は左列固定の横スクロール）
-------------------------------------------*/
.p-oral-surgery__results {
  padding-bottom: 20rem;
}

.p-oral-surgery__results-table-wrap {
  margin: 5.6rem auto 0;
  max-width: 100%;
  width: 100rem;
}

.p-oral-surgery__results th,
.p-oral-surgery__results td {
  padding: 0 0 0 2rem;
  text-align: left;
  vertical-align: middle;
}

.p-oral-surgery__results tr > :first-child {
  width: 28.4rem;
}

.p-oral-surgery__results thead tr,
.p-oral-surgery__results tbody tr {
  background-color: var(--white);
}

.p-oral-surgery__results thead :is(th, td) {
  border-bottom: 1px solid var(--gray-muted);
}

.p-oral-surgery__results thead th:nth-child(2) {
  width: 20.4rem;
}

.p-oral-surgery__results thead th:nth-child(3),
.p-oral-surgery__results thead th:nth-child(4) {
  width: 20.3rem;
}

/* -------------------------------------------*/
.p-orthodontics {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-orthodontics img {
  display: block;
  width: 100%;
}

.p-orthodontics__intro {
  padding-bottom: 12.4rem;
  position: relative;
}

/* 2名の矯正歯科医
-------------------------------------------*/
.p-orthodontics__doctors {
  padding: 7.1rem 0 8rem;
  position: relative;
  z-index: 0;
}

.p-orthodontics__doctors::before {
  background-color: var(--bg-page-soft);
  border-radius: 0 2rem 2rem 0;
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  right: calc(50% - 57.7rem);
  top: 0;
  z-index: -1;
}

.p-orthodontics__doctors-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-orthodontics__doctors-lead {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.8rem 0 0;
}

.p-orthodontics__doctor-list {
  background-color: var(--white);
  border-radius: 1rem;
  display: flex;
  gap: 7rem;
  margin-top: 4.2rem;
  padding: 5rem 7rem 4.1rem;
  width: 91rem;
}

.p-orthodontics__doctor {
  width: 35rem;
}

.p-orthodontics__doctor-image {
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
}

.p-orthodontics__doctor-name {
  background-color: var(--green-recruit-alpha-90);
  border-radius: 0.5rem;
  box-shadow: 0 0 0.6rem var(--shadow-facilities-title);
  color: var(--white);
  height: 8.6rem;
  margin: -3rem auto 0;
  padding-top: 1.2rem;
  position: relative;
  text-align: center;
  width: 19.4rem;
}

.p-orthodontics__doctor-name span {
  display: block;
  font-size: 1.6rem;
  line-height: 2;
}

.p-orthodontics__doctor-name h3 {
  font-size: 2.2rem;
  line-height: 2.0454545455;
  margin: -1rem 0 0;
}

.p-orthodontics__doctor-career-title {
  background-image: radial-gradient(circle, #5d898d 0.15rem, transparent 0.15rem);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4' viewBox='0 0 8 4'%3E%3Ccircle cx='4' cy='2' r='1.5' fill='%235D898D'/%3E%3C/svg%3E");
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.8rem 0.3rem;
  background-size: 0.8rem 0.4rem;
  color: var(--green-heading);
  font-size: 1.8rem;
  margin: 2.4rem 2rem 0 1rem;
  padding: 0 1rem 1.3rem;
}

.p-orthodontics__doctor-career {
  list-style: none;
  margin: 1.8rem 0 0;
  padding: 0 0 0 1.5rem;
}

.p-orthodontics__doctor-career li {
  font-size: 1.6rem;
  line-height: 2;
}

/* 当院で行う矯正歯科治療
-------------------------------------------*/
.p-orthodontics__treatment {
  padding-top: 13.3rem;
}

.p-orthodontics__treatment-lead,
.p-orthodontics__method {
  margin-inline: auto;
  width: 89rem;
}

.p-orthodontics__treatment-lead {
  margin-top: 6.3rem;
}

.p-orthodontics__treatment-lead-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-orthodontics__treatment-lead p,
.p-orthodontics__method-text p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-orthodontics__treatment-lead p {
  margin-top: 1.9rem;
}

.p-orthodontics__treatment-lead .p-orthodontics__note {
  margin-top: 0;
  padding-left: 2.1rem;
  text-indent: -2.1rem;
}

.p-orthodontics__method {
  margin-top: 8.3rem;
}

.p-orthodontics__method-body {
  --media-image-width: 40.5rem;
}

.p-orthodontics__method-text p:not(.p-orthodontics__method-lead) {
  margin-top: 0.7rem;
  width: 38.5rem;
}

.p-orthodontics__method-text h4 {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 2.5rem 0 0;
  padding-left: 1.8rem;
  position: relative;
}

.p-orthodontics__method-text h4::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0.8rem;
}

.p-orthodontics__method-image {
  border-radius: 2rem;
}

/* 矯正歯科治療費用
-------------------------------------------*/
.p-orthodontics__price {
  padding: 12.5rem 0 20rem;
}

.p-orthodontics__price-table {
  margin: 7rem auto 0;
  width: 91rem;
}

.p-orthodontics__price-table .c-treatment-table__table {
  border-top: 1px solid var(--border-light);
  table-layout: fixed;
}

.p-orthodontics__price-table th,
.p-orthodontics__price-table td {
  padding: 2.2rem 2rem 2.3rem;
}

.p-orthodontics__price-table th {
  white-space: nowrap;
  width: 16.6rem;
}

.p-orthodontics__price-table .p-orthodontics__price-partial,
.p-orthodontics__price-table .p-orthodontics__price-partial + td {
  padding-bottom: 2.1rem;
  padding-top: 2.4rem;
}

.p-orthodontics__price-partial small {
  font-size: 1.4rem;
  margin-left: 0.9rem;
}

.p-orthodontics__price-stage:not(:only-child) {
  background-image: radial-gradient(circle, var(--border-light) 0.1rem, transparent 0.1rem);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.6rem 0.2rem;
  border-bottom: 0;
}

.p-orthodontics__price-stage:only-child {
  padding-bottom: 2.1rem;
}

.p-orthodontics__price-label {
  float: left;
}

.p-orthodontics__price-amounts {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.p-orthodontics__price-notes {
  list-style: none;
  margin: 4.3rem auto 0;
  padding: 0 2rem;
  width: 91rem;
}

.p-orthodontics__price-notes li {
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 2.1rem;
  position: relative;
}

.p-orthodontics__price-notes li::before {
  content: "※";
  left: 0;
  position: absolute;
  top: 0;
}

/* リスク・副作用（見た目は c-treatment-risk）
-------------------------------------------*/
.p-orthodontics__risk {
  margin: 13.1rem -1.4rem 0 -1.3rem;
}

/* -------------------------------------------*/
.p-pediatric {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-pediatric__intro {
  padding-bottom: 12.4rem;
}

/* 小児歯科で対応する治療内容
-------------------------------------------*/
.p-pediatric__treatments {
  padding: 13.3rem 0;
}

.p-pediatric__care-intro {
  margin-top: 6.3rem;
  text-align: center;
}

.p-pediatric__care-intro .c-treatment-heading__text {
  margin-top: 1.8rem;
}

.p-pediatric__treatment-list {
  margin: 4.2rem auto 0;
  width: 92rem;
}

.p-pediatric__treatment-image {
  margin: 14rem auto 0;
  width: 103.2rem;
}

.p-pediatric__treatment-image img {
  border-radius: 0.5rem;
  display: block;
  width: 100%;
}

/* ご両親へのお願い
-------------------------------------------*/
.p-pediatric__parents {
  padding-bottom: 20rem;
}

.p-pediatric__parents-copy {
  margin: 6.3rem auto 0;
  text-align: center;
  width: 70rem;
}

.p-pediatric__parents-copy h3 {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-pediatric__parents-copy p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.9rem 0 0;
}

.p-pediatric__parents-copy h3 + p {
  margin-top: 1.8rem;
}

.p-pediatric__parent-panels {
  margin-top: 10.2rem;
}

.p-pediatric__parent-panel {
  --parent-panel-bg: var(--bg-page-soft);
  --parent-panel-ribbon: var(--ribbon-mint);
  --parent-panel-ring: #d3edea;
  margin-left: 8.6rem;
  padding: 5.1rem 8rem 5.2rem 23.1rem;
  position: relative;
  width: 91rem;
  z-index: 0;
}

.p-pediatric__parent-panel--home {
  --parent-panel-bg: var(--bg-pediatric-warm);
  --parent-panel-ribbon: var(--ribbon-yellow);
  --parent-panel-ring: #fae8c0;
}

.p-pediatric__parent-panel::before {
  background-color: var(--parent-panel-bg);
  border-radius: 1rem;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-pediatric__parent-panel + .p-pediatric__parent-panel {
  margin-top: 11rem;
}

.p-pediatric__parent-panel > header {
  align-items: center;
  background-color: var(--parent-panel-ribbon);
  border-radius: 0.5rem;
  box-shadow: 0 0 0.6rem var(--shadow-facilities-title);
  display: flex;
  height: 8.7rem;
  left: -4.2rem;
  padding-left: 7rem;
  position: absolute;
  top: -3rem;
  width: 18.2rem;
}

.p-pediatric__parent-panel > header::before {
  aspect-ratio: 30/27;
  background: url("../images/pediatric/icon-02.svg") center/contain no-repeat;
  content: "";
  left: 3rem;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
}

.p-pediatric__parent-panel--home > header::before {
  background-image: url("../images/pediatric/icon-01.svg");
}

.p-pediatric__parent-panel > header h3 {
  color: var(--white);
  font-size: 2rem;
  line-height: 2.25;
  margin: 0;
}

.p-pediatric__parent-panel dl {
  margin: 0;
}

.p-pediatric__parent-panel dl > div + div {
  margin-top: 2.8rem;
}

.p-pediatric__parent-panel dt {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.25;
  position: relative;
}

.p-pediatric__parent-panel--home dt {
  color: var(--orange);
}

.p-pediatric__parent-panel dt::before {
  aspect-ratio: 1;
  border: 0.4rem solid var(--parent-panel-ring);
  border-radius: 50%;
  content: "";
  left: -4.1rem;
  position: absolute;
  top: 0.95rem;
  width: 2.6rem;
}

.p-pediatric__parent-panel dd {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0.4rem 0 0;
}

/* -------------------------------------------*/
.p-periodontal {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-periodontal__intro {
  padding-bottom: 12.4rem;
  position: relative;
}

.p-periodontal__body p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-periodontal__body p + p {
  margin-top: 1.9rem;
}

/* 段階に応じた、ベストな治療法を
-------------------------------------------*/
.p-periodontal__summary-inner {
  align-items: flex-start;
  display: flex;
  gap: 8rem;
  padding-bottom: 8rem;
  padding-top: 7.1rem;
  position: relative;
  z-index: 0;
}

.p-periodontal__summary-inner::before {
  background-color: var(--bg-page-soft);
  border-radius: 0 2rem 2rem 0;
  bottom: 0;
  content: "";
  left: 0;
  margin: 0 0 0 calc(50% - 50vw);
  position: absolute;
  right: 3.6rem;
  top: 0;
  z-index: -1;
}

.p-periodontal__summary-image {
  border-radius: 1.5rem;
  flex: 0 0 35.5rem;
  margin: -12.1rem 0 0 4rem;
  overflow: hidden;
  width: 35.5rem;
}

.p-periodontal__summary-image img {
  display: block;
  width: 100%;
}

.p-periodontal__summary-content {
  width: 63.5rem;
}

.p-periodontal__section-head {
  margin-bottom: 2.6rem;
}

/* 治療の流れ
-------------------------------------------*/
.p-periodontal__flow {
  padding: 13.7rem 0 18.4rem;
}

.p-periodontal__steps .c-treatment-steps__item:nth-child(n) {
  padding-bottom: 9.7rem;
}

.p-periodontal__steps .c-treatment-steps__item:nth-child(3) {
  padding-bottom: 8.1rem;
}

.p-periodontal__steps .c-treatment-steps__item:last-child {
  padding-bottom: 0;
}

.p-periodontal__steps .c-treatment-steps__item:not(:last-child)::before {
  bottom: 1.7rem;
  top: 5.8rem;
}

.p-periodontal__steps .c-treatment-steps__body {
  padding-top: 1.3rem;
}

.p-periodontal__steps .c-treatment-steps__body > p {
  margin: 0;
}

.p-periodontal__steps .c-treatment-steps__body > p + p {
  margin-top: 1.9rem;
}

/* 検査項目（左：項目名／右：説明）
-------------------------------------------*/
.p-periodontal__tests {
  background-color: var(--bg-warm-light);
  border-radius: 0.5rem;
  display: grid;
  gap: 2rem;
  margin: 0;
  padding: 3rem;
}

.p-periodontal__tests > div {
  align-items: center;
  display: grid;
  gap: 2.5rem;
  grid-template-columns: 19rem 1fr;
}

.p-periodontal__tests dt,
.p-periodontal__tests dd {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-periodontal__tests dt {
  align-items: center;
  background-color: var(--white);
  border-radius: 0.5rem;
  color: var(--text-brown);
  display: flex;
  justify-content: center;
  min-height: 5rem;
  text-align: center;
}

.p-periodontal__tests dt:has(br) {
  line-height: 1.375;
}

.p-periodontal__tests--small {
  margin-top: 2.4rem;
}

.p-periodontal__tests--small > div {
  grid-template-columns: 22rem 1fr;
}

.p-periodontal__tests--small dt {
  min-height: 8rem;
}

/* リグロスを使用したフラップ手術
-------------------------------------------*/
.p-periodontal__note {
  background-color: var(--bg-warm-light);
  border-radius: 0.5rem;
  margin-top: 2.4rem;
  padding: 3.2rem 4rem 4rem;
}

.p-periodontal__note h3 {
  color: var(--text-brown);
  font-size: 1.6rem;
  line-height: 2;
  margin: 0 0 1.7rem;
}

.p-periodontal__note > p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-periodontal__note-detail {
  background-color: var(--white);
  border-radius: 0.5rem;
  margin-top: 1.9rem;
  padding: 3.2rem 4rem 2.4rem;
}

.p-periodontal__note-detail h4 {
  color: var(--text-brown);
  font-size: 1.6rem;
  line-height: 2;
  margin: 0 0 1.7rem;
  padding-left: 1.8rem;
  position: relative;
}

.p-periodontal__note-detail h4::before {
  aspect-ratio: 1;
  background-color: var(--maternity-tip-dot);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0.8rem;
}

.p-periodontal__note-detail p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-periodontal__note-detail p + p {
  margin-top: 1.9rem;
}

/* プライバシーポリシー
-------------------------------------------*/
.p-policy {
  color: var(--base-color);
  overflow: hidden;
  padding-bottom: 19.2rem;
  width: 100%;
}

.p-policy :where(h1, h2, p, ol, address) {
  margin: 0;
}

.p-policy img {
  display: block;
  width: 100%;
}

/* ヒーロー（採用情報・アクセス等と同じ寸法） */
.p-policy__hero {
  padding-top: 12.6rem;
  text-align: center;
}

.p-policy__hero-image {
  border-radius: 4rem;
  display: block;
  margin: 0 auto;
  max-width: 130rem;
  overflow: hidden;
  width: calc(100% - 6.6rem);
}

.p-policy__title {
  margin-top: 7.6rem;
}

.p-policy__title h1 {
  color: var(--green-heading);
  font-size: 3.6rem;
  line-height: 1.25;
}

.p-policy__title p {
  color: var(--text-gray-muted);
  font-size: 1.8rem;
  line-height: 1.25;
  margin-top: 0.5rem;
}

/* 本文 */
.p-policy__body {
  --content-width: 85rem;
  padding-top: 8.7rem;
}

.p-policy__body section + section {
  margin-top: 4.3rem;
}

.p-policy__body h2 {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.1;
}

.p-policy__body :where(p, li, address) {
  font-size: 1.6rem;
  font-style: normal;
  line-height: 2;
}

.p-policy__body h2 + * {
  margin-top: 1.9rem;
}

.p-policy__body ol {
  list-style: decimal;
  padding-left: 2.4rem;
}

.p-policy__body p + :where(p, ol, address) {
  margin-top: 1.2rem;
}

.p-policy__body ol ol {
  margin-top: 0;
}

/* -------------------------------------------*/
.p-preventive {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-preventive__intro {
  padding-bottom: 11.7rem;
}

/* 定期検診で歯の寿命を延ばす
-------------------------------------------*/
.p-preventive__longevity {
  padding-bottom: 14rem;
}

.p-preventive__longevity-grid {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin-top: 6.4rem;
  padding-left: 1rem;
}

.p-preventive__longevity-copy {
  width: 49rem;
}

.p-preventive__longevity-copy p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-preventive__longevity-copy p + p {
  margin-top: 1.9rem;
}

.p-preventive__longevity-grid figure {
  flex: 0 0 48rem;
  margin: 0.8rem 0 0;
}

.p-preventive__longevity-grid figure img {
  display: block;
  width: 100%;
}

.p-preventive__benefits {
  margin: 4.2rem auto 0;
  padding: 3.8rem 8rem 4.2rem;
  position: relative;
  width: 58rem;
  z-index: 0;
}

.p-preventive__benefits::before {
  background-color: var(--bg-warm-light);
  border-radius: 1rem;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-preventive__benefits h3 {
  color: var(--text-brown);
  font-size: 1.8rem;
  line-height: 2.3333333333;
  margin: 0;
  text-align: center;
}

.p-preventive__benefits ul {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
}

.p-preventive__benefits li {
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 1.8rem;
  position: relative;
}

.p-preventive__benefits li + li {
  margin-top: 0.4rem;
}

.p-preventive__benefits li::before {
  aspect-ratio: 1;
  background-color: var(--maternity-tip-dot);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 1.2rem;
  width: 0.8rem;
}

/* 当院で行う予防ケア
-------------------------------------------*/
.p-preventive__care {
  padding: 13.3rem 0 20rem;
}

.p-preventive__care-intro {
  margin-top: 6.3rem;
  text-align: center;
}

.p-preventive__care-intro h3 {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-preventive__care-intro p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.9rem 0 0;
}

.p-preventive__care-intro h3 + p {
  margin-top: 1.8rem;
}

.p-preventive__care-list {
  --term-width: 26rem;
  margin: 4.2rem auto 0;
  width: 90rem;
}

/* 採用情報
-------------------------------------------*/
.p-recruit {
  color: var(--base-color);
  overflow: hidden;
  padding-bottom: 13.8rem;
  width: 100%;
}

.p-recruit :where(h1, h2, h3, h4, p, dl, dd) {
  margin: 0;
}

.p-recruit img {
  display: block;
  width: 100%;
}

/* ヒーロー */
.p-recruit__hero {
  padding-top: 12.6rem;
  text-align: center;
}

.p-recruit__hero-image {
  border-radius: 4rem;
  display: block;
  margin: 0 auto;
  max-width: 130rem;
  overflow: hidden;
  width: calc(100% - 6.6rem);
}

.p-recruit__title {
  margin-top: 7.6rem;
}

.p-recruit__title h1 {
  color: var(--green-heading);
  font-size: 3.6rem;
  line-height: 1.25;
}

.p-recruit__title p {
  color: var(--text-gray-muted);
  font-size: 1.8rem;
  line-height: 1.25;
  margin-top: 0.5rem;
}

.p-recruit__notice {
  align-items: center;
  background-color: #fffafa;
  border: 0.3rem solid #e6595f;
  border-radius: 0.5rem;
  color: #e6595f;
  display: flex;
  font-size: 2.2rem;
  font-weight: 700;
  gap: 2.8rem;
  justify-content: center;
  line-height: 1.5;
  margin: 9.6rem auto 0;
  min-height: 14rem;
  padding: 2.4rem;
  width: min(100%, 55rem);
}

.p-recruit__notice img {
  width: 2.2rem;
}

.p-recruit__lead {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2;
  margin-top: 4.2rem;
}

.p-recruit__hero--recruiting .p-recruit__lead {
  margin-top: 8.8rem;
}

/* 「働きやすい」を支えるポイント */
.p-recruit__points {
  padding-top: 12.4rem;
}

.p-recruit__point-list {
  display: grid;
  gap: 5rem;
  grid-template-columns: repeat(3, 30rem);
  justify-content: center;
  margin-top: 9.5rem;
}

.p-recruit__point {
  position: relative;
}

.p-recruit__point-label {
  background-color: rgba(138, 198, 186, 0.9);
  border-radius: 0.5rem;
  box-shadow: 0 0 0.6rem rgba(51, 75, 70, 0.3);
  color: var(--white);
  display: grid;
  font-size: 1.6rem;
  height: 4.6rem;
  left: 2.3rem;
  place-content: center;
  position: absolute;
  top: -2.3rem;
  width: 12.5rem;
  z-index: 1;
}

.p-recruit__point-image {
  border-radius: 1.5rem;
  display: block;
  overflow: hidden;
}

.p-recruit__point-title {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 2.5;
  margin-top: 1.7rem;
  text-align: center;
}

.p-recruit__point-text {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 0.2em;
  padding-inline: 0.5rem;
}

/* 人間関係 */
.p-recruit__relations {
  padding-top: 7.6rem;
}

.p-recruit__relations .inner {
  --content-width: 88.7rem;
}

.p-recruit__relations-title {
  color: var(--green-heading);
  font-size: 2.6rem;
  line-height: 1.6153846154;
  padding-left: 4.1rem;
  position: relative;
}

.p-recruit__relations-title::before {
  aspect-ratio: 1;
  border: 0.4rem solid #d3edea;
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: calc(50% - 1.25rem);
  width: 2.5rem;
}

.p-recruit__relations-body {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  margin-top: 4.2rem;
}

.p-recruit__relations-image {
  border-radius: 1.5rem;
  flex-shrink: 0;
  overflow: hidden;
  width: 36rem;
}

.p-recruit__relations-text {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 1rem;
}

.p-recruit__relations-text p + p {
  margin-top: 2rem;
}

/* 研修体制 */
.p-recruit__training {
  padding-top: 13.3rem;
}

.p-recruit__training-list {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(3, 34rem);
  justify-content: center;
  margin: 7.2rem -1rem 0;
}

.p-recruit__training-card {
  background-color: var(--bg-card-white);
  border: 1rem solid var(--bg-panel-mint);
  border-radius: 1rem;
  min-height: 49.5rem;
  padding: 4rem 3rem 4rem;
}

.p-recruit img.p-recruit__training-icon {
  height: 4.7rem;
  margin: 0 auto;
  width: auto;
}

.p-recruit__training-title {
  background-image: radial-gradient(circle, #5d898d 0.1rem, transparent 0.1rem);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='2' viewBox='0 0 6 2'%3E%3Ccircle cx='3' cy='1' r='1' fill='%235D898D'/%3E%3C/svg%3E");
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.6rem 0.2rem;
  background-size: 0.6rem 0.2rem;
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.75;
  margin-top: 2.6rem;
  padding: 0 0.5rem 1.6rem;
  text-align: center;
}

.p-recruit__training-text {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 3rem;
  padding-inline: 0.5rem;
}

/* 多様な症例 */
.p-recruit__experience {
  padding-top: 13.3rem;
}

.p-recruit__experience-layout {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  justify-content: center;
  margin-top: 6.2rem;
}

.p-recruit__experience-main {
  width: 54.2rem;
}

.p-recruit__experience-image {
  aspect-ratio: 345/488;
  border-radius: 2rem;
  display: block;
  flex-shrink: 0;
  overflow: hidden;
  width: 34.5rem;
}

.p-recruit__experience-image img {
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-recruit__experience-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
}

.p-recruit__experience-text {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 2.6rem;
}

.p-recruit__duties {
  border: 0.2rem dotted var(--green-heading);
  border-radius: 1rem;
  margin-top: 2.4rem;
  padding: 3.7rem 3rem 4.2rem 4.8rem;
}

.p-recruit__duties-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.1;
}

.p-recruit__duties-list {
  margin-top: 1.2rem;
}

.p-recruit__duties-list > div + div {
  margin-top: 1.5rem;
}

.p-recruit__duties-list dt {
  font-size: 1.8rem;
  line-height: 1.7777777778;
  padding-left: 1.8rem;
  position: relative;
}

.p-recruit__duties-list dt::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: calc(50% - 0.35rem);
  width: 0.7rem;
}

.p-recruit__duties-list dd {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 0.5rem;
  padding-left: 1.8rem;
}

.p-recruit__experience-note {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2;
  margin-top: 5rem;
  text-align: center;
}

/* こんな方を歓迎します */
.p-recruit__welcome {
  padding-top: 13rem;
}

.p-recruit__welcome-box {
  background-color: var(--bg-card-white);
  border: 1rem solid var(--bg-panel-mint);
  border-radius: 1rem;
  margin-inline: auto;
  padding: 5.1rem 4rem 5.2rem 10.5rem;
  width: 89.2rem;
}

.p-recruit__welcome-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin-left: -6.5rem;
  text-align: center;
}

.p-recruit__welcome-list {
  margin-top: 3rem;
}

.p-recruit__welcome-list > div + div {
  margin-top: 2.6rem;
}

.p-recruit__welcome-list dt {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  position: relative;
}

.p-recruit__welcome-list dt::before {
  aspect-ratio: 1;
  background: url("../images/common/icon-check.svg") center/contain no-repeat;
  content: "";
  left: -3.5rem;
  position: absolute;
  top: calc(50% - 1rem);
  width: 2rem;
}

.p-recruit__welcome-list dd {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 0.6rem;
}

/* 応募フォーム（global/_form.scss の共通指定をこのページ内で上書き） */
.p-recruit__form {
  padding-top: 13.3rem;
}

.p-recruit__form-body {
  margin: 7.2rem auto 0;
  width: 83.6rem;
}

.p-recruit__form-body form {
  display: grid;
  gap: 3rem;
}

.p-recruit__field {
  align-items: center;
  border: 0;
  display: grid;
  grid-template-columns: 28.6rem 1fr;
  margin: 0;
  padding: 0;
}

.p-recruit__field > .wpcf7-form-control-wrap {
  display: block;
  min-width: 0;
}

.p-recruit__label {
  align-items: center;
  display: flex;
  float: left;
  font-size: 1.8rem;
  gap: 1.5rem;
  line-height: 2;
  padding: 0;
}

.p-recruit__required {
  background-color: #f08489;
  border-radius: 0.4rem;
  color: var(--white);
  display: grid;
  font-size: 1.4rem;
  font-style: normal;
  height: 2.8rem;
  place-content: center;
  width: 4.4rem;
}

.p-recruit__field input,
.p-recruit__field textarea {
  background-color: var(--bg-page-soft);
  border: 1px solid var(--border-light);
  border-radius: 0.5rem;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 1.6rem;
  height: 5rem;
  margin: 0;
  padding: 0 1.5rem;
  width: 100%;
}

.p-recruit__field textarea {
  height: 18rem;
  padding: 1.2rem 1.5rem;
  resize: vertical;
}

.p-recruit__field--textarea {
  align-items: start;
}

.p-recruit__field--textarea .p-recruit__label {
  min-height: 5rem;
}

.p-recruit__field--choice .p-recruit__label {
  width: 28.6rem;
}

.p-recruit__choices {
  display: flex;
  gap: 4rem;
  min-height: 4.3rem;
}

.p-recruit__choices .wpcf7-form-control {
  display: flex;
  gap: 4rem;
}

.p-recruit__choice,
.p-recruit__choices .wpcf7-list-item label {
  align-items: center;
  cursor: pointer;
  display: flex;
}

.p-recruit__choice > span,
.p-recruit__choices .wpcf7-list-item-label {
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 3.2rem;
  position: relative;
}

.p-recruit__choice > span::before,
.p-recruit__choice > span::after,
.p-recruit__choices .wpcf7-list-item-label::before,
.p-recruit__choices .wpcf7-list-item-label::after {
  border-radius: 50%;
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.p-recruit__choice > span::before,
.p-recruit__choices .wpcf7-list-item-label::before {
  aspect-ratio: 1;
  background-color: var(--white);
  border: 1px solid var(--border-light);
  left: 0;
  width: 2rem;
}

.p-recruit__choice > span::after,
.p-recruit__choices .wpcf7-list-item-label::after {
  aspect-ratio: 1;
  background-color: var(--green-heading);
  left: 0.5rem;
  opacity: 0;
  width: 1rem;
}

.p-recruit__choice input:checked + span::after,
.p-recruit__choices input:checked + .wpcf7-list-item-label::after {
  opacity: 1;
}

.p-recruit__consent-note {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 3.2rem;
  text-align: center;
}

.p-recruit__consent-note a {
  text-decoration: underline;
  text-decoration-color: var(--green-hover-soft);
  text-underline-offset: 0.5rem;
}

.p-recruit__consent {
  cursor: pointer;
  display: flex;
  justify-content: center;
  margin-top: -0.1rem;
}

.p-recruit__consent input {
  height: 1px;
  margin: -1px;
  overflow: hidden;
  position: absolute;
  width: 1px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.p-recruit__consent input[type=checkbox] + .wpcf7-list-item-label {
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 5.2rem;
  position: relative;
}

.p-recruit__consent input[type=checkbox] + .wpcf7-list-item-label::before {
  aspect-ratio: 1;
  background-color: var(--white);
  border: 1px solid var(--border-light);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 2.5rem;
}

.p-recruit__consent input[type=checkbox] + .wpcf7-list-item-label::after {
  border-bottom: 0.2rem solid var(--border-light);
  border-left: 0.2rem solid var(--border-light);
  content: "";
  height: 0.6rem;
  left: 0.7rem;
  opacity: 1;
  position: absolute;
  top: 46%;
  transform: translateY(-50%) rotate(-45deg);
  width: 1.1rem;
}

.p-recruit__consent input[type=checkbox]:checked + .wpcf7-list-item-label::before {
  background-color: var(--green-tag-border);
  border-color: var(--green-tag-border);
}

.p-recruit__consent input[type=checkbox]:checked + .wpcf7-list-item-label::after {
  border-color: var(--white);
  opacity: 1;
}

.p-recruit__consent input[type=checkbox]:focus-visible + .wpcf7-list-item-label::before,
.p-recruit__choice input:focus-visible + span::before,
.p-recruit__choices input:focus-visible + .wpcf7-list-item-label::before {
  outline: 2px solid var(--green-heading);
}

.p-recruit__submit {
  border: 0;
  cursor: pointer;
  justify-content: center;
  margin: 1.7rem auto 0;
  padding: 0;
  width: 16.5rem;
}

.p-recruit__form .wpcf7-spinner {
  position: absolute;
  right: 0;
  top: 0;
}

.p-recruit__recaptcha {
  color: var(--gray-muted);
  display: block;
  font-size: 1.4rem;
  line-height: 2;
  margin-top: 1.3rem;
  text-align: center;
}

.p-recruit__recaptcha a {
  text-decoration: underline;
}

.p-recruit__form .wpcf7-not-valid-tip {
  color: #e6595f;
  display: block;
  font-size: 1.4rem;
  margin-top: 0.5rem;
  padding-left: 0.5rem;
}

.p-recruit__field .wpcf7-not-valid {
  background-color: #fffafa;
  border-color: #e6595f;
}

.p-recruit__form .wpcf7-response-output {
  display: none !important;
}

/* 入力エラー時（26_採用情報_応募フォーム入力エラー） */
.p-recruit__field.is-error input,
.p-recruit__field.is-error textarea {
  background-color: #fffafa;
  border-color: #e6595f;
}

.p-recruit__error {
  color: #e6595f;
  font-size: 1.6rem;
  grid-column: 2;
  margin-top: 0.5rem;
  padding-left: 0.5rem;
}

/* 採用情報 受付完了
-------------------------------------------*/
.p-recruit-thanks {
  color: var(--base-color);
  overflow: hidden;
  padding-bottom: 19.2rem;
  width: 100%;
}

.p-recruit-thanks :where(h1, p) {
  margin: 0;
}

.p-recruit-thanks img {
  display: block;
  width: 100%;
}

/* ヒーロー（採用情報と同じ寸法） */
.p-recruit-thanks__hero {
  padding-top: 12.6rem;
}

.p-recruit-thanks__hero-image {
  border-radius: 4rem;
  display: block;
  margin: 0 auto;
  max-width: 130rem;
  overflow: hidden;
  width: calc(100% - 6.6rem);
}

.p-recruit-thanks__message {
  padding-top: 7.1rem;
  text-align: center;
}

.p-recruit-thanks__title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
}

.p-recruit-thanks__text {
  font-size: 1.6rem;
  line-height: 2;
  margin-top: 1.8rem;
}

.p-recruit-thanks__notice {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  font-size: 1.6rem;
  line-height: 2;
  margin: 2.7rem auto 0;
  padding: 4.2rem 4rem 4.2rem 5.3rem;
  text-align: left;
  width: 84.1rem;
}

.p-recruit-thanks__notice p {
  padding-left: 2.1rem;
  text-indent: -2.1rem;
}

.p-recruit-thanks__notice-mark {
  display: inline-block;
  text-indent: 0;
  width: 2.1rem;
}

/* -------------------------------------------*/
.p-cavity-root-canal__intro,
.p-periodontal__intro,
.p-oral-surgery__intro,
.p-swallowing__intro,
.p-maternity__intro,
.p-dry-mouth__intro,
.p-preventive__intro,
.p-pediatric__intro,
.p-dentures__intro,
.p-orthodontics__intro,
.p-home-visit__intro,
.p-sleep-apnea__intro {
  position: relative;
}

.p-cavity-root-canal__decoration {
  --service-decor-1-inset: 3.2rem -14.4rem auto auto;
  --service-decor-1-width: 64.5rem;
  --service-decor-1-ratio: 645 / 181;
  --service-decor-1-color: var(--decor-page-gray-alpha-60);
  --service-decor-2-inset: 3.8rem 29.6rem auto auto;
  --service-decor-2-width: 15rem;
  --service-decor-2-ratio: 150 / 241;
  --service-decor-2-color: var(--decor-page-mint-alpha-35);
  --service-decor-3-inset: 26rem -11.9rem auto auto;
  --service-decor-3-width: 24.6rem;
  --service-decor-3-ratio: 246 / 100;
  --service-decor-3-color: var(--decor-page-yellow-alpha-35);
  --service-decor-4-inset: 57.3rem auto auto -2.7rem;
  --service-decor-4-width: 38.9rem;
  --service-decor-4-ratio: 389 / 130;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 65.3rem auto auto 27.6rem;
  --service-decor-5-width: 13rem;
  --service-decor-5-ratio: 1;
  --service-decor-5-color: var(--decor-page-yellow-alpha-35);
}

.p-periodontal__decoration {
  --service-decor-1-inset: 6.7rem -1.2rem auto auto;
  --service-decor-1-width: 13.3rem;
  --service-decor-1-ratio: 133 / 403;
  --service-decor-1-color: var(--decor-page-gray-alpha-60);
  --service-decor-2-inset: 10.8rem 28.6rem auto auto;
  --service-decor-2-width: 23.5rem;
  --service-decor-2-ratio: 235 / 133;
  --service-decor-2-color: var(--decor-page-mint-alpha-35);
  --service-decor-3-inset: 16.2rem -13.3rem auto auto;
  --service-decor-3-width: 48rem;
  --service-decor-3-ratio: 480 / 113;
  --service-decor-3-color: var(--decor-page-yellow-alpha-35);
  --service-decor-4-inset: 50.6rem auto auto 22.8rem;
  --service-decor-4-width: 12.3rem;
  --service-decor-4-ratio: 123 / 81;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 54.9rem auto auto 31.8rem;
  --service-decor-5-width: 19.6rem;
  --service-decor-5-ratio: 196 / 106;
  --service-decor-5-color: var(--decor-page-yellow-alpha-35);
}

.p-oral-surgery__decoration {
  --service-decor-1-inset: 1rem 29.8rem auto auto;
  --service-decor-1-width: 22.3rem;
  --service-decor-1-ratio: 223 / 237;
  --service-decor-1-color: var(--decor-page-mint-alpha-35);
  --service-decor-2-inset: 6rem 16.3rem auto auto;
  --service-decor-2-width: 49.4rem;
  --service-decor-2-ratio: 494 / 127;
  --service-decor-2-color: var(--decor-page-gray-alpha-60);
  --service-decor-3-inset: 20.6rem -4.1rem auto auto;
  --service-decor-3-width: 40.2rem;
  --service-decor-3-ratio: 402 / 86;
  --service-decor-3-color: var(--decor-page-yellow-alpha-35);
  --service-decor-4-inset: 38.75rem auto auto -3.93657rem;
  --service-decor-4-width: 13.08496rem;
  --service-decor-4-ratio: 130.8496 / 203;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 47.45rem auto auto 4.7rem;
  --service-decor-5-width: 7.6rem;
  --service-decor-5-ratio: 76 / 134;
  --service-decor-5-color: var(--decor-page-yellow-alpha-35);
}

.p-swallowing__decoration {
  --service-decor-1-inset: 6.7rem -1rem auto auto;
  --service-decor-1-width: 11.6rem;
  --service-decor-1-ratio: 116 / 321;
  --service-decor-1-color: var(--decor-page-mint-alpha-35);
  --service-decor-2-inset: 11.3rem 7rem auto auto;
  --service-decor-2-width: 38.8rem;
  --service-decor-2-ratio: 388 / 125;
  --service-decor-2-color: var(--decor-page-yellow-alpha-35);
  --service-decor-3-inset: 19.2rem 38.6rem auto auto;
  --service-decor-3-width: 20.6rem;
  --service-decor-3-ratio: 206 / 95;
  --service-decor-3-color: var(--decor-page-gray-alpha-60);
  --service-decor-4-inset: 43.9rem auto auto -6.3rem;
  --service-decor-4-width: 16.4rem;
  --service-decor-4-ratio: 164 / 134;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 53.7rem auto auto 4.7rem;
  --service-decor-5-width: 19.1rem;
  --service-decor-5-ratio: 191 / 91;
  --service-decor-5-color: var(--decor-page-mint-alpha-35);
}

.p-maternity__decoration {
  --service-decor-1-inset: 6.7rem 6rem auto auto;
  --service-decor-1-width: 15rem;
  --service-decor-1-ratio: 150 / 237;
  --service-decor-1-color: var(--decor-page-mint-alpha-35);
  --service-decor-2-inset: 11.6rem 26.5rem auto auto;
  --service-decor-2-width: 24.7rem;
  --service-decor-2-ratio: 247 / 100;
  --service-decor-2-color: var(--decor-page-yellow-alpha-35);
  --service-decor-3-inset: 16.8rem 3.7rem auto auto;
  --service-decor-3-width: 32.5rem;
  --service-decor-3-ratio: 325 / 100;
  --service-decor-3-color: var(--decor-page-gray-alpha-60);
  --service-decor-4-inset: 47.7rem auto auto 42.4rem;
  --service-decor-4-width: 11.8rem;
  --service-decor-4-ratio: 118 / 58;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 50.6rem auto auto 32.5rem;
  --service-decor-5-width: 15.2rem;
  --service-decor-5-ratio: 152 / 74;
  --service-decor-5-color: var(--decor-page-mint-alpha-35);
}

.p-dry-mouth__decoration {
  --service-decor-1-inset: 2.7rem -14.4rem auto auto;
  --service-decor-1-width: 64.5rem;
  --service-decor-1-ratio: 645 / 131;
  --service-decor-1-color: var(--decor-page-gray-alpha-60);
  --service-decor-2-inset: 6.2rem 27.7rem auto auto;
  --service-decor-2-width: 15rem;
  --service-decor-2-ratio: 150 / 191;
  --service-decor-2-color: var(--decor-page-mint-alpha-35);
  --service-decor-3-inset: 19.7rem 7rem auto auto;
  --service-decor-3-width: 27.2rem;
  --service-decor-3-ratio: 272 / 79;
  --service-decor-3-color: var(--decor-page-yellow-alpha-35);
  --service-decor-4-inset: 51.2rem auto auto 22.4rem;
  --service-decor-4-width: 18.6rem;
  --service-decor-4-ratio: 186 / 106;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 56.1rem auto auto 37.1rem;
  --service-decor-5-width: 11.4rem;
  --service-decor-5-ratio: 114 / 92;
  --service-decor-5-color: var(--decor-page-mint-alpha-35);
}

.p-preventive__decoration {
  --service-decor-1-inset: 6.7rem 11.9rem auto auto;
  --service-decor-1-width: 21.4rem;
  --service-decor-1-ratio: 214 / 201;
  --service-decor-1-color: var(--decor-page-gray-alpha-60);
  --service-decor-2-inset: 11.7rem 30.6rem auto auto;
  --service-decor-2-width: 17.4rem;
  --service-decor-2-ratio: 174 / 91;
  --service-decor-2-color: var(--decor-page-mint-alpha-35);
  --service-decor-3-inset: 19.6rem -7rem auto auto;
  --service-decor-3-width: 31.8rem;
  --service-decor-3-ratio: 318 / 100;
  --service-decor-3-color: var(--decor-page-yellow-alpha-35);
  --service-decor-4-inset: 49.4rem auto auto 23.8rem;
  --service-decor-4-width: 19.6rem;
  --service-decor-4-ratio: 196 / 91;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 53.1rem auto auto 19rem;
  --service-decor-5-width: 8.2rem;
  --service-decor-5-ratio: 82 / 95;
  --service-decor-5-color: var(--decor-page-yellow-alpha-35);
}

.p-pediatric__decoration {
  --service-decor-1-inset: 3.8rem 37.5rem auto auto;
  --service-decor-1-width: 17.7rem;
  --service-decor-1-ratio: 177 / 174;
  --service-decor-1-color: var(--decor-page-mint-alpha-35);
  --service-decor-2-inset: 11.7rem -7rem auto auto;
  --service-decor-2-width: 47.8rem;
  --service-decor-2-ratio: 478 / 131;
  --service-decor-2-color: var(--decor-page-gray-alpha-60);
  --service-decor-3-inset: 21.2rem -7rem auto auto;
  --service-decor-3-width: 20.4rem;
  --service-decor-3-ratio: 204 / 93;
  --service-decor-3-color: var(--decor-page-yellow-alpha-35);
  --service-decor-4-inset: 49.1rem auto auto 5.9rem;
  --service-decor-4-width: 15.5rem;
  --service-decor-4-ratio: 155 / 105;
  --service-decor-4-color: var(--decor-page-mint-alpha-35);
  --service-decor-5-inset: 55rem auto auto 17.4rem;
  --service-decor-5-width: 17.3rem;
  --service-decor-5-ratio: 173 / 81;
  --service-decor-5-color: var(--decor-page-gray-alpha-60);
}

.p-dentures__decoration {
  --service-decor-1-inset: 1.6rem 16.3rem auto auto;
  --service-decor-1-width: 26rem;
  --service-decor-1-ratio: 260 / 196;
  --service-decor-1-color: var(--decor-page-yellow-alpha-35);
  --service-decor-2-inset: 6.7rem -4rem auto auto;
  --service-decor-2-width: 15rem;
  --service-decor-2-ratio: 150 / 321;
  --service-decor-2-color: var(--decor-page-mint-alpha-35);
  --service-decor-3-inset: 10.4rem -8.7rem auto auto;
  --service-decor-3-width: 68rem;
  --service-decor-3-ratio: 680 / 146;
  --service-decor-3-color: var(--decor-page-gray-alpha-60);
  --service-decor-4-inset: 17.7rem 54.3rem auto auto;
  --service-decor-4-width: 10rem;
  --service-decor-4-ratio: 100 / 101;
  --service-decor-4-color: var(--decor-page-mint-alpha-35);
  --service-decor-5-inset: 47.7rem auto auto 4rem;
  --service-decor-5-width: 10.1rem;
  --service-decor-5-ratio: 101 / 153;
  --service-decor-5-color: var(--decor-page-yellow-alpha-35);
  --service-decor-6-inset: 54.5rem auto auto -1.8rem;
  --service-decor-6-width: 29.4rem;
  --service-decor-6-ratio: 294 / 120;
  --service-decor-6-color: var(--decor-page-gray-alpha-60);
}

.p-orthodontics__decoration {
  --service-decor-1-inset: 6.7rem -7.7rem auto auto;
  --service-decor-1-width: 27.1rem;
  --service-decor-1-ratio: 271 / 183;
  --service-decor-1-color: var(--decor-page-gray-alpha-60);
  --service-decor-2-inset: 10.8rem 39.4rem auto auto;
  --service-decor-2-width: 13.5rem;
  --service-decor-2-ratio: 135 / 75;
  --service-decor-2-color: var(--decor-page-yellow-alpha-35);
  --service-decor-3-inset: 14.5rem 15.3rem auto auto;
  --service-decor-3-width: 28rem;
  --service-decor-3-ratio: 280 / 150;
  --service-decor-3-color: var(--decor-page-mint-alpha-35);
  --service-decor-4-inset: 44rem auto auto 21.5rem;
  --service-decor-4-width: 11.4rem;
  --service-decor-4-ratio: 114 / 218;
  --service-decor-4-color: var(--decor-page-mint-alpha-35);
  --service-decor-5-inset: 52.5rem auto auto 4.8rem;
  --service-decor-5-width: 22.4rem;
  --service-decor-5-ratio: 224 / 103;
  --service-decor-5-color: var(--decor-page-yellow-alpha-35);
}

.p-home-visit__decoration {
  --service-decor-1-inset: 6.1rem -12.7rem auto auto;
  --service-decor-1-width: 64.5rem;
  --service-decor-1-ratio: 645 / 168;
  --service-decor-1-color: var(--decor-page-gray-alpha-60);
  --service-decor-2-inset: 6.7rem 22.5rem auto auto;
  --service-decor-2-width: 20.8rem;
  --service-decor-2-ratio: 208 / 201;
  --service-decor-2-color: var(--decor-page-mint-alpha-35);
  --service-decor-3-inset: 18.6rem 2.6rem auto auto;
  --service-decor-3-width: 9.2rem;
  --service-decor-3-ratio: 92 / 144;
  --service-decor-3-color: var(--decor-page-yellow-alpha-35);
  --service-decor-4-inset: 47.7rem auto auto 36.6rem;
  --service-decor-4-width: 12.5rem;
  --service-decor-4-ratio: 125 / 85;
  --service-decor-4-color: var(--decor-page-mint-alpha-35);
  --service-decor-5-inset: 51.7rem auto auto 20.5rem;
  --service-decor-5-width: 20rem;
  --service-decor-5-ratio: 200 / 70;
  --service-decor-5-color: var(--decor-page-gray-alpha-60);
}

.p-sleep-apnea__decoration {
  --service-decor-1-inset: 3.8rem 31.9rem auto auto;
  --service-decor-1-width: 23.6rem;
  --service-decor-1-ratio: 236 / 190;
  --service-decor-1-color: var(--decor-page-gray-alpha-60);
  --service-decor-2-inset: 14.1rem -11.9rem auto auto;
  --service-decor-2-width: 51.9rem;
  --service-decor-2-ratio: 519 / 113;
  --service-decor-2-color: var(--decor-page-yellow-alpha-35);
  --service-decor-3-inset: 19.7rem -11.9rem auto auto;
  --service-decor-3-width: 18.9rem;
  --service-decor-3-ratio: 189 / 207;
  --service-decor-3-color: var(--decor-page-mint-alpha-35);
  --service-decor-4-inset: 51.7rem auto auto -4.1rem;
  --service-decor-4-width: 30rem;
  --service-decor-4-ratio: 300 / 124;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 59.3rem auto auto 19.6rem;
  --service-decor-5-width: 16.6rem;
  --service-decor-5-ratio: 166 / 105;
  --service-decor-5-color: var(--decor-page-mint-alpha-35);
}

.p-tch-tmj__decoration {
  --service-decor-1-inset: 3.2rem 2.8rem auto auto;
  --service-decor-1-width: 20.4rem;
  --service-decor-1-ratio: 204 / 183;
  --service-decor-1-color: var(--decor-page-mint-alpha-35);
  --service-decor-2-inset: 13.8rem 28rem auto auto;
  --service-decor-2-width: 11.2rem;
  --service-decor-2-ratio: 112 / 100;
  --service-decor-2-color: var(--decor-page-yellow-alpha-35);
  --service-decor-3-inset: 16.7rem 4.6rem auto auto;
  --service-decor-3-width: 29.8rem;
  --service-decor-3-ratio: 298 / 110;
  --service-decor-3-color: var(--decor-page-gray-alpha-60);
  --service-decor-4-inset: 37.2rem auto auto -2.5rem;
  --service-decor-4-width: 12.5rem;
  --service-decor-4-ratio: 125 / 166;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 47.9rem auto auto 8.1rem;
  --service-decor-5-width: 11.6rem;
  --service-decor-5-ratio: 116 / 92;
  --service-decor-5-color: var(--decor-page-yellow-alpha-35);
}

.p-whitening__decoration {
  --service-decor-1-inset: -0.2rem 4.1rem auto auto;
  --service-decor-1-width: 24.2rem;
  --service-decor-1-ratio: 242 / 305;
  --service-decor-1-color: var(--decor-page-yellow-alpha-35);
  --service-decor-2-inset: 5rem -12.6rem auto auto;
  --service-decor-2-width: 61.4rem;
  --service-decor-2-ratio: 614 / 167;
  --service-decor-2-color: var(--decor-page-gray-alpha-60);
  --service-decor-3-inset: 14.4rem 44.6rem auto auto;
  --service-decor-3-width: 15.5rem;
  --service-decor-3-ratio: 155 / 111;
  --service-decor-3-color: var(--decor-page-mint-alpha-35);
  --service-decor-4-inset: 47.9rem auto auto 16.3rem;
  --service-decor-4-width: 31.8rem;
  --service-decor-4-ratio: 318 / 166;
  --service-decor-4-color: var(--decor-page-gray-alpha-60);
  --service-decor-5-inset: 55.1rem auto auto -8.4rem;
  --service-decor-5-width: 33.7rem;
  --service-decor-5-ratio: 337 / 135;
  --service-decor-5-color: var(--decor-page-mint-alpha-35);
}

.p-esthetic__decoration {
  --service-decor-1-inset: 6.7rem -2.6rem auto auto;
  --service-decor-1-width: 14.7rem;
  --service-decor-1-ratio: 147 / 314;
  --service-decor-1-color: var(--decor-page-gray-alpha-60);
  --service-decor-2-inset: 12rem -2.6rem auto auto;
  --service-decor-2-width: 39.6rem;
  --service-decor-2-ratio: 396 / 112;
  --service-decor-2-color: var(--decor-page-mint-alpha-35);
  --service-decor-3-inset: 16.8rem 31.6rem auto auto;
  --service-decor-3-width: 13.7rem;
  --service-decor-3-ratio: 137 / 100;
  --service-decor-3-color: var(--decor-page-yellow-alpha-35);
  --service-decor-4-inset: 47.3rem auto auto 17.7rem;
  --service-decor-4-width: 14.8rem;
  --service-decor-4-ratio: 148 / 93;
  --service-decor-4-color: var(--decor-page-yellow-alpha-35);
  --service-decor-5-inset: 51.5rem auto auto -22.1rem;
  --service-decor-5-width: 45.3rem;
  --service-decor-5-ratio: 453 / 124;
  --service-decor-5-color: var(--decor-page-gray-alpha-60);
}

.p-implant__decoration {
  --service-decor-1-inset: 3.8rem 32.3rem auto auto;
  --service-decor-1-width: 22.7rem;
  --service-decor-1-ratio: 227 / 158;
  --service-decor-1-color: var(--decor-page-mint-alpha-35);
  --service-decor-2-inset: 14.3rem -14.4rem auto auto;
  --service-decor-2-width: 64.5rem;
  --service-decor-2-ratio: 645 / 125;
  --service-decor-2-color: var(--decor-page-yellow-alpha-35);
  --service-decor-3-inset: 19.6rem 3.2rem auto auto;
  --service-decor-3-width: 10.9rem;
  --service-decor-3-ratio: 109 / 136;
  --service-decor-3-color: var(--decor-page-gray-alpha-60);
  --service-decor-4-inset: 46.6rem auto auto 37.7rem;
  --service-decor-4-width: 14.9rem;
  --service-decor-4-ratio: 149 / 108;
  --service-decor-4-color: var(--decor-page-yellow-alpha-35);
  --service-decor-5-inset: 51.4rem auto auto 19.1rem;
  --service-decor-5-width: 25.2rem;
  --service-decor-5-ratio: 252 / 89;
  --service-decor-5-color: var(--decor-page-gray-alpha-60);
}

/* -------------------------------------------*/
.p-staff {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

/* XD のスタッフ一覧は 1080px 幅（x143〜1223）。.inner（コンテンツ幅 1040px）の左右余白を外して合わせる */

/* プロフィール共通
-------------------------------------------*/
.p-staff__profile {
  position: relative;
}

.p-staff__photo {
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
}

.p-staff__photo img {
  display: block;
  width: 100%;
}

/* 名前カード */
.p-staff__card {
  position: relative;
  z-index: 1;
}

.p-staff__card::before {
  background-color: var(--green-recruit);
  border-radius: 1rem;
  content: "";
  inset: 0;
  opacity: 0.3;
  position: absolute;
  z-index: -1;
}

.p-staff__position {
  color: var(--gray-muted);
  font-size: 1.6rem;
  line-height: 2.5rem;
  margin: 0;
}

.p-staff__name {
  color: var(--green-heading);
  font-size: 2.2rem;
  line-height: 1.5;
  margin: 0.4rem 0 0;
}

.p-staff__name span {
  font-size: 1.6rem;
}

.p-staff__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  list-style: none;
  margin: 1.7rem 0 0 -0.5rem;
  padding: 0;
}

.p-staff__tags li {
  background-color: var(--white);
  border: 1px solid var(--green-tag-border);
  border-radius: 2rem;
  color: var(--green-tag-border);
  display: grid;
  font-size: 1.6rem;
  height: 4rem;
  line-height: 1;
  place-content: center;
  text-align: center;
  width: 17rem;
}

/* 略歴・所属学会など */
.p-staff__detail h2 {
  background-image: radial-gradient(circle, #5d898d 0.15rem, transparent 0.15rem);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='4' viewBox='0 0 8 4'%3E%3Ccircle cx='4' cy='2' r='1.5' fill='%235D898D'/%3E%3C/svg%3E");
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.8rem 0.3rem;
  background-size: 0.8rem 0.4rem;
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1;
  padding: 0 0.5rem 1.6rem;
}

.p-staff__detail p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.7rem 0 0;
  padding-left: 0.5rem;
}

.p-staff__detail .p-staff__detail-note {
  margin-top: 0.9rem;
}

.p-staff__detail + .p-staff__detail {
  margin-top: 3.6rem;
}

/* 院長・副院長
-------------------------------------------*/
.p-staff__profile--lead {
  padding-bottom: 13.2rem;
}

.p-staff__lead-main {
  align-items: flex-start;
  display: flex;
  gap: 5rem;
}

.p-staff__photo--lead {
  border-radius: 2rem;
  flex: 0 0 48.5rem;
}

.p-staff__lead-copy {
  flex: 1;
  padding-top: 3.5rem;
}

.p-staff__card--lead {
  margin-left: -8.3rem;
  padding: 4.2rem 5rem 5.1rem 8.3rem;
}

.p-staff__card--lead .p-staff__position {
  font-size: 2rem;
  line-height: 1.6;
}

.p-staff__card--lead .p-staff__name {
  font-size: 2.6rem;
  margin-top: 0.6rem;
}

.p-staff__messages {
  margin-top: 4.2rem;
}

.p-staff__messages p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-staff__messages p + p {
  margin-top: 1.8rem;
}

.p-staff__details--lead {
  display: flex;
  gap: 6rem;
  margin-top: 5.9rem;
}

.p-staff__details--lead > * {
  flex: 1;
}

.p-staff__details-column .p-staff__detail + .p-staff__detail {
  margin-top: 4.1rem;
}

/* 歯科医師など
-------------------------------------------*/
.p-staff__profile--standard {
  align-items: start;
  display: grid;
  gap: 6rem;
  grid-template-columns: 46.5rem 1fr;
  margin-bottom: 13.2rem;
}

.p-staff__card--standard {
  margin: -3rem 0 0.8rem 2.5rem;
  padding: 5.4rem 4.5rem 3rem 5rem;
  width: 44rem;
}

.p-staff__photo--standard {
  width: 43.5rem;
}

/* タグなしのカード */
.p-staff__card--no-tags {
  padding-bottom: 2.4rem;
}

/* 写真なしのカード */
.p-staff__card--standard:first-child {
  margin-top: 0;
  padding-top: 2.4rem;
}

.p-staff__details--standard {
  padding-top: 0.9rem;
}

/* 地域医療機関との連携
-------------------------------------------*/
.p-staff__partners {
  background-color: #f7faf9;
  padding: 9rem 0 21.2rem;
  text-align: center;
}

.p-staff__partners-title {
  color: var(--green-heading);
  font-size: 3.2rem;
  line-height: 1.5;
}

.p-staff__partners-subtitle {
  font-size: 2.4rem;
  line-height: 1.5;
  margin: 5.6rem 0 0;
}

.p-staff__partners-lead {
  font-size: 1.6rem;
  line-height: 2;
  margin: 2.1rem 0 0;
}

.p-staff__partner-list {
  background-color: var(--white);
  border-radius: 1rem;
  list-style: none;
  margin: 5.4rem auto 0;
  padding: 1.5rem 5rem;
  text-align: left;
  width: 94rem;
}

.p-staff__partner {
  align-items: center;
  border-bottom: 1px solid var(--border-light);
  display: flex;
  min-height: 8.8rem;
  padding-left: 2.8rem;
}

.p-staff__partner:last-child {
  border-bottom: 0;
}

.p-staff__partner-name {
  color: var(--green-heading);
  flex: 0 0 32.2rem;
  font-size: 1.8rem;
  line-height: 1.5;
  margin: 0;
  position: relative;
}

.p-staff__partner-name::before {
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  height: 0.8rem;
  left: -1.8rem;
  position: absolute;
  top: calc(50% - 0.4rem);
  width: 0.8rem;
}

.p-staff__partner-url {
  color: var(--base-color);
  font-size: 1.6rem;
  line-height: 2;
  overflow-wrap: anywhere;
  text-decoration: underline;
  text-underline-offset: 0.3rem;
  transition: 0.3s;
  transition-property: opacity;
}

.p-staff__partner-url::after {
  background: url("../images/staff/icon-01.svg") center/contain no-repeat;
  content: "";
  display: inline-block;
  height: 1.4rem;
  margin-left: 0.2rem;
  vertical-align: -0.1rem;
  width: 1.4rem;
}
.wrapper:has(.p-staff) .footer {
  --footer-behind: var(--bg-page-soft);
}

/* -------------------------------------------*/
.p-swallowing {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-swallowing__intro {
  padding-bottom: 12.4rem;
  position: relative;
}

.p-swallowing figure {
  overflow: hidden;
}

.p-swallowing figure img {
  display: block;
  width: 100%;
}

.p-swallowing__body p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-swallowing__body p + p {
  margin-top: 1.9rem;
}

.p-swallowing__section-head {
  margin-bottom: 2.6rem;
}

/* 誰にでも起こりうる嚥下障害 ＋ 訓練指導（共通の背景）
-------------------------------------------*/
.p-swallowing__rehabilitation {
  padding: 7.1rem 0 8rem;
  position: relative;
  z-index: 0;
}

.p-swallowing__rehabilitation::before {
  background-color: var(--bg-page-soft);
  border-radius: 0 2rem 2rem 0;
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  top: 0;
  width: min(100%, 126rem);
  z-index: -1;
}

.p-swallowing__disorder {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
}

.p-swallowing__disorder-content {
  flex: 0 0 49rem;
}

.p-swallowing__disorder-image {
  border-radius: 2rem;
  flex: 0 0 43rem;
  margin-top: -11.7rem;
  width: 43rem;
}

.p-swallowing__training {
  margin-top: 4.5rem;
  max-width: 100%;
  width: 93.4rem;
}

.p-swallowing__training .p-swallowing__section-head {
  margin-bottom: 2.7rem;
}

.p-swallowing__training .c-treatment-heading__text {
  margin-top: 1.8rem;
}

.p-swallowing__training-list {
  display: grid;
  gap: 3rem;
  grid-template-columns: repeat(2, 1fr);
}

.p-swallowing__training-item {
  background-color: var(--white);
  border: 0.2rem dotted var(--green-primary);
  border-radius: 1rem;
  padding: 2.8rem 3.8rem 3.2rem;
}

.p-swallowing__training-title {
  color: var(--green-heading);
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
  padding-left: 1.8rem;
  position: relative;
}

.p-swallowing__training-title::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0.8rem;
}

.p-swallowing__training-text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0.6rem 0 0;
}

/* メッセージ
-------------------------------------------*/
.p-swallowing__message {
  padding-top: 14rem;
}

.p-swallowing__message-image {
  border-radius: 0.5rem;
  margin: 0 auto;
  max-width: 100%;
  width: 103.2rem;
}

.p-swallowing__message-text {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2;
  margin: 13rem 0 0;
  text-align: center;
}

/* 嚥下内視鏡検査（VE）
-------------------------------------------*/
.p-swallowing__examination {
  padding: 4rem 0 20rem;
}

.p-swallowing__examination-box {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  margin-inline: auto;
  max-width: 100%;
  padding: 6.1rem 11.6rem 5.4rem;
  width: 103.2rem;
}

.p-swallowing__examination-head {
  text-align: center;
}

.p-swallowing__examination-top {
  display: flex;
  gap: 4rem;
  margin-top: 3.1rem;
}

.p-swallowing__examination-image {
  border-radius: 0.5rem;
  flex: 0 0 42.2rem;
  margin: 0;
}

.p-swallowing__features {
  background-color: var(--white);
  border-radius: 0.5rem;
  flex: 1;
  padding: 2.8rem 3.6rem 4.5rem 3.9rem;
}

.p-swallowing__features-title {
  color: var(--green-heading);
  font-size: 1.6rem;
  line-height: 2.8125;
  margin: 0;
}

.p-swallowing__features-list {
  display: grid;
  gap: 0.7rem;
  margin-top: 0.6rem;
}

.p-swallowing__examination-body {
  margin-top: 5rem;
  padding-inline: 2rem;
}

.p-swallowing__examination-body p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-swallowing__examination-body p + p {
  margin-top: 1.9rem;
}

/* トップページ
-------------------------------------------*/
.p-top {
  color: var(--text-green-dark);
  font-family: var(--base-font-family);
  width: 100%;
}

/* FV
-------------------------------------------*/
.p-top-fv {
  height: 100vh;
  margin: 0 auto 13.4rem;
  max-height: min(1080px, 73vw);
  min-height: 768px;
  min-width: 1060px;
  overflow-x: clip;
  position: relative;
}

.p-top-fv__decorations {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.p-top-fv__sp-decoration {
  display: none;
}

.p-top-fv__decoration {
  border-radius: 1rem;
  display: block;
  position: absolute;
}

.p-top-fv__decoration--yellow-left {
  background: rgba(221, 232, 190, 0.35);
  height: clamp(557px, 22.3827vw + 251.253px, 681px);
  left: clamp(-55px, 8.1227vw + 100.957px, -10px);
  top: -38px;
  width: clamp(40px, 22.3827vw - 265.747px, 164px);
}

.p-top-fv__decoration--gray-left {
  background: rgba(244, 245, 244, 0.6);
  height: clamp(873px, 35.3791vw + 389.722px, 1069px);
  left: clamp(96px, 17.148vw - 138.242px, 191px);
  top: clamp(-7px, 1.2635vw - 24.26px, 0px);
  width: clamp(314px, 12.6354vw + 141.401px, 384px);
}

.p-top-fv__decoration--mint-left {
  background: rgba(201, 232, 217, 0.35);
  border-radius: 0 1rem 1rem 0;
  height: clamp(240px, 9.5668vw + 109.318px, 293px);
  left: clamp(-75px, 8.8448vw + 94.819px, -26px);
  top: clamp(221px, 10.6498vw + 75.523px, 280px);
  width: clamp(217px, 29.4224vw - 184.91px, 380px);
}

.p-top-fv__decoration--mint-left-bottom {
  background: rgba(201, 232, 217, 0.35);
  border-radius: 1rem 1rem 0 0;
  height: clamp(115px, 4.5126vw + 53.357px, 140px);
  left: clamp(-33px, 11.7329vw - 193.271px, 32px);
  top: clamp(846px, 35.7401vw + 357.791px, 1044px);
  width: clamp(224px, 8.8448vw + 103.181px, 273px);
}

.p-top-fv__decoration--gray-right {
  background: rgba(244, 245, 244, 0.6);
  height: clamp(754px, 30.3249vw + 339.762px, 922px);
  right: clamp(163px, 38.2671vw - 359.729px, 375px);
  top: clamp(-10px, 1.2635vw - 27.26px, -3px);
  width: clamp(196px, 7.9422vw + 87.509px, 240px);
}

.p-top-fv__decoration--yellow-right {
  background: rgba(221, 232, 190, 0.35);
  height: clamp(138px, 5.234vw + 66.506px, 167px);
  right: clamp(-69px, 2.888vw - 108.451px, -53px);
  top: clamp(411px, 18.231vw + 161.958px, 512px);
  width: clamp(383px, 41.516vw - 184.297px, 613px);
}

.p-top-fv__decoration--mint-right {
  background: rgba(201, 232, 217, 0.35);
  border-radius: 1rem 0 0 1rem;
  height: clamp(160px, 6.4982vw + 71.235px, 196px);
  right: clamp(-53px, 0.5415vw - 42.603px, -50px);
  top: clamp(648px, 27.6173vw + 270.747px, 801px);
  width: clamp(521px, 51.2635vw - 179.26px, 805px);
}

.p-top-fv__decoration--yellow-right-bottom {
  background: rgba(221, 232, 190, 0.35);
  height: clamp(246px, 9.9278vw + 110.386px, 301px);
  right: clamp(-22px, 30.8664vw - 443.635px, 149px);
  top: clamp(733px, 31.2274vw + 306.433px, 906px);
  width: clamp(145px, 5.7762vw + 66.097px, 177px);
}

.p-top-fv__stage {
  aspect-ratio: 1;
  left: clamp(0px, 12.9964vw - 177.531px, 72px);
  pointer-events: none;
  position: absolute;
  top: clamp(-33px, 81.368px - 5.9567vw, 0px);
  width: max(1060px, min(100%, 55.2347vw + 611.49px, 1672px));
}
.p-top-fv__photo {
  margin: 0;
  overflow: hidden;
  position: absolute;
}

.p-top-fv__photo img {
  display: block;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-top-fv__photo--main {
  left: 19.838946%;
  top: 9.150805%;
  width: 34.626647%;
  z-index: 1;
}

.p-top-fv__photo--sub {
  left: 79.502196%;
  top: calc(11.346999% + clamp(0rem, 7.5812vw - 10.356rem, 4.2rem));
  width: 24.158126%;
}

.p-top-fv__photo--small {
  left: 3.660322%;
  top: 41.068814%;
  width: 18.887262%;
}

.p-top-fv__title {
  left: 61.786237%;
  margin: 0;
  position: absolute;
  top: calc(9.956076% + clamp(0rem, 7.5812vw - 10.356rem, 4.2rem));
  width: 6.002928%;
}

.p-top-fv__site-title {
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  clip: rect(0 0 0 0);
  border: 0;
  white-space: nowrap;
}

.p-top-fv__title img {
  display: block;
  width: 100%;
}

.p-top-fv__news {
  background: var(--white);
  border-radius: 0 0 0.5rem 0.5rem;
  border-top: 0.5rem solid var(--green-recruit);
  bottom: 2.5rem;
  box-shadow: 0 0.4rem 1.2rem var(--shadow-card);
  height: 14.8rem;
  padding: 2.3rem 4rem 0;
  position: absolute;
  right: 4rem;
  width: 49.2rem;
}

.p-top-fv__news-heading {
  color: var(--green-recruit);
  font-size: 2.6rem;
  line-height: 1;
  margin: 0;
  position: absolute;
  right: 1rem;
  top: -2.7rem;
}

.p-top-fv__news-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-top-fv__news-item a {
  display: flex;
  font-size: 1.6rem;
  line-height: 3rem;
}

.p-top-fv__news-item time {
  color: var(--gray-muted);
  flex: 0 0 10.4rem;
}

.p-top-fv__news-item span {
  border-bottom: 1px solid var(--border-news-title);
  display: block;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: border-color 0.25s ease;
  white-space: nowrap;
}

/* 当院について
-------------------------------------------*/
.p-top-about {
  margin-bottom: 2.5rem;
}

.p-top-about__copy {
  text-align: center;
}

.p-top-about__copy p {
  font-size: 1.8rem;
  line-height: 2.5;
  margin: 0;
}

.p-top-about__copy p + p {
  margin-top: 2.3rem;
}

.p-top-about__emphasis {
  color: var(--green-heading);
}

.p-top-about__diagram {
  aspect-ratio: 1812/1349;
  container-type: inline-size;
  isolation: isolate;
  margin: 5.7rem auto 0;
  position: relative;
  width: 90.6rem;
}

.p-top-about__diagram::before {
  background: url("../images/top/about-back-sp.png") center/contain no-repeat;
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-top-about__diagram-items {
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-top-about__diagram-item {
  align-items: center;
  color: var(--green-heading);
  display: flex;
  font-size: clamp(1.6rem, 2cqw, 2.4rem);
  font-weight: var(--semi-bold);
  justify-content: center;
  line-height: 1.45;
  margin: 0;
  position: absolute;
  text-align: center;
  transform: translate(-50%, -50%);
  width: 22%;
}

.p-top-about__diagram-item small {
  display: block;
  font-size: 0.78em;
  line-height: 1.35;
  margin-top: 0.35em;
}

.p-top-about__diagram-item--specialists {
  left: 30%;
  top: 25%;
}

.p-top-about__diagram-item--hygienists {
  left: 70%;
  top: 25%;
}

.p-top-about__diagram-item--patient {
  flex-direction: column;
  font-size: clamp(1.8rem, 2cqw, 2.6rem);
  gap: 0.4em;
  left: 50%;
  top: 50%;
}

.p-top-about__patient-icon {
  aspect-ratio: 59/67;
  display: block;
  width: clamp(4.5rem, 6.5cqw, 5.9rem);
}

.p-top-about__diagram-item--technicians {
  left: 30%;
  top: 75.5%;
}

.p-top-about__diagram-item--partners {
  left: 70%;
  top: 75.5%;
}

.p-top-about__diagram-note {
  color: var(--gray-muted);
  display: inline-block;
  font-size: clamp(1.4rem, 1.77cqw, 2rem);
  font-weight: var(--semi-bold);
  line-height: 2;
  margin: 0;
  position: absolute;
  text-align: left;
  white-space: nowrap;
}

.p-top-about__diagram-note--specialists {
  left: 2%;
  top: 3%;
}

.p-top-about__diagram-note--hygienists {
  right: 0;
  top: 3%;
}

.p-top-about__diagram-note--technicians {
  bottom: 17%;
  left: 1.5%;
}

.p-top-about__diagram-note--partners {
  bottom: 17%;
  right: 5%;
}
/* 医院案内・スタッフ紹介
-------------------------------------------*/
.p-top-guide {
  display: flex;
  gap: 7.4rem;
  margin-bottom: 14rem;
}

.p-top-guide__card {
  display: block;
  flex: 1;
  padding-bottom: 9.5rem;
  position: relative;
}

.p-top-guide__card img {
  border-radius: 1rem;
  display: block;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-top-guide__body {
  background: var(--orange-alpha-90);
  border-radius: 1rem;
  bottom: 0;
  box-shadow: 0 0 0.6rem var(--shadow-guide);
  color: var(--white);
  display: block;
  height: 11rem;
  left: 2.9rem;
  padding: 2.7rem 3.5rem 0;
  position: absolute;
  right: 2.9rem;
  transition: background-color 0.25s ease;
}

.p-top-guide__body small {
  display: block;
  font-size: 1.4rem;
  line-height: 2.1rem;
  margin-bottom: 0.4rem;
}

.p-top-guide__body strong {
  display: block;
  font-size: 2.4rem;
  line-height: 3rem;
}

.p-top-guide__body .c-arrow-circle {
  color: var(--white);
  position: absolute;
  right: 3.5rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2.2rem;
}

/* お知らせ（SP のみ）
-------------------------------------------*/
.p-top-news {
  overflow-x: clip;
  padding-bottom: 9rem;
  position: relative;
}

.p-top-news__photos {
  aspect-ratio: 390/212;
  margin-bottom: 15.128%;
  position: relative;
}

.p-top-news__photos::before,
.p-top-news__photos::after,
.p-top-news::before {
  border-radius: 1rem;
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
}

.p-top-news__photos::before {
  background: var(--decor-fv-mint);
  height: 26.415%;
  left: 35.128%;
  opacity: 0.35;
  top: -7.547%;
  width: 38.974%;
}

.p-top-news__photos::after {
  background: var(--decor-fv-yellow);
  height: 22.642%;
  left: 68.974%;
  opacity: 0.35;
  top: 6.132%;
  width: 21.538%;
}

.p-top-news::before {
  background: var(--decor-fv-gray);
  height: 7.7rem;
  left: -2.8rem;
  opacity: 0.6;
  top: 11rem;
  width: 15.9rem;
}

.p-top-news__photo {
  border-radius: 1rem;
  position: absolute;
  z-index: 1;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-top-news__photo--square {
  left: 5.128%;
  top: 0;
  width: 35.897%;
}

.p-top-news__photo--wide {
  left: 46.154%;
  top: 25.943%;
  width: 56.41%;
}

.p-top-news__more {
  align-items: center;
  display: inline-flex;
  font-size: 1.6rem;
  gap: 0.8rem;
  line-height: 2.2rem;
  margin-bottom: 0.4rem;
}

.p-top-news__more > span:first-child {
  border-bottom: 1px solid var(--green-hover-soft);
}

.p-top-news__list {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
}

.p-top-news__item {
  background-image: radial-gradient(circle, var(--border-light) 0.1rem, transparent 0.1rem);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.6rem 0.2rem;
}

.p-top-news__item:first-child {
  background: radial-gradient(circle, #d1ddd8 0.1rem, transparent 0.1rem) left top/0.6rem 0.2rem repeat-x, radial-gradient(circle, #d1ddd8 0.1rem, transparent 0.1rem) left bottom/0.6rem 0.2rem repeat-x;
  padding-top: 0.2rem;
}

.p-top-news__item a {
  display: grid;
  gap: 0.8rem;
  padding: 1.7rem 1rem 1.3rem;
}

.p-top-news__item time {
  color: var(--gray-muted);
  font-size: 1.5rem;
  line-height: 3rem;
}

.p-top-news__item span {
  display: -webkit-box;
  font-size: 1.8rem;
  line-height: 3rem;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/* 診療案内
-------------------------------------------*/
.p-top-treatment {
  --treatment-scroll-distance: 0px;
  background: var(--base-bg);
  margin-bottom: 14rem;
  overflow-y: clip;
  padding: 12rem 0;
}

.p-top-treatment__layout {
  display: flex;
  gap: 4.3rem;
  margin: 0 auto;
  padding: 0 3.9rem;
  width: 126.2rem;
}

.p-top-treatment__heading {
  align-self: flex-start;
  color: var(--green-heading);
  flex: 0 0 9.2rem;
  position: sticky;
  top: 11rem;
  writing-mode: vertical-rl;
}

.p-top-treatment__heading h2 {
  font-size: 3.2rem;
  line-height: 1.5;
  margin: 0;
}

.p-top-treatment__heading h2 span {
  display: block;
  writing-mode: vertical-rl;
}

.p-top-women__heading br {
  display: none;
}

.p-top-treatment__label {
  left: -4rem;
  position: absolute;
  top: 31.2rem;
  width: 4.9rem;
}

.p-top-treatment__groups {
  display: grid;
  flex: 1;
  min-width: 0;
  position: relative;
  z-index: 1;
}

.p-top-treatment__groups-list {
  display: grid;
  gap: 3rem;
  will-change: transform;
}

.p-top-treatment__groups::after {
  background: var(--scrollbar-drawer);
  border-radius: 0.3rem;
  content: "";
  height: 8rem;
  position: absolute;
  right: -2.6rem;
  top: var(--treatment-scrollbar-offset, 0.5rem);
  width: 0.6rem;
}

.p-top-treatment__group {
  background: var(--white);
  border-radius: 1rem;
  display: flex;
  gap: 5rem;
  min-width: 0;
  padding: 5rem 5rem 3.6rem;
}

.p-top-treatment__group-copy {
  flex: 0 0 20rem;
  min-width: 0;
  padding-top: 0.4rem;
}

.p-top-treatment__group-copy h3 {
  background-image: radial-gradient(circle, #d1ddd8 0.1rem, transparent 0.1rem);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.6rem 0.2rem;
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 3.2rem;
  margin: 0 0 1.8rem;
  padding-bottom: 1.2rem;
  white-space: nowrap;
}

.p-top-treatment__group-copy p {
  font-size: 1.6rem;
  line-height: 3.2rem;
  margin: 0;
}

.p-top-treatment__items {
  display: flex;
  flex: 1;
  flex-wrap: wrap;
  gap: 4.7rem 3.5rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-top-treatment__item {
  width: 20rem;
}

.p-top-treatment__item a {
  display: block;
  position: relative;
}

.p-top-treatment__icon {
  background: var(--bg-icon);
  border-radius: 0.5rem;
  box-shadow: 0 0 1rem var(--shadow-icon);
  display: grid;
  height: 14.1rem;
  margin-bottom: 1.9rem;
  place-content: center;
  transition: background-color 0.25s ease;
}

.p-top-treatment__icon img {
  display: block;
}

.p-top-treatment__name {
  align-items: center;
  display: flex;
  font-size: 1.6rem;
  line-height: 2.4rem;
  min-height: 4.8rem;
  padding-right: 2.8rem;
}

.p-top-treatment__item .c-arrow-circle {
  bottom: 1.4rem;
  color: var(--green-heading);
  position: absolute;
  right: 0;
  width: 2rem;
}

/* 女性に優しい歯科医院
-------------------------------------------*/
.p-top-women {
  display: grid;
  grid-template-columns: 47.8rem 18.8rem 1fr;
  grid-template-rows: auto auto 1fr;
  margin-bottom: 14rem;
  position: relative;
}

.p-top-women::before {
  background: var(--decor-fv-gray);
  border-radius: 1rem;
  content: "";
  height: 13.3rem;
  left: 92.2rem;
  position: absolute;
  top: 0;
  width: 15.9rem;
}

.p-top-women__main {
  grid-column: 1;
  grid-row: 1/4;
  margin-left: -2rem;
  position: relative;
  z-index: 1;
}

.p-top-women__main::after {
  background: var(--decor-fv-yellow);
  border-radius: 1rem;
  content: "";
  height: 11.5rem;
  left: 44.5rem;
  opacity: 0.35;
  position: absolute;
  top: 42.5rem;
  width: 12.1rem;
  z-index: 2;
}

.p-top-women__main img {
  border-radius: 2rem;
  display: block;
  width: 49.8rem;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-top-women__heading {
  align-items: flex-start;
  color: var(--orange-heading);
  display: flex;
  flex-direction: row-reverse;
  font-size: 3.2rem;
  grid-column: 2;
  grid-row: 1/4;
  letter-spacing: 0.3rem;
  line-height: 4.6rem;
  margin: 0;
  padding: 2.1rem 4.3rem 0 0;
}

.p-top-women__heading span {
  writing-mode: vertical-rl;
}

.p-top-women__copy {
  font-size: 1.6rem;
  grid-column: 3;
  grid-row: 1;
  line-height: 3.2rem;
  margin: 0;
  padding-top: 5rem;
  position: relative;
  z-index: 1;
}

.p-top-women__btn {
  font-size: 1.6rem;
  grid-column: 3;
  grid-row: 2;
  margin-top: 2.7rem;
  width: 31.8rem;
  z-index: 1;
}

.p-top-women__sub {
  align-self: end;
  grid-column: 3;
  grid-row: 3;
  margin-left: -4.2rem;
  position: relative;
  z-index: 1;
}

.p-top-women__sub::before {
  background: var(--decor-fv-mint);
  border-radius: 1rem;
  content: "";
  height: 8.4rem;
  left: 18.1rem;
  opacity: 0.35;
  position: absolute;
  top: -4.5rem;
  width: 21.7rem;
  z-index: -1;
}

.p-top-women__sub::after {
  background: var(--decor-fv-mint);
  border-radius: 0.5rem;
  content: "";
  display: none;
  opacity: 0.35;
  position: absolute;
  z-index: 1;
}

.p-top-women__sub img {
  border-radius: 2rem;
  display: block;
  width: 36rem;
  -o-object-fit: cover;
  object-fit: cover;
}

/* セクション見出し（医院ブログ・SP お知らせ）
-------------------------------------------*/
.p-top-section-heading {
  align-items: flex-end;
  display: flex;
  justify-content: space-between;
  margin-bottom: 3.4rem;
}

.p-top-section-heading__title p,
.p-top-section-heading__title h2 {
  margin: 0;
}

.p-top-section-heading__title p {
  color: var(--green-heading);
  font-size: 1.4rem;
  line-height: 3.8rem;
}

.p-top-section-heading__title h2 {
  font-size: 2.6rem;
  line-height: 3.8rem;
}

.p-top-section-heading__link {
  align-items: center;
  display: inline-flex;
  font-size: 1.6rem;
  gap: 1rem;
  line-height: 3rem;
  margin-bottom: 0.4rem;
}

.p-top-section-heading__link .c-arrow-circle,
.p-top-news__more .c-arrow-circle {
  color: var(--green-primary);
  transition: color 0.25s ease;
  width: 2rem;
}

/* 医院ブログ
-------------------------------------------*/
.p-top-blog {
  background: var(--bg-page-soft);
  margin-bottom: 14rem;
  padding: 4.8rem 0 6rem;
}

.p-top-blog__inner {
  margin: 0 auto;
  width: 98rem;
}

.p-top-blog__more {
  display: flex;
  margin: 4.5rem 0 0 auto;
  width: -moz-fit-content;
  width: fit-content;
}

.p-top-blog__list {
  display: flex;
  gap: 4rem;
}

.p-top-blog__card {
  flex: 1;
}

.p-top-blog__card > a {
  display: block;
}

.p-top-blog__thumbnail {
  aspect-ratio: 300/212;
  border-radius: 1.5rem;
  display: block;
  margin-bottom: 1.6rem;
  overflow: hidden;
  width: 100%;
}

.p-top-blog__thumbnail img {
  display: block;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.p-top-blog__card time,
.p-top-blog__card h3,
.p-top-blog__card p {
  margin-inline: 1rem;
}

.p-top-blog__card time {
  color: var(--gray-muted);
  display: block;
  font-size: 1.6rem;
  line-height: 3rem;
  transition: color 0.25s ease;
}

.p-top-blog__card h3 {
  color: var(--base-color);
  display: -webkit-box;
  font-size: 1.6rem;
  line-height: 3.2rem;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  transition: color 0.25s ease;
}

.p-top-blog__card p {
  background: var(--bg-label);
  border-radius: 0.3rem;
  color: var(--green-tag-border);
  display: inline-block;
  font-size: 1.4rem;
  line-height: 3rem;
  margin-block: 0.8rem 0;
  padding: 0 1.5rem;
}

/* アクセス
-------------------------------------------*/
.p-top-access {
  margin-bottom: 14rem;
  position: relative;
}

.p-top-access__map {
  border-radius: 2rem;
  height: 73.6rem;
  overflow: hidden;
  position: relative;
}

.p-top-access__map #map {
  display: block;
  height: 100%;
  width: 100%;
}

.p-top-access__note {
  align-items: center;
  background: var(--green-note);
  border-radius: 2.8rem;
  bottom: 2.5rem;
  color: var(--white);
  display: flex;
  font-size: 1.6rem;
  left: 4.5rem;
  line-height: 3.2rem;
  margin: 0;
  padding: 1.2rem 3rem;
  position: absolute;
}

.p-top-access__parking {
  align-items: center;
  display: flex;
  gap: 1rem;
}

.p-top-access__parking img {
  width: 2.1rem;
}

/* 採用情報
-------------------------------------------*/
.p-top-recruit {
  background: var(--bg-mint-light);
  border-radius: 1rem;
  display: grid;
  grid-template-columns: 35.4rem 1fr;
  margin: 0 auto 20rem;
  overflow: hidden;
  width: 107.6rem;
}

.p-top-recruit__image {
  height: 100%;
  width: 35.4rem;
  -o-object-fit: cover;
  object-fit: cover;
}

.p-top-recruit__body {
  padding: 5.4rem 25.4rem 4.5rem 5rem;
  position: relative;
}

.p-top-recruit__body h2 {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 3.5rem;
  margin: 0 0 0.9rem;
}

.p-top-recruit__body p {
  font-size: 1.6rem;
  line-height: 3.2rem;
  margin: 0;
}

.p-top-recruit__body > a {
  align-items: center;
  background: var(--green-recruit);
  border-radius: 1rem;
  bottom: 2.8rem;
  box-shadow: 0 0 0.6rem var(--shadow-recruit);
  color: var(--white);
  display: flex;
  font-size: 1.6rem;
  gap: 1rem;
  justify-content: center;
  position: absolute;
  right: 3rem;
  top: 2.8rem;
  transition: background-color 0.25s ease;
  width: 19.4rem;
}

.p-top-recruit__body > a > .c-arrow-circle {
  color: var(--white);
  width: 2rem;
}

/* ホバー・フォーカス
-------------------------------------------*/
.p-top-fv__news-item a:focus-visible span {
  border-color: var(--green-primary);
}

.p-top-treatment__item a:focus-visible .p-top-treatment__icon {
  background: var(--bg-hover-cream);
}

.p-top-guide__card:focus-visible .p-top-guide__body {
  background: var(--yellow-alpha-90);
}

.p-top-section-heading__link:focus-visible .c-arrow-circle {
  color: var(--green-hover-soft);
}

.p-top-blog__card > a:focus-visible .p-top-blog__thumbnail img {
  transform: scale(1.05);
}

.p-top-blog__card > a:focus-visible time,
.p-top-blog__card > a:focus-visible h3 {
  color: var(--green-primary);
}

.p-top-recruit__body > a:focus-visible {
  background: var(--green-recruit-hover);
}
/* -------------------------------------------*/
.p-treatment {
  color: var(--base-color);
  overflow: hidden;
  position: relative;
  width: 100%;
}

.p-treatment__page-head-inner,
.p-treatment__section-inner {
  padding-inline: 0;
}

.p-treatment__page-head {
  padding: 19.5rem 0 14rem;
  position: relative;
}

.p-treatment__page-head::before,
.p-treatment__page-head::after {
  border-radius: 1rem;
  content: "";
  pointer-events: none;
  position: absolute;
}

.p-treatment__page-head::before {
  aspect-ratio: 390/240;
  background: linear-gradient(90deg, var(--decor-page-yellow-alpha-35), var(--decor-page-mint-alpha-35));
  right: -8rem;
  top: 7rem;
  width: 39rem;
}

.p-treatment__page-head::after {
  aspect-ratio: 300/180;
  background-color: var(--decor-page-gray-alpha-60);
  bottom: 8rem;
  left: -8rem;
  width: 30rem;
}

.p-treatment__page-head-inner {
  display: grid;
  gap: 9rem 9rem;
  grid-template-columns: 42rem 57rem;
  grid-template-rows: auto auto;
  position: relative;
  z-index: 1;
}

.p-treatment__title-wrap {
  grid-column: 1/-1;
}

.p-treatment__breadcrumb {
  color: var(--green-heading);
  font-size: 1.4rem;
  margin: 0;
}

.p-treatment__breadcrumb span {
  color: var(--text-gray-muted);
  font-size: 1.2rem;
  margin-left: 0.8rem;
}

.p-treatment__title-wrap h1 {
  color: var(--green-heading);
  font-size: 3.4rem;
  line-height: 1.4;
  margin: 1.8rem 0 0;
}

.p-treatment__intro-title p {
  font-size: 2.4rem;
  line-height: 1.8;
  margin: 0;
}

.p-treatment__intro-copy p,
.p-treatment__body p {
  font-size: 1.4rem;
  line-height: 2;
  margin: 0;
}

.p-treatment__intro-copy p + p,
.p-treatment__body p + p {
  margin-top: 2.4rem;
}

.p-treatment__section {
  padding: 11rem 0;
}

.p-treatment__section--soft {
  position: relative;
  z-index: 0;
}

.p-treatment__section--soft::before {
  background-color: var(--bg-page-soft);
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.p-treatment__split {
  align-items: center;
  display: flex;
  gap: 10rem;
}

.p-treatment__split--reverse {
  flex-direction: row-reverse;
}

.p-treatment__image {
  flex: 0 0 46rem;
  margin: 0;
  overflow: hidden;
  width: 46rem;
}

.p-treatment__image img {
  display: block;
  width: 100%;
}

.p-treatment__content {
  width: 48rem;
}

.p-treatment__head {
  margin: 0 0 2.8rem;
}

.p-treatment__label {
  color: var(--green-label-text);
  font-size: 1.4rem;
  margin: 0 0 1rem;
}

.p-treatment__head h2 {
  color: var(--green-heading);
  font-size: 2.5rem;
  line-height: 1.5;
  margin: 0;
}

.p-treatment__list {
  display: grid;
  gap: 1.2rem;
  list-style: none;
  margin: 2.4rem 0 0;
  padding: 0;
}

.p-treatment__list li {
  color: var(--green-heading);
  font-size: 1.4rem;
  line-height: 1.7;
  padding-left: 2rem;
  position: relative;
}

.p-treatment__list li::before {
  aspect-ratio: 1;
  background-color: currentcolor;
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 0.8rem;
  width: 0.8rem;
}

.p-treatment__link {
  margin-top: 3.2rem;
  width: 28rem;
}

.p-treatment__link .c-arrow-circle {
  width: 2rem;
}

.p-treatment__cards {
  display: grid;
  gap: 3rem;
  grid-template-columns: repeat(3, 1fr);
  margin: 7rem auto 0;
}

.p-treatment__card {
  background-color: var(--white);
}

.p-treatment__card .p-treatment__image {
  width: 100%;
}

.p-treatment__card-body {
  padding: 2.5rem;
}

.p-treatment__card h3 {
  color: var(--green-heading);
  font-size: 2rem;
  margin: 0;
}

.p-treatment__card p {
  font-size: 1.3rem;
  line-height: 1.8;
  margin: 1.6rem 0 0;
}
/* -------------------------------------------*/
.p-sleep-apnea {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-sleep-apnea img {
  display: block;
  width: 100%;
}

:where(.p-sleep-apnea) p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-sleep-apnea__intro {
  padding-bottom: 12.4rem;
  position: relative;
}

/* 思い当たる症状はありませんか？
-------------------------------------------*/
.p-sleep-apnea__symptoms {
  padding: 6.4rem 0 7.4rem;
  position: relative;
  z-index: 0;
}

.p-sleep-apnea__symptoms::before {
  background-color: var(--bg-page-soft);
  border-radius: 0 2rem 2rem 0;
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  right: calc(50% - 57.7rem);
  top: 0;
  z-index: -1;
}

.p-sleep-apnea__symptoms-inner {
  position: relative;
}

.p-sleep-apnea__symptoms-image {
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
  position: absolute;
  right: calc(var(--padding-pc) + 2.5rem);
  top: -13.3rem;
  width: 29rem;
}

.p-sleep-apnea__symptoms-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 0;
}

.p-sleep-apnea__symptoms-lead {
  margin-top: 1.6rem;
}

.p-sleep-apnea__symptom-list {
  display: grid;
  grid-template-columns: 35.7rem 30.8rem 1fr;
  margin-top: 3rem;
}

.p-sleep-apnea__symptom-group + .p-sleep-apnea__symptom-group {
  background-image: radial-gradient(circle, #d1ddd8 0.1rem, transparent 0.1rem);
  background-position: left top;
  background-repeat: repeat-y;
  background-size: 0.2rem 0.6rem;
  padding-left: 5rem;
}

.p-sleep-apnea__symptom-group h3 {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.25;
  margin: 0 0 0 -1rem;
}

.p-sleep-apnea__symptom-group ul {
  margin-top: 0.6rem;
}

.p-sleep-apnea__symptom-group li + li {
  margin-top: 0.8rem;
}

/* 睡眠時無呼吸症候群の原因
-------------------------------------------*/
.p-sleep-apnea__cause {
  padding-top: 13.3rem;
}

.p-sleep-apnea__cause-lead,
.p-sleep-apnea__osa {
  margin-inline: auto;
  width: 88.8rem;
}

.p-sleep-apnea__cause-lead {
  margin-top: 6.5rem;
}

.p-sleep-apnea__cause-lead p + p,
.p-sleep-apnea__osa-text p + p,
.p-sleep-apnea__treatment-text p + p,
.p-sleep-apnea__cooperation p + p {
  margin-top: 1.9rem;
}

.p-sleep-apnea__osa {
  margin-top: 8.3rem;
}

/* 歯科的な治療法
-------------------------------------------*/
.p-sleep-apnea__treatment {
  padding: 12.4rem 0 20rem;
}

.p-sleep-apnea__treatment-body {
  align-items: flex-start;
  display: flex;
  gap: 6rem;
  margin: 6.2rem auto 0;
  width: 94.6rem;
}

.p-sleep-apnea__treatment-image {
  border-radius: 1.5rem;
  flex: 0 0 42rem;
  margin: 0;
  overflow: hidden;
}

.p-sleep-apnea__treatment-text {
  flex: 1;
  padding-top: 0.1rem;
}

.p-sleep-apnea__treatment-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-sleep-apnea__treatment-title + p {
  margin-top: 1.9rem;
}

/* 近隣の呼吸器内科と連携した治療
-------------------------------------------*/
.p-sleep-apnea__cooperation {
  background-color: var(--bg-warm-light);
  border-radius: 1rem;
  margin: 9.1rem auto 0;
  padding: 6.1rem 8rem 6.2rem;
  width: 99.4rem;
}

.p-sleep-apnea__cooperation-title {
  color: var(--text-brown);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0;
}

.p-sleep-apnea__cooperation-title + p {
  margin-top: 1.9rem;
}

.p-sleep-apnea__cooperation .p-sleep-apnea__note {
  margin-top: 1.8rem;
  padding-left: 2.1rem;
  text-indent: -2.1rem;
}

/* -------------------------------------------*/
.p-tch-tmj {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-tch-tmj img {
  display: block;
  width: 100%;
}

.p-tch-tmj__intro {
  padding-bottom: 13.3rem;
}

/* 共通：見出し・本文
-------------------------------------------*/
.p-tch-tmj__heading {
  margin-bottom: 6.2rem;
}

.p-tch-tmj__title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0 0 1.8rem;
}

.p-tch-tmj__text p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-tch-tmj__text p + p {
  margin-top: 1.9rem;
}

/* 思い当たる症状（導入内のカード）
-------------------------------------------*/
.p-tch-tmj__symptoms {
  gap: 7rem;
  margin-top: 5.4rem;
  min-height: 40.7rem;
}

.p-tch-tmj__symptoms-image {
  flex: 0 0 33.9rem;
}

.p-tch-tmj__symptoms-body {
  flex: 1;
  padding-top: 13.4rem;
}

.p-tch-tmj__symptoms-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.6;
  margin: 0;
}

.p-tch-tmj__symptoms-text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.1rem 0 0;
}

.p-tch-tmj__symptoms-list {
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: 27.1rem auto;
  grid-template-rows: repeat(3, auto);
  list-style: none;
  margin: 1.7rem 0 0;
  padding: 0;
  row-gap: 1rem;
}

.p-tch-tmj__symptoms-list li,
.p-tch-tmj__check-list li {
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 3.2rem;
  position: relative;
}

.p-tch-tmj__symptoms-list li::before,
.p-tch-tmj__check-list li::before {
  aspect-ratio: 1;
  background: url("../images/common/icon-check.svg") center/contain no-repeat;
  content: "";
  left: 0;
  position: absolute;
  top: 0.5rem;
  width: 2.2rem;
}

/* TCHによる顎関節症が増えている
-------------------------------------------*/
.p-tch-tmj__risk {
  padding-bottom: 9.2rem;
}

.p-tch-tmj__risk-inner {
  position: relative;
}

.p-tch-tmj__risk-image {
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
  position: absolute;
  right: var(--padding-pc);
  top: 10.7rem;
  width: 36.1rem;
}

.p-tch-tmj__risk-body {
  width: 61.9rem;
}

.p-tch-tmj__point-title {
  font-size: 2rem;
  line-height: 2.1;
  margin: 3.4rem 0 1.4rem;
}

/* 簡単セルフチェック
-------------------------------------------*/
.p-tch-tmj__check {
  padding-bottom: 13.3rem;
}

.p-tch-tmj__check-inner {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  margin: 0 auto;
  max-width: 92rem;
  padding: 6.1rem 10.2rem 6.2rem;
}

.p-tch-tmj__check-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0 0 3.1rem;
  text-align: center;
}

.p-tch-tmj__check-box {
  background-color: var(--white);
  border: 0.2rem dotted var(--green-heading);
  border-radius: 1rem;
  color: var(--green-heading);
  margin: 0 auto;
  max-width: 58.2rem;
  padding: 3.1rem 5.8rem 3.7rem;
}

.p-tch-tmj__check-heading {
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: 0;
  padding-left: 1.8rem;
  position: relative;
}

.p-tch-tmj__check-heading::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 0.8rem;
}

.p-tch-tmj__check-steps {
  color: var(--base-color);
  counter-reset: check-step;
  list-style: none;
  margin: 0.7rem 0 0;
  padding: 0 0 3.5rem;
  position: relative;
}

.p-tch-tmj__check-steps::after {
  background-color: var(--green-heading);
  bottom: 0;
  height: 1.6rem;
  left: 50%;
  position: absolute;
  width: 2rem;
  -webkit-mask: url("../images/common/icon_border_arrow.svg") center/contain no-repeat;
  content: "";
  mask: url("../images/common/icon_border_arrow.svg") center/contain no-repeat;
  transform: translateX(-50%);
}

.p-tch-tmj__check-steps li {
  counter-increment: check-step;
  font-size: 1.6rem;
  line-height: 2;
  padding-left: 3.9rem;
  position: relative;
}

.p-tch-tmj__check-steps li + li {
  margin-top: 0.6rem;
}

.p-tch-tmj__check-steps li::before {
  color: var(--green-tag-border);
  content: counter(check-step, decimal-leading-zero);
  font-size: 2rem;
  left: 0.8rem;
  line-height: 1.7;
  position: absolute;
  top: 0;
}

.p-tch-tmj__check-question {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.7rem 0 0;
}

.p-tch-tmj__check-list {
  display: grid;
  list-style: none;
  margin: 0.7rem 0 0;
  padding: 0;
  row-gap: 1rem;
}

.p-tch-tmj__alert {
  color: var(--text-brown);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  margin: 3.4rem 0 0;
  padding-left: 3rem;
  position: relative;
}

.p-tch-tmj__alert::before {
  aspect-ratio: 1;
  background: url("../images/tch-tmj/icon-03.svg") center/contain no-repeat;
  content: "";
  left: 0;
  position: absolute;
  top: 0.6rem;
  width: 2rem;
}

.p-tch-tmj__check-text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.1rem 0 0;
}

/* 当院で行う治療
-------------------------------------------*/
.p-tch-tmj__treatment {
  padding-bottom: 19.7rem;
}

.p-tch-tmj__treatment-content {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 94.5rem;
}

.p-tch-tmj__treatment-body {
  width: 54rem;
}

.p-tch-tmj__treatment-image {
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
  width: 34.5rem;
}

/* -------------------------------------------*/
.p-cosmetic {
  color: var(--base-color);
  overflow: hidden;
  width: 100%;
}

.p-cosmetic img {
  display: block;
  width: 100%;
}

.p-whitening__intro {
  padding-bottom: 11.8rem;
}

/* 共通：見出し・本文
-------------------------------------------*/
.p-cosmetic__heading {
  margin-bottom: 6.2rem;
}

.p-cosmetic__title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0 0 1.8rem;
}

.p-cosmetic__text p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-cosmetic__text p + p {
  margin-top: 1.9rem;
}

/* 当院の〜（本文＋画像）
-------------------------------------------*/
.p-cosmetic__about {
  padding-bottom: 6.2rem;
}

.p-cosmetic__about-content {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 94.5rem;
}

.p-cosmetic__about-body {
  flex: 1;
}

.p-cosmetic__about-image {
  border-radius: 1.5rem;
  margin: 0;
  overflow: hidden;
  width: 43rem;
}

/* メニュー（ミントの枠＋白いパネル）
-------------------------------------------*/
.p-cosmetic__menu {
  padding-bottom: 13.3rem;
}

.p-cosmetic__menu-panel {
  background-color: var(--bg-panel-mint);
  border-radius: 1rem;
  margin: 0 auto;
  max-width: 100rem;
  padding: 3rem;
}

.p-cosmetic__menu-inner {
  background-color: var(--white);
  border-radius: 0.5rem;
  padding: 6.2rem 8rem;
}

.p-cosmetic__menu-title {
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0 0 4.4rem;
}

.p-cosmetic__menu-item {
  display: flow-root;
}

.p-cosmetic__menu-item + .p-cosmetic__menu-item {
  margin-top: 6.4rem;
}

.p-cosmetic__menu-name {
  background-image: radial-gradient(circle, #5d898d 0.1rem, transparent 0.1rem);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.6rem 0.2rem;
  color: var(--green-heading);
  font-size: 2.6rem;
  line-height: 1.6153846154;
  margin: 0 -1rem 2.5rem;
  padding: 0 1rem 0.8rem;
}

.p-cosmetic__menu-lead {
  color: var(--green-heading);
  font-size: 2.2rem;
  line-height: 1.9090909091;
  margin: 0 0 1.7rem;
}

/* 費用
-------------------------------------------*/
.p-cosmetic__price .p-cosmetic__heading {
  margin-bottom: 7.2rem;
}

.p-cosmetic__price-list {
  margin: 0 auto;
  max-width: 91rem;
}

/* リスク・副作用（グレーの箱）
-------------------------------------------*/
.p-cosmetic__risk {
  padding: 14rem 0 20rem;
}

.p-cosmetic__risk-box {
  --risk-padding: 5rem 8.1rem 5.2rem;
  --risk-list-gap: 1.7rem;
  margin: 0 auto;
  max-width: 106.7rem;
}

/* ブライダルホワイトニング（ホワイトニングのみ）
-------------------------------------------*/
.p-whitening__bridal {
  background-color: var(--bg-warm-light);
  border-radius: 1rem;
  display: flex;
  gap: 3.5rem;
  justify-content: space-between;
  margin: 3.7rem 0 0.8rem;
  padding: 5rem;
}

.p-whitening__bridal-body {
  flex: 1;
  min-width: 0;
}

.p-whitening__bridal-title {
  color: var(--text-brown);
  font-size: 2.2rem;
  line-height: 1.9090909091;
  margin: 0;
}

.p-whitening__bridal-text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 1.2rem 0 0;
}

.p-whitening__bridal-image {
  border-radius: 1.5rem;
  flex: 0 0 24.8rem;
  margin: 0;
  overflow: hidden;
}

/* -------------------------------------------*/
.p-esthetic__intro {
  padding-bottom: 11.8rem;
}

.p-esthetic__about-content {
  gap: 6rem;
  max-width: 90rem;
}

.p-esthetic .p-cosmetic__about {
  padding-bottom: 9.5rem;
}

.p-esthetic__about-content .p-cosmetic__about-image {
  width: 42rem;
}

.p-esthetic__menu {
  padding-bottom: 10rem;
}

.p-esthetic__menu-panel {
  background-color: transparent;
  max-width: 90rem;
  padding: 0;
}

.p-esthetic__menu .p-cosmetic__menu-inner {
  background-color: transparent;
  padding: 0;
}

.p-esthetic__menu-title {
  margin-bottom: 2.5rem;
}

.p-esthetic__menu-list {
  --term-width: 26rem;
}

.p-esthetic__price-table {
  margin: 0 auto;
  max-width: 91rem;
  overflow: visible;
}

.p-esthetic__price-table .c-treatment-table__table {
  table-layout: fixed;
}

.p-esthetic__price-table th,
.p-esthetic__price-table td {
  border-top: 1px solid var(--border-light);
  padding: 2.2rem 2rem 2.3rem;
  vertical-align: top;
}

.p-esthetic__price-table tr:last-child > * {
  border-bottom: 1px solid var(--border-light);
}

.p-esthetic__price-table tr:nth-child(2) td {
  background-image: radial-gradient(circle at 1px 1px, #d1ddd8 1px, transparent 1.1px);
  background-position: top left;
  background-repeat: repeat-x;
  background-size: 0.8rem 0.2rem;
  border-top: 0;
}

.p-esthetic__price-table th {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
  text-align: left;
  width: 21%;
}

.p-esthetic__price-order {
  color: var(--green-heading);
  font-size: 1.8rem;
  line-height: 1.7777777778;
}

.p-esthetic__price-value {
  display: inline-block;
  width: 5.3em;
}

.p-esthetic__price-separator {
  display: inline-block;
  margin-inline: 0.7em 0.4em;
}

.p-esthetic__price-value-cell {
  text-align: right;
}

.p-esthetic__price-table td p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0;
}

.p-esthetic__price-table td p + p {
  margin-top: 0.8rem;
}
/* セレックシステム
-------------------------------------------*/
.p-esthetic__cerec {
  padding-bottom: 13.3rem;
}

.p-esthetic__cerec-inner {
  background-color: var(--bg-page-soft);
  border-radius: 1rem;
  margin: 0 auto;
  max-width: 100rem;
  padding: 6.1rem 9rem 7rem;
}

.p-esthetic__cerec-title {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.75;
  margin: 0 0 3.1rem;
  text-align: center;
}

.p-esthetic__cerec-lead {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
}

.p-esthetic__cerec-body {
  width: 40rem;
}

.p-esthetic__cerec-image {
  border-radius: 0.5rem;
  margin: 0;
  overflow: hidden;
  width: 37rem;
}

.p-esthetic__merit {
  background-color: var(--white);
  border-radius: 1rem;
  margin: 5rem -1rem 0;
  padding: 4.2rem 6rem;
}

.p-esthetic__merit-title {
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 2.1;
  margin: 0;
  padding-left: 4.5rem;
  position: relative;
}

.p-esthetic__merit-title::before {
  aspect-ratio: 1;
  background: url("../images/common/icon-check.svg") center/contain no-repeat;
  content: "";
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
}

.p-esthetic__merit-list {
  list-style: none;
  margin: 1.9rem 0 0 4.5rem;
  padding: 0;
}

.p-esthetic__merit-list li {
  padding-left: 1.8rem;
  position: relative;
}

.p-esthetic__merit-list li + li {
  margin-top: 2rem;
}

.p-esthetic__merit-list li::before {
  aspect-ratio: 1;
  background-color: var(--green-tag-border);
  border-radius: 50%;
  content: "";
  left: 0;
  position: absolute;
  top: 1.2rem;
  width: 0.8rem;
}

.p-esthetic__merit-name {
  display: block;
  font-size: 1.8rem;
  line-height: 1.7777777778;
}

.p-esthetic__merit-text {
  display: block;
  font-size: 1.6rem;
  line-height: 2;
}

/* -------------------------------------------*/
.p-implant__intro {
  padding-bottom: 3.4rem;
}

.p-implant__heading {
  margin-bottom: 9.7rem;
}

/* インプラント専門医（写真＋左端まで伸びる背景）
-------------------------------------------*/
.p-implant__specialist-card {
  --lead-card-bg-top: 9rem;
  gap: 8rem;
  min-height: 56.8rem;
}

.p-implant__specialist-image {
  flex: 0 0 35.5rem;
  margin-left: -5.3rem;
}

.p-implant__specialist-body {
  padding-top: 16.1rem;
  width: 63.5rem;
}

/* 選ばれる3つの理由
-------------------------------------------*/
.p-implant__reasons {
  padding-top: 13.3rem;
}

.p-implant__reason-list {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  margin: 0 -1rem;
  padding: 0;
}

.p-implant__reason {
  background-color: var(--bg-card-white);
  border: 1rem solid var(--bg-panel-mint);
  border-radius: 1rem;
  padding: 4.8rem 3.5rem 2.8rem;
  position: relative;
}

.p-implant__reason-label {
  background-color: var(--green-recruit-alpha-90);
  border-radius: 0.5rem;
  box-shadow: 0 0 0.6rem var(--shadow-facilities-title);
  color: var(--white);
  font-size: 1.6rem;
  left: 1.5rem;
  line-height: 3.5;
  position: absolute;
  text-align: center;
  top: -3.5rem;
  width: 12.5rem;
}

.p-implant__reason-title {
  background-image: radial-gradient(circle, #5d898d 0.1rem, transparent 0.1rem);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 0.6rem 0.2rem;
  color: var(--green-heading);
  font-size: 2rem;
  line-height: 1.75;
  margin: 0 -0.5rem;
  padding: 0 0.5rem 1.8rem;
  text-align: center;
}

.p-implant__reason-text {
  font-size: 1.6rem;
  line-height: 2;
  margin: 2.7rem 0 0;
}

/* 治療の流れ（c-treatment-steps--implant の XD 合わせ）
-------------------------------------------*/
.p-implant__flow {
  padding: 13.3rem 0 12.5rem;
}

.p-implant__flow .p-implant__heading {
  margin-bottom: 6.9rem;
}

.p-implant__step-list {
  gap: 8.8rem;
}

.p-implant__step-list .c-treatment-steps__item {
  align-items: start;
  grid-template-columns: 4rem 25rem 1fr;
  -moz-column-gap: 2.5rem;
  column-gap: 2.5rem;
  min-height: 0;
}

.p-implant__step-list .c-treatment-steps__item:nth-child(4) {
  min-height: 0;
}

.p-implant__step-list .c-treatment-steps__item:not(:last-child)::after {
  background-image: radial-gradient(circle, var(--border-timeline) 0.1rem, transparent 0.1rem);
  background-position: center top;
  background-repeat: repeat-y;
  background-size: 0.2rem 0.6rem;
  border-left: 0;
  bottom: -7rem;
  left: 1.7rem;
  top: 6.1rem;
  width: 0.2rem;
}

.p-implant__step-list .c-treatment-steps__number {
  line-height: 1;
  margin-top: 0.3rem;
  width: 3.5rem;
}

.p-implant__step-list .c-treatment-steps__text {
  margin-top: 0.8rem;
}

/* -------------------------------------------*/
.p-women {
  color: var(--base-color);
  overflow-x: clip;
  width: 100%;
}

/* 導入
-------------------------------------------*/
.p-women__intro {
  isolation: isolate;
  padding-bottom: 9.2rem;
  position: relative;
  text-align: center;
}

.p-women__intro::before,
.p-women__intro::after,
.p-women__intro-inner::before,
.p-women__intro-inner::after {
  border-radius: 1rem;
  content: "";
  position: absolute;
  z-index: -1;
}

.p-women__intro::before {
  background-color: var(--decor-page-gray-alpha-60);
  height: 28.6rem;
  left: calc(50% - 61.3rem);
  top: 0;
  width: 17.3rem;
}

.p-women__intro::after {
  background-color: var(--decor-page-yellow-alpha-35);
  height: 10.6rem;
  left: calc(50% - 70.75rem);
  top: 14.3rem;
  width: 32.7rem;
}

.p-women__intro-inner::before {
  background-color: var(--decor-page-mint-alpha-35);
  height: 13.3rem;
  left: calc(50% + 37.8rem);
  top: -1.5rem;
  width: 33.8rem;
}

.p-women__intro-inner::after {
  background-color: var(--decor-page-yellow-alpha-35);
  height: 26.1rem;
  left: calc(50% + 45.6rem);
  top: -4.1rem;
  width: 10.6rem;
}

.p-women__intro h2 {
  color: var(--orange);
  font-size: 2.4rem;
  line-height: 1.75;
  margin-top: -0.9rem;
}

.p-women__intro p {
  font-size: 1.6rem;
  line-height: 2;
  margin: 2rem 0 0;
}

.p-women__intro p + p {
  margin-top: 1.9rem;
}

/* 副院長（女性健康アドバイザー）
-------------------------------------------*/
.p-women__advisor {
  padding: 8rem 0;
  position: relative;
  z-index: 0;
}

.p-women__advisor::before {
  background-color: var(--bg-page-soft);
  border-radius: 0 2rem 2rem 0;
  bottom: 0;
  content: "";
  left: 0;
  position: absolute;
  top: 0;
  width: calc(50% + 57.7rem);
  z-index: -1;
}

.p-women__advisor-inner {
  align-items: flex-start;
  display: flex;
  gap: 8rem;
}

.p-women__advisor-photo {
  flex: 0 0 37.7rem;
  margin: 0;
  position: relative;
}

.p-women__advisor-photo img {
  border-radius: 1.5rem;
  display: block;
  width: 100%;
}

.p-women__advisor-photo figcaption {
  background-color: var(--green-recruit-alpha-90);
  border-radius: 0.5rem;
  bottom: -2rem;
  box-shadow: 0 0 0.6rem rgba(51, 75, 70, 0.3);
  color: var(--white);
  height: 8.6rem;
  padding: 1.6rem 2.8rem 0;
  position: absolute;
  right: -2rem;
}

.p-women__advisor-photo figcaption span,
.p-women__advisor-photo figcaption strong {
  display: block;
  line-height: 1.5;
}

.p-women__advisor-photo figcaption span {
  font-size: 1.6rem;
}

.p-women__advisor-photo figcaption strong {
  font-size: 2.2rem;
}

.p-women__advisor-copy {
  flex: 0 0 50rem;
  padding-top: 1.2rem;
}

.p-women__advisor-copy h2 {
  color: var(--green-heading);
  font-size: 2.4rem;
  line-height: 1.875;
  margin-bottom: 1.7rem;
}

.p-women__advisor-copy p {
  font-size: 1.6rem;
  line-height: 2;
}

.p-women__advisor-copy p + p {
  margin-top: 1.9rem;
}

/* 女性のための診療メニュー
-------------------------------------------*/
.p-women__menu {
  padding: 13.4rem 0 21.2rem;
}

.p-women__feature-list {
  margin: 6.1rem auto 0;
  padding-left: 1.1rem;
  width: 93.6rem;
}

.p-women__feature {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
}

.p-women__feature + .p-women__feature {
  margin-top: 10rem;
}

.p-women__feature-copy {
  width: 52rem;
}

.p-women__feature-photo {
  flex: 0 0 32.5rem;
  margin: 0;
}

.p-women__feature-photo img {
  border-radius: 1.5rem;
  display: block;
  width: 100%;
}

.p-women__kicker {
  font-size: 2rem;
  line-height: 2.25;
  margin: 0.1rem 0 0;
}

.p-women__feature h3 {
  font-size: 2.4rem;
  line-height: 1.75;
  margin-top: 1.1rem;
}

.p-women__feature-lead {
  font-size: 1.6rem;
  line-height: 2;
  margin: 0.8rem 0 0;
}

.p-women__note {
  background-color: var(--bg-warm-light);
  border-radius: 1rem;
  margin: 2.2rem -1rem 0;
  padding: 3.2rem 4rem;
}

.p-women__note h4 {
  color: var(--text-brown);
  font-size: 1.6rem;
  line-height: 2;
}

.p-women__note h4:not(:first-child) {
  margin-top: 1.2rem;
}

.p-women__note p {
  font-size: 1.6rem;
  line-height: 2;
}

.p-women__annotation {
  font-size: 1.6rem;
  line-height: 2;
  margin: 2.2rem 0 0;
  padding-left: 2.1rem;
  text-indent: -2.1rem;
}

.p-women__button {
  display: flex;
  font-size: 1.6rem;
  margin: 4.5rem -1rem 0 auto;
  width: 28.5rem;
}

.p-women__annotation + .p-women__button {
  margin-top: 3.7rem;
}

/* -------------------------------------------*/
/* 表示制御
-------------------------------------------*/
.u-db {
  display: block;
}

.u-dn {
  display: none;
}

/* レスポンシブ表示切替
-------------------------------------------*/

.u-pc-inline {
  display: inline;
}

.u-sp-inline {
  display: none;
}

/* カラーフィルター
-------------------------------------------*/
.u-mask--black {
  filter: brightness(0);
}

.u-mask--white {
  filter: brightness(0) invert(1);
}

/* カラー
-------------------------------------------*/
.u-color-white {
  color: var(--white);
}

/* コンテンツ幅
-------------------------------------------*/
.u-inner {
  margin: 0 auto;
  max-width: var(--content-width);
  padding-inline: var(--padding-pc);
}

/* z-index
-------------------------------------------*/
.u-z-1 {
  z-index: -1;
}

.u-z1 {
  z-index: 1;
}

.u-z2 {
  z-index: 2;
}

.u-z3 {
  z-index: 3;
}

.u-z10 {
  z-index: 10;
}

.u-z50 {
  z-index: 50;
}

.u-z100 {
  z-index: 100;
}

/* スペーシング
-------------------------------------------*/

@media screen and (min-width: 768px){
  .header {
    box-shadow: none;
    position: fixed;
  }
}

@media screen and (min-width: 769px) and (max-width: 1239px){
  .header {
    left: max(12.8rem, 100vw - 100.4rem);
    position: fixed;
    right: auto;
  }
}

@media screen and (min-width: 769px) and (max-width: 927px){
  .p-top-fv {
    margin-inline: 0;
    min-width: 1060px;
    width: 1060px;
  }
  .p-top-fv__stage {
    left: 0;
    top: 0;
    width: 1060px;
  }
}

@media (max-width: 1360px) and (not (max-width: 768px)){
  .header__logo,
  .header__logo.header__logo--compact {
    aspect-ratio: 58/56;
    left: 4rem;
    top: 2rem;
    width: 5.8rem;
  }
}

@media not all and (max-width: 927px){
  .wrapper {
    align-items: center;
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0 auto;
    min-height: 100vh;
    width: 100%;
  }
  .u-tab {
    display: none;
  }
}

@media screen and (max-width: 927px){
  input[type=text],
  input[type=date],
  input[type=password],
  input[type=email],
  input[type=time],
  input[type=tel],
  input[type=number] {
    padding: 1rem;
  }
  textarea {
    height: 17rem;
  }
  input[type=radio] + .wpcf7-list-item-label {
    margin: 0;
    padding: 1rem 0.5rem 1.2rem 2.3rem;
  }
  input[type=radio] + .wpcf7-list-item-label::before {
    width: 1.5rem;
  }
  input[type=radio] + .wpcf7-list-item-label::after {
    left: 0.3rem;
    width: 0.9rem;
  }
  .main--error .main__inner {
    padding: 8rem 1.5rem;
  }
  .main--error .btn {
    margin-top: 3rem;
  }
  .u-pc {
    display: none;
  }
}

@media not all and (max-width: 768px){
  a[href^="tel:"] {
    pointer-events: none;
  }
  .header {
    background: transparent;
    isolation: isolate;
  }
  .header::before {
    background: var(--white);
    border-radius: 0 0 0 2rem;
    box-shadow: 0 0.5rem 1.2rem var(--shadow-mega-menu);
    content: "";
    height: calc(7.6rem + var(--mega-menu-height));
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    transition: height 0.3s ease;
    width: 100%;
    z-index: 0;
  }
  .header > * {
    z-index: 1;
  }
  .header:has(.header__nav-item--mega-about:hover), .header:has(.header__nav-item--mega-about:focus-within) {
    --mega-menu-height: 27rem;
  }
  .header:has(.header__nav-item--mega-treatment:hover), .header:has(.header__nav-item--mega-treatment:focus-within) {
    --mega-menu-height: 62.7rem;
  }
  .header__logo--compact {
    aspect-ratio: 228/61;
    left: 5.5rem;
    top: 3rem;
    width: 22.8rem;
  }
  .wrapper {
    min-width: 124rem;
  }
  .p-facilities__card h2:has(small) {
    align-items: center;
    flex-direction: row;
    justify-content: center;
  }
  .journal--single-news .journal-article__related--previous .journal-article__related-body {
    justify-self: end;
    max-width: 100%;
    width: -moz-fit-content;
    width: fit-content;
  }
  .p-staff__members {
    padding-inline: 0;
  }
  .p-staff__card--lead .p-staff__tags {
    flex-direction: column;
    margin: 0;
    position: absolute;
    right: 5rem;
    top: 4rem;
    width: 20rem;
  }
  .p-staff__card--lead .p-staff__tags li {
    width: 100%;
  }
  .p-top-treatment {
    height: calc(100svh + var(--treatment-scroll-distance));
    padding: 0;
  }
  .p-top-treatment__layout {
    height: 100svh;
    padding-bottom: 0;
    padding-top: 0;
    position: sticky;
    top: 0;
  }
  .p-top-treatment__heading {
    margin-top: 12rem;
    position: relative;
    top: auto;
  }
  .p-top-treatment__groups-list {
    padding-block: 12rem;
  }
  .p-top-access__divider::before {
    content: "／";
  }
  .p-esthetic__price-table td:nth-child(2) {
    width: 37%;
  }
  .p-esthetic__price-table td:last-child {
    width: 42%;
  }
  .u-sp {
    display: none !important;
  }
}

@media screen and (max-width: 768px){
  :root {
    --header-height: 5.8rem;
  }
  html {
    max-width: 100%;
    overflow-x: clip;
    width: 100%;
  }
  body {
    overflow-x: clip;
  }
  .c-btn--back {
    margin-top: 4rem;
  }
  .btn__link {
    font-size: 1.8rem;
    padding-right: 2.2rem;
  }
  .btn__link::after {
    width: 1.6rem;
  }
  .c-content-card__title {
    font-size: 2rem;
  }
  .c-page-hero {
    padding: 4rem 0 5rem;
    width: calc(100% - 4rem);
  }
  .c-page-hero__media {
    width: 100%;
  }
  .c-page-hero__head {
    margin-top: 2rem;
  }
  .c-page-hero__title {
    font-size: 2.4rem;
  }
  .c-page-hero__label {
    font-size: 1.4rem;
  }
  .c-service-hero-decoration__item {
    border-radius: 0.5rem;
  }
  .c-treatment-hero {
    padding-top: 11.1rem;
  }
  .c-treatment-hero__label {
    font-size: 1.2rem;
    line-height: 1.5;
  }
  .c-treatment-hero__label span {
    margin-left: 0;
  }
  .c-treatment-hero__title {
    font-size: 2.4rem;
    line-height: 1.5;
    margin-top: 0.4rem;
  }
  .c-treatment-hero__grid {
    display: block;
    margin-top: 3.7rem;
  }
  .c-treatment-hero__catch {
    font-size: 2rem;
  }
  .c-treatment-hero__body {
    margin-top: 1.7rem;
  }
  .c-treatment-hero__body p {
    font-size: 1.5rem;
  }
  .c-treatment-hero__body p + p {
    margin-top: 1rem;
  }
  .c-treatment-lead-card {
    display: block;
  }
  .c-treatment-lead-card::before {
    border-radius: 0 1rem 1rem 0;
    inset: 4rem 0 0 calc(var(--padding-sp) * -1);
  }
  .c-treatment-lead-card__image {
    border-radius: 1rem;
    margin: 0 auto;
    width: 70%;
  }
  .c-treatment-heading__title {
    font-size: 2rem;
    line-height: 2.1;
  }
  .c-treatment-heading__text {
    font-size: 1.5rem;
  }
  .c-treatment-heading--compact .c-treatment-heading__title {
    font-size: 1.8rem;
    line-height: 2.3333333333;
  }
  .c-treatment-heading--short .c-treatment-heading__title {
    line-height: 1.75;
  }
  .c-treatment-heading--spacious .c-treatment-heading__text {
    margin-top: 1.6rem;
  }
  .c-underline-heading__title {
    background-size: 100% 1rem;
    font-size: 2.2rem;
    line-height: 2.0454545455;
  }
  .c-feature-box {
    padding-bottom: 5rem;
  }
  .c-feature-box::before {
    inset: 0;
    transform: none;
    width: auto;
  }
  .c-feature-box::after {
    aspect-ratio: 27/146;
    left: auto;
    right: 1rem;
    width: 2.7rem;
  }
  .c-feature-box--preventive::after {
    display: none;
  }
  .c-feature-box--maternity::after {
    background-image: url("../images/common/decoration-01.svg");
  }
  .c-feature-box__header {
    display: flex;
    margin: -3rem auto 0;
    max-width: 28rem;
    min-height: 6rem;
    padding: 0 2rem;
    width: 100%;
  }
  .c-feature-box--maternity .c-feature-box__header {
    width: 100%;
  }
  .c-feature-box__title {
    font-size: 1.8rem;
    line-height: 2.5;
    text-align: center;
  }
  .c-feature-box__list {
    display: block;
    margin: 4rem auto 0;
    max-width: 28rem;
    width: 100%;
  }
  .c-feature-box__item + .c-feature-box__item {
    margin-top: 4.2rem;
  }
  .c-feature-box__item-title {
    line-height: 1.5;
    margin-top: 2.1rem;
  }
  .c-feature-box__text {
    font-size: 1.5rem;
    margin-top: 0.8rem;
  }
  .c-treatment-table {
    position: relative;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  .c-treatment-table::-webkit-scrollbar {
    display: none;
  }
  .c-treatment-table--results .c-treatment-table__table {
    width: 79rem;
  }
  .c-treatment-table--results th,
  .c-treatment-table--results td {
    font-size: 1.5rem;
    height: 4.5rem;
    line-height: 2.1333333333;
    padding: 0.8rem 1rem;
  }
  .c-treatment-price__row {
    align-items: start;
    display: grid;
    grid-template-columns: var(--price-term-width) 1fr;
    padding: 2.1rem 1rem;
  }
  .c-treatment-table--price th,
  .c-treatment-price__term {
    font-size: 1.5rem;
    line-height: 1.5333333333;
  }
  .c-treatment-table--price td,
  .c-treatment-price__value {
    font-size: 1.5rem;
    text-align: left;
  }
  .c-treatment-price__value {
    margin-block: -0.4rem;
  }
  .c-treatment-list {
    --term-width: 13.4rem;
  }
  .c-treatment-list__term {
    font-size: 1.5rem;
    line-height: 1.5333333333;
    padding: 1rem;
  }
  .c-treatment-list__description {
    font-size: 1.5rem;
    padding: 1.8rem 1rem 1.7rem;
  }
  .c-treatment-list__note {
    aspect-ratio: 125/63;
    font-size: 1.2rem;
    left: 0.5rem;
    line-height: 1.5;
    top: 1.3rem;
    width: 12.5rem;
  }
  .c-treatment-list--pediatric .c-treatment-list__note {
    background-image: url("../images/pediatric/graphic-02.svg");
    padding-bottom: 1.7em;
    white-space: nowrap;
  }
  .c-treatment-list--pediatric .c-treatment-list__row:first-child .c-treatment-list__term {
    align-self: start;
    margin-top: 7rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__item {
    display: block;
    padding-bottom: 8rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__item:nth-child(1) {
    padding-bottom: 5.1rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__item:nth-child(2) {
    padding-bottom: 6.4rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__item:nth-child(3) {
    padding-bottom: 2.7rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__item:nth-child(4) {
    padding-bottom: 1.9rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__item:not(:last-child)::before {
    bottom: 1.5rem;
    left: 1.3rem;
    top: 4.2rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__head {
    gap: 1rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__number {
    flex-basis: 2.6rem;
    font-size: 1.4rem;
    height: 2.6rem;
    line-height: 2.6428571429;
    width: 2.6rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__title {
    font-size: 2rem;
    line-height: 2.25;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__item:nth-child(3) .c-treatment-steps__title {
    color: var(--base-color);
  }
  .c-treatment-steps--periodontal .c-treatment-steps__body {
    margin-left: 3.6rem;
    margin-top: 2.9rem;
    padding-top: 0;
    width: calc(100% - 3.6rem);
  }
  .c-treatment-steps--periodontal .c-treatment-steps__body > p {
    font-size: 1.5rem;
    margin-bottom: 2rem;
  }
  .c-treatment-steps--periodontal .c-treatment-steps__body > p + p {
    margin-top: 2rem;
  }
  .c-treatment-steps--implant {
    gap: 3.2rem;
  }
  .c-treatment-steps--implant .c-treatment-steps__item {
    align-items: start;
    gap: 0 1rem;
    grid-template-columns: 2.6rem 1fr;
    min-height: 0;
  }
  .c-treatment-steps--implant .c-treatment-steps__item:nth-child(4) {
    min-height: 0;
  }
  .c-treatment-steps--implant .c-treatment-steps__item:nth-child(3) {
    min-height: 14.4rem;
  }
  .c-treatment-steps--implant .c-treatment-steps__item:not(:last-child)::after {
    bottom: -5.2rem;
    left: 1.2rem;
    top: 3rem;
  }
  .c-treatment-steps--implant .c-treatment-steps__number {
    font-size: 1.4rem;
    grid-column: 1;
    grid-row: 1;
    line-height: 2.6428571429;
    width: 2.4rem;
  }
  .c-treatment-steps--implant .c-treatment-steps__title {
    font-size: 2rem;
    grid-column: 2;
    grid-row: 1;
    line-height: 2.25;
  }
  .c-treatment-steps--implant .c-treatment-steps__text {
    font-size: 1.5rem;
    grid-column: 2;
    grid-row: 2;
    margin-top: 2.4rem;
  }
  .c-treatment-risk {
    --risk-padding: 3.2rem 3.5rem 2.7rem;
    --risk-list-gap: 1.1rem;
  }
  .c-treatment-risk__title {
    font-size: 1.8rem;
    line-height: 1.5;
    text-align: center;
  }
  .c-treatment-risk__note {
    font-size: 1.5rem;
    margin-top: -0.5rem;
    text-align: center;
  }
  .c-treatment-risk__note + .c-treatment-risk__list {
    margin-top: 1.2rem;
  }
  .c-treatment-risk__list li {
    font-size: 1.5rem;
    padding-left: 1.1rem;
  }
  .c-treatment-risk--dot .c-treatment-risk__list li::before {
    top: 1.3rem;
    width: 0.4rem;
  }
  .c-check-list__item {
    font-size: 1.5rem;
    line-height: 1.7333333333;
    padding-left: 2.5rem;
  }
  .c-check-list__item::before {
    top: 0.45rem;
    width: 1.7rem;
  }
  .c-check-list--columns {
    grid-auto-flow: row;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    row-gap: 0.6rem;
  }
  .c-check-list--small .c-check-list__item {
    padding-left: 2.5rem;
  }
  .c-check-list--small .c-check-list__item::before {
    top: 0.5rem;
    width: 1.7rem;
  }
  .c-ring-heading {
    padding-left: 3.2rem;
  }
  .c-ring-heading::before {
    width: 2.2rem;
  }
  .c-ring-heading--large {
    font-size: 2.2rem;
    line-height: 1.7272727273;
  }
  .c-treatment-media {
    flex-direction: column-reverse;
    gap: 2.8rem;
    margin-top: 2.7rem;
  }
  .c-treatment-media__body {
    padding-top: 0;
  }
  .c-treatment-media__image {
    border-radius: 1rem;
    flex-basis: auto;
    width: 100%;
  }
  .page-top {
    bottom: 9.5rem;
    display: block;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    right: 1.5rem;
    transition: opacity 0.25s ease, visibility 0.25s ease;
    visibility: hidden;
    width: 5rem;
    z-index: 80;
  }
  .page-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
  }
  body.is-mobile-drawer-open .page-top {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
  }
  .footer {
    border-radius: 2rem 2rem 0 0;
    height: auto;
    min-width: 0;
    padding: 4.8rem 0 3.1rem;
  }
  .footer__inner {
    display: block;
  }
  .footer__logo img {
    margin-left: 1rem;
    width: 20.7rem;
  }
  .footer__brand p {
    font-size: 1.5rem;
    margin: 1.8rem 0 0 1rem;
  }
  .footer__map {
    display: none;
  }
  .footer__hours-table {
    border-radius: 1rem;
    height: 14.1rem;
    margin-top: 2.8rem;
    padding: 0 1rem 0.7rem;
  }
  .footer__hours table {
    font-size: 1.4rem;
    line-height: 1.4285714286;
  }
  .footer__hours thead tr {
    height: 4.4rem;
  }
  .footer__hours tbody tr {
    height: 4.5rem;
  }
  .footer__hours th:first-child {
    padding-left: 0.8rem;
    width: 11.5rem;
  }
  .footer__hours th:nth-child(2),
  .footer__hours td:nth-child(2) {
    width: 3rem;
  }
  .footer__hours th:nth-child(3),
  .footer__hours td:nth-child(3) {
    width: 2.95rem;
  }
  .footer__hours th:nth-child(4),
  .footer__hours td:nth-child(4) {
    width: 2.9rem;
  }
  .footer__hours th:nth-child(5),
  .footer__hours td:nth-child(5) {
    width: 2.95rem;
  }
  .footer__hours th:nth-child(6),
  .footer__hours td:nth-child(6),
  .footer__hours th:nth-child(7),
  .footer__hours td:nth-child(7),
  .footer__hours th:nth-child(8),
  .footer__hours td:nth-child(8) {
    width: 3rem;
  }
  .footer__hours td.is-open::before {
    border-width: 0.15rem;
    height: 1.4rem;
    width: 1.4rem;
  }
  .footer__hours td.is-partial::before {
    width: 1.4rem;
  }
  .footer__hours td.is-closed::before {
    height: 0.15rem;
    width: 1.4rem;
  }
  .footer__hours td.is-visit {
    font-size: 1.4rem;
  }
  .footer__hours p {
    font-size: 1.5rem;
    margin: 1.7rem 0 0 1rem;
  }
  .footer__hours p + p {
    margin-top: 1rem;
  }
  .footer__reserve {
    display: none;
  }
  .footer__bottom {
    justify-content: center;
    margin-top: 5.4rem;
    position: static;
  }
  .footer__bottom.inner-md {
    margin-top: 5.4rem;
  }
  .footer__bottom a {
    display: none;
  }
  .header {
    background: transparent;
    border-radius: 0;
    padding: 2rem 0 2.6rem;
    pointer-events: none;
    right: 0;
    width: 100%;
  }
  .header__logo {
    aspect-ratio: 131/83;
    left: 3.4rem;
    margin: 0;
    position: absolute;
    top: 0.2rem;
    width: 13.1rem;
  }
  .header__logo--compact-sp {
    aspect-ratio: 209/44;
    left: 50%;
    top: 2rem;
    transform: translateX(-50%);
    width: 20.9rem;
  }
  .header__nav {
    display: none;
  }
  .header__tel {
    display: none;
  }
  .header__reserve {
    display: none;
  }
  .top-mobile-actions {
    background: rgba(244, 143, 61, 0.9);
    bottom: 0;
    color: var(--white);
    display: grid;
    grid-template-columns: 47.4359% 32.5641% 20%;
    height: 7rem;
    left: 0;
    position: fixed;
    right: 0;
    width: 100%;
    z-index: 100;
  }
  .mobile-drawer {
    display: block;
    inset: 0 0 7rem;
    pointer-events: none;
    position: fixed;
    transform: translateY(100%);
    transition: visibility 0.3s ease, transform 0.3s ease;
    visibility: hidden;
    z-index: 90;
  }
  .mobile-drawer::before {
    aspect-ratio: 760/70;
    background: url("../images/common/gbmenu_grad.png") top center/100% 100% no-repeat;
    content: "";
    display: block;
    left: 1rem;
    pointer-events: none;
    position: absolute;
    top: 2rem;
    width: calc(100% - 1rem);
    z-index: 2;
  }
  .is-mobile-drawer-open .top-mobile-actions {
    background: rgb(244, 143, 61);
  }
  .mobile-drawer__links {
    margin-bottom: 1rem;
  }
  .inner {
    padding-inline: var(--padding-sp);
  }
  .inner-md {
    padding-inline: var(--padding-sp);
  }
  .nav {
    background: var(--white);
    box-shadow: 0 0.8rem 1.8rem var(--shadow-nav);
    inset: 6.4rem 0 auto;
    padding: 2.5rem 3rem;
    position: fixed;
    transform: translateY(-140%);
    transition: transform 0.2s ease;
  }
  .nav__menu {
    display: grid;
    gap: 2.2rem;
  }
  .nav__link {
    font-size: 1.8rem;
  }
  .is-open .nav {
    transform: translateY(0);
  }
  .post h1 {
    font-size: 2rem;
  }
  .post__body {
    font-size: 1.5rem;
  }
  .post__body h2 {
    font-size: 1.8rem;
  }
  .post__body h3 {
    font-size: 1.8rem;
  }
  .post__body h4 {
    font-size: 1.6rem;
  }
  .post__body h5,
  .post__body h6 {
    font-size: 1.5rem;
  }
  .wrapper {
    overflow-x: clip;
    padding-bottom: 7rem;
  }
  .main--error h1 {
    width: 80%;
  }
  .main--error .error-text {
    font-size: 1.5rem;
  }
  .main--error .error-link {
    font-size: 1.5rem;
  }
  .p-access {
    padding-bottom: 9rem;
  }
  .p-access__hero {
    padding: 4rem var(--padding-sp) 0;
  }
  .p-access__hero-image {
    border-radius: 1.5rem;
    width: 100%;
  }
  .p-access__title {
    margin-top: 2.2rem;
  }
  .p-access__title h1 {
    font-size: 2.4rem;
  }
  .p-access__title p {
    font-size: 1.2rem;
    margin-top: 0.4rem;
  }
  .p-access__map {
    padding-top: 5.8rem;
  }
  .p-access__map-visual {
    aspect-ratio: 700/990;
    width: 100%;
  }
  .p-access__map-btn {
    display: flex;
  }
  .p-access__information {
    padding-top: 5.3rem;
  }
  .p-access__information-layout {
    display: block;
  }
  .p-access__address {
    align-items: center;
    gap: 2rem;
  }
  .p-access__clinic-logo {
    margin-top: 0;
    width: 5.8rem;
  }
  .p-access__clinic-name {
    font-size: 1.8rem;
    line-height: 1.7777777778;
  }
  .p-access__address-text {
    font-size: 1.5rem;
    margin-top: 0;
  }
  .p-access__address-btn {
    display: none;
  }
  .p-access__hours {
    margin-top: 1.8rem;
    width: 100%;
  }
  .p-access__hours-table {
    border-radius: 1rem;
  }
  .p-access__hours table {
    font-size: 1.4rem;
    line-height: 1.4285714286;
  }
  .p-access__hours thead tr {
    height: 4.4rem;
  }
  .p-access__hours tbody tr {
    height: 4.7rem;
  }
  .p-access__hours tbody tr:first-child > :first-child {
    background-size: calc(100% - 1rem) 1px;
  }
  .p-access__hours tbody tr:first-child > :last-child {
    background-size: calc(100% - 1rem) 1px;
  }
  .p-access__hours tr > :first-child {
    padding-left: 1.8rem;
    width: 12.5rem;
  }
  .p-access__hours tr > :last-child {
    padding-right: 1.7rem;
    width: 4.7rem;
  }
  .p-access__hours td.is-open::before {
    border-width: 0.15rem;
    width: 1.4rem;
  }
  .p-access__hours td.is-partial::before {
    width: 1.4rem;
  }
  .p-access__hours td.is-closed::before {
    height: 0.15rem;
    width: 1.4rem;
  }
  .p-access__hours td.is-visit {
    font-size: 1.4rem;
  }
  .p-access__hours-note {
    font-size: 1.5rem;
  }
  .p-access__hours-note + .p-access__hours-note {
    margin-top: 1rem;
  }
  .p-access__parking {
    padding-top: 3.8rem;
  }
  .p-access__parking-box {
    margin-inline: 0;
    padding: 2.5rem 3.2rem 2.5rem;
  }
  .p-access__parking-title {
    font-size: 1.8rem;
    line-height: 1.7777777778;
  }
  .p-access__parking-list {
    flex-direction: column;
    gap: 2.8rem;
    margin-top: 2.8rem;
  }
  .p-access__parking-item {
    width: 100%;
  }
  .p-access__parking-item img {
    border-radius: 0.5rem;
  }
  .p-access__parking-item figcaption {
    font-size: 1.5rem;
    line-height: 2;
    margin-top: 0.7rem;
  }
  .p-clinic__body p {
    font-size: 1.5rem;
  }
  .p-clinic__body p + p {
    margin-top: 1rem;
  }
  .p-clinic__label {
    width: 4.8rem;
  }
  .p-clinic__concept .p-clinic__body,
  .p-clinic__history .p-clinic__body,
  .p-clinic__policy-body {
    position: relative;
  }
  .p-clinic__concept .p-clinic__body::after,
  .p-clinic__history .p-clinic__body::before,
  .p-clinic__policy-body::after {
    background-image: var(--clinic-label-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: block;
    height: var(--clinic-label-height);
    position: absolute;
    width: 4.8rem;
    z-index: -1;
  }
  .p-clinic__concept .p-clinic__body::after {
    right: 0;
    top: 0;
  }
  .p-clinic__history .p-clinic__body::before {
    left: -1rem;
    top: 0;
  }
  .p-clinic__policy-body::after {
    right: 2rem;
    top: 9.7rem;
  }
  .p-clinic__section--history::before,
  .p-clinic__section--history::after,
  .p-clinic__history::before,
  .p-clinic__history::after,
  .p-clinic__history-side::after {
    border-radius: 0.5rem;
  }
  .p-clinic__section--concept {
    padding-bottom: 8.2rem;
  }
  .p-clinic__label--concept {
    display: none;
  }
  .p-clinic__concept {
    grid-template-columns: 27.429% 72.571%;
    padding-inline: var(--padding-sp);
  }
  .p-clinic__concept .p-clinic__copy {
    display: contents;
    white-space: normal;
  }
  .p-clinic__heading {
    font-size: 2rem;
    grid-column: 1;
    grid-row: 1;
    justify-self: end;
    line-height: 1.8;
    margin: 0.4rem 1.8rem 0 0;
    writing-mode: vertical-rl;
  }
  .p-clinic__heading-line + .p-clinic__heading-line {
    margin-top: 8.6rem;
  }
  .p-clinic__concept .p-clinic__body {
    grid-column: 1/-1;
    grid-row: 2;
    margin-top: 2.7rem;
    padding-right: 19.429%;
    --clinic-label-height: 20.7rem;
    --clinic-label-image: url('../images/clinic/graphic-01.svg');
  }
  .p-clinic__concept-image {
    border-radius: 1rem;
  }
  .p-clinic__section--history {
    padding-bottom: 11.1rem;
  }
  .p-clinic__section--history::before {
    background-color: var(--decor-page-mint-alpha-35);
    height: 9.3rem;
    left: calc(50% + 6.8rem);
    top: 20.8rem;
    width: 14.7rem;
  }
  .p-clinic__section--history::after {
    background-color: var(--decor-page-gray-alpha-60);
    height: 8.3rem;
    left: calc(50% - 22.4rem);
    top: 79.1rem;
    width: 8.3rem;
  }
  .p-clinic__history::before {
    bottom: 8.8rem;
    height: 8.2rem;
    left: calc(50% - 3.9rem);
    top: auto;
    width: 25.5rem;
  }
  .p-clinic__history::after {
    display: none;
  }
  .p-clinic__history-side::after {
    display: none;
  }
  .p-clinic__label--message {
    display: none;
  }
  .p-clinic__history {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-left: var(--padding-sp);
  }
  .p-clinic__history-main,
  .p-clinic__history-side {
    display: contents;
  }
  .p-clinic__history-heading {
    font-size: 2.2rem;
    line-height: 2.0454545455;
    margin: 3.3rem 0 0;
    order: 2;
  }
  .p-clinic__history-detail {
    font-size: 1.8rem;
    line-height: 2;
    margin-top: 0;
  }
  .p-clinic__history-photo {
    border-radius: 1rem;
    margin-top: 0;
    order: 1;
  }
  .p-clinic__history-subimages {
    gap: 2.857%;
    margin-top: 2.8rem;
    order: 4;
  }
  .p-clinic__history-subimages figure:first-child {
    border-radius: 1rem;
    flex-basis: 58.857%;
    margin-top: 2rem;
  }
  .p-clinic__history-subimages figure:last-child {
    border-radius: 1rem;
    flex-basis: 38.286%;
    margin-top: 0;
  }
  .p-clinic__history .p-clinic__body {
    margin: 1.8rem 0 0;
    order: 3;
    padding-left: 6.7rem;
    width: auto;
    --clinic-label-height: 20.8rem;
    --clinic-label-image: url('../images/clinic/graphic-02.svg');
  }
  .p-clinic__section--policy {
    display: block;
    padding-bottom: 9rem;
  }
  .p-clinic__policy-image {
    border-radius: 0 1rem 1rem 0;
    width: 76.923%;
  }
  .p-clinic__label--policy {
    display: none;
  }
  .p-clinic__policy-body {
    margin-top: -44.103vw;
    min-height: 0;
    padding: 52.308vw var(--padding-sp) 5.2rem;
    --clinic-label-height: 13.8rem;
    --clinic-label-image: url('../images/clinic/graphic-03.svg');
  }
  .p-clinic__policy-body::before {
    border-radius: 0;
    left: 0;
  }
  .p-clinic__policy-kicker {
    font-size: 1.8rem;
    line-height: 2.5;
  }
  .p-clinic__policy-item {
    margin-top: 2.8rem;
  }
  .p-clinic__policy-kicker + .p-clinic__policy-item {
    margin-top: 0.7rem;
  }
  .p-clinic__policy-item h3 {
    font-size: 2rem;
    line-height: 1.75;
    padding-left: 3.6rem;
  }
  .p-clinic__policy-item:first-of-type h3 {
    line-height: 2.25;
  }
  .p-clinic__policy-item h3 span {
    font-size: 1.4rem;
    height: 2.6rem;
    left: 0;
    top: 0.5rem;
    width: 2.6rem;
  }
  .p-clinic__policy-item:first-of-type h3 span {
    top: calc(50% - 1.3rem);
  }
  .p-clinic__policy-item p {
    font-size: 1.5rem;
  }
  .p-clinic__policy-item p + p {
    margin-top: 1rem;
  }
  .p-clinic__policy-item h3 + p {
    margin-top: 0.8rem;
  }
  .p-clinic__gallery {
    height: 17rem;
  }
  .p-clinic__gallery-set {
    animation-name: clinic-gallery-first-sp;
    gap: 0.5rem;
  }
  .p-clinic__gallery-set:nth-child(2) {
    animation-name: clinic-gallery-second-sp;
  }
  .p-clinic__gallery figure {
    border-radius: 1rem;
    flex-basis: 24rem;
  }
  .p-clinic__gallery figure:nth-child(2),
  .p-clinic__gallery figure:nth-child(5) {
    flex-basis: 17rem;
  }
  .p-clinic__section--flow {
    padding: 7.8rem 0 14.9rem;
  }
  .p-clinic__flow {
    display: block;
    margin: 3.9rem 0 0;
    padding: 4rem 3.5rem 2.8rem;
  }
  .p-clinic__flow-item {
    margin-top: 6.8rem;
  }
  .p-clinic__flow-item:first-child {
    margin-top: 0;
  }
  .p-clinic__flow-item:not(:last-child)::after {
    left: calc(50% - 1rem);
    top: calc(100% + 2.5rem);
    transform: none;
  }
  .p-clinic__flow-item .c-content-card__media {
    aspect-ratio: 280/198;
    border-radius: 0.5rem;
  }
  .p-clinic__flow-item .c-content-card__title {
    font-size: 1.8rem;
    line-height: 2.5;
    margin-top: 0.7rem;
  }
  .p-clinic__flow-item .c-content-card__copy {
    font-size: 1.5rem;
    margin-top: -0.6rem;
    padding-inline: 0.5rem;
    text-align: left;
  }
  .p-clinic__flow-end {
    margin: 7.6rem 0 0;
    padding: 2.8rem 4rem 3.2rem;
  }
  .p-clinic__flow-end::before {
    top: -4.6rem;
  }
  .p-clinic__flow-end strong {
    font-size: 2.2rem;
    line-height: 2.0454545455;
  }
  .p-clinic__flow-end p {
    font-size: 1.5rem;
    margin-top: 0.2rem;
    text-align: left;
  }
  .p-cavity-root-canal__intro {
    padding-bottom: 11.5rem;
  }
  .p-cavity-root-canal__body p {
    font-size: 1.5rem;
  }
  .p-cavity-root-canal__body p + p {
    margin-top: 1rem;
  }
  .p-cavity-root-canal__section-head {
    margin-bottom: 1.4rem;
  }
  .p-cavity-root-canal__section--minimal {
    padding: 0 0 3.5rem;
  }
  .p-cavity-root-canal__section--minimal::before,
  .p-cavity-root-canal__section--root::before {
    width: 100%;
  }
  .p-cavity-root-canal__section--minimal::before {
    border-radius: 0;
  }
  .p-cavity-root-canal__section--root::before {
    border-radius: 0;
  }
  .p-cavity-root-canal__section--minimal .p-cavity-root-canal__split {
    flex-direction: column;
    gap: 3.9rem;
  }
  .p-cavity-root-canal__section--minimal .p-cavity-root-canal__content {
    flex-basis: auto;
    width: 100%;
  }
  .p-cavity-root-canal__image--minimal {
    border-radius: 0 1rem 1rem 0;
    flex-basis: auto;
    margin: -4rem 0 0 calc(var(--padding-sp) * -1);
    order: -1;
    width: 100%;
  }
  .p-cavity-root-canal__section--root {
    padding-bottom: 6rem;
  }
  .p-cavity-root-canal__root-card {
    border-radius: 0.5rem;
    margin-left: 0;
    padding: 3.5rem 3.5rem 2rem;
    width: 100%;
  }
  .p-cavity-root-canal__root-card > .p-cavity-root-canal__section-head {
    margin: 0 0 2.1rem 0.5rem;
  }
  .p-cavity-root-canal__root-card .c-treatment-heading__title {
    line-height: 1.7777777778;
  }
  .p-cavity-root-canal__root-body {
    flex-direction: column;
    gap: 3.5rem;
  }
  .p-cavity-root-canal__diagram {
    border-radius: 0.5rem;
    flex-basis: auto;
    width: 100%;
  }
  .p-cavity-root-canal__root-body .p-cavity-root-canal__body {
    margin-top: 0;
  }
  .p-cavity-root-canal__root-body .p-cavity-root-canal__body p + p {
    margin-top: 2rem;
  }
  .p-cavity-root-canal__scene {
    padding: 9rem 0 7.9rem;
  }
  .p-cavity-root-canal__scene-image {
    width: 100%;
  }
  .p-cavity-root-canal__section--prevention {
    padding-bottom: 12rem;
  }
  .p-cavity-root-canal__section--prevention .p-cavity-root-canal__split {
    flex-direction: column;
    gap: 0;
  }
  .p-cavity-root-canal__section--prevention .p-cavity-root-canal__content {
    display: contents;
  }
  .p-cavity-root-canal__section--prevention .p-cavity-root-canal__section-head {
    margin-bottom: 2.4rem;
    order: -2;
  }
  .p-cavity-root-canal__image--prevention {
    border-radius: 1rem;
    flex-basis: auto;
    margin-bottom: 3.5rem;
    order: -1;
    width: 100%;
  }
  .p-cavity-root-canal__link {
    margin: 1.5rem auto 0;
    max-width: 100%;
  }
  .p-cavity-root-canal__section--care {
    padding-bottom: 14rem;
  }
  .p-cavity-root-canal__care-card {
    padding: 7rem 3.5rem 2rem;
    width: 100%;
  }
  .p-cavity-root-canal__care-label {
    left: 3.5rem;
    padding: 0.75rem 2rem;
    text-align: center;
    top: -3rem;
    width: 28rem;
  }
  .p-cavity-root-canal__care-label h2 {
    font-size: 1.8rem;
    line-height: 2.5;
  }
  .p-cavity-root-canal__care-body {
    flex-direction: column;
    gap: 3.5rem;
  }
  .p-cavity-root-canal__image--care {
    border-radius: 0.5rem;
    flex-basis: auto;
    margin: 0;
    width: 100%;
  }
  .p-contact {
    padding: 11rem 0 9rem;
  }
  .p-contact__title {
    font-size: 2.4rem;
  }
  .p-contact__title-en {
    font-size: 1.2rem;
  }
  .p-contact__content {
    margin-top: 4.5rem;
  }
  .p-contact__intro {
    font-size: 1.5rem;
    text-align: left;
  }
  .p-contact__tel {
    flex-direction: column;
    gap: 0.3rem;
    padding: 1.5rem;
    width: 100%;
  }
  .p-contact__tel strong {
    font-size: 2.2rem;
  }
  .p-contact__form {
    margin-top: 5rem;
  }
  .p-contact__form form {
    gap: 2.5rem;
  }
  .p-contact__field {
    flex-direction: column;
    gap: 0.5rem;
  }
  .p-contact__label {
    flex-basis: auto;
    font-size: 1.5rem;
    min-height: 0;
    padding-left: 0.5rem;
  }
  .p-contact__thanks {
    font-size: 1.5rem;
    margin-top: 4.5rem;
  }
  .p-system-page {
    padding: 11rem 0 9rem;
  }
  .p-system-page__code {
    font-size: 5.4rem;
  }
  .p-system-page__title {
    font-size: 2.2rem;
  }
  .p-system-page__text,
  .p-system-page__empty {
    font-size: 1.5rem;
  }
  .p-system-page__results a {
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
  }
  .p-dentures__intro {
    padding-bottom: 4rem;
  }
  .p-dentures__types {
    padding-top: 2.4rem;
  }
  .p-dentures__type-list {
    gap: 4.1rem;
    grid-template-columns: 100%;
    margin-top: 3.9rem;
  }
  .p-dentures__type-image {
    border-radius: 1rem;
  }
  .p-dentures__type-title {
    font-size: 1.8rem;
    line-height: 1.7777777778;
    margin: 1.8rem 0 0 2.1rem;
  }
  .p-dentures__type-title::before {
    left: -1.6rem;
  }
  .p-dentures__type-text {
    font-size: 1.5rem;
    margin: 0.7rem 0.5rem 0;
  }
  .p-dentures__bridge {
    flex-direction: column-reverse;
    gap: 3rem;
    margin-top: 4.2rem;
    padding: 3.3rem 3.3rem 2.4rem;
    width: 100%;
  }
  .p-dentures__bridge-title {
    font-size: 1.8rem;
    line-height: 1.7777777778;
  }
  .p-dentures__bridge-body p,
  .p-dentures__non-clasp-body p {
    font-size: 1.5rem;
  }
  .p-dentures__bridge-body p {
    margin-top: 0.9rem;
  }
  .p-dentures__bridge-body p + p,
  .p-dentures__non-clasp-body p + p {
    margin-top: 1rem;
  }
  .p-dentures__bridge-image {
    border-radius: 0.5rem;
    flex-basis: auto;
    margin-top: 0;
    width: 100%;
  }
  .p-dentures__non-clasp {
    padding-top: 5.2rem;
  }
  .p-dentures__section-head,
  .p-dentures__non-clasp-top {
    margin-left: 0;
    width: 100%;
  }
  .p-dentures__non-clasp-body .p-dentures__note {
    padding-left: 2rem;
    text-indent: -2rem;
  }
  .p-dentures__non-clasp-image {
    border-radius: 1.5rem;
  }
  .p-dentures__pros-cons {
    margin-top: 2.7rem;
    width: 100%;
  }
  .p-dentures__panel {
    padding: 3.5rem 2.8rem 2.7rem;
  }
  .p-dentures__panel + .p-dentures__panel {
    margin-top: 2.5rem;
  }
  .p-dentures__panel-title {
    line-height: 1.5;
    text-align: center;
  }
  .p-dentures__panel-title::before {
    display: block;
    margin: 0 auto 0.9rem;
    position: static;
    transform: none;
  }
  .p-dentures__panel-list {
    margin-top: 2.6rem;
    padding-left: 1.6rem;
  }
  .p-dentures__panel-item + .p-dentures__panel-item {
    margin-top: 1.6rem;
  }
  .p-dentures__panel-item dt {
    line-height: 1.5;
  }
  .p-dentures__panel-item dt::before {
    left: -1.6rem;
    top: 1rem;
  }
  .p-dentures__panel-item dd {
    font-size: 1.5rem;
    margin-top: 0.9rem;
  }
  .p-dentures__panel-note {
    font-size: 1.5rem;
    line-height: 2;
    padding-left: 2rem;
    text-indent: -2rem;
  }
  .p-dentures__price {
    padding: 7.8rem 0 13.9rem;
  }
  .p-dentures__price-table {
    margin-top: 3.8rem;
    width: 100%;
  }
  .p-dentures__price-row {
    grid-template-columns: 18.1rem 1fr;
    padding: 2.4rem 0 1.8rem;
  }
  .p-dentures__price-row--single {
    padding: 1.6rem 0 1.8rem;
  }
  .p-dentures__price-row--single .p-dentures__price-name {
    margin-top: 0.3rem;
  }
  .p-dentures__price-name {
    font-size: 1.5rem;
    line-height: 1.5333333333;
    margin-top: 0;
    padding-left: 1rem;
  }
  .p-dentures__price-item {
    display: block;
  }
  .p-dentures__price-item + .p-dentures__price-item {
    margin-top: 1.8rem;
  }
  .p-dentures__price-badge {
    border-radius: 0.3rem;
    font-size: 1.5rem;
    line-height: 2;
    width: 10rem;
  }
  .p-dentures__price-value {
    font-size: 1.5rem;
    margin-top: 0.7rem;
  }
  .p-dentures__price-row--single .p-dentures__price-value {
    margin-top: 0;
    text-align: left;
  }
  .p-dentures__price-note {
    display: block;
    padding-left: 2rem;
    text-indent: -2rem;
  }
  .p-dentures__risk {
    margin: 8.8rem 0 0;
  }
  .p-dry-mouth__intro {
    padding-bottom: 11.6rem;
  }
  .p-dry-mouth__symptoms-inner {
    flex-direction: column;
    gap: 3.8rem;
    padding-bottom: 5.5rem;
    padding-top: 0;
  }
  .p-dry-mouth__symptoms-inner::before {
    border-radius: 0 1rem 1rem 0;
    right: 2rem;
  }
  .p-dry-mouth__symptoms-inner > figure {
    flex-basis: auto;
    margin: -4rem 0 0 4.3rem;
    width: 24.5rem;
  }
  .p-dry-mouth__symptoms-inner > figure img {
    border-radius: 1rem;
  }
  .p-dry-mouth__symptoms-content {
    max-width: 33rem;
    width: 100%;
  }
  .p-dry-mouth__symptoms-content h2 {
    font-size: 1.8rem;
    line-height: 2.3333333333;
  }
  .p-dry-mouth__symptoms-content header p {
    font-size: 1.5rem;
    margin-top: 0.6rem;
  }
  .p-dry-mouth__symptoms-list {
    margin-top: 1.3rem;
  }
  .p-dry-mouth__causes {
    padding: 7.8rem 0 7rem;
  }
  .p-dry-mouth__cause-list {
    display: block;
    margin: 3.9rem 0 0;
  }
  .p-dry-mouth__cause-list article + article {
    margin-top: 4.2rem;
  }
  .p-dry-mouth__cause-list h3 {
    line-height: 2.5;
    margin-top: 1.2rem;
  }
  .p-dry-mouth__cause-list p {
    font-size: 1.5rem;
    margin: 0 0.5rem;
  }
  .p-dry-mouth__tests {
    padding-bottom: 7.8rem;
  }
  .p-dry-mouth__test-list {
    margin-top: 3.9rem;
    width: 100%;
  }
  .p-dry-mouth__treatment {
    padding-bottom: 13.2rem;
  }
  .p-dry-mouth__treatment-grid {
    flex-direction: column-reverse;
    gap: 2.8rem;
    margin-top: 3.9rem;
    width: 100%;
  }
  .p-dry-mouth__treatment-content {
    width: 100%;
  }
  .p-dry-mouth__treatment-content h3 {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-dry-mouth__treatment-content p {
    font-size: 1.5rem;
    margin-top: 1rem;
  }
  .p-dry-mouth__treatment-content h3 + p {
    margin-top: 0.9rem;
  }
  .p-dry-mouth__treatment-grid > figure {
    flex-basis: auto;
    width: 100%;
  }
  .p-dry-mouth__treatment-grid > figure img {
    border-radius: 1rem;
  }
  .p-facilities__showcase {
    display: flex;
    flex-direction: column;
    margin-bottom: 6.3rem;
  }
  .p-facilities__showcase:first-child {
    margin-top: 0.2rem;
  }
  .p-facilities__showcase:last-child {
    margin-bottom: 6.3rem;
  }
  .p-facilities__showcase-photo {
    border-radius: 1rem;
  }
  .p-facilities__showcase-copy {
    display: contents;
  }
  .p-facilities__showcase-copy::before {
    display: none;
  }
  .p-facilities__showcase-title {
    border-radius: 0.5rem;
    font-size: 1.8rem;
    height: auto;
    left: auto;
    margin: -3rem auto 0;
    min-height: 6rem;
    order: 2;
    position: relative;
    top: auto;
    width: 25rem;
  }
  .p-facilities__showcase-title small {
    font-size: 1.5rem;
    margin-top: 0.4rem;
  }
  .p-facilities__showcase-title:has(small) {
    margin-top: -4rem;
    min-height: 8rem;
  }
  .p-facilities__showcase-copy h2 {
    font-size: 1.8rem;
    line-height: 1.7777777778;
    margin-top: 2.3rem;
    order: 3;
    text-align: center;
    white-space: normal;
  }
  .p-facilities__showcase-copy > p:last-child {
    font-size: 1.5rem;
    margin-top: 1rem;
    order: 4;
  }
  .p-facilities__equipment {
    padding-bottom: 9rem;
  }
  .p-facilities__grid {
    gap: 6.3rem;
    grid-template-columns: 31rem;
  }
  .p-facilities__card figure {
    border-radius: 1rem;
  }
  .p-facilities__card h2 {
    border-radius: 0.5rem;
    font-size: 1.8rem;
    margin-top: -2.7rem;
    min-height: 5.4rem;
    width: 26rem;
  }
  .p-facilities__card h2 small {
    font-size: 1.5rem;
    margin-top: -0.2rem;
  }
  .p-facilities__card h2:has(small) {
    margin-top: -3.5rem;
    min-height: 7rem;
  }
  .p-facilities__card p {
    font-size: 1.5rem;
    padding-inline: 0;
  }
  .p-facilities__link {
    margin: 2.2rem auto 0;
  }
  .p-facilities__lab-body {
    padding-top: 0;
  }
  .p-facilities__lab figure {
    border-radius: 1rem;
    margin-inline: auto;
    position: relative;
    width: 31rem;
  }
  .p-facilities__lab-copy {
    background-color: transparent;
    margin: 0;
    min-height: 0;
    padding: 2.3rem 0 3.8rem;
    position: relative;
    text-align: center;
    z-index: 0;
  }
  .p-facilities__lab-copy::before {
    background-color: var(--bg-page-soft);
    bottom: 0;
    content: "";
    left: 50%;
    position: absolute;
    top: -17.9rem;
    transform: translateX(-50%);
    width: 100vw;
    z-index: -1;
  }
  .p-facilities__lab h2 {
    align-self: center;
    font-size: 2rem;
    line-height: 2.25;
  }
  .p-facilities__lab h2::before {
    bottom: 0.7rem;
    height: 1rem;
  }
  .p-facilities__lab p {
    font-size: 1.5rem;
    margin: 1rem auto 0;
    text-align: left;
    width: 31rem;
  }
  .p-facilities__infection {
    padding: 7.7rem 0 14.8rem;
  }
  .p-facilities__infection-inner {
    display: block;
  }
  .p-facilities__infection h2 {
    font-size: 1.8rem;
    line-height: 2.5;
  }
  .p-facilities__infection ol {
    margin-top: 0.4rem;
  }
  .p-facilities__infection li {
    font-size: 1.5rem;
    padding-left: 1.8rem;
  }
  .p-facilities__infection li + li,
  .p-facilities__infection-copy > p {
    margin-top: 1rem;
  }
  .p-facilities__infection-copy > p {
    font-size: 1.5rem;
  }
  .p-facilities__infection-photos {
    flex-direction: row;
    gap: 0.5rem;
    margin-top: 5.2rem;
    width: 100%;
  }
  .p-facilities__infection-photos figure {
    border-radius: 1rem;
  }
  .p-facilities__infection-photos img {
    display: block;
    width: 100%;
  }
  .p-facilities__infection-photos figure:first-child {
    flex: 197 1 0;
  }
  .p-facilities__infection-photos figure:last-child {
    flex: 148 1 0;
  }
  :where(.p-home-visit) p {
    font-size: 1.5rem;
  }
  .p-home-visit__eligibility {
    margin-top: 7.5rem;
  }
  .p-home-visit__eligibility-body {
    margin-left: 0;
    padding: 3.8rem 0 5.2rem;
  }
  .p-home-visit__eligibility-title {
    font-size: 1.8rem;
    line-height: 2.3333333333;
  }
  .p-home-visit__eligibility-list {
    margin-top: 0.8rem;
    width: 33rem;
    -moz-columns: auto;
    columns: auto;
  }
  .p-home-visit__eligibility-list li + li {
    margin-top: 0.6rem;
  }
  .p-home-visit__eligibility-list li:nth-child(4) {
    margin-top: 0.6rem;
  }
  .p-home-visit__eligibility-text {
    margin-top: 1.2rem;
    width: 33rem;
  }
  .p-home-visit__services {
    padding-top: 7.8rem;
  }
  .p-home-visit__services-title,
  .p-home-visit__scene-title {
    font-size: 2rem;
    line-height: 1.75;
    margin-top: 3.2rem;
  }
  .p-home-visit__services-title {
    text-align: left;
  }
  .p-home-visit__services-lead {
    margin-top: 1rem;
    text-align: left;
  }
  .p-home-visit__service-list {
    gap: 0;
    grid-template-columns: 100%;
    margin-top: 2.7rem;
    padding: 3.2rem 3.7rem 3.5rem;
    width: 100%;
  }
  .p-home-visit__service-list li {
    background-position: left top;
    font-size: 1.8rem;
    line-height: 1.7777777778;
    padding: 2rem 0 1.6rem 3.6rem;
  }
  .p-home-visit__service-list li:last-child::after {
    background-image: radial-gradient(circle, #5d898d 0.1rem, transparent 0.1rem);
    background-position: left bottom;
    background-repeat: repeat-x;
    background-size: 0.6rem 0.2rem;
    bottom: 0;
    content: "";
    height: 0.2rem;
    left: 0;
    position: absolute;
    right: 0;
  }
  .p-home-visit__service-list li::before {
    left: 2rem;
    top: 2.9rem;
  }
  .p-home-visit__scene-title {
    margin-top: 5.3rem;
  }
  .p-home-visit__scene-list {
    gap: 4.2rem;
    grid-template-columns: 100%;
    margin-top: 2.7rem;
  }
  .p-home-visit__scene-image {
    border-radius: 1rem;
  }
  .p-home-visit__scene-name {
    font-size: 1.8rem;
    line-height: 1.7777777778;
    margin: 1.8rem 0 0 2.2rem;
  }
  .p-home-visit__scene-name::before,
  .p-home-visit__facilities h4::before {
    left: -1.6rem;
  }
  .p-home-visit__scene-text {
    margin: 0.6rem 0.4rem 0 0.6rem;
  }
  .p-home-visit__facilities {
    margin-top: 4.4rem;
    width: 100%;
  }
  .p-home-visit__facilities-title + p {
    margin-top: 2rem;
  }
  .p-home-visit__facilities h4 {
    font-size: 1.8rem;
    line-height: 1.7777777778;
    margin-top: 2rem;
    padding-left: 1.6rem;
  }
  .p-home-visit__facilities h4::before {
    left: 0;
  }
  .p-home-visit__facilities h4 + p {
    margin-top: 0.6rem;
  }
  .p-home-visit__benefits {
    padding-top: 6.5rem;
  }
  .p-home-visit__benefits-title {
    line-height: 1.7727272727;
  }
  .p-home-visit__benefit-list {
    gap: 4.1rem;
    grid-template-columns: 100%;
    margin: 4.6rem 0 0;
  }
  .p-home-visit__benefit-title {
    line-height: 2.5;
    margin-top: 1.1rem;
  }
  .p-home-visit__benefit-text {
    margin: 0.1rem 0.5rem 0;
  }
  .p-home-visit__area {
    padding-top: 7rem;
  }
  .p-home-visit__area-lead {
    margin-top: 3.2rem;
    text-align: left;
  }
  .p-home-visit__area-box {
    grid-template-columns: 100%;
    margin-top: 2.7rem;
    padding: 3.5rem 3.5rem 2.7rem;
    width: 100%;
  }
  .p-home-visit__area-list > div {
    grid-template-columns: 13.7rem 1fr;
    padding: 1.7rem 0 1.7rem 1rem;
  }
  .p-home-visit__area-list dt {
    font-size: 1.5rem;
  }
  .p-home-visit__area-list dd {
    font-size: 1.5rem;
  }
  .p-home-visit__area-note {
    margin-top: 1.8rem;
    padding-left: 2rem;
    text-indent: -2rem;
  }
  .p-home-visit__area-image {
    border-radius: 0.5rem;
    margin-bottom: 3.5rem;
    order: -1;
  }
  .p-home-visit__flow {
    padding: 7.8rem 0 13.1rem;
  }
  .p-home-visit__steps {
    margin-top: 3rem;
  }
  .p-home-visit__step {
    grid-template-columns: 3.6rem 1fr;
  }
  .p-home-visit__step + .p-home-visit__step {
    margin-top: 4.2rem;
  }
  .p-home-visit__step:not(:last-child)::after {
    bottom: -3.6rem;
    left: 1.1rem;
    top: 5.2rem;
  }
  .p-home-visit__step-number {
    font-size: 1.4rem;
    grid-row: 1;
    margin-top: 0.9rem;
    width: 2.6rem;
  }
  .p-home-visit__step-title {
    font-size: 2rem;
    grid-row: 1;
    line-height: 2.25;
  }
  .p-home-visit__step-body {
    grid-column: 2;
    margin-top: 1.3rem;
  }
  .p-home-visit__step-button {
    margin: 2.5rem 0 0.9rem;
  }
  .p-home-visit__step-note {
    padding-left: 2rem;
    text-indent: -2rem;
  }
  .journal {
    padding: 11.1rem 0 9rem;
  }
  .journal__heading {
    text-align: center;
  }
  .journal__heading-title {
    font-size: 2.4rem;
  }
  .journal__heading-sub {
    font-size: 1.2rem;
    margin-top: 0.4rem;
  }
  .journal__pagination {
    margin-top: 9rem;
  }
  .journal__pagination ul {
    gap: 0.6rem;
  }
  .journal__pagination a,
  .journal__pagination span {
    font-size: 1.65rem;
    width: 4.4rem;
  }
  .journal__pagination .dots {
    height: 4.4rem;
  }
  .journal__filter-row {
    flex-wrap: wrap;
    gap: 1.2rem 0;
    margin-bottom: 6rem;
  }
  .journal__selected-category {
    align-items: center;
    color: var(--green-primary);
    display: flex;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
    padding: 0 1rem;
    width: 100%;
  }
  .journal__selected-category::before {
    aspect-ratio: 1;
    background-color: var(--green-primary);
    border-radius: 50%;
    content: "";
    margin-right: 0.8rem;
    width: 0.7rem;
  }
  .journal__filters {
    display: none;
  }
  .journal__selects {
    padding-inline: 0.5rem;
    width: 100%;
  }
  .journal__select {
    flex: 1;
    width: auto;
  }
  .journal__select-button {
    font-size: 1.5rem;
  }
  .journal__select--category {
    display: block;
  }
  .journal__select-list {
    max-height: 21.8rem;
    padding: 1.2rem 0;
  }
  .journal__select .journal__select-list > .ps__rail-y {
    margin-top: 1.2rem;
  }
  .journal__select-list a {
    font-size: 1.5rem;
    line-height: 2.6666666667;
  }
  .journal__cards {
    gap: 6rem;
    grid-template-columns: 1fr;
    padding-inline: 2.5rem;
  }
  .journal-card__image {
    border-radius: 1rem;
  }
  .journal-card__body {
    padding: 1.2rem 0.5rem 0;
  }
  .journal-card__date {
    font-size: 1.5rem;
    line-height: 2;
  }
  .journal-card__title {
    font-size: 1.5rem;
  }
  .journal-card__category {
    font-size: 1.2rem;
    line-height: 2.3333333333;
  }
  .journal--news .journal__heading {
    margin-bottom: 2.8rem;
  }
  .journal__news-list {
    width: 100%;
  }
  .journal__news-link {
    display: block;
    min-height: 0;
    padding: 2.2rem 4rem 1.2rem 0;
  }
  .journal__news-date {
    display: block;
    font-size: 1.5rem;
    line-height: 2;
  }
  .journal__news-title {
    display: block;
    font-size: 1.8rem;
    margin-top: 1.3rem;
  }
  .journal__news-link .c-arrow-circle {
    bottom: 3rem;
    right: 0;
    top: auto;
    transform: none;
    width: 2rem;
  }
  .journal--single {
    padding-bottom: 9rem;
  }
  .journal--single .journal__heading {
    margin-bottom: 5.3rem;
  }
  .journal--single-blog .journal__heading-sub {
    font-size: 1.2rem;
  }
  .journal-article {
    width: 100%;
  }
  .journal-article__head {
    padding: 0 0 1rem;
  }
  .journal--single-news .journal-article__head {
    padding-bottom: 1rem;
  }
  .journal-article__category {
    font-size: 1.2rem;
    line-height: 2.3333333333;
    margin-top: 0.8rem;
  }
  .journal-article__title {
    font-size: 2rem;
    line-height: 1.75;
    margin-top: 1.6rem;
  }
  .journal-article__date + .journal-article__title {
    margin-top: 1.3rem;
  }
  .journal-article__image {
    margin-top: 6rem;
  }
  .journal-article__image img {
    border-radius: 1rem;
  }
  .journal-article__image--sub {
    width: 30rem;
  }
  .journal-article__image--notice {
    width: 100%;
  }
  .journal-article__body {
    font-size: 1.5rem;
    margin-top: 6rem;
    padding-inline: 0;
  }
  .journal-article__body > * + * {
    margin-top: 2rem;
  }
  .journal-article__body h2 {
    font-size: 2rem;
    line-height: 2.5;
    margin-top: 4.5rem;
  }
  .journal-article__body h3 {
    font-size: 1.8rem;
    line-height: 2.7777777778;
    margin-top: 4rem;
  }
  .journal-article__body h2 + p {
    margin-top: 1rem;
  }
  .journal-article__body h3 + p {
    margin-top: 0.8rem;
  }
  .journal-article__body ul {
    margin-top: 3rem;
  }
  .journal-article__body li {
    padding-left: 1.6rem;
  }
  .journal-article__body li + li {
    margin-top: 1rem;
  }
  .journal-article__body ul + p {
    margin-top: 3rem;
  }
  .journal-article__body table {
    margin-top: 3rem;
  }
  .journal-article__table {
    margin-top: 3rem;
  }
  .journal-article__body ul + .journal-article__table {
    margin-top: 3.5rem;
  }
  .journal-article__table + p {
    margin-top: 3rem;
  }
  .journal-article__table table {
    font-size: 1.4rem;
  }
  .journal-article__table th,
  .journal-article__table td {
    height: 4rem;
    width: 8.8rem;
  }
  .journal-article__table tr > :first-child {
    left: 0;
    position: sticky;
    z-index: 1;
  }
  .journal-article__nav {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin: 6.8rem 0 0;
    width: 100%;
  }
  .journal-article__related {
    display: block;
    margin-top: 4rem;
    width: 23rem;
  }
  .journal-article__related--next {
    margin-top: 7.8rem;
  }
  .journal-article__direction {
    flex-direction: row;
    font-size: 1.5rem;
    gap: 1rem;
    justify-content: center;
    line-height: 2;
    margin-bottom: 1rem;
  }
  .journal-article__direction-text {
    letter-spacing: 0.025em;
    writing-mode: horizontal-tb;
  }
  .journal-article__related--previous .journal-article__direction {
    margin-top: 0;
  }
  .journal-article__related--previous .c-arrow-circle {
    order: 0;
  }
  .journal-article__direction .c-arrow-circle {
    width: 2rem;
  }
  .journal-article__related-body {
    font-size: 1.5rem;
    padding: 1.3rem 0.5rem 0;
  }
  .journal-article__back {
    margin-top: 0;
    order: -1;
  }
  .journal--single-news .journal-article__related {
    text-align: center;
    width: 22rem;
  }
  .journal--single-news .journal-article__related--previous .journal-article__direction {
    justify-content: center;
  }
  .journal--single-news .journal-article__related-body {
    padding-top: 0.4rem;
  }
  .journal--single-news .journal-article__back {
    margin-top: 0;
  }
  .p-maternity__intro {
    padding-bottom: 10.5rem;
  }
  .p-maternity__prevention {
    padding: 7.8rem 0 9.1rem;
  }
  .p-maternity__prevention-top {
    flex-direction: column-reverse;
    gap: 2.8rem;
    margin-top: 3.9rem;
  }
  .p-maternity__prevention-content {
    width: 100%;
  }
  .p-maternity__prevention-content > header,
  .p-maternity__prevention-content > p {
    padding-inline: 0;
  }
  .p-maternity__prevention-image {
    flex-basis: auto;
    width: 100%;
  }
  .p-maternity__prevention-image img {
    border-radius: 1rem;
  }
  .p-maternity__prevention-content > p {
    font-size: 1.5rem;
    margin-top: 1rem;
  }
  .p-maternity__importance {
    margin-top: 2.8rem;
    padding: 2.7rem 3.5rem 2.75rem;
  }
  .p-maternity__importance h4 {
    font-size: 1.8rem;
    line-height: 1.9444444444;
  }
  .p-maternity__importance > p,
  .p-maternity__importance dd {
    font-size: 1.5rem;
  }
  .p-maternity__importance > p {
    margin-top: 0.4rem;
  }
  .p-maternity__importance dl {
    margin-top: 2.2rem;
  }
  .p-maternity__importance dl > div {
    padding-left: 1.6rem;
  }
  .p-maternity__importance dl > div + div {
    margin-top: 1.4rem;
  }
  .p-maternity__importance dl > div::before {
    top: 1.1rem;
  }
  .p-maternity__importance dt {
    line-height: 1.6666666667;
  }
  .p-maternity__importance dd {
    margin-top: 0.9rem;
  }
  .p-maternity__period {
    margin-top: 5.3rem;
  }
  .p-maternity__period > .p-maternity__section-head {
    padding-inline: 0;
    text-align: center;
  }
  .p-maternity__period .c-treatment-heading__text {
    margin-top: 2rem;
    text-align: left;
  }
  .p-maternity__period-list {
    margin-top: 2.8rem;
  }
  .p-maternity__period-item {
    display: block;
    margin-inline: auto;
    width: 30rem;
  }
  .p-maternity__period-item + .p-maternity__period-item {
    margin-top: 8.8rem;
  }
  .p-maternity__period-item:not(:last-child)::after {
    left: calc(50% - 1rem);
    top: calc(100% + 3.5rem);
  }
  .p-maternity__period-item h4 {
    font-size: 1.8rem;
    line-height: 1.5;
    min-height: 0;
    padding: 1.8rem 1.5rem;
  }
  .p-maternity__period-item h4::before {
    border-radius: 0.5rem;
  }
  .p-maternity__period-item p {
    font-size: 1.5rem;
    margin-top: 1.7rem;
    padding-block: 0;
  }
  .p-maternity__period-note {
    font-size: 1.8rem;
    margin-top: 4.4rem;
    text-align: left;
  }
  .p-maternity__period-note p + p {
    margin-top: 1.7rem;
  }
  .p-maternity__postpartum {
    padding-bottom: 7.8rem;
  }
  .p-maternity__postpartum-box {
    display: flex;
    flex-direction: column;
    padding: 0 3.5rem 3.5rem;
    width: 100%;
  }
  .p-maternity__postpartum-content {
    margin-top: 2.8rem;
    order: 1;
  }
  .p-maternity__postpartum-content h2 {
    font-size: 2rem;
    line-height: 1.75;
    text-align: center;
  }
  .p-maternity__postpartum-content p {
    font-size: 1.5rem;
    margin-top: 1rem;
  }
  .p-maternity__postpartum-box > figure {
    margin-top: -4rem;
    order: 0;
  }
  .p-maternity__postpartum-box > figure img {
    border-radius: 0.5rem;
  }
  .p-maternity__baby-tip {
    border-radius: 0.5rem;
    margin: 2.6rem 0 0;
    order: 2;
    padding: 2.6rem 3rem 2.2rem;
  }
  .p-maternity__baby-tip h3 {
    font-size: 1.5rem;
    line-height: 1.5333333333;
    padding-left: 1.6rem;
  }
  .p-maternity__baby-tip h3::before {
    top: 0.75rem;
  }
  .p-maternity__baby-tip p {
    font-size: 1.5rem;
    margin-top: 0.9rem;
  }
  .p-maternity__advisor {
    padding-bottom: 7.1rem;
  }
  .p-maternity__advisor-grid {
    display: block;
    margin-top: 3.9rem;
    width: 100%;
  }
  .p-maternity__advisor-figure {
    margin-inline: auto;
    width: 74.286%;
  }
  .p-maternity__advisor-figure img {
    border-radius: 0.5rem;
  }
  .p-maternity__advisor-name {
    font-size: 1.8rem;
    height: 7.6rem;
    line-height: 1.5555555556;
    margin-top: -2.5rem;
    width: 20rem;
  }
  .p-maternity__advisor-name small {
    font-size: 1.5rem;
    line-height: 1.4666666667;
  }
  .p-maternity__advisor-body {
    margin-top: 2.8rem;
  }
  .p-maternity__advisor-body h3 {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-maternity__advisor-body p {
    font-size: 1.5rem;
    margin-top: 1rem;
  }
  .p-maternity__advisor-body p + p {
    margin-top: 1rem;
  }
  .p-maternity__faq {
    padding-bottom: 14rem;
  }
  .p-maternity__faq-list {
    margin-top: 3.9rem;
    width: 100%;
  }
  .p-maternity__faq-list > div {
    padding: 3rem 3rem 2.2rem;
  }
  .p-maternity__faq-list > div + div {
    margin-top: 2rem;
  }
  .p-maternity__faq-list dt,
  .p-maternity__faq-list dd {
    align-items: flex-start;
    gap: 1.2rem;
  }
  .p-maternity__faq-list dt {
    font-size: 1.8rem;
    line-height: 1.5;
  }
  .p-maternity__faq-list dd {
    font-size: 1.5rem;
    margin-top: 1.4rem;
  }
  .p-maternity__faq-list span {
    font-size: 1.2rem;
    width: 2.6rem;
  }
  .p-maternity__faq-list dd span {
    margin-top: 0.2rem;
  }
  .p-oral-surgery__intro {
    padding-bottom: 11.5rem;
  }
  .p-oral-surgery__body p {
    font-size: 1.5rem;
  }
  .p-oral-surgery__body p + p {
    margin-top: 1.2rem;
  }
  .p-oral-surgery__symptoms {
    padding-bottom: 5.2rem;
  }
  .p-oral-surgery__symptoms::before {
    border-radius: 0 1rem 1rem 0;
    width: calc(100% - 2rem);
  }
  .p-oral-surgery__symptoms-inner {
    flex-direction: column;
    gap: 3.8rem;
    padding-top: 0;
  }
  .p-oral-surgery__symptoms-content {
    margin-left: 0;
    max-width: 100%;
    width: 94.286%;
  }
  .p-oral-surgery__symptoms-title {
    font-size: 1.8rem;
    line-height: 2.3333333333;
  }
  .p-oral-surgery__symptoms-list {
    margin-top: 1.4rem;
  }
  .p-oral-surgery__symptoms-text {
    font-size: 1.5rem;
    margin-top: 1.5rem;
  }
  .p-oral-surgery__symptoms-image {
    border-radius: 1rem;
    flex-basis: auto;
    margin: -4rem 0 0 7.143%;
    order: -1;
    width: 80%;
  }
  .p-oral-surgery__section--cancer,
  .p-oral-surgery__section--screening,
  .p-oral-surgery__results {
    padding-top: 7.8rem;
  }
  .p-oral-surgery__split {
    flex-direction: column;
    gap: 0;
    margin-top: 3.9rem;
  }
  .p-oral-surgery__content {
    width: 100%;
  }
  .p-oral-surgery__content-head {
    margin-bottom: 1.7rem;
  }
  .p-oral-surgery__content-head .c-treatment-heading__title {
    line-height: 1.75;
  }
  .p-oral-surgery__image {
    border-radius: 1rem;
    flex-basis: auto;
    margin-bottom: 2.8rem;
    order: -1;
    width: 100%;
  }
  .p-oral-surgery__check {
    border-radius: 1rem;
    margin-top: 2rem;
    padding: 2.3rem 3.5rem 2.7rem;
    width: 100%;
  }
  .p-oral-surgery__check-title {
    line-height: 2.3333333333;
  }
  .p-oral-surgery__check-lead {
    font-size: 1.5rem;
    margin-top: 1.3rem;
  }
  .p-oral-surgery__check-list {
    gap: 0.7rem;
    grid-auto-flow: row;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    margin: 1.6rem 0 0;
  }
  .p-oral-surgery__check-list li {
    font-size: 1.5rem;
    line-height: 1.5333333333;
    padding-left: 1.6rem;
  }
  .p-oral-surgery__check-list li::before {
    top: 0.4rem;
  }
  .p-oral-surgery__screening-head {
    margin-top: 3.2rem;
    text-align: left;
  }
  .p-oral-surgery__screening-title {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-oral-surgery__screening-lead {
    font-size: 1.5rem;
    margin-top: 1.7rem;
  }
  .p-oral-surgery__tests {
    margin-top: 5.6rem;
  }
  .p-oral-surgery__tests-row {
    grid-template-columns: 13.4rem 1fr;
    -moz-column-gap: 1rem;
    column-gap: 1rem;
  }
  .p-oral-surgery__tests dt {
    font-size: 1.5rem;
    line-height: 1.5333333333;
    padding-left: 1rem;
  }
  .p-oral-surgery__tests dd {
    padding: 2.6rem 1rem 4rem 0;
  }
  .p-oral-surgery__tests dd p {
    font-size: 1.5rem;
  }
  .p-oral-surgery__tests .p-oral-surgery__tests-note {
    margin-top: 0;
    padding-left: 2rem;
  }
  .p-oral-surgery__section--treatments {
    padding-top: 7.9rem;
  }
  .p-oral-surgery__cards {
    display: block;
    margin-top: 3.3rem;
  }
  .p-oral-surgery__card {
    margin-bottom: 7rem;
  }
  .p-oral-surgery__card:last-child {
    margin-bottom: 0;
  }
  .p-oral-surgery__card figure {
    border-radius: 1rem;
  }
  .p-oral-surgery__card h3 {
    margin: 1.8rem 0.5rem 0;
    padding-left: 1.6rem;
  }
  .p-oral-surgery__card > p {
    font-size: 1.5rem;
    margin: 0.7rem 0.5rem 0;
  }
  .p-oral-surgery__card > .p-oral-surgery__card-link {
    margin: 1.5rem auto 0;
  }
  .p-oral-surgery__results {
    padding-bottom: 11.8rem;
  }
  .p-oral-surgery__results-table-wrap {
    margin-top: 2.4rem;
  }
  .p-oral-surgery__results .c-treatment-table__table {
    border-collapse: separate;
    border-spacing: 0;
    width: 57.8rem;
  }
  .p-oral-surgery__results th,
  .p-oral-surgery__results td {
    line-height: 2.1333333333;
    padding: 0 0 0 3rem;
  }
  .p-oral-surgery__results tr > :first-child {
    background-color: inherit;
    left: 0;
    padding-left: 2rem;
    position: sticky;
    width: 16.3rem;
    z-index: 1;
  }
  .p-oral-surgery__results thead th:nth-child(2) {
    width: 10.5rem;
  }
  .p-oral-surgery__results thead th:nth-child(3),
  .p-oral-surgery__results thead th:nth-child(4) {
    width: 10.5rem;
  }
  .p-orthodontics__intro {
    padding-bottom: 8.2rem;
  }
  .p-orthodontics__doctors {
    padding: 5.4rem 0 6rem;
  }
  .p-orthodontics__doctors::before {
    border-radius: 0;
    right: 0;
  }
  .p-orthodontics__doctors-title {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-orthodontics__doctors-lead {
    font-size: 1.5rem;
    margin-top: 1rem;
  }
  .p-orthodontics__doctor-list {
    flex-direction: column;
    gap: 4.1rem;
    margin-top: 4.2rem;
    padding: 3.5rem 3.5rem 2.6rem;
    width: 100%;
  }
  .p-orthodontics__doctor {
    width: 100%;
  }
  .p-orthodontics__doctor-image {
    border-radius: 0.5rem;
  }
  .p-orthodontics__doctor-name {
    height: 7.6rem;
    margin-top: -2.6rem;
    padding-top: 0.9rem;
    width: 18rem;
  }
  .p-orthodontics__doctor-name span {
    font-size: 1.5rem;
  }
  .p-orthodontics__doctor-name h3 {
    font-size: 1.8rem;
    line-height: 2.5;
  }
  .p-orthodontics__doctor-career-title {
    background-image: radial-gradient(circle, #5d898d 0.1rem, transparent 0.1rem);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='2' viewBox='0 0 6 2'%3E%3Ccircle cx='3' cy='1' r='1' fill='%235D898D'/%3E%3C/svg%3E");
    background-position: left bottom;
    background-repeat: repeat-x;
    background-size: 0.6rem 0.2rem;
    background-size: 0.6rem 0.2rem;
    font-size: 1.6rem;
    margin: 2rem 0 0;
  }
  .p-orthodontics__doctor-career {
    margin-top: 1.8rem;
    padding-left: 1rem;
  }
  .p-orthodontics__doctor-career li {
    font-size: 1.5rem;
  }
  .p-orthodontics__treatment {
    padding-top: 7.9rem;
  }
  .p-orthodontics__treatment-lead,
  .p-orthodontics__method {
    width: 100%;
  }
  .p-orthodontics__treatment-lead {
    margin-top: 3.1rem;
  }
  .p-orthodontics__treatment-lead-title {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-orthodontics__treatment-lead p,
  .p-orthodontics__method-text p {
    font-size: 1.5rem;
  }
  .p-orthodontics__treatment-lead p {
    margin-top: 1.1rem;
  }
  .p-orthodontics__treatment-lead .p-orthodontics__note {
    padding-left: 2rem;
    text-indent: -2rem;
  }
  .p-orthodontics__method {
    margin-top: 4.4rem;
  }
  .p-orthodontics__method-text p:not(.p-orthodontics__method-lead) {
    margin-top: 0.7rem;
    width: 100%;
  }
  .p-orthodontics__method-text h4 {
    font-size: 1.8rem;
    line-height: 1.7777777778;
    margin-top: 1.9rem;
    padding-left: 1.6rem;
  }
  .p-orthodontics__price {
    padding: 7.1rem 0 14rem;
  }
  .p-orthodontics__price-table {
    margin-top: 3.9rem;
    overflow: visible;
    width: 100%;
  }
  .p-orthodontics__price-table th,
  .p-orthodontics__price-table td {
    padding: 1.7rem 1rem;
  }
  .p-orthodontics__price-table th {
    padding-top: 2rem;
    white-space: normal;
    width: 14.5rem;
  }
  .p-orthodontics__price-table .p-orthodontics__price-partial,
  .p-orthodontics__price-table .p-orthodontics__price-partial + td {
    padding-bottom: 2rem;
    padding-top: 1.7rem;
  }
  .p-orthodontics__price-table .p-orthodontics__price-partial {
    padding-top: 2rem;
  }
  .p-orthodontics__price-partial small {
    display: block;
    line-height: 1.5;
    margin: 0.2rem 0 0;
  }
  .p-orthodontics__price-stage {
    vertical-align: top;
  }
  .p-orthodontics__price-stage:not(:only-child) {
    padding-bottom: 1.5rem;
  }
  .p-orthodontics__price-stage:only-child {
    padding-bottom: 1.7rem;
    padding-top: 2rem;
  }
  .p-orthodontics__price-label {
    color: var(--green-heading);
    display: block;
    float: none;
  }
  .p-orthodontics__price-amounts {
    align-items: flex-start;
    gap: 1rem;
    margin-top: 1rem;
  }
  .p-orthodontics__price-notes {
    margin-top: 1.8rem;
    padding: 0;
    width: 100%;
  }
  .p-orthodontics__price-notes li {
    font-size: 1.5rem;
  }
  .p-orthodontics__risk {
    margin: 13.2rem 0 0;
  }
  .p-pediatric__intro {
    padding-bottom: 10.3rem;
  }
  .p-pediatric__treatments {
    padding: 7.8rem 0;
  }
  .p-pediatric__care-intro {
    margin-top: 3.2rem;
    text-align: left;
  }
  .p-pediatric__care-intro .c-treatment-heading__text {
    margin-top: 1rem;
  }
  .p-pediatric__treatment-list {
    margin-top: 2.8rem;
    width: 100%;
  }
  .p-pediatric__treatment-image {
    margin: 9rem 0 0;
    width: 100%;
  }
  .p-pediatric__parents {
    padding-bottom: 14rem;
  }
  .p-pediatric__parents-copy {
    margin-top: 3.2rem;
    text-align: left;
    width: 100%;
  }
  .p-pediatric__parents-copy h3 {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-pediatric__parents-copy p {
    font-size: 1.5rem;
    margin-top: 1rem;
  }
  .p-pediatric__parents-copy h3 + p {
    margin-top: 1rem;
  }
  .p-pediatric__parent-panels {
    margin-top: 8.3rem;
  }
  .p-pediatric__parent-panel {
    margin-left: 0;
    padding: 5.4rem 3.5rem 2.8rem;
    width: 100%;
  }
  .p-pediatric__parent-panel + .p-pediatric__parent-panel {
    margin-top: 7.5rem;
  }
  .p-pediatric__parent-panel > header {
    gap: 1rem;
    height: 6rem;
    justify-content: center;
    left: calc(50% - 9rem);
    padding-left: 0;
    width: 18rem;
  }
  .p-pediatric__parent-panel > header::before {
    position: static;
    transform: none;
    width: 2.4rem;
  }
  .p-pediatric__parent-panel > header h3 {
    font-size: 1.8rem;
    line-height: 2.5;
  }
  .p-pediatric__parent-panel dl > div + div {
    margin-top: 1.6rem;
  }
  .p-pediatric__parent-panel dt {
    font-size: 1.8rem;
    line-height: 2.5;
    padding-left: 3.2rem;
  }
  .p-pediatric__parent-panel dt::before {
    left: 0;
    top: 1.15rem;
    width: 2.2rem;
  }
  .p-pediatric__parent-panel dd {
    font-size: 1.5rem;
    margin-top: 0;
  }
  .p-periodontal__intro {
    padding-bottom: 11.5rem;
  }
  .p-periodontal__body p {
    font-size: 1.5rem;
  }
  .p-periodontal__body p + p {
    margin-top: 1rem;
  }
  .p-periodontal__summary-inner {
    flex-direction: column;
    gap: 3.9rem;
    padding-bottom: 4.5rem;
    padding-top: 0;
  }
  .p-periodontal__summary-inner::before {
    border-radius: 0 1rem 1rem 0;
    right: 2rem;
  }
  .p-periodontal__summary-image {
    border-radius: 1rem;
    flex-basis: auto;
    margin: -4rem 0 0 4.3rem;
    width: 24.5rem;
  }
  .p-periodontal__summary-content {
    max-width: 100%;
    width: 33rem;
  }
  .p-periodontal__section-head {
    margin-bottom: 1.4rem;
  }
  .p-periodontal__flow {
    padding: 8.1rem 0 9.5rem;
  }
  .p-periodontal__steps .c-treatment-steps__item:nth-child(n) {
    padding-bottom: 5.1rem;
  }
  .p-periodontal__steps .c-treatment-steps__item:nth-child(3) {
    padding-bottom: 3.6rem;
  }
  .p-periodontal__steps .c-treatment-steps__item:last-child {
    padding-bottom: 0;
  }
  .p-periodontal__steps .c-treatment-steps__item:not(:last-child)::before {
    bottom: 0.6rem;
    top: 5rem;
  }
  .p-periodontal__steps .c-treatment-steps__body {
    margin-top: 2rem;
    padding-top: 0;
  }
  .p-periodontal__steps .c-treatment-steps__body > p {
    margin: 0;
  }
  .p-periodontal__steps .c-treatment-steps__body > p + p {
    margin-top: 1rem;
  }
  .p-periodontal__tests {
    gap: 2.6rem;
    padding: 3.5rem 3.5rem 2.4rem;
  }
  .p-periodontal__tests > div {
    display: block;
  }
  .p-periodontal__tests dt,
  .p-periodontal__tests dd {
    font-size: 1.5rem;
  }
  .p-periodontal__tests dt {
    min-height: 4.5rem;
  }
  .p-periodontal__tests dt:has(br) {
    line-height: 1.5333333333;
    min-height: 7rem;
  }
  .p-periodontal__tests dd {
    margin-top: 1.4rem;
  }
  .p-periodontal__tests--small {
    margin-top: 1.6rem;
  }
  .p-periodontal__tests--small dt {
    min-height: 4.5rem;
  }
  .p-periodontal__note {
    margin-top: 1.6rem;
    padding: 2.7rem 3.5rem 3.5rem;
  }
  .p-periodontal__note h3 {
    font-size: 1.5rem;
    margin-bottom: 1.3rem;
  }
  .p-periodontal__note > p {
    font-size: 1.5rem;
  }
  .p-periodontal__note-detail {
    margin: 2rem -0.5rem 0;
    padding: 2.2rem 3rem 1.5rem;
  }
  .p-periodontal__note-detail h4 {
    font-size: 1.5rem;
    margin-bottom: 1.3rem;
    padding-left: 1.6rem;
  }
  .p-periodontal__note-detail p {
    font-size: 1.5rem;
  }
  .p-periodontal__note-detail p + p {
    margin-top: 1rem;
  }
  .p-policy {
    padding-bottom: 9rem;
  }
  .p-policy__hero {
    padding: 4rem var(--padding-sp) 0;
  }
  .p-policy__hero-image {
    border-radius: 1.5rem;
    width: 100%;
  }
  .p-policy__title {
    margin-top: 2.2rem;
  }
  .p-policy__title h1 {
    font-size: 2.4rem;
  }
  .p-policy__title p {
    font-size: 1.2rem;
    margin-top: 0.4rem;
  }
  .p-policy__body {
    padding-top: 4.8rem;
  }
  .p-policy__body section + section {
    margin-top: 3.3rem;
  }
  .p-policy__body h2 {
    font-size: 1.8rem;
    line-height: 1.8;
  }
  .p-policy__body :where(p, li, address) {
    font-size: 1.5rem;
  }
  .p-policy__body h2 + * {
    margin-top: 1.3rem;
  }
  .p-policy__body ol {
    padding-left: 1.8rem;
  }
  .p-preventive__intro {
    padding-bottom: 6.3rem;
  }
  .p-preventive__hero-catch-second {
    letter-spacing: -0.02em;
  }
  .p-preventive__longevity {
    padding-bottom: 12rem;
  }
  .p-preventive__longevity-grid {
    display: block;
    margin-top: 3.2rem;
    padding-left: 0;
  }
  .p-preventive__longevity-copy {
    width: 100%;
  }
  .p-preventive__longevity-copy p {
    font-size: 1.5rem;
  }
  .p-preventive__longevity-copy p + p {
    margin-top: 1rem;
  }
  .p-preventive__longevity-grid figure {
    margin-top: 2.8rem;
  }
  .p-preventive__benefits {
    margin-top: 3.5rem;
    padding: 2.3rem 3.5rem 3.1rem;
    width: 100%;
  }
  .p-preventive__benefits ul {
    margin-top: 0.9rem;
  }
  .p-preventive__benefits li {
    font-size: 1.5rem;
    line-height: 1.5333333333;
    padding-left: 1.6rem;
  }
  .p-preventive__benefits li + li {
    margin-top: 0.7rem;
  }
  .p-preventive__benefits li::before {
    top: 0.75rem;
  }
  .p-preventive__care {
    padding: 7.8rem 0 14.1rem;
  }
  .p-preventive__care-intro {
    margin-top: 3.2rem;
    text-align: left;
  }
  .p-preventive__care-intro h3 {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-preventive__care-intro p {
    font-size: 1.5rem;
    margin-top: 1rem;
  }
  .p-preventive__care-intro h3 + p {
    margin-top: 0.9rem;
  }
  .p-preventive__care-list {
    margin-top: 2.8rem;
    width: 100%;
  }
  .p-recruit {
    padding-bottom: 9rem;
  }
  .p-recruit__hero {
    padding: 4rem var(--padding-sp) 0;
  }
  .p-recruit__hero-image {
    border-radius: 1.5rem;
    width: 100%;
  }
  .p-recruit__title {
    margin-top: 2.2rem;
  }
  .p-recruit__title h1 {
    font-size: 2.4rem;
  }
  .p-recruit__title p {
    font-size: 1.2rem;
    margin-top: 0.4rem;
  }
  .p-recruit__notice {
    border-width: 0.2rem;
    font-size: 2rem;
    gap: 1.8rem;
    margin-top: 4.5rem;
    min-height: 11rem;
    padding: 2rem;
  }
  .p-recruit__notice img {
    width: 2rem;
  }
  .p-recruit__lead {
    font-size: 1.8rem;
    margin-top: 3.4rem;
    text-align: left;
  }
  .p-recruit__hero--recruiting .p-recruit__lead {
    margin-top: 5.8rem;
  }
  .p-recruit__points {
    padding-top: 10rem;
  }
  .p-recruit__point-list {
    gap: 5.8rem;
    grid-template-columns: 1fr;
    margin-top: 6.2rem;
  }
  .p-recruit__point-label {
    left: 50%;
    transform: translateX(-50%);
  }
  .p-recruit__point-image {
    border-radius: 1rem;
  }
  .p-recruit__point-title {
    margin-top: 1.2rem;
  }
  .p-recruit__point-text {
    font-size: 1.5rem;
  }
  .p-recruit__relations {
    padding-top: 4.5rem;
  }
  .p-recruit__relations-title {
    font-size: 2.2rem;
    line-height: 1.7272727273;
    padding-left: 3.2rem;
  }
  .p-recruit__relations-title::before {
    border-width: 0.3rem;
    top: 0.8rem;
    width: 2.1rem;
  }
  .p-recruit__relations-body {
    display: block;
    margin-top: 1.9rem;
  }
  .p-recruit__relations-image {
    border-radius: 1rem;
    display: block;
    width: 100%;
  }
  .p-recruit__relations-text {
    font-size: 1.5rem;
    margin-top: 3.5rem;
  }
  .p-recruit__relations-text p + p {
    margin-top: 1rem;
  }
  .p-recruit__training {
    padding-top: 6.3rem;
  }
  .p-recruit__training-list {
    gap: 4rem;
    grid-template-columns: 1fr;
    margin: 3.9rem 0 0;
  }
  .p-recruit__training-card {
    min-height: 44.1rem;
    padding: 3.5rem 3.5rem 2rem;
  }
  .p-recruit__training-title {
    font-size: 1.8rem;
    line-height: 2;
    padding: 0 0 1.5rem;
  }
  .p-recruit__training-text {
    font-size: 1.5rem;
    padding-inline: 0;
  }
  .p-recruit__experience {
    padding-top: 7.8rem;
  }
  .p-recruit__experience-layout {
    flex-direction: column;
    gap: 0;
    margin-top: 3.3rem;
  }
  .p-recruit__experience-main {
    display: contents;
  }
  .p-recruit__experience-image {
    aspect-ratio: 350/248;
    border-radius: 1rem;
    order: -1;
    width: 100%;
  }
  .p-recruit__experience-title {
    font-size: 2rem;
    line-height: 1.75;
    margin-top: 2.8rem;
  }
  .p-recruit__experience-text {
    font-size: 1.5rem;
    margin-top: 1.7rem;
  }
  .p-recruit__duties {
    margin-top: 2rem;
    padding: 2.5rem 3.3rem 3.4rem;
    width: 100%;
  }
  .p-recruit__duties-title {
    font-size: 1.8rem;
    line-height: 1.9444444444;
  }
  .p-recruit__duties-list {
    margin-top: 1.5rem;
  }
  .p-recruit__duties-list > div + div {
    margin-top: 2.9rem;
  }
  .p-recruit__duties-list dt {
    line-height: 1.6666666667;
    padding-left: 1.6rem;
  }
  .p-recruit__duties-list dd {
    font-size: 1.5rem;
    line-height: 1.5333333333;
    margin-top: 0.6rem;
    padding-left: 1.6rem;
  }
  .p-recruit__experience-note {
    font-size: 1.8rem;
    margin-top: 3.5rem;
    text-align: left;
  }
  .p-recruit__welcome {
    padding-top: 11rem;
  }
  .p-recruit__welcome-box {
    padding: 3.3rem 3rem 2.5rem 5.8rem;
    width: 100%;
  }
  .p-recruit__welcome-title {
    font-size: 2rem;
    line-height: 1.75;
    margin-left: -2.8rem;
  }
  .p-recruit__welcome-list {
    margin-top: 2.8rem;
  }
  .p-recruit__welcome-list > div + div {
    margin-top: 2.1rem;
  }
  .p-recruit__welcome-list dt {
    line-height: 1.5;
  }
  .p-recruit__welcome-list dt::before {
    left: -2.8rem;
    top: 0.2em;
  }
  .p-recruit__welcome-list dd {
    font-size: 1.5rem;
    margin-top: 1.1rem;
  }
  .p-recruit__form {
    padding-top: 7.8rem;
  }
  .p-recruit__form-body {
    margin-top: 4rem;
    width: 100%;
  }
  .p-recruit__form-body form {
    gap: 2.5rem;
  }
  .p-recruit__field {
    display: block;
  }
  .p-recruit__label {
    float: none;
    font-size: 1.5rem;
    gap: 0.8rem;
    padding-left: 0.5rem;
  }
  .p-recruit__required {
    border-radius: 0.3rem;
    font-size: 1.2rem;
    height: 2rem;
    width: 3.4rem;
  }
  .p-recruit__field input,
  .p-recruit__field textarea {
    margin-top: 0.5rem;
  }
  .p-recruit__field textarea {
    height: 20rem;
  }
  .p-recruit__field--textarea .p-recruit__label {
    min-height: 0;
  }
  .p-recruit__field--choice .p-recruit__label {
    width: auto;
  }
  .p-recruit__choices {
    gap: 3.4rem;
    margin-top: 1rem;
    min-height: 5rem;
    padding-left: 0.5rem;
  }
  .p-recruit__choices .wpcf7-form-control {
    gap: 3.4rem;
  }
  .p-recruit__choice > span,
  .p-recruit__choices .wpcf7-list-item-label {
    font-size: 1.5rem;
    padding-left: 2.8rem;
  }
  .p-recruit__consent-note {
    font-size: 1.5rem;
    margin-top: 2.5rem;
  }
  .p-recruit__consent {
    margin-top: -1rem;
  }
  .p-recruit__consent input[type=checkbox] + .wpcf7-list-item-label {
    font-size: 1.5rem;
    padding-left: 5rem;
  }
  .p-recruit__submit {
    margin-top: 2.6rem;
  }
  .p-recruit__recaptcha {
    font-size: 1.2rem;
    margin-top: 1.9rem;
  }
  .p-recruit-thanks {
    padding-bottom: 9rem;
  }
  .p-recruit-thanks__hero {
    padding: 4rem var(--padding-sp) 0;
  }
  .p-recruit-thanks__hero-image {
    border-radius: 1.5rem;
    width: 100%;
  }
  .p-recruit-thanks__message {
    padding-top: 5.3rem;
  }
  .p-recruit-thanks__title {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-recruit-thanks__text {
    font-size: 1.5rem;
    margin-top: 1.7rem;
    text-align: left;
  }
  .p-recruit-thanks__notice {
    font-size: 1.5rem;
    margin-top: 1rem;
    padding: 3.5rem 3.5rem 3.5rem 3.5rem;
    width: 100%;
  }
  .p-recruit-thanks__notice p {
    padding-left: 2rem;
    text-indent: -2rem;
  }
  .p-recruit-thanks__notice-mark {
    width: 2rem;
  }
  .p-cavity-root-canal__decoration {
    --service-decor-1-inset: 9.4rem -1.2rem auto auto;
    --service-decor-1-width: 14.7rem;
    --service-decor-1-ratio: 147 / 54;
    --service-decor-2-inset: 10.4rem 3.2rem auto auto;
    --service-decor-2-width: 5rem;
    --service-decor-2-ratio: 50 / 84;
    --service-decor-3-display: none;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-periodontal__decoration {
    --service-decor-1-inset: 9.4rem -1.2rem auto auto;
    --service-decor-1-width: 4.8rem;
    --service-decor-1-ratio: 48 / 146;
    --service-decor-2-inset: 10.4rem 9.7rem auto auto;
    --service-decor-2-width: 8rem;
    --service-decor-2-ratio: 80 / 52;
    --service-decor-3-inset: 13.2rem -3.4rem auto auto;
    --service-decor-3-width: 15.9rem;
    --service-decor-3-ratio: 159 / 47;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-oral-surgery__decoration {
    --service-decor-1-inset: 10.5rem 6.8rem auto auto;
    --service-decor-1-width: 6.6rem;
    --service-decor-1-ratio: 1;
    --service-decor-2-inset: 9.4rem 3.4rem auto auto;
    --service-decor-2-width: 13.5rem;
    --service-decor-2-ratio: 135 / 44;
    --service-decor-3-inset: 14.7rem -1.8rem auto auto;
    --service-decor-3-width: 10.5rem;
    --service-decor-3-ratio: 105 / 38;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-swallowing__decoration {
    --service-decor-1-inset: 9.4rem -2.5rem auto auto;
    --service-decor-1-width: 5rem;
    --service-decor-1-ratio: 50 / 137;
    --service-decor-2-inset: 10.9rem 1rem auto auto;
    --service-decor-2-width: 12.5rem;
    --service-decor-2-ratio: 125 / 54;
    --service-decor-3-inset: 14.4rem 10.2rem auto auto;
    --service-decor-3-width: 7.3rem;
    --service-decor-3-ratio: 73 / 44;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-maternity__decoration {
    --service-decor-1-inset: 9.4rem 1rem auto auto;
    --service-decor-1-width: 5.5rem;
    --service-decor-1-ratio: 55 / 94;
    --service-decor-2-inset: 10.5rem 8.7rem auto auto;
    --service-decor-2-width: 7.7rem;
    --service-decor-2-ratio: 77 / 42;
    --service-decor-3-inset: 12.5rem -2.6rem auto auto;
    --service-decor-3-width: 16.7rem;
    --service-decor-3-ratio: 167 / 44;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-dry-mouth__decoration {
    --service-decor-1-inset: 9.4rem -2.6rem auto auto;
    --service-decor-1-width: 16.7rem;
    --service-decor-1-ratio: 167 / 44;
    --service-decor-2-inset: 10.3rem 6.3rem auto auto;
    --service-decor-2-width: 5.5rem;
    --service-decor-2-ratio: 55 / 72;
    --service-decor-3-inset: 15.7rem 1rem auto auto;
    --service-decor-3-width: 7.7rem;
    --service-decor-3-ratio: 77 / 32;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-preventive__decoration {
    --service-decor-1-inset: 9.4rem 4.3rem auto auto;
    --service-decor-1-width: 8rem;
    --service-decor-1-ratio: 1;
    --service-decor-2-inset: 10.6rem 10.6rem auto auto;
    --service-decor-2-width: 6.3rem;
    --service-decor-2-ratio: 63 / 40;
    --service-decor-3-inset: 14.6rem -3.9rem auto auto;
    --service-decor-3-width: 12.9rem;
    --service-decor-3-ratio: 129 / 43;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-pediatric__decoration {
    --service-decor-1-inset: 9.4rem 10.9rem auto auto;
    --service-decor-1-width: 6rem;
    --service-decor-1-ratio: 1;
    --service-decor-2-inset: 10.9rem -2.2rem auto auto;
    --service-decor-2-width: 14.5rem;
    --service-decor-2-ratio: 145 / 65;
    --service-decor-3-inset: 15.9rem -2.2rem auto auto;
    --service-decor-3-width: 7.3rem;
    --service-decor-3-ratio: 73 / 45;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-dentures__decoration {
    --service-decor-1-inset: 10.4rem 4.8rem auto auto;
    --service-decor-1-width: 5.6rem;
    --service-decor-1-ratio: 56 / 39;
    --service-decor-2-inset: 9.4rem -3.1rem auto auto;
    --service-decor-2-width: 6.2rem;
    --service-decor-2-ratio: 62 / 145;
    --service-decor-3-inset: 12rem -1.2rem auto auto;
    --service-decor-3-width: 14.7rem;
    --service-decor-3-ratio: 147 / 62;
    --service-decor-4-inset: 16.8rem 11.5rem auto auto;
    --service-decor-4-width: 4rem;
    --service-decor-4-ratio: 1;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-orthodontics__decoration {
    --service-decor-1-inset: 9.4rem -1.1rem auto auto;
    --service-decor-1-width: 8.5rem;
    --service-decor-1-ratio: 1;
    --service-decor-2-inset: 11.1rem 12rem auto auto;
    --service-decor-2-width: 6rem;
    --service-decor-2-ratio: 60 / 35;
    --service-decor-3-inset: 13.3rem 5.4rem auto auto;
    --service-decor-3-width: 9.4rem;
    --service-decor-3-ratio: 94 / 57;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-home-visit__decoration {
    --service-decor-1-inset: 9.4rem -2.1rem auto auto;
    --service-decor-1-width: 19rem;
    --service-decor-1-ratio: 190 / 62;
    --service-decor-2-inset: 10.6rem 6.8rem auto auto;
    --service-decor-2-width: 6.6rem;
    --service-decor-2-ratio: 1;
    --service-decor-3-inset: 13.9rem 0.7rem auto auto;
    --service-decor-3-width: 4.2rem;
    --service-decor-3-ratio: 42 / 64;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-sleep-apnea__decoration {
    --service-decor-1-inset: 9.4rem 6.9rem auto auto;
    --service-decor-1-width: 6rem;
    --service-decor-1-ratio: 1;
    --service-decor-2-inset: 12.6rem -2.5rem auto auto;
    --service-decor-2-width: 12.4rem;
    --service-decor-2-ratio: 124 / 46;
    --service-decor-3-inset: 15.6rem -2.9rem auto auto;
    --service-decor-3-width: 4.2rem;
    --service-decor-3-ratio: 42 / 47;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-tch-tmj__decoration {
    --service-decor-1-inset: 9.4rem 1rem auto auto;
    --service-decor-1-width: 6.3rem;
    --service-decor-1-ratio: 63 / 50;
    --service-decor-2-inset: 12.1rem 9.4rem auto auto;
    --service-decor-2-width: 4.2rem;
    --service-decor-2-ratio: 42 / 37;
    --service-decor-3-inset: 13.4rem 2rem auto auto;
    --service-decor-3-width: 10rem;
    --service-decor-3-ratio: 100 / 49;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-whitening__decoration {
    --service-decor-1-inset: 11.4rem 1rem auto auto;
    --service-decor-1-width: 7.3rem;
    --service-decor-1-ratio: 73 / 85;
    --service-decor-2-inset: 9.4rem -2.6rem auto auto;
    --service-decor-2-width: 16.2rem;
    --service-decor-2-ratio: 162 / 71;
    --service-decor-3-inset: 14.6rem 11.2rem auto auto;
    --service-decor-3-width: 5.2rem;
    --service-decor-3-ratio: 52 / 41;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-esthetic__decoration {
    --service-decor-1-inset: 9.4rem -4.6rem auto auto;
    --service-decor-1-width: 7.8rem;
    --service-decor-1-ratio: 78 / 147;
    --service-decor-2-inset: 12rem -4.6rem auto auto;
    --service-decor-2-width: 14.3rem;
    --service-decor-2-ratio: 143 / 49;
    --service-decor-3-inset: 14.8rem 6.7rem auto auto;
    --service-decor-3-width: 6rem;
    --service-decor-3-ratio: 60 / 43;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-implant__decoration {
    --service-decor-1-inset: 10.4rem 9.7rem auto auto;
    --service-decor-1-width: 8rem;
    --service-decor-1-ratio: 80 / 52;
    --service-decor-2-inset: 13.2rem -3.4rem auto auto;
    --service-decor-2-width: 15.9rem;
    --service-decor-2-ratio: 159 / 47;
    --service-decor-3-inset: 9.4rem -1.2rem auto auto;
    --service-decor-3-width: 4.8rem;
    --service-decor-3-ratio: 48 / 146;
    --service-decor-4-display: none;
    --service-decor-5-display: none;
    --service-decor-6-display: none;
  }
  .p-staff__photo {
    border-radius: 1rem;
  }
  .p-staff__card::before {
    border-radius: 0.5rem;
  }
  .p-staff__position {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  .p-staff__name {
    font-size: 1.8rem;
    margin-top: 0.3rem;
  }
  .p-staff__name span {
    font-size: 1.4rem;
  }
  .p-staff__tags {
    gap: 0.6rem;
    margin: 1.2rem 0 0 -0.5rem;
  }
  .p-staff__tags li {
    border-radius: 1.7rem;
    font-size: 1.2rem;
    height: 3.4rem;
    width: 13rem;
  }
  .p-staff__detail h2 {
    background-image: radial-gradient(circle, #5d898d 0.1rem, transparent 0.1rem);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='2' viewBox='0 0 6 2'%3E%3Ccircle cx='3' cy='1' r='1' fill='%235D898D'/%3E%3C/svg%3E");
    background-position: left bottom;
    background-repeat: repeat-x;
    background-size: 0.6rem 0.2rem;
    background-size: 0.6rem 0.2rem;
    font-size: 1.6rem;
    padding-bottom: 1.1rem;
  }
  .p-staff__detail p {
    font-size: 1.5rem;
    margin-top: 1.2rem;
  }
  .p-staff__detail .p-staff__detail-note {
    margin-top: 0;
  }
  .p-staff__detail + .p-staff__detail {
    margin-top: 2.7rem;
  }
  .p-staff__profile--lead {
    padding-bottom: 8.3rem;
  }
  .p-staff__lead-main {
    display: block;
  }
  .p-staff__photo--lead {
    border-radius: 1rem;
  }
  .p-staff__lead-copy {
    padding-top: 0;
  }
  .p-staff__card--lead {
    margin: -1.5rem auto 0;
    padding: 3.4rem 2.5rem 2.5rem 3rem;
    width: 31.6rem;
  }
  .p-staff__card--lead .p-staff__position {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  .p-staff__card--lead .p-staff__name {
    font-size: 1.8rem;
    margin-top: 0.3rem;
  }
  .p-staff__messages {
    margin-top: 2.6rem;
  }
  .p-staff__messages p {
    font-size: 1.5rem;
  }
  .p-staff__messages p + p {
    margin-top: 1rem;
  }
  .p-staff__details--lead {
    display: block;
    margin-top: 2.6rem;
  }
  .p-staff__details-column .p-staff__detail + .p-staff__detail {
    margin-top: 2.7rem;
  }
  .p-staff__details-column + .p-staff__detail {
    margin-top: 2.7rem;
  }
  .p-staff__profile--standard {
    display: block;
    margin-bottom: 8.3rem;
  }
  .p-staff__card--standard {
    margin: -1.5rem auto 0;
    padding: 3.4rem 2.5rem 2.5rem 3rem;
    width: 31.6rem;
  }
  .p-staff__photo--standard {
    width: 100%;
  }
  .p-staff__card--no-tags {
    padding-bottom: 2rem;
  }
  .p-staff__card--standard:first-child {
    padding-top: 1.9rem;
  }
  .p-staff__details--standard {
    margin-top: 3.5rem;
    padding-top: 0;
  }
  .p-staff__partners {
    padding: 5.3rem 0 14.8rem;
    text-align: left;
  }
  .p-staff__partners-title {
    font-size: 2.2rem;
    text-align: center;
  }
  .p-staff__partners-subtitle {
    font-size: 2rem;
    margin-top: 3rem;
    text-align: center;
  }
  .p-staff__partners-lead {
    font-size: 1.5rem;
    margin-top: 1.2rem;
  }
  .p-staff__partner-list {
    margin-top: 4.3rem;
    padding: 0 3.5rem;
    width: 100%;
  }
  .p-staff__partner {
    display: block;
    min-height: 0;
    padding: 3rem 0 2.8rem 2.8rem;
  }
  .p-staff__partner-name::before {
    top: 1rem;
  }
  .p-staff__partner-url {
    display: block;
    font-size: 1.5rem;
    margin-top: 1rem;
  }
  .p-staff__partner-url::after {
    margin-left: 0.6rem;
  }
  .p-swallowing__intro {
    padding-bottom: 12rem;
  }
  .p-swallowing__body p {
    font-size: 1.5rem;
  }
  .p-swallowing__body p + p {
    margin-top: 1rem;
  }
  .p-swallowing__section-head {
    margin-bottom: 1.5rem;
  }
  .p-swallowing__rehabilitation {
    padding: 0 0 6rem;
  }
  .p-swallowing__rehabilitation::before {
    border-radius: 0;
    width: 100%;
  }
  .p-swallowing__disorder {
    flex-direction: column;
    gap: 3.8rem;
  }
  .p-swallowing__disorder-content {
    flex-basis: auto;
    width: 100%;
  }
  .p-swallowing__disorder-image {
    border-radius: 1rem;
    flex-basis: auto;
    margin: -4rem auto 0;
    order: -1;
    width: 31rem;
  }
  .p-swallowing__training {
    margin-top: 3.3rem;
  }
  .p-swallowing__training .p-swallowing__section-head {
    margin-bottom: 1rem;
  }
  .p-swallowing__training .c-treatment-heading__text {
    margin-top: 1.5rem;
  }
  .p-swallowing__training-list {
    gap: 1.5rem;
    grid-template-columns: 1fr;
  }
  .p-swallowing__training-item {
    padding: 2rem 2.8rem 2.3rem;
  }
  .p-swallowing__training-title {
    font-size: 1.5rem;
    padding-left: 1.6rem;
  }
  .p-swallowing__training-text {
    font-size: 1.5rem;
    margin-top: 0.4rem;
  }
  .p-swallowing__message {
    padding-top: 9rem;
  }
  .p-swallowing__message-text {
    font-size: 1.8rem;
    margin-top: 9rem;
    text-align: left;
  }
  .p-swallowing__examination {
    padding: 2.2rem 0 14rem;
  }
  .p-swallowing__examination-box {
    padding: 5.3rem 3.5rem 4.5rem;
  }
  .p-swallowing__examination-top {
    flex-direction: column;
    gap: 2rem;
    margin-top: 2.7rem;
  }
  .p-swallowing__examination-image {
    flex-basis: auto;
  }
  .p-swallowing__features {
    padding: 2.2rem 3rem 1.9rem;
  }
  .p-swallowing__features-title {
    font-size: 1.5rem;
    line-height: 2;
  }
  .p-swallowing__features-list {
    gap: 0.5rem;
    margin-top: 0.9rem;
  }
  .p-swallowing__examination-body {
    margin-top: 3.5rem;
    padding-inline: 0;
  }
  .p-swallowing__examination-body p {
    font-size: 1.5rem;
  }
  .p-swallowing__examination-body p + p {
    margin-top: 1rem;
  }
  .p-top-fv {
    aspect-ratio: 390/692;
    height: auto;
    margin-bottom: 0;
    max-height: none;
    min-height: 0;
    min-width: 0;
  }
  .p-top-fv__sp-decoration {
    background-repeat: no-repeat;
    display: block;
    height: 100%;
    inset: 0 0 auto;
    pointer-events: none;
    position: absolute;
  }
  .p-top-fv__sp-decoration--left {
    background-image: url("../images/top/fv-deco-left-sp.png");
    background-position: left top;
    background-size: 110.811% auto;
    height: 113.006%;
    left: 5.128%;
    right: 0;
    top: -13.006%;
  }
  .p-top-fv__sp-decoration--right {
    background-image: url("../images/top/fv-deco-right-sp.png");
    background-position: right bottom;
    background-size: 43.333% auto;
    z-index: 2;
  }
  .p-top-fv__decoration {
    display: none;
  }
  .p-top-fv__stage {
    aspect-ratio: auto;
    height: 100%;
    left: 0;
    top: 0;
    transform: none;
    width: 100%;
  }
  .p-top-fv__photo--main {
    left: -5.385%;
    top: 13.006%;
    width: 60%;
  }
  .p-top-fv__photo--sub {
    left: 28.974%;
    top: 51.879%;
    width: 42.308%;
  }
  .p-top-fv__photo--small {
    left: -4.615%;
    top: 72.543%;
    width: 37.692%;
  }
  .p-top-fv__title {
    left: auto;
    right: 13.846%;
    top: 15.318%;
    width: 15.897%;
  }
  .p-top-fv__news {
    display: none;
  }
  .p-top-about {
    margin-bottom: 7.5rem;
    overflow-x: clip;
    padding-top: 5.1rem;
  }
  .p-top-about__copy p {
    font-size: 1.6rem;
    line-height: 2;
  }
  .p-top-about__copy p + p {
    margin-top: 1.9rem;
  }
  .p-top-about__diagram {
    --about-diagram-padding: 10%;
    aspect-ratio: 875/1405;
    margin: 3.8rem auto 0;
    width: 100%;
  }
  .p-top-about__diagram::before {
    background-image: url("../images/top/about-back.png");
    inset: var(--about-diagram-padding) 0;
  }
  .p-top-about__diagram-item {
    font-size: 4.103cqw;
    line-height: 1.375;
    white-space: nowrap;
  }
  .p-top-about__diagram-item small {
    font-size: 3.077cqw;
    line-height: 1.33;
    margin-top: 0.35em;
  }
  .p-top-about__diagram-item--specialists,
  .p-top-about__diagram-item--hygienists {
    top: 26.8%;
  }
  .p-top-about__diagram-item--specialists,
  .p-top-about__diagram-item--technicians {
    left: 24%;
  }
  .p-top-about__diagram-item--hygienists,
  .p-top-about__diagram-item--partners {
    left: 77%;
  }
  .p-top-about__diagram-item--patient {
    font-size: 1.6rem;
    gap: 0.5rem;
    top: 50%;
  }
  .p-top-about__patient-icon {
    width: 2.8em;
  }
  .p-top-about__diagram-item--technicians,
  .p-top-about__diagram-item--partners {
    top: 73.2%;
  }
  .p-top-about__diagram-note {
    font-size: 3.846cqw;
    line-height: 1.6;
    text-align: center;
    transform: translateX(-50%);
    white-space: nowrap;
  }
  .p-top-about__diagram-note--specialists,
  .p-top-about__diagram-note--hygienists {
    bottom: calc(100% - var(--about-diagram-padding));
    top: auto;
  }
  .p-top-about__diagram-note--specialists,
  .p-top-about__diagram-note--technicians {
    left: 24%;
  }
  .p-top-about__diagram-note--hygienists,
  .p-top-about__diagram-note--partners {
    left: 76%;
    right: auto;
  }
  .p-top-about__diagram-note--technicians,
  .p-top-about__diagram-note--partners {
    bottom: auto;
    top: calc(100% - var(--about-diagram-padding));
  }
  .p-top-guide {
    flex-direction: column;
    gap: 4.5rem;
    margin-bottom: 8.6rem;
  }
  .p-top-guide__card {
    padding-bottom: 7.5rem;
  }
  .p-top-guide__body {
    border-radius: 0.5rem;
    height: 9rem;
    left: 2.5rem;
    padding: 2rem 2rem 0;
    right: 2.5rem;
  }
  .p-top-guide__body small {
    font-size: 1.3rem;
    margin-bottom: 0.2rem;
  }
  .p-top-guide__body strong {
    font-size: 2rem;
  }
  .p-top-guide__body .c-arrow-circle {
    right: 2.5rem;
  }
  .p-top-news__item a {
    gap: 0.2rem;
    padding: 1.7rem 1rem;
  }
  .p-top-treatment {
    margin-bottom: 9rem;
    padding: 6.5rem 0 6rem;
  }
  .p-top-treatment__layout {
    gap: 0;
    padding: 0 2rem;
    width: 100%;
  }
  .p-top-treatment__heading {
    padding-right: 2.5rem;
    top: 2rem;
  }
  .p-top-treatment__heading h2 {
    font-size: 2.2rem;
  }
  .p-top-treatment__label {
    left: 0;
    top: 25rem;
    width: 2.7rem;
  }
  .p-top-treatment__groups::after {
    height: 6rem;
    right: -1rem;
    width: 0.3rem;
  }
  .p-top-treatment__group {
    display: block;
    padding: 3.1rem 3.5rem 3.5rem;
  }
  .p-top-treatment__group-copy {
    margin-bottom: 2.2rem;
    padding-top: 0;
    text-align: center;
  }
  .p-top-treatment__group-copy h3 {
    line-height: 2.7rem;
    padding-bottom: 1.5rem;
  }
  .p-top-treatment__group-copy p {
    font-size: 1.5rem;
    line-height: 3rem;
    text-align: left;
  }
  .p-top-treatment__items {
    display: grid;
    gap: 3.5rem;
  }
  .p-top-treatment__item {
    width: 100%;
  }
  .p-top-treatment__icon {
    margin-bottom: 1.2rem;
  }
  .p-top-treatment__name {
    font-size: 1.5rem;
    line-height: 2.3rem;
    min-height: 0;
    padding-left: 0.5rem;
  }
  .p-top-treatment__item .c-arrow-circle {
    bottom: 0.1rem;
  }
  .p-top-women {
    grid-template-columns: 10.2rem 1fr;
    grid-template-rows: auto auto auto auto;
    margin-bottom: 9rem;
  }
  .p-top-women::before {
    display: none;
  }
  .p-top-women__main {
    grid-column: 1/3;
    grid-row: 1;
    margin: 0 0 4.5rem;
  }
  .p-top-women__main::after {
    display: none;
  }
  .p-top-women__main img {
    border-radius: 1rem;
    height: 24.8rem;
    width: 100%;
  }
  .p-top-women__heading {
    font-size: 2.2rem;
    grid-column: 1;
    grid-row: 2/4;
    letter-spacing: 0.2rem;
    line-height: 3rem;
    margin-top: -0.9rem;
    padding: 0 3.6rem 0 0;
  }
  .p-top-women__copy {
    font-size: 1.5rem;
    grid-column: 2;
    grid-row: 2;
    line-height: 3rem;
    padding: 0 1rem 0 0;
  }
  .p-top-women__copy br {
    display: none;
  }
  .p-top-women__btn {
    grid-column: 1/3;
    grid-row: 4;
    margin: 5.1rem auto 0;
  }
  .p-top-women__sub {
    grid-column: 2;
    margin: 1rem 1rem 0 0;
  }
  .p-top-women__sub::before {
    background: var(--decor-fv-yellow);
    border-radius: 0.5rem;
    height: 5.2rem;
    left: 14.7rem;
    top: -2.2rem;
    width: 15.6rem;
  }
  .p-top-women__sub::after {
    display: block;
    height: 4.7rem;
    left: -5.1rem;
    top: 9.3rem;
    width: 6.5rem;
  }
  .p-top-women__sub img {
    border-radius: 0.5rem;
    width: 100%;
  }
  .p-top-section-heading {
    margin-bottom: 0;
  }
  .p-top-section-heading__title p {
    line-height: 3.3rem;
  }
  .p-top-section-heading__title h2 {
    font-size: 2.4rem;
    line-height: 3rem;
  }
  .p-top-blog {
    margin-bottom: 9rem;
    padding-bottom: 5.5rem;
  }
  .p-top-blog__inner {
    padding: 0 4.5rem;
    width: 100%;
  }
  .p-top-blog .p-top-section-heading {
    margin-bottom: 4.7rem;
  }
  .p-top-blog__list {
    display: grid;
    gap: 5rem;
  }
  .p-top-blog__thumbnail {
    border-radius: 1rem;
    margin-bottom: 1.2rem;
  }
  .p-top-blog__card time,
  .p-top-blog__card h3,
  .p-top-blog__card p {
    margin-inline: 0.5rem;
  }
  .p-top-blog__card time {
    font-size: 1.5rem;
  }
  .p-top-blog__card h3 {
    font-size: 1.5rem;
    line-height: 3rem;
  }
  .p-top-blog__card p {
    font-size: 1.2rem;
    line-height: 2.8rem;
  }
  .p-top-access {
    margin-bottom: 9rem;
  }
  .p-top-access__map {
    border-radius: 0.5rem 0.5rem 0 0;
    height: 49.5rem;
  }
  .p-top-access__note {
    align-items: center;
    border-radius: 0 0 0.5rem 0.5rem;
    font-size: 1.5rem;
    height: 11.4rem;
    justify-content: center;
    line-height: 2.3rem;
    padding: 0 1rem;
    position: static;
  }
  .p-top-access__parking {
    display: grid;
    gap: 0.7rem;
    justify-items: center;
    padding-right: 2.5rem;
    text-align: center;
  }
  .p-top-access__divider {
    border-left: 1px solid var(--white-alpha-55);
    height: 8.4rem;
  }
  .p-top-access__detail {
    padding-left: 2.5rem;
    text-align: center;
  }
  .p-top-recruit {
    background: transparent;
    grid-template-columns: 1fr;
    margin-bottom: 14rem;
    padding: 0 2rem;
    width: 100%;
  }
  .p-top-recruit__image {
    border-radius: 1rem 1rem 0 0;
    height: 17.5rem;
    width: 100%;
  }
  .p-top-recruit__body {
    background: var(--bg-mint-light);
    border-radius: 0 0 1rem 1rem;
    padding: 3.5rem 3.5rem 3.4rem;
  }
  .p-top-recruit__body h2 {
    font-size: 1.8rem;
    line-height: 3.2rem;
    margin-bottom: 1.1rem;
  }
  .p-top-recruit__body p {
    font-size: 1.5rem;
    line-height: 3rem;
  }
  .p-top-recruit__body > a {
    height: 11.6rem;
    margin-top: 2rem;
    position: static;
    width: 100%;
  }
  .p-treatment__page-head-inner,
  .p-treatment__section-inner {
    padding-inline: var(--padding-sp);
  }
  .p-treatment__page-head {
    padding: 10.3rem 0 10rem;
  }
  .p-treatment__page-head::before {
    right: -6.5rem;
    top: 6.7rem;
    width: 17rem;
  }
  .p-treatment__page-head::after {
    bottom: 9rem;
    left: -7rem;
    width: 17rem;
  }
  .p-treatment__page-head-inner {
    display: block;
  }
  .p-treatment__breadcrumb {
    font-size: 1.1rem;
  }
  .p-treatment__breadcrumb span {
    font-size: 1rem;
  }
  .p-treatment__title-wrap h1 {
    font-size: 2.4rem;
    margin-top: 1.2rem;
  }
  .p-treatment__intro-title {
    margin-top: 6.8rem;
  }
  .p-treatment__intro-title p {
    font-size: 1.8rem;
    line-height: 1.6666666667;
  }
  .p-treatment__intro-copy {
    margin-top: 3rem;
  }
  .p-treatment__intro-copy p,
  .p-treatment__body p {
    font-size: 1.2rem;
    line-height: 1.8333333333;
  }
  .p-treatment__section {
    padding: 7rem 0;
  }
  .p-treatment__split,
  .p-treatment__split--reverse {
    display: flex;
    flex-direction: column;
    gap: 3.5rem;
  }
  .p-treatment__image {
    flex-basis: auto;
    max-width: 35rem;
    order: -1;
    width: 100%;
  }
  .p-treatment__content {
    max-width: 35rem;
    width: 100%;
  }
  .p-treatment__head {
    margin-bottom: 2.4rem;
  }
  .p-treatment__label {
    font-size: 1.2rem;
  }
  .p-treatment__head h2 {
    font-size: 2rem;
  }
  .p-treatment__list li {
    font-size: 1.2rem;
  }
  .p-treatment__cards {
    gap: 3.5rem;
    grid-template-columns: 1fr;
    margin-top: 4.5rem;
    max-width: 35rem;
    width: 100%;
  }
  .p-treatment__card-body {
    padding: 2rem;
  }
  :where(.p-sleep-apnea) p {
    font-size: 1.5rem;
  }
  .p-sleep-apnea__intro {
    padding-bottom: 9rem;
  }
  .p-sleep-apnea__symptoms {
    padding: 0 0 5.1rem;
  }
  .p-sleep-apnea__symptoms::before {
    border-radius: 0 1rem 1rem 0;
    right: var(--padding-sp);
    top: 4rem;
  }
  .p-sleep-apnea__symptoms-image {
    border-radius: 1rem;
    margin: 0 auto;
    position: static;
    width: 80%;
  }
  .p-sleep-apnea__symptoms-title {
    font-size: 1.8rem;
    line-height: 2.3333333333;
    margin-top: 3.8rem;
  }
  .p-sleep-apnea__symptoms-lead {
    line-height: 1.7333333333;
    margin-top: 0.8rem;
    width: 33rem;
  }
  .p-sleep-apnea__symptom-list {
    grid-template-columns: 100%;
    margin-top: 0.7rem;
  }
  .p-sleep-apnea__symptom-group + .p-sleep-apnea__symptom-group {
    background-repeat: repeat-x;
    background-size: 0.6rem 0.2rem;
    margin: 1.8rem 2rem 0 0;
    padding: 1.5rem 0 0;
  }
  .p-sleep-apnea__symptom-group h3 {
    font-size: 1.8rem;
    line-height: 2.3333333333;
  }
  .p-sleep-apnea__symptom-group ul {
    margin-top: 0;
  }
  .p-sleep-apnea__symptom-group li + li {
    margin-top: 0.6rem;
  }
  .p-sleep-apnea__cause {
    padding-top: 7.8rem;
  }
  .p-sleep-apnea__cause-lead,
  .p-sleep-apnea__osa {
    width: 100%;
  }
  .p-sleep-apnea__cause-lead {
    margin-top: 3.2rem;
  }
  .p-sleep-apnea__cause-lead p + p,
  .p-sleep-apnea__osa-text p + p,
  .p-sleep-apnea__treatment-text p + p,
  .p-sleep-apnea__cooperation p + p {
    margin-top: 1rem;
  }
  .p-sleep-apnea__osa {
    margin-top: 4.4rem;
  }
  .p-sleep-apnea__treatment {
    padding: 7rem 0 14rem;
  }
  .p-sleep-apnea__treatment-body {
    flex-direction: column;
    gap: 2.8rem;
    margin-top: 2.9rem;
    width: 100%;
  }
  .p-sleep-apnea__treatment-image {
    border-radius: 1rem;
    flex-basis: auto;
    width: 100%;
  }
  .p-sleep-apnea__treatment-text {
    padding-top: 0;
  }
  .p-sleep-apnea__treatment-title {
    font-size: 2rem;
    line-height: 1.75;
  }
  .p-sleep-apnea__treatment-title + p {
    margin-top: 1rem;
  }
  .p-sleep-apnea__cooperation {
    margin-top: 5.2rem;
    padding: 2.8rem 3.5rem 2.7rem;
    width: 100%;
  }
  .p-sleep-apnea__cooperation-title {
    font-size: 2rem;
    line-height: 1.75;
    text-align: center;
  }
  .p-sleep-apnea__cooperation-title + p {
    margin-top: 1rem;
  }
  .p-sleep-apnea__cooperation .p-sleep-apnea__note {
    margin-top: 1rem;
    padding-left: 2rem;
    text-indent: -2rem;
  }
  .p-tch-tmj__intro {
    padding-bottom: 7.8rem;
  }
  .p-tch-tmj__heading {
    margin-bottom: 3.8rem;
  }
  .p-tch-tmj__title {
    font-size: 2rem;
    line-height: 1.75;
    margin-bottom: 1.1rem;
  }
  .p-tch-tmj__text p {
    font-size: 1.5rem;
  }
  .p-tch-tmj__text p + p {
    margin-top: 1rem;
  }
  .p-tch-tmj__symptoms {
    margin-top: 7.5rem;
    min-height: 0;
    padding-bottom: 5.6rem;
  }
  .p-tch-tmj__symptoms-body {
    padding-top: 3.8rem;
  }
  .p-tch-tmj__symptoms-title {
    font-size: 1.8rem;
    line-height: 2.3333333333;
  }
  .p-tch-tmj__symptoms-text {
    font-size: 1.5rem;
    margin-top: 0.6rem;
  }
  .p-tch-tmj__symptoms-list {
    grid-auto-flow: row;
    grid-template-columns: 1fr;
    grid-template-rows: none;
    margin-top: 1rem;
    row-gap: 0.6rem;
  }
  .p-tch-tmj__symptoms-list li,
  .p-tch-tmj__check-list li {
    font-size: 1.5rem;
    line-height: 1.7333333333;
    padding-left: 2.5rem;
  }
  .p-tch-tmj__symptoms-list li::before,
  .p-tch-tmj__check-list li::before {
    width: 1.7rem;
  }
  .p-tch-tmj__risk {
    padding-bottom: 5.2rem;
  }
  .p-tch-tmj__risk-image {
    border-radius: 1rem;
    margin-bottom: 2.8rem;
    position: static;
    width: 100%;
  }
  .p-tch-tmj__risk-body {
    width: auto;
  }
  .p-tch-tmj__point-title {
    font-size: 1.8rem;
    line-height: 2.5;
    margin: 4.1rem 0 0.6rem;
  }
  .p-tch-tmj__check {
    padding-bottom: 7.8rem;
    padding-inline: var(--padding-sp);
  }
  .p-tch-tmj__check-inner {
    padding: 5.3rem 3.5rem 5.2rem;
  }
  .p-tch-tmj__check-title {
    font-size: 2rem;
    line-height: 1.75;
    margin-bottom: 2.7rem;
  }
  .p-tch-tmj__check-box {
    border-radius: 0.5rem;
    padding: 2.4rem 2.8rem 2rem;
  }
  .p-tch-tmj__check-heading {
    font-size: 1.5rem;
    line-height: 1.5333333333;
    padding-left: 1.6rem;
  }
  .p-tch-tmj__check-heading::before {
    width: 0.7rem;
  }
  .p-tch-tmj__check-steps {
    margin-top: 0.8rem;
    padding-bottom: 4.3rem;
  }
  .p-tch-tmj__check-steps::after {
    bottom: 1.9rem;
    height: 1.2rem;
    width: 1.5rem;
  }
  .p-tch-tmj__check-steps li {
    font-size: 1.5rem;
    padding-left: 3rem;
  }
  .p-tch-tmj__check-steps li + li {
    margin-top: 0;
  }
  .p-tch-tmj__check-steps li::before {
    font-size: 1.8rem;
    left: 0;
  }
  .p-tch-tmj__check-question {
    font-size: 1.5rem;
    line-height: 1.7333333333;
    margin-top: 0;
    text-align: center;
  }
  .p-tch-tmj__check-list {
    margin-top: 1rem;
    row-gap: 0.6rem;
  }
  .p-tch-tmj__alert {
    font-size: 1.5rem;
    line-height: 1.7333333333;
    margin-top: 3rem;
    padding-left: 2.5rem;
  }
  .p-tch-tmj__alert::before {
    background-image: url("../images/tch-tmj/icon-04.svg");
    top: 0.4rem;
    width: 1.7rem;
  }
  .p-tch-tmj__check-text {
    font-size: 1.5rem;
    margin-top: 1.2rem;
  }
  .p-tch-tmj__treatment {
    padding-bottom: 13rem;
  }
  .p-tch-tmj__treatment-content {
    flex-direction: column-reverse;
  }
  .p-tch-tmj__treatment-body {
    width: auto;
  }
  .p-tch-tmj__treatment-image {
    border-radius: 1rem;
    margin-bottom: 2.8rem;
    width: 100%;
  }
  .p-whitening__intro {
    padding-bottom: 7.8rem;
  }
  .p-cosmetic__heading {
    margin-bottom: 3.8rem;
  }
  .p-cosmetic__title {
    font-size: 2rem;
    line-height: 1.75;
    margin-bottom: 1.1rem;
  }
  .p-cosmetic__text p {
    font-size: 1.5rem;
  }
  .p-cosmetic__text p + p {
    margin-top: 1rem;
  }
  .p-cosmetic__about {
    padding-bottom: 5.2rem;
  }
  .p-cosmetic__about-content {
    flex-direction: column-reverse;
    gap: 0;
  }
  .p-cosmetic__about-body {
    width: auto;
  }
  .p-cosmetic__about-image {
    border-radius: 1rem;
    margin-bottom: 2.8rem;
    width: 100%;
  }
  .p-cosmetic__menu {
    padding-bottom: 7.8rem;
    padding-inline: var(--padding-sp);
  }
  .p-cosmetic__menu-panel {
    padding: 1rem;
  }
  .p-cosmetic__menu-inner {
    padding: 2.2rem 3rem 5.3rem;
  }
  .p-cosmetic__menu-title {
    font-size: 1.8rem;
    line-height: 2.1111111111;
    margin-bottom: 2.1rem;
  }
  .p-cosmetic__menu-item + .p-cosmetic__menu-item {
    margin-top: 3.1rem;
  }
  .p-cosmetic__menu-name {
    font-size: 2rem;
    line-height: 2.1;
    margin: 0 0 1.7rem;
    padding: 0 0 0.4rem;
  }
  .p-cosmetic__menu-lead {
    font-size: 1.8rem;
    line-height: 1.7777777778;
    margin-bottom: 1rem;
  }
  .p-cosmetic__price .p-cosmetic__heading {
    margin-bottom: 3.9rem;
  }
  .p-whitening__price-list {
    --price-term-width: 18.2rem;
  }
  .p-cosmetic__risk {
    padding: 9rem var(--padding-sp) 14rem;
  }
  .p-cosmetic__risk-box {
    --risk-padding: 3rem 3.5rem 2.8rem;
    --risk-list-gap: 1.3rem;
  }
  .p-whitening__bridal {
    border-radius: 0.5rem;
    display: block;
    margin: 1.7rem 0 0.8rem;
    padding: 2.5rem 3rem 2.2rem;
  }
  .p-whitening__bridal-title {
    font-size: 1.8rem;
    line-height: 1.5;
  }
  .p-whitening__bridal-text {
    font-size: 1.5rem;
    margin-top: 1.7rem;
  }
  .p-whitening__bridal-image {
    border-radius: 0.5rem;
    margin-top: 2rem;
  }
  .p-esthetic__intro {
    padding-bottom: 7.8rem;
  }
  .p-esthetic__about-content .p-cosmetic__about-image {
    width: 100%;
  }
  .p-esthetic__menu {
    padding-bottom: 6rem;
  }
  .p-esthetic__menu-title {
    margin-bottom: 1.8rem;
  }
  .p-esthetic__menu-list {
    --term-width: 12.5rem;
  }
  .p-esthetic__price-table .c-treatment-table__table,
  .p-esthetic__price-table tbody,
  .p-esthetic__price-table tr {
    display: block;
    width: 100%;
  }
  .p-esthetic__price-table tr {
    display: grid;
    grid-template-columns: 14rem minmax(0, 1fr);
  }
  .p-esthetic__price-table th,
  .p-esthetic__price-table td {
    box-sizing: border-box;
    padding: 2rem 0 2rem 1rem;
  }
  .p-esthetic__price-table th {
    font-size: 1.5rem;
    grid-column: 1;
    line-height: 1.5333333333;
    width: auto;
  }
  .p-esthetic__price-table td {
    grid-column: 2;
    padding-right: 1rem;
    width: auto;
  }
  .p-esthetic__price-table td:empty {
    display: none;
  }
  .p-esthetic__price-order {
    display: block;
    font-size: 1.5rem;
    line-height: 1.5333333333;
    margin-bottom: 0.5rem;
  }
  .p-esthetic__price-value-cell {
    text-align: left;
  }
  .p-esthetic__price-table .p-esthetic__price-description-cell + .p-esthetic__price-value-cell {
    background-image: none;
    border-top: 0;
    padding-top: 0;
  }
  .p-esthetic__price-description-cell:has(+ .p-esthetic__price-value-cell) {
    padding-bottom: 1.2rem;
  }
  .p-esthetic__price-label {
    display: block;
  }
  .p-esthetic__price-separator {
    display: none;
  }
  .p-esthetic__price-value {
    width: inherit;
  }
  .p-esthetic__price-table td p {
    font-size: 1.5rem;
    line-height: 2;
  }
  .p-esthetic__price-table td p + p {
    margin-top: 0.7rem;
  }
  .p-esthetic__cerec {
    padding: 0 var(--padding-sp) 7.8rem;
  }
  .p-esthetic__cerec-inner {
    padding: 5.3rem 3.5rem 6rem;
  }
  .p-esthetic__cerec-title {
    font-size: 2rem;
    line-height: 1.75;
    margin-bottom: 2.7rem;
  }
  .p-esthetic__cerec-lead {
    flex-direction: column-reverse;
  }
  .p-esthetic__cerec-body {
    width: auto;
  }
  .p-esthetic__cerec-image {
    margin-bottom: 2.8rem;
    width: 100%;
  }
  .p-esthetic__merit {
    border-radius: 0.5rem;
    margin: 2.8rem 0 0;
    padding: 2.9rem 3rem 2.3rem;
  }
  .p-esthetic__merit-title {
    font-size: 1.8rem;
    line-height: 1.7777777778;
    padding: 3.8rem 0 0;
    text-align: center;
  }
  .p-esthetic__merit-title::before {
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    width: 2.8rem;
  }
  .p-esthetic__merit-list {
    margin: 1.7rem 0 0;
  }
  .p-esthetic__merit-list li {
    padding-left: 1.6rem;
  }
  .p-esthetic__merit-list li + li {
    margin-top: 1.6rem;
  }
  .p-esthetic__merit-list li::before {
    top: 1.2rem;
    width: 0.7rem;
  }
  .p-esthetic__merit-name {
    line-height: 1.6666666667;
  }
  .p-esthetic__merit-text {
    font-size: 1.5rem;
  }
  .p-implant__intro {
    padding-bottom: 8rem;
  }
  .p-implant__heading {
    margin-bottom: 5.8rem;
  }
  .p-implant__specialist-card {
    min-height: 0;
  }
  .p-implant__specialist-image {
    border-radius: 0 1rem 1rem 0;
    margin-left: calc(var(--padding-sp) * -1);
    width: 100%;
  }
  .p-implant__specialist-body {
    padding: 4.3rem 2rem 8rem 0;
    width: auto;
  }
  .p-implant__reasons {
    padding-top: 7.8rem;
  }
  .p-implant__reason-list {
    gap: 6rem;
    grid-template-columns: 1fr;
    margin: 0;
  }
  .p-implant__reason {
    padding: 4.5rem 3.5rem 2.8rem;
  }
  .p-implant__reason-label {
    font-size: 1.5rem;
    left: 50%;
    line-height: 3.3333333333;
    transform: translateX(-50%);
    width: 13rem;
  }
  .p-implant__reason-title {
    font-size: 1.8rem;
    line-height: 1.9444444444;
    margin: 0;
    padding: 0 0 1.5rem;
  }
  .p-implant__reason-text {
    font-size: 1.5rem;
  }
  .p-implant__flow {
    padding: 7.8rem 0 7rem;
  }
  .p-implant__flow .p-implant__heading {
    margin-bottom: 3rem;
  }
  .p-implant__step-list {
    gap: 4.3rem;
  }
  .p-implant__step-list .c-treatment-steps__item {
    grid-template-columns: 2.6rem 1fr;
    -moz-column-gap: 1rem;
    column-gap: 1rem;
  }
  .p-implant__step-list .c-treatment-steps__item:nth-child(3) {
    min-height: 13.3rem;
  }
  .p-implant__step-list .c-treatment-steps__item:not(:last-child)::after {
    bottom: -3.7rem;
    left: 1.2rem;
    top: 5rem;
  }
  .p-implant__step-list .c-treatment-steps__number {
    line-height: 1;
    margin-top: 0.9rem;
    width: 2.6rem;
  }
  .p-implant__step-list .c-treatment-steps__text {
    margin-top: 1.2rem;
  }
  .p-women__intro {
    padding: 0 0 8.2rem;
  }
  .p-women__intro::before,
  .p-women__intro::after,
  .p-women__intro-inner::before,
  .p-women__intro-inner::after {
    border-radius: 0.5rem;
  }
  .p-women__intro::before {
    height: 3.8rem;
    left: calc(50% - 17.3rem);
    top: -2.2rem;
    width: 5.2rem;
  }
  .p-women__intro::after {
    height: 4.8rem;
    left: calc(50% - 21.8rem);
    top: 0;
    width: 7.1rem;
  }
  .p-women__intro-inner::before {
    height: 4.2rem;
    left: calc(50% + 14.2rem);
    top: -1.5rem;
    width: 7.2rem;
  }
  .p-women__intro-inner::after {
    background-color: var(--decor-page-gray-alpha-60);
    height: 3.6rem;
    left: calc(50% + 12.1rem);
    top: 1.9rem;
    width: 5.7rem;
  }
  .p-women__intro h2 {
    font-size: 2rem;
    line-height: 1.75;
    margin-top: -0.8rem;
  }
  .p-women__intro p {
    font-size: 1.5rem;
    margin-top: 1.4rem;
    text-align: left;
  }
  .p-women__intro p + p {
    margin-top: 1rem;
  }
  .p-women__advisor {
    padding: 5.3rem 0 5.2rem;
  }
  .p-women__advisor::before {
    border-radius: 0 1rem 1rem 0;
    width: calc(100% - 2rem);
  }
  .p-women__advisor-inner {
    flex-direction: column;
    gap: 0;
    padding-right: 4rem;
  }
  .p-women__advisor-photo {
    flex: none;
    margin: 0 auto 8.6rem;
    order: -1;
    width: 83.871%;
  }
  .p-women__advisor-photo img {
    border-radius: 0.5rem;
  }
  .p-women__advisor-photo figcaption {
    bottom: -5.5rem;
    height: 8.3rem;
    left: 50%;
    padding: 1.5rem 0 0;
    right: auto;
    text-align: center;
    top: auto;
    transform: translateX(-50%);
    width: 77.4%;
  }
  .p-women__advisor-photo figcaption span {
    font-size: 1.5rem;
  }
  .p-women__advisor-photo figcaption strong {
    font-size: 1.8rem;
    margin-top: 0.2rem;
  }
  .p-women__advisor-copy {
    display: contents;
  }
  .p-women__advisor-copy h2 {
    font-size: 2rem;
    line-height: 1.75;
    margin: 0 auto 2.9rem;
    order: -2;
    text-align: center;
  }
  .p-women__advisor-copy p {
    font-size: 1.5rem;
  }
  .p-women__advisor-copy p + p {
    margin-top: 1rem;
  }
  .p-women__menu {
    padding: 7.8rem 0 14.8rem;
  }
  .p-women__feature-list {
    margin: 3.7rem var(--padding-sp) 0;
    padding-left: 0;
    width: auto;
  }
  .p-women__feature {
    flex-direction: column;
    justify-content: flex-start;
  }
  .p-women__feature + .p-women__feature {
    margin-top: 5.8rem;
  }
  .p-women__feature-copy {
    display: contents;
  }
  .p-women__feature-photo {
    flex: none;
    margin-bottom: 2.6rem;
    order: 2;
    width: 100%;
  }
  .p-women__feature-photo img {
    border-radius: 1rem;
  }
  .p-women__kicker {
    font-size: 1.8rem;
    line-height: 1.5;
    margin: 0 0 2.2rem;
    order: 1;
  }
  .p-women__feature h3 {
    font-size: 2rem;
    line-height: 1.5;
    margin-top: 0;
    order: 3;
  }
  .p-women__feature-lead {
    font-size: 1.5rem;
    margin-top: 1.3rem;
    order: 4;
  }
  .p-women__note {
    margin: 1.7rem 0 0;
    order: 5;
    padding: 2.7rem 3.5rem;
  }
  .p-women__note h4 {
    font-size: 1.5rem;
  }
  .p-women__note h4:not(:first-child) {
    margin-top: 1.5rem;
  }
  .p-women__note p {
    font-size: 1.5rem;
  }
  .p-women__annotation {
    margin-top: 1.7rem;
    order: 6;
  }
  .p-women__button {
    margin: 3rem auto 0;
    order: 7;
  }
  .p-women__annotation + .p-women__button {
    margin-top: 2.2rem;
  }
  .u-pt {
    display: none !important;
  }
  .u-tab {
    display: none !important;
  }
  .u-pc-inline {
    display: none;
  }
  .u-sp-inline {
    display: inline;
  }
  .u-inner {
    padding-inline: var(--padding-sp);
  }
  .u-pb-wide {
    padding-bottom: 8rem;
  }
}

@media screen and (max-width: 380px){
  .p-preventive__hero-catch-second {
    font-size: 1.9rem;
  }
}

@media (any-hover: hover){
  .c-btn--orange:hover {
    background: var(--yellow-hover);
  }
  .footer__map:hover {
    background-color: var(--coral-hover);
    color: var(--white);
  }
  .footer__reserve:hover {
    background: var(--coral-hover);
  }
  .footer__bottom a:hover {
    opacity: 0.7;
  }
  .header__nav-link:hover {
    color: var(--orange);
  }
  .mega-menu__link:hover {
    color: var(--orange);
  }
  .mega-menu__link:hover .mega-menu__arrow {
    transform: translateX(0.3rem);
  }
  .mega-menu__body--card:hover .mega-menu__arrow {
    transform: translateX(0.3rem);
  }
  .mega-menu__body--card:hover .mega-menu__card-label {
    color: var(--orange);
  }
  .header__reserve:hover {
    background: var(--coral-hover);
  }
  .journal-card__link:hover .journal-card__image img {
    transform: scale(1.05);
  }
  .journal-card__link:hover .journal-card__date,
  .journal-card__link:hover .journal-card__title {
    color: var(--green-primary);
  }
  .journal-article__body a:hover {
    opacity: 0.8;
  }
  .p-staff__partner-url:hover {
    opacity: 0.6;
  }
  .p-top-fv__news-item a:hover span {
    border-color: var(--green-primary);
  }
  .p-top-treatment__item a:hover .p-top-treatment__icon {
    background: var(--bg-hover-cream);
  }
  .p-top-guide__card:hover .p-top-guide__body {
    background: var(--yellow-alpha-90);
  }
  .p-top-section-heading__link:hover .c-arrow-circle {
    color: var(--green-hover-soft);
  }
  .p-top-blog__card > a:hover .p-top-blog__thumbnail img {
    transform: scale(1.05);
  }
  .p-top-blog__card > a:hover time,
  .p-top-blog__card > a:hover h3 {
    color: var(--green-primary);
  }
  .p-top-recruit__body > a:hover {
    background: var(--green-recruit-hover);
  }
}

@media (hover: hover) and (pointer: fine){
  .btn__link:hover {
    opacity: 0.8;
  }
  .btn__link:hover::after {
    right: -0.3rem;
  }
  .main--error .error-link::after {
    transition: 0.5s;
    transition-property: left;
  }
  .main--error .error-link:hover::after {
    left: 1rem;
  }
}

@media (prefers-reduced-motion: reduce){
  .mega-menu__group {
    transition: none;
  }
  main,
  .c-page-hero,
  html.is-page-leaving main,
  html.is-page-leaving .c-page-hero {
    animation: none;
  }
  .p-clinic__gallery-set {
    animation-play-state: paused;
  }
}

@media all and (-ms-high-contrast: none){
  html,
  body {
    display: none;
  }
}
/*# sourceMappingURL=maps/style.css.map */
