:root {
  --color-text: #7b6a58;
  --color-accent: #bdaa82;
  --color-accent-dark: #96876f;
  --color-menu: #c1aa76;
  --color-bg: #f9f8f4;
  --font-mincho: "Zen Old Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  --font-sans: "Zen Kaku Gothic New", "Noto Sans JP", system-ui, sans-serif;
  --font-en: "Montserrat", Arial, sans-serif;
  --container-max: 1140px;
  --container-gutter: clamp(30px, 4vw, 60px);
  --pc-frame-offset: max(80px, calc((100vw - 1280px) / 2));
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  margin: 0;
  color: var(--color-text);
  background: var(--color-bg);
  font-family: var(--font-sans);
  overflow-x: clip;
}

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

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

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-header {
  position: relative;
  z-index: 1000;
  background: #fff;
}

.site-header__inner {
  position: relative;
  height: 143px;
  width: 100%;
  display: block;
  padding: 0;
}

.site-header__brand {
  position: absolute;
  left: var(--pc-frame-offset);
  top: 40px;
  width: 276.615px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.site-header__tagline {
  color: var(--color-accent);
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
}

.site-header__logo-row {
  display: flex;
  gap: 12px;
  align-items: center;
}

.site-header__logo-mark--area {
  width: 87.191px;
  height: 28px;
}

.site-header__logo-mark--clinic {
  width: 177.424px;
  height: 28px;
}

.site-header__nav {
  position: fixed;
  left: auto;
  right: 272px;
  top: 20px;
  display: flex;
  align-items: center;
  height: 64px;
  padding-top: 0;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.04));
  pointer-events: auto;
}

.site-header__nav::before {
  content: "";
  position: absolute;
}

.site-header__nav-link {
  height: 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  background: #fff;
  white-space: nowrap;
}

.site-header__nav-link:first-child {
  padding-left: 40px;
}

.site-header__nav-link:last-child {
  padding-right: 40px;
}

.site-header__nav-ja {
  font-family: var(--font-mincho);
  font-size: 16px;
  line-height: 1;
  color: var(--color-text);
}

.site-header__nav-en {
  font-family: var(--font-en);
  font-weight: 300;
  font-size: 12px;
  line-height: 1;
  color: var(--color-accent);
}

.site-header__tel {
  position: fixed;
  left: auto;
  right: 37px;
  top: 20px;
  width: 235px;
  height: 64px;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 19px 0 12px;
  background: var(--color-accent-dark);
  color: #fff;
  pointer-events: auto;
}

.site-header__tel-icon {
  width: 32px;
  height: 24.743px;
  margin: 0 8px;
}

.site-header__tel-number {
  font-family: var(--font-en);
  font-size: 22px;
  line-height: 1;
  white-space: nowrap;
}

.site-header__tel-label,
.site-header__menu-button {
  display: none;
}

.site-header__sp-menu {
  display: none;
}

.front-hero {
  position: relative;
  height: 700px;
  overflow: hidden;
  background: #857054;
}

.front-hero__slider {
  position: absolute;
  left: 0;
  top: -23px;
  width: max(1440px, 100vw);
  height: 811px;
  opacity: 0.64;
}

.front-hero__track,
.front-hero__list,
.front-hero__slide,
.front-hero__image {
  width: 100%;
  height: 100%;
}

.front-hero__image {
  display: block;
  object-fit: cover;
  object-position: center;
}

.front-hero__content {
  position: relative;
  width: 628px;
  margin: 0;
  margin-left: var(--pc-frame-offset);
  padding-top: 267px;
}

.front-hero__station {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin: 0 0 10px;
  padding: 4px 6px;
  background: #fff;
  color: var(--color-text);
  font-family: var(--font-mincho);
  font-size: 24px;
  line-height: 1;
  letter-spacing: 1.2px;
}

.front-hero__title {
  display: block;
  margin: 0;
  color: #fff;
  font-family: var(--font-mincho);
  font-size: 56px;
  line-height: 1.6;
  font-weight: 400;
  letter-spacing: 2.24px;
  white-space: nowrap;
}

.front-hero__title span:first-child {
  display: block;
}

.front-hero__meta {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 34px;
}

.front-hero__clinic {
  display: flex;
  align-items: center;
  min-height: 20px;
  margin: 0;
  padding: 0 24px 0 6px;
  border-right: 1px solid #fff;
  color: #fff;
  font-family: var(--font-sans);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 1.2px;
  line-height: 1;
}

.front-hero__phone {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding-left: 6px;
  color: #fff;
  font-family: var(--font-en);
  font-size: 22px;
  line-height: 1;
}

.front-hero__phone img {
  width: 25.866px;
  height: 20px;
}

.front-info {
  width: 1150px;
  height: 342px;
  margin: 112px auto 56px;
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

.front-info__card {
  position: relative;
  width: 555px;
  height: 326px;
  display: flex;
  align-items: flex-start;
  gap: 32px;
  padding: 30px;
  background: #fff;
}

.front-info__heading {
  width: 52px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.front-info__heading-en {
  width: 12px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 12px;
  line-height: 1;
}

.front-info__heading-ja {
  width: 32px;
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 6px;
  writing-mode: vertical-rl;
}

.front-info__body {
  flex: 1;
}

.front-news-item {
  padding-bottom: 16px;
  border-bottom: 1px solid #ebe7df;
}

.front-news-item + .front-news-item {
  margin-top: 12px;
}

.front-news-item:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
}

.front-news-item__meta {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
  color: #4b4b4b;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
}

.front-news-item__meta span {
  min-width: 60px;
  display: inline-flex;
  justify-content: center;
  padding: 4px 6px;
  border: 1px solid var(--color-accent-dark);
  color: var(--color-accent-dark);
  font-size: 12px;
  line-height: 1.2;
}

.front-news-item p {
  margin: 0;
  color: #565656;
  font-size: 15px;
  line-height: 1.6;
}

.front-info__more {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  color: #7d7d7d;
  font-size: 15px;
  font-weight: 500;
  text-decoration: underline;
}

.front-info__more::after {
  content: "";
  width: 20px;
  height: 17px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: url("../images/figma/icon-pill-arrow-filled.svg") center / contain no-repeat;
  text-decoration: none;
}

.front-hours-table {
  width: 414px;
  border-collapse: collapse;
  color: #4b4b4b;
  font-size: 16px;
  text-align: center;
}

.front-hours-table tr {
  border-top: 1px solid var(--color-accent-dark);
}

.front-hours-table tbody tr:last-child {
  border-bottom: 1px solid var(--color-accent-dark);
}

.front-hours-table th,
.front-hours-table td {
  height: 66px;
  padding: 0;
  font-weight: 500;
}

.front-hours-table thead th {
  height: 50px;
  white-space: nowrap;
  text-wrap: nowrap;
  word-break: keep-all;
}

.front-hours-table th:first-child {
  width: 100px;
  font-size: 18px;
  white-space: nowrap;
}

.front-hours-table td {
  width: 42px;
}

.front-hours-table td:not(:last-child) {
  color: var(--color-accent-dark);
}

.front-hours-note {
  margin: 2px 0 0;
  padding-left: 8px;
  color: #565656;
  font-size: 15px;
  line-height: 1.6;
}

.front-access {
  position: relative;
  width: 1150px;
  min-height: 468px;
  margin: 56px auto 112px;
  display: flex;
  align-items: flex-start;
  gap: 32px;
  padding: 30px;
  background: transparent;
}

.front-access::before {
  content: "";
  position: absolute;
  inset: 0 0 16px;
  background: #fff;
}

.front-access > * {
  position: relative;
  z-index: 1;
}

.front-access__heading {
  width: 52px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex: 0 0 auto;
}

.front-access__heading-en {
  width: 12px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 12px;
  line-height: 1;
}

.front-access__heading-ja {
  width: 32px;
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 6px;
  writing-mode: vertical-rl;
}

.front-access__info {
  width: 436px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  flex: 0 0 auto;
}

.front-access__list {
  width: 436px;
  margin: 0;
}

.front-access__row {
  width: 432px;
  min-height: 46px;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 12px 0;
  border-bottom: 0.5px solid var(--color-accent-dark);
}

.front-access__row:first-child {
  min-height: 68px;
}

.front-access__row:last-child {
  border-bottom: 0;
}

.front-access__row dt {
  width: 80px;
  margin: 0;
  padding: 0 8px;
  color: #4b4b4b;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  flex: 0 0 auto;
}

.front-access__row dd {
  margin: 0;
  color: #565656;
  font-size: 16px;
  line-height: 1.4;
  white-space: nowrap;
}

.front-access__photos {
  width: 436px;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}

.front-access__photos::-webkit-scrollbar {
  display: none;
}

.front-access__photo {
  position: relative;
  width: 240px;
  height: 154.128px;
  margin: 0;
  overflow: hidden;
  background: #fff;
  flex: 0 0 auto;
}

.front-access__photo img {
  position: absolute;
  left: -4.404px;
  top: -11.009px;
  width: 247.624px;
  height: 165.138px;
  max-width: none;
  object-fit: cover;
  opacity: 0.9;
}

.front-access__map-block {
  width: 538px;
  height: 392px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.front-access__map {
  position: relative;
  width: 538px;
  height: 364px;
  overflow: hidden;
}

.front-access__map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  border: 0;
}

.front-access__map-link {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #7d7d7d;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  text-align: right;
  text-decoration: underline;
}

.front-access__map-link::after {
  content: "";
  width: 20px;
  height: 17px;
  background: url("../images/figma/icon-pill-arrow-filled.svg") center / contain no-repeat;
  flex: 0 0 auto;
}

.front-concept {
  position: relative;
  height: 722px;
  margin-top: 108px;
  overflow: hidden;
  background: #f9f8f4;
}

.front-concept__bg {
  position: absolute;
  left: 0;
  right: 0;
  top: 489px;
  height: 233px;
  background: #fff9ec;
}

.front-concept__heading {
  position: absolute;
  left: calc(var(--pc-frame-offset) + 90px);
  top: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 105px;
}

.front-concept__title {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.6;
  white-space: nowrap;
}

.front-concept__en {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-inline: 8px;
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 16px;
  line-height: 1;
}

.front-concept__text {
  position: absolute;
  left: calc(var(--pc-frame-offset) + 394px);
  top: 0;
  width: 568px;
  color: #565656;
  font-size: 16px;
  line-height: 2;
}

.front-concept__text p {
  margin: 0;
}

.front-concept__image {
  position: absolute;
  margin: 0;
  overflow: hidden;
  background: #fff;
}

.front-concept__image img {
  position: absolute;
  max-width: none;
  object-fit: cover;
}

.front-concept__image--microscope {
  left: 0;
  top: 192px;
  width: 290px;
  height: 466px;
}

.front-concept__image--microscope img {
  left: -270px;
  top: 0;
  width: 829px;
  height: 466px;
  opacity: 0.8;
}

.front-concept__image--main {
  left: calc(var(--pc-frame-offset) + 274px);
  top: 256px;
  width: 720px;
  height: 466px;
}

.front-concept__image--main img {
  left: -37px;
  top: -24px;
  width: 794px;
  height: 514px;
  opacity: 0.9;
}

.front-concept__image--side {
  right: 0;
  top: 0;
  width: 302px;
  height: 466px;
}

.front-concept__image--side img {
  left: -227px;
  top: -54px;
  width: 779px;
  height: 520px;
  opacity: 0.8;
}

.front-concept__ornament {
  position: absolute;
  z-index: 2;
}

.front-concept__ornament::before,
.front-concept__ornament::after {
  content: "";
  position: absolute;
  display: block;
}

.front-concept__ornament--top {
  left: var(--pc-frame-offset);
  top: 14px;
  width: 50px;
  height: 50px;
}

.front-concept__ornament--top::before {
  left: 0;
  top: 0;
  width: 40px;
  height: 40px;
  background: #f0e2cb;
}

.front-concept__ornament--top::after {
  left: 30px;
  top: 30px;
  width: 20px;
  height: 20px;
  background: #e4d3b4;
}

.front-concept__ornament--bottom {
  left: calc(var(--pc-frame-offset) + 994px);
  top: 578px;
  width: 40px;
  height: 80px;
  background: #e0d1b8;
}

.front-feature {
  position: relative;
  height: 1312px;
  overflow: hidden;
  background:
    linear-gradient(#fff9ec 0 296px, #f8f3e8 296px 712px, #f5eede 712px 1128px, var(--color-bg) 1128px);
}

.front-feature__bg {
  position: absolute;
  overflow: hidden;
  pointer-events: none;
}

.front-feature__bg img {
  position: absolute;
  max-width: none;
  object-fit: cover;
  opacity: 0.24;
}

.front-feature__bg--first {
  left: 0;
  top: 296px;
  width: 640px;
  height: 416px;
}

.front-feature__bg--first img {
  left: -240px;
  top: -86px;
  width: 880px;
  height: 587px;
}

.front-feature__bg--second {
  right: 0;
  top: 713px;
  width: 640px;
  height: 415px;
}

.front-feature__bg--second img {
  left: 0;
  top: -6px;
  width: 640px;
  height: 427px;
}

.front-feature__heading {
  position: absolute;
  left: calc(var(--pc-frame-offset) + 1115px);
  top: 112px;
  width: 76px;
  height: 369px;
}

.front-feature__heading-text {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.front-feature__title {
  width: 48px;
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.1;
  writing-mode: vertical-rl;
}

.front-feature__en {
  width: 16px;
  height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 16px;
  line-height: 1;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}

.front-feature__line {
  position: absolute;
  left: 24px;
  top: 305px;
  width: 1px;
  height: 64px;
  background: var(--color-accent);
}

.front-feature-card {
  position: absolute;
  width: 1013px;
  height: 368px;
}

.front-feature-card--01 {
  left: calc(var(--pc-frame-offset) + 42px);
  top: 112px;
}

.front-feature-card--02 {
  left: calc(var(--pc-frame-offset) + 42px);
  top: 528px;
}

.front-feature-card--03 {
  left: calc(var(--pc-frame-offset) + 42px);
  top: 944px;
}

.front-feature-card::before {
  content: "";
  position: absolute;
  left: 24px;
  top: 0;
  width: 989px;
  height: 368px;
  background: #fff;
}

.front-feature-card::after {
  content: "";
  position: absolute;
  left: 68px;
  top: 352px;
  width: 1px;
  height: 32px;
  background: var(--color-accent);
}

.front-feature-card__number {
  position: absolute;
  left: 0;
  top: 40px;
  z-index: 2;
  width: 96px;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 8px;
  background: rgba(189, 170, 130, 0.8);
  color: #fff;
  font-family: var(--font-mincho);
  font-size: 56px;
  line-height: 1;
}

.front-feature-card__number::after {
  content: "";
  position: absolute;
  left: 56px;
  top: 84px;
  width: 24px;
  height: 24px;
  background: rgba(150, 135, 111, 0.8);
}

.front-feature-card--02 .front-feature-card__number {
  left: auto;
  right: 0;
}

.front-feature-card--02 .front-feature-card__number::after {
  left: 16px;
}

.front-feature-card__content {
  position: absolute;
  left: 136px;
  top: 40px;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 40px;
}

.front-feature-card--02 .front-feature-card__content {
  left: 40px;
}

.front-feature-card__text {
  width: 438px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.front-feature-card__text h3 {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.4;
}

.front-feature-card__text p {
  margin: 0;
  color: #565656;
  font-size: 16px;
  line-height: 2;
}

.front-feature-card__image {
  position: relative;
  width: 360px;
  height: 288px;
  margin: 0;
  overflow: hidden;
  background: var(--color-accent-dark);
}

.front-feature-card__image img {
  position: absolute;
  max-width: none;
  object-fit: cover;
}

.front-feature-card--01 .front-feature-card__image img {
  left: -50px;
  top: -14px;
  width: 485px;
  height: 323px;
  opacity: 0.9;
}

.front-feature-card--02 .front-feature-card__image img {
  left: -89px;
  top: -35px;
  width: 512px;
  height: 341px;
}

.front-feature-card--03 .front-feature-card__image img {
  left: -90px;
  top: -12px;
  width: 468px;
  height: 312px;
}

.front-feature-card .front-feature-card__content::after {
  content: "";
  position: absolute;
  right: -16px;
  top: -8px;
  width: 48px;
  height: 48px;
  background: rgba(224, 209, 184, 0.64);
}

.front-feature-card--02 .front-feature-card__content::after {
  right: -72px;
}

.front-feature__ornament {
  position: absolute;
  pointer-events: none;
}

.front-feature__ornament--middle {
  left: calc(var(--pc-frame-offset) + 1206px);
  top: 676px;
  width: 75px;
  height: 75px;
  background: rgba(189, 170, 130, 0.3);
}

.front-feature__ornament--bottom {
  left: calc(var(--pc-frame-offset) + 1140px);
  top: 1093px;
  width: 51px;
  height: 51px;
  background: rgba(150, 135, 111, 0.3);
}

.front-feature__ornament--bottom::after {
  content: "";
  position: absolute;
  left: 35px;
  top: 35px;
  width: 31px;
  height: 31px;
  background: rgba(189, 170, 130, 0.3);
}

.front-medical {
  position: relative;
  width: 1215px;
  height: 1085px;
  margin: 112px auto;
}

.front-medical__heading {
  position: absolute;
  left: 90px;
  top: 0;
  height: 105px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.front-medical__title {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.6;
  white-space: nowrap;
}

.front-medical__en {
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 16px;
  line-height: 1;
  padding-inline: 8px;
}

.front-medical__ornament {
  position: absolute;
  left: 1135px;
  top: 19px;
  width: 80px;
  height: 80px;
}

.front-medical__ornament::before,
.front-medical__ornament::after {
  content: "";
  position: absolute;
  display: block;
}

.front-medical__ornament::before {
  left: 16px;
  top: 0;
  width: 64px;
  height: 64px;
  background: #f0e2cb;
}

.front-medical__ornament::after {
  left: 0;
  top: 48px;
  width: 32px;
  height: 32px;
  background: #e4d3b4;
}

.front-medical__grid {
  position: absolute;
  left: 65px;
  top: 165px;
  width: 1150px;
  display: grid;
  grid-template-columns: repeat(4, 280px);
  grid-auto-rows: 300px;
  gap: 10px;
}

.front-medical-card {
  width: 280px;
  height: 300px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 15px;
  background: #fff;
}

.front-medical-card--general { order: 1; }
.front-medical-card--pediatric { order: 2; }
.front-medical-card--atopic { order: 3; }
.front-medical-card--acne { order: 4; }
.front-medical-card--hyperhidrosis { order: 5; }
.front-medical-card--tumors { order: 6; }
.front-medical-card--warts { order: 7; }
.front-medical-card--herpes { order: 8; }
.front-medical-card--psoriasis { order: 9; }
.front-medical-card--vaccine { order: 10; }

.front-medical-card__image {
  position: relative;
  width: 250px;
  height: 140px;
  margin: 0;
  overflow: hidden;
  background: var(--color-accent-dark);
  flex: 0 0 auto;
}

.front-medical-card__image img {
  position: absolute;
  max-width: none;
  object-fit: cover;
}

.front-medical-card--general .front-medical-card__image img,
.front-medical-card--atopic .front-medical-card__image img {
  left: -13px;
  top: -33px;
  width: 276px;
  height: 184px;
}

.front-medical-card--hyperhidrosis .front-medical-card__image img {
  left: -13px;
  top: -33px;
  width: 276px;
  height: 184px;
}

.front-medical-card--psoriasis .front-medical-card__image img,
.front-medical-card--tumors .front-medical-card__image img,
.front-medical-card--vaccine .front-medical-card__image img {
  left: -13px;
  top: -22px;
  width: 276px;
  height: 184px;
}

.front-medical-card--pediatric .front-medical-card__image img {
  left: -13px;
  top: -6px;
  width: 276px;
  height: 184px;
}

.front-medical-card--warts .front-medical-card__image img {
  left: -45px;
  top: -28px;
  width: 295px;
  height: 196px;
}

.front-medical-card--acne .front-medical-card__image img {
  left: -13px;
  top: -11px;
  width: 276px;
  height: 184px;
}

.front-medical-card--herpes .front-medical-card__image img {
  left: 0;
  top: -2px;
  width: 250px;
  height: 167px;
}

.front-medical-card__body {
  position: relative;
  width: 250px;
  min-height: 114.667px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding-inline: 10px;
}

.front-medical-card__body h3 {
  width: 230px;
  margin: 0 0 8px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}

.front-medical-card__body span {
  width: 230px;
  margin-bottom: 8px;
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 10px;
  line-height: 1.4;
}

.front-medical-card__body p {
  width: 230px;
  margin: 0;
  color: #565656;
  font-size: 14px;
  line-height: 1.4;
}

.front-medical-card__body a {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 20px;
  height: 17px;
  background: url("../images/figma/icon-pill-arrow-filled.svg") center / contain no-repeat;
}

.front-medical-card__body a::after {
  content: none;
}

.front-greet {
  position: relative;
  width: 1393px;
  height: 712px;
  margin: 112px auto 0; /* 左右autoで中央寄せ（クライアントFB：院長ご挨拶が左寄せ） */
  overflow: visible;
}

.front-greet__text {
  position: absolute;
  left: 260px;
  top: 24px;
  width: 485px;
  color: #565656;
  font-size: 16px;
  line-height: 2;
}

.front-greet__text p {
  margin: 0;
}

.front-greet__heading {
  position: absolute;
  left: 1194px;
  top: 0;
  width: 76px;
  height: 369px;
}

.front-greet__title {
  width: 48px;
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.1;
  writing-mode: vertical-rl;
}

.front-greet__en {
  position: absolute;
  left: 60px;
  top: 0;
  width: 16px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 16px;
  line-height: 1;
  writing-mode: vertical-rl;
}

.front-greet__line {
  position: absolute;
  left: 24px;
  top: 305px;
  width: 1px;
  height: 64px;
  background: var(--color-accent);
}

.front-greet__image {
  position: absolute;
  margin: 0;
  overflow: hidden;
  background: #fff;
}

.front-greet__image img {
  position: absolute;
  max-width: none;
  object-fit: cover;
}

.front-greet__image--treatment {
  left: 0;
  top: 0;
  width: 200px;
  height: 462px;
}

.front-greet__image--treatment img {
  left: -213px;
  top: 0;
  width: 693px;
  height: 462px;
  opacity: 0.9;
}

.front-greet__image--standing {
  left: 805px;
  top: 0;
  width: 329px;
  height: 360px;
}

.front-greet__image--standing img {
  left: -247px;
  top: -26px;
  width: 760px;
  height: 507px;
}

.front-greet__image--consultation {
  left: 290px;
  top: 392px;
  width: 485px;
  height: 320px;
}

.front-greet__image--consultation img {
  left: -93px;
  top: -31px;
  width: 672px;
  height: 448px;
  opacity: 0.9;
}

.front-greet__signature {
  position: absolute;
  left: 1055px;
  top: 376px;
  width: 55px;
  height: 162px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  writing-mode: vertical-rl;
}

.front-greet__signature p {
  margin: 0;
}

.front-greet__clinic {
  position: absolute;
  right: 0;
  top: 0;
  font-size: 16px;
  line-height: 1.1;
}

.front-greet__doctor {
  position: absolute;
  left: 0;
  top: 32px;
  display: flex;
  gap: 10px;
  font-size: 20px;
  line-height: 1.1;
}

.front-greet__doctor strong {
  font-weight: 400;
}

.front-greet__ornament {
  position: absolute;
  pointer-events: none;
}

.front-greet__ornament--top {
  left: 1327px;
  top: 63px;
  width: 66px;
  height: 66px;
}

.front-greet__ornament--top::before,
.front-greet__ornament--top::after {
  content: "";
  position: absolute;
}

.front-greet__ornament--top::before {
  left: 15px;
  top: 0;
  width: 51px;
  height: 51px;
  background: rgba(150, 135, 111, 0.3);
}

.front-greet__ornament--top::after {
  left: 0;
  top: 35px;
  width: 31px;
  height: 31px;
  background: rgba(189, 170, 130, 0.3);
}

.front-greet__ornament--left {
  left: 246px;
  top: 510px;
  width: 64px;
  height: 64px;
  background: rgba(189, 170, 130, 0.3);
}

.front-greet__ornament--bottom {
  left: 871px;
  top: 568px;
  width: 48px;
  height: 48px;
  background: rgba(189, 170, 130, 0.3);
}

.front-greet__pagetop {
  position: absolute;
  left: 1222px;
  top: 568px;
  width: 48px;
  height: 48px;
  background: url("../images/figma/icon-page-top-arrow.svg") center / contain no-repeat;
}

.front-greet__pagetop::before {
  content: none;
}

.site-footer {
  position: relative;
  height: 469px;
  background: linear-gradient(90deg, #f5eee3 0 467px, #efe9df 467px calc(100% - 80px), #e7e0ce calc(100% - 80px));
  color: #565656;
}

.site-footer__info {
  position: absolute;
  left: var(--pc-frame-offset);
  top: 200px;
  width: 306px;
  height: 189px;
}

.site-footer__brand {
  width: 276.615px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.site-footer__tagline {
  margin: 0;
  color: var(--color-accent);
  font-size: 13px;
  line-height: 1;
}

.site-footer__logo-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.site-footer__logo-mark--area {
  width: 87.191px;
  height: 28px;
}

.site-footer__logo-mark--clinic {
  width: 177.424px;
  height: 28px;
}

.site-footer__address,
.site-footer__tel {
  margin: 0;
  position: absolute;
  left: 0;
  font-size: 14px;
  line-height: 1.4;
  white-space: nowrap;
}

.site-footer__address {
  top: 85px;
}

.site-footer__tel {
  top: 117px;
}

.site-footer__sitemap {
  position: absolute;
  left: 0;
  top: 169px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #7d7d7d;
  font-size: 14px;
  line-height: 1;
  text-decoration: underline;
}

.site-footer__sitemap::after {
  content: "";
  width: 20px;
  height: 17px;
  background: url("../images/figma/icon-pill-arrow-filled.svg") center / contain no-repeat;
}

.site-footer__nav {
  position: absolute;
  left: calc(var(--pc-frame-offset) + 615px);
  top: 231px;
  display: flex;
  align-items: center;
  gap: 24px;
  color: var(--color-accent-dark);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.site-footer__copyright {
  position: absolute;
  left: calc(var(--pc-frame-offset) + 1015px);
  top: 372px;
  margin: 0;
  color: #7d7d7d;
  font-size: 14px;
  line-height: 1;
  white-space: nowrap;
}

.h1-page-title {
  position: relative;
  min-height: 368px;
  padding: 132px 0 0 calc(var(--pc-frame-offset) + 90px);
  background-color: #5b4b33;
  background-image:
    linear-gradient(rgba(91, 75, 51, 0.6), rgba(91, 75, 51, 0.6)),
    url("../images/figma/template-h1-bg.jpg");
  background-position:
    center,
    center -220px;
  background-repeat: no-repeat;
  background-size:
    auto,
    max(1440px, 100vw) auto;
  overflow: hidden;
}

.h1-page-title::before {
  content: none;
}

.h1-page-title h1,
.h1-page-title__en {
  position: relative;
}

.h1-page-title h1 {
  margin: 0;
  color: #fff;
  font-family: var(--font-mincho);
  font-size: 40px;
  font-weight: 400;
  letter-spacing: 1.6px;
  line-height: 1.6;
}

.h1-page-title__en {
  margin-top: 24px;
  padding-left: 8px;
  color: #fff;
  font-family: var(--font-en);
  font-size: 16px;
  letter-spacing: 0.64px;
  line-height: 1;
  text-transform: uppercase;
}

.h1-page-title__en,
.h2-main-title__en {
  font-weight: 400;
}

.h2-main-title,
.h2-sub-title,
.h2-half-col,
.h3-main-title,
.h3-sub-text,
.h3-list-title,
.h3-number-title,
.h2-image-list-title,
.h3-image-gridlist-title,
.h2-qa-title,
.doctor-message-h2,
.doctor-image-greeting-h2,
.time-list-main,
.access-list-main,
.text-image-include,
.text-no-image-include,
.text-image-no-box,
.text-area-include {
  width: min(1100px, calc(100% - var(--container-gutter) * 2));
  margin: 0 auto;
  padding: 56px 0;
  color: #565656;
}

.h2-main-title {
  display: grid;
  grid-template-columns: 1fr;
  gap: 56px;
  min-height: 669px;
  border-bottom: 1px solid #e0d1b8;
}

.h2-main-title__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 64px;
}

.h2-main-title__title {
  flex: 0 0 auto;
}

.h2-main-title__bars {
  display: flex;
  width: 72px;
  height: 8px;
  margin-bottom: 24px;
}

.h2-main-title__bars::before,
.h2-main-title__bars::after {
  content: "";
  width: 24px;
  height: 8px;
  background: #e4d3b4;
}

.h2-main-title__bars {
  background: linear-gradient(90deg, transparent 0 24px, #f0e2cb 24px 48px, transparent 48px);
}

.template-heading {
  display: block;
}

.template-heading__bars {
  display: flex;
  width: 72px;
  height: 8px;
  background: linear-gradient(90deg, transparent 0 24px, #f0e2cb 24px 48px, transparent 48px);
}

.template-heading__bars::before,
.template-heading__bars::after {
  content: "";
  width: 24px;
  height: 8px;
  background: #e4d3b4;
}

.template-heading--h2 {
  height: 124px;
}

.template-heading--h2 h2 {
  margin: 24px 0 12px;
}

.h2-sub-title .template-heading__en,
.template-heading__en {
  margin: 0;
  padding-left: 8px;
  color: #bdaa82;
  font-family: var(--font-en);
  font-size: 16px;
  font-weight: 400;
  line-height: 16px;
}

.template-heading__mark {
  position: relative;
  display: block;
  width: 22px;
  height: 20px;
}

.template-heading__mark::before,
.template-heading__mark::after {
  content: "";
  position: absolute;
  display: block;
}

.template-heading__mark::before {
  left: 0;
  top: 0;
  width: 16px;
  height: 16px;
  background: #e4d3b4;
}

.template-heading__mark::after {
  left: 10px;
  top: 8px;
  width: 12px;
  height: 12px;
  background: #f0e2cb;
}

.template-heading--h3 {
  height: 75px;
}

.template-heading--h3 h3 {
  margin: 4px 0 0;
}

.template-heading--h3-en {
  height: 101px;
}

.template-heading--h3-en h3 {
  margin: 4px 0 12px;
}

.template-heading--h3-two-line {
  width: 525px;
  min-height: 148px;
}

.template-heading--h3-two-line h3 {
  margin: 4px 0 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 51px;
}

.h2-half-col .template-heading__en--h3,
.template-heading__en--h3 {
  font-size: 14px;
  line-height: 14px;
}

.h2-main-title h2,
.h2-sub-title h2,
.h2-half-col h2,
.h2-image-list-title h2,
.h3-number-title h2,
.h2-qa-title h2,
.doctor-message-h2 h2,
.doctor-image-greeting-h2 h2 {
  margin: 0 0 32px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 40px;
  font-weight: 400;
  line-height: 1.6;
}

.h2-main-title h2 {
  margin-bottom: 12px;
}

.h2-sub-title .template-heading--h2 {
  height: 124px;
}

.h2-sub-title .template-heading--h2 h2 {
  margin: 24px 0 12px;
}

.h2-sub-title {
  display: flex;
  flex-direction: column;
  gap: 48px;
  min-height: 444px;
  border-bottom: 1px solid #e0d1b8;
}

.h3-main-title h3,
.h3-sub-text h3,
.h3-list-title h3,
.h3-image-title h3,
.h2-image-list-title h3,
.h3-image-gridlist-title h3,
.time-list-main h3,
.access-list-main h3,
.text-image-title-a,
.text-no-image-title-a,
.text-image-no-box-a,
.text-area-title-a {
  margin: 0 0 24px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 1.4;
}

.h2-main-title p,
.h2-sub-title p,
.h2-half-col p,
.h3-main-title p,
.h3-sub-text p,
.h3-list-title p,
.h3-number-title p,
.h3-image-title p,
.h2-image-list-title p,
.h3-image-gridlist-title p,
.doctor-message-h2 p,
.doctor-image-greeting-h2 p,
.text-image-include p,
.text-no-image-include p,
.text-image-no-box p,
.text-area-include p {
  margin: 0;
  font-size: 16px;
  line-height: 2;
}

.h2-main-title__header > p {
  flex: 0 0 623px;
  max-width: 623px;
}

.h2-main-title .h2-main-title__en {
  margin: 0;
  padding-left: 8px;
  color: #bdaa82;
  font-family: var(--font-en);
  font-size: 16px;
  line-height: 1;
}

.h2-main-title__image,
.h2-half-col__image,
.h3-image-title__image,
.access-list-main__map,
.text-image-include__image,
.text-image-no-box__image {
  min-height: 260px;
  display: grid;
  place-items: center;
  background: #f5eee3;
  color: var(--color-accent);
  font-family: var(--font-en);
  font-size: 40px;
}

.h2-main-title__image {
  min-height: 341px;
  width: 1099px;
  max-width: 100%;
  background: #d9d9d9;
  color: #fff;
  font-size: 32px;
  line-height: 2;
}

.h2-half-col,
.h2-image-list-title,
.text-image-include,
.text-image-no-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: start;
}

.h2-half-col {
  grid-template-columns: 525px 525px;
  gap: 50px;
  min-height: 453px;
  border-bottom: 1px solid #e0d1b8;
}

.h2-half-col__text {
  display: flex;
  flex-direction: column;
  gap: 48px;
  width: 525px;
}

.h2-half-col .template-heading--h3-en h3 {
  margin: 4px 0 12px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 51px;
}

.h2-half-col__text > p {
  width: 525px;
  min-height: 192px;
}

.h2-half-col__image {
  width: 525px;
  min-height: 341px;
  background: #d9d9d9;
  color: #fff;
  font-size: 32px;
  line-height: 2;
}

.h3-main-title {
  min-height: 421px;
  display: flex;
  flex-direction: column;
  gap: 48px;
  border-bottom: 1px solid #e0d1b8;
}

.h3-main-title .template-heading--h3-en h3 {
  margin: 4px 0 12px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 51px;
}

.h3-main-title .template-heading__en--h3 {
  font-size: 14px;
  line-height: 14px;
}

.h3-main-title > p {
  min-height: 160px;
}

.h3-sub-text {
  min-height: 304px;
  display: grid;
  grid-template-columns: 525px 1fr;
  gap: 48px;
  border-bottom: 1px solid #e0d1b8;
}

.h3-sub-text > p {
  min-width: 0;
  min-height: 192px;
}

.h2-image-list-title {
  min-height: 1468px;
  display: flex;
  flex-direction: column;
  gap: 48px;
  border-bottom: 1px solid #e0d1b8;
}

.h2-image-list-title .template-heading--h2 h2 {
  margin: 24px 0 12px;
}

.h2-image-list-title > p {
  min-height: 64px;
}

.h3-image-title__items {
  width: 100%;
  display: flex;
  flex-direction: column;
}

.h3-image-title__items article {
  height: 268px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 675px 375px;
  gap: 50px;
  align-items: start;
  padding: 24px 0;
  border-top: 1px solid var(--color-accent-dark);
}

.h3-image-title__items article:last-child {
  border-bottom: 1px solid var(--color-accent-dark);
}

.h3-image-title__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

.h3-image-title__heading {
  display: flex;
  align-items: center;
  gap: 16px;
}

.h3-image-title__heading span {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  padding-bottom: 4px;
  background: rgba(189, 170, 130, 0.8);
  color: #fff;
  font-family: var(--font-mincho);
  font-size: 28px;
  line-height: 1;
}

.h3-image-title__heading span::after {
  content: "";
  position: absolute;
  left: 38px;
  top: 42px;
  width: 12px;
  height: 12px;
  background: rgba(150, 135, 111, 0.8);
}

.h3-image-title__heading h3 {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 28px;
  font-weight: 400;
  line-height: 44.8px;
}

.h3-image-title__text > p {
  width: 610px;
  min-height: 144px;
  padding-left: 65px;
  line-height: 28.8px;
}

.h3-image-title__image {
  width: 375px;
  min-height: 220px;
  display: grid;
  place-items: center;
  background: #d9d9d9;
  color: #fff;
  font-family: var(--font-en);
  font-size: 32px;
  line-height: 2;
}

.h3-image-gridlist-title {
  min-height: 1181px;
  display: flex;
  flex-direction: column;
  gap: 48px;
  border-bottom: 1px solid #e0d1b8;
}

.h3-image-gridlist-title .template-heading--h3 h3 {
  margin: 4px 0 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 51.2px;
}

.h3-image-gridlist-title > p {
  min-height: 64px;
}

.h3-image-gridlist-title__grid {
  width: 100%;
  min-height: 833.545px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  padding: 32px;
  background: #f9f8f4;
}

.h3-image-gridlist-title__grid article {
  min-height: 368.773px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 16px;
  background: #fff;
}

.h3-image-gridlist-title__image {
  width: 100%;
  height: 162.554px;
  flex: 0 0 162.554px;
  background: #999;
}

.h3-image-gridlist-title__body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 9.289px;
  width: 290.276px;
  padding: 0 11.611px;
}

.h4-image-gridlist-title {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
}

.h3-image-gridlist-title .h4-image-gridlist-title__en {
  margin: 0;
  color: #bdaa82;
  font-family: var(--font-en);
  font-size: 12px;
  line-height: 1.4;
  white-space: nowrap;
}

.h3-image-gridlist-title__body > p:not(.h4-image-gridlist-title__en) {
  margin: 0;
  font-size: 16px;
  line-height: 1.4;
}

.h3-image-gridlist-title__arrow {
  align-self: flex-end;
  width: 20px;
  height: 17px;
  background: url("../images/figma/icon-pill-arrow-filled.svg") center / contain no-repeat;
}

.doctor-message-h2 {
  min-height: 444px;
  display: flex;
  flex-direction: column;
  gap: 48px;
}

.doctor-message-h2 .template-heading--h2 h2,
.doctor-image-greeting-h2 .template-heading--h2 h2 {
  margin: 24px 0 12px;
}

.doctor-message-h2 > p {
  min-height: 160px;
}

.doctor-image-greeting-h2 {
  min-height: 604px;
  display: grid;
  grid-template-columns: 525px 525px;
  gap: 50px;
  align-items: start;
}

.doctor-image-greeting-h2__text {
  display: flex;
  flex-direction: column;
  gap: 48px;
  width: 525px;
}

.doctor-image-greeting-h2__text > p {
  width: 525px;
  min-height: 320px;
}

.doctor-image-greeting-h2__image {
  width: 525px;
  height: 492px;
  display: grid;
  place-items: center;
  background: #d9d9d9;
  color: #fff;
  font-family: var(--font-en);
  font-size: 32px;
  line-height: 2;
}

.text-image-include {
  min-height: 405px;
  display: grid;
  grid-template-columns: 485px 485px;
  gap: 50px;
  padding: 56px 40px;
  background: #f9f8f4;
}

.text-image-include__body,
.text-no-image-include__body,
.text-image-no-box__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.text-image-title-a,
.text-no-image-title-a,
.text-image-no-box-a,
.text-area-title-a {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 28px;
  font-weight: 400;
  line-height: 44.8px;
}

.text-image-include__body > p {
  width: 485px;
  min-height: 224px;
}

.text-image-include__image {
  width: 485px;
  min-height: 293px;
  display: grid;
  place-items: center;
  background: #d9d9d9;
  color: #fff;
  font-family: var(--font-en);
  font-size: 32px;
  line-height: 2;
}

.text-no-image-include {
  min-height: 309px;
  padding: 56px 40px;
  background: #f9f8f4;
}

.text-no-image-include__body {
  width: 1020px;
}

.text-no-image-include__body > p {
  width: 1020px;
  min-height: 128px;
}

.text-image-no-box {
  min-height: 261px;
  display: grid;
  grid-template-columns: 525px 525px;
  gap: 50px;
  padding: 0;
}

.text-image-no-box__body {
  width: 525px;
}

.text-image-no-box__body > p {
  width: 525px;
  min-height: 192px;
}

.text-image-no-box__image {
  width: 525px;
  min-height: 261px;
  display: grid;
  place-items: center;
  background: #d9d9d9;
  color: #fff;
  font-family: var(--font-en);
  font-size: 32px;
  line-height: 2;
}

.text-area-include {
  min-height: 165px;
  padding: 0;
}

.text-area-include > p {
  width: 1100px;
  min-height: 96px;
  margin-top: 24px;
}

.profile-two-col,
.h2-qa-title,
.merit-demerit-list,
.price-list-main,
.time-access-half {
  width: min(1100px, calc(100% - var(--container-gutter) * 2));
  margin: 0 auto;
  color: #565656;
}

.profile-two-col {
  min-height: 252px;
  display: grid;
  grid-template-columns: 525px 525px;
  gap: 50px;
}

.profile-two-col__item {
  height: 196px;
  padding: 0 0 24px;
  border-bottom: 1px solid #bdaa82;
}

.profile-two-col__item header {
  height: 32px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 20px;
  border-bottom: 1px solid #bdaa82;
}

.profile-two-col__item h3 {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
}

.profile-two-col__item header p {
  margin: 5px 0 0;
  color: #bdaa82;
  font-family: var(--font-en);
  font-size: 14px;
  line-height: 1;
}

.profile-two-col__item > p {
  margin: 0;
  font-size: 16px;
  line-height: 28.8px;
}

.h2-qa-title {
  min-height: 276px;
  padding: 0;
}

.q-list {
  display: grid;
  gap: 32px;
}

.q-list details {
  height: 52px;
  padding: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #96876f;
}

.q-list details:first-child {
  height: 108px;
}

.q-list details[open] {
  height: 108px;
}

.q-list summary {
  position: relative;
  height: 52px;
  display: flex;
  align-items: center;
  gap: 42px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 20px;
  line-height: 1;
  list-style: none;
  border-bottom: 1px solid #96876f;
}

.q-list summary::-webkit-details-marker {
  display: none;
}

.q-list summary::before {
  content: "Q.";
  width: 34px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 28px;
  line-height: 1;
}

.q-list summary::after {
  content: "+";
  position: absolute;
  right: 8px;
  top: 11px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 300;
  line-height: 1;
}

.q-list details[open] summary::after {
  content: "×";
  top: 9px;
  font-size: 30px;
}

.q-list details p {
  height: 40px;
  display: flex;
  align-items: center;
  gap: 42px;
  margin: 16px 0 0;
  color: #565656;
  font-size: 18px;
  line-height: 1;
}

.q-list details p::before {
  content: "A.";
  width: 34px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 28px;
  line-height: 1;
}

.merit-demerit-list {
  min-height: 312px;
  display: grid;
  grid-template-columns: 525px 525px;
  gap: 50px;
}

.merit-demerit-list__card {
  height: 312px;
  padding: 16px;
  background: #f9f8f4;
}

.merit-demerit-list__card--demerit {
  background: #f9f9f9;
}

.merit-demerit-list__card > div {
  height: 280px;
  padding: 24px;
  background: #fff;
}

.merit-demerit-list__card header {
  height: 36px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 32px;
  border-bottom: 1px solid #bdaa82;
}

.merit-demerit-list__card h3 {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
}

.merit-demerit-list__card header p {
  margin: 4px 0 0;
  color: #bdaa82;
  font-family: var(--font-en);
  font-size: 14px;
  line-height: 1;
}

.merit-demerit-list__card ul {
  display: grid;
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.merit-demerit-list__card li {
  position: relative;
  min-height: 40px;
  padding-left: 50px;
  font-size: 16px;
  font-weight: 500;
  line-height: 25.6px;
}

.merit-demerit-list__card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 2px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #96876f;
  color: #fff;
  font-size: 18px;
  line-height: 1;
}

.price-list-main {
  min-height: 712px;
  padding: 56px 0;
}

.price-list-main .template-heading--h2 h2 {
  margin: 24px 0 12px;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 40px;
  font-weight: 400;
  line-height: 64px;
}

.price-list-main table {
  width: 1100px;
  margin-top: 48px;
  border-collapse: collapse;
  color: #96876f;
  font-family: var(--font-mincho);
}

.price-list-main th,
.price-list-main td {
  border: 1px solid #bdaa82;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.6;
}

.price-list-main thead th {
  height: 68px;
  padding: 0 24px;
  text-align: left;
  font-size: 22px;
}

.price-list-main thead th:nth-child(1) {
  width: 429px;
}

.price-list-main thead th:nth-child(2) {
  width: 240px;
  text-align: right;
}

.price-list-main tbody th,
.price-list-main tbody td {
  height: 90px;
  padding: 0 24px;
}

.price-list-main tbody th {
  text-align: left;
}

.price-list-main tbody td:nth-child(2) {
  text-align: right;
}

.price-list-main tbody td:nth-child(3) {
  color: #565656;
  font-family: var(--font-base);
  font-size: 16px;
  line-height: 1.6;
}

.time-access-half {
  min-height: 434px;
  display: grid;
  grid-template-columns: 525px 525px;
  gap: 50px;
  padding: 56px 0;
}

.time-access-half__panel {
  width: 525px;
  background: #fff;
}

.template-heading--h3-inline {
  height: 38px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.template-heading--h3-inline h3 {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
}

.time-access-half table,
.time-list-main table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
}

.time-access-half table {
  margin-top: 16px;
  height: 182px;
}

.time-access-half th,
.time-access-half td,
.time-list-main th,
.time-list-main td {
  border-top: 1px solid #96876f;
  color: #565656;
  font-size: 16px;
  font-weight: 400;
}

.time-access-half td,
.time-list-main td {
  color: #96876f;
}

.time-access-half tbody tr:last-child th,
.time-access-half tbody tr:last-child td,
.time-list-main tbody tr:last-child th,
.time-list-main tbody tr:last-child td {
  border-bottom: 1px solid #96876f;
}

.time-access-half__panel > p {
  margin: 24px 0 0;
  font-size: 16px;
  line-height: 1.6;
}

.time-access-half__map {
  display: block;
  width: 525px;
  height: 230px;
  margin-top: 16px;
  border: 0;
}

.time-access-half__panel a {
  float: right;
  color: #7d7d7d;
}

.time-list-main {
  position: relative;
  min-height: 457px;
  padding: 24px;
  background: var(--color-bg);
}

.time-list-main::before {
  content: "";
  position: absolute;
  inset: 24px;
  background: #fff;
}

.time-list-main__inner {
  position: relative;
  z-index: 1;
}

.time-list-main__inner > .template-heading,
.time-list-main__inner > table,
.time-list-main__inner > p {
  width: 1004px;
  margin-left: 24px;
}

.time-list-main .template-heading--h3 {
  margin-top: 24px;
}

.time-list-main table {
  height: 204px;
  margin-top: 32px;
}

.time-list-main p {
  margin-top: 24px;
  font-size: 16px;
  line-height: 1.6;
}

.access-list-main {
  min-height: 649px;
  padding: 56px 0;
}

.access-list-main .template-heading--h3 h3 {
  margin: 4px 0 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 32px;
  font-weight: 400;
  line-height: 51.2px;
}

.access-list-main__map {
  display: block;
  width: 1100px;
  height: 400px;
  min-height: 0;
  margin: 24px 0 0;
  border: 0;
  background: none;
}

.access-list-main > p {
  display: inline-block;
  margin: 16px 0 0;
  font-size: 16px;
  line-height: 1.4;
}

.access-list-main .nakanoshima-button-b {
  float: right;
  margin-top: 16px;
}

.nakanoshima-link-pair {
  width: 415px;
  height: 44px;
  display: flex;
  align-items: center;
  gap: 32px;
  margin: 56px auto 168px;
  padding: 0;
  overflow: hidden;
  color: #565656;
}

.nakanoshima-button-primary,
.nakanoshima-button-secondary {
  position: relative;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  white-space: nowrap;
}

.nakanoshima-button-primary {
  width: 212px;
  height: 44px;
  padding: 0 52px 0 16px;
  background: #c1aa76;
  color: #fff;
  font-size: 16px;
  line-height: 1;
}

.nakanoshima-button-primary::after,
.nakanoshima-button-secondary::after {
  content: "";
  position: absolute;
  width: 24px;
  height: 20px;
}

.nakanoshima-button-primary::after {
  right: 21px;
  top: 12px;
  background: url("../images/figma/icon-arrow-button-primary.svg") center / contain no-repeat;
}

.nakanoshima-button-secondary {
  width: 171px;
  height: 20px;
  color: #7d7d7d;
  font-size: 15px;
  line-height: 1;
}

.nakanoshima-button-secondary::after {
  right: 2px;
  top: 0;
  background: url("../images/figma/icon-arrow-button-secondary.svg") center / contain no-repeat;
}

.h3-list-title dl {
  margin: 48px 0 0;
}

.h3-list-title dl div {
  display: grid;
  grid-template-columns: 160px 916px;
  gap: 24px;
  min-height: 136px;
  padding: 23px 0;
  border-bottom: 0.5px solid var(--color-accent-dark);
}

.h3-list-title dl div:first-child {
  border-top: 0.5px solid var(--color-accent-dark);
}

.h3-list-title dt {
  display: grid;
  place-items: start center;
  padding: 0 8px;
  color: var(--color-accent-dark);
  font-weight: 500;
  line-height: 1.4;
}

.h3-list-title dd {
  margin: 0;
  padding: 0 16px;
  line-height: 22px;
}

.h3-list-title {
  display: flex;
  flex-direction: column;
  gap: 48px;
  min-height: 755px;
}

.h3-list-title > p {
  min-height: 64px;
}

.h3-list-title dl {
  margin: 0;
}

.h3-number-title__items {
  display: grid;
  gap: 0;
  margin-top: 0;
}

.h3-number-title__items article {
  min-height: 205px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px 0;
  border-top: 0.5px solid var(--color-accent-dark);
  border-bottom: 0.5px solid var(--color-accent-dark);
}

.h3-number-title__items article > div {
  display: flex;
  align-items: center;
  gap: 16px;
}

.h3-number-title__items span {
  position: relative;
  display: inline-grid;
  place-items: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  background: rgba(189, 170, 130, 0.8);
  color: #fff;
  font-family: var(--font-mincho);
  font-size: 28px;
  line-height: 1;
  padding-bottom: 4px;
}

.h3-number-title__items span::after {
  content: "";
  position: absolute;
  left: 38px;
  top: 42px;
  width: 12px;
  height: 12px;
  background: rgba(150, 135, 111, 0.8);
}

.h3-number-title__items h3 {
  margin: 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.6;
}

.h3-number-title__items p {
  margin: 0;
  padding: 0 65px;
  font-size: 16px;
  line-height: 1.8;
}

.h3-number-title {
  display: flex;
  flex-direction: column;
  gap: 48px;
  min-height: 1216px;
}

.h3-number-title > p {
  min-height: 64px;
}

.nakanoshima-button-b {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  color: #7d7d7d;
  text-decoration: underline;
}

.nakanoshima-button-b::after {
  content: "";
  width: 20px;
  height: 17px;
  background: url("../images/figma/icon-pill-arrow-filled.svg") center / contain no-repeat;
}

.nakanoshima-link-pair .nakanoshima-button-b {
  gap: 0;
  margin-top: 0;
  text-decoration: none;
}

.nakanoshima-link-pair .nakanoshima-button-b::after {
  position: absolute;
  width: 24px;
  height: 20px;
  background: url("../images/figma/icon-arrow-button-secondary.svg") center / contain no-repeat;
}

@media (max-width: 1199px) {
  :root {
    --sp-content-max: 500px;
    --sp-content-gutter: 16px;
    --sp-content-width: min(calc(100% - var(--sp-content-gutter) * 2), var(--sp-content-max));
    --sp-content-left: max(var(--sp-content-gutter), calc((100% - var(--sp-content-max)) / 2));
    --sp-content-inner: min(100%, var(--sp-content-max));
    --sp-content-inner-left: max(0px, calc((100% - var(--sp-content-max)) / 2));
    --sp-artboard-width: min(100%, 390px);
    --sp-artboard-left: max(0px, calc((100% - 390px) / 2));
  }

  .site-header {
    position: relative;
    z-index: 20;
    height: auto;
    background: #fff;
    pointer-events: auto;
  }

  .site-header__inner {
    position: relative;
    height: 66px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 13px 16px;
  }

  .site-header__brand {
    position: static;
    width: 180px;
    display: flex;
    gap: 7.809px;
  }

  .site-header__tagline {
    font-size: 8.459px;
  }

  .site-header__logo-row {
    gap: 7.809px;
  }

  .site-header__logo-mark--area {
    width: 56.737px;
    height: 18.22px;
  }

  .site-header__logo-mark--clinic {
    width: 115.454px;
    height: 18.22px;
  }

  .site-header__nav {
    display: none;
  }

  .site-header__tel {
    position: static;
    margin: 0 0 0 auto;
    width: 74.333px;
    height: 40px;
    border-radius: 1000px;
    padding: 0 10px 0 8px;
    gap: 6px;
  }

  .site-header__tel-icon {
    width: 21.334px;
    height: 16.496px;
    margin: 0;
  }

  .site-header__tel-number {
    display: none;
  }

  .site-header__tel-label {
    display: block;
    color: #fff;
    font-family: var(--font-en);
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
  }

  .site-header__menu-button {
    width: 56px;
    height: 40px;
    margin-left: 12px;
    border: 0;
    border-radius: 1000px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: var(--color-menu);
  }

  .site-header__menu-icon {
    width: 20px;
    height: 12px;
  }

  .site-header__sp-menu {
    position: absolute;
    top: 66px;
    left: 0;
    right: 0;
    display: grid;
    gap: 0;
    padding: 24px 16px;
    background: rgba(255, 255, 255, 0.96);
  }

  .site-header__sp-menu[hidden] {
    display: none;
  }

  .site-header__sp-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 64px;
    padding: 0 24px;
    color: var(--color-text);
    border-bottom: 1px solid rgba(123, 106, 88, 0.14);
    font-family: var(--font-mincho);
    font-size: 20px;
  }

  .site-header__sp-link small {
    color: var(--color-accent);
    font-family: var(--font-en);
    font-size: 12px;
    font-weight: 300;
  }

  .front-hero {
    height: 560px;
  }

  .front-hero__slider {
    left: -213px;
    top: 0;
    width: max(996px, 100%);
    height: 560px;
  }

  .front-hero__content {
    width: min(calc(100% - 32px), var(--sp-content-max));
    margin-left: var(--sp-content-left);
    padding-top: 186px;
  }

  .front-hero__station {
    min-height: 28px;
    margin-bottom: 16px;
    font-size: 20px;
    letter-spacing: 0;
  }

  .front-hero__title {
    font-size: 46px;
    line-height: 1.6;
    letter-spacing: 0;
  }

  .front-hero__title {
    display: block;
  }

  .front-hero__title span {
    display: block;
  }

  .front-hero__meta {
    gap: 8px;
    margin-top: 24px;
  }

  .front-hero__clinic {
    min-height: 15px;
    padding: 0 12px 0 0;
    font-size: 15px;
    letter-spacing: 0;
  }

  .front-hero__phone {
    gap: 12px;
    padding-left: 6px;
    font-size: 20px;
  }

  .front-hero__phone img {
    width: 23.279px;
    height: 18px;
  }

  .front-info {
    width: var(--sp-content-width);
    height: 862px;
    margin: 48px auto 56px;
    display: grid;
    gap: 40px;
  }

  .front-info__card {
    width: 100%;
    height: auto;
    display: block;
    padding: 24px;
  }

  .front-info__card--news {
    min-height: 444px;
  }

  .front-info__card--hours {
    min-height: 362px;
  }

  .front-info__heading {
    width: 128px;
    height: 58px;
    display: block;
    margin-bottom: 32px;
  }

  .front-info__heading-en {
    width: auto;
    writing-mode: horizontal-tb;
    transform: none;
  }

  .front-info__heading-ja {
    width: auto;
    margin-top: 8px;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0;
    writing-mode: horizontal-tb;
  }

  .front-news-item p {
    font-size: 15px;
  }

  .front-hours-table {
    width: 100%;
    font-size: 14px;
  }

  .front-hours-table th:first-child {
    width: 48px;
    font-size: 15px;
    white-space: normal;
  }

  .front-hours-table td {
    width: 37px;
  }

  .front-hours-table th,
  .front-hours-table td {
    height: 52px;
  }

  .front-hours-table thead th {
    height: 40px;
    white-space: nowrap;
    text-wrap: nowrap;
    word-break: keep-all;
  }

  .front-hours-note {
    font-size: 13px;
    line-height: 16.5px;
  }

  .front-access {
    width: var(--sp-content-width);
    min-height: 794px;
    margin: 56px auto 80px;
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 24px;
  }

  .front-access::before {
    inset: 0 0 17px;
  }

  .front-access__heading {
    width: auto;
    height: 58px;
    display: block;
  }

  .front-access__heading-en {
    width: auto;
    writing-mode: horizontal-tb;
    transform: none;
  }

  .front-access__heading-ja {
    width: auto;
    margin-top: 8px;
    line-height: 1;
    letter-spacing: 0;
    writing-mode: horizontal-tb;
  }

  .front-access__info {
    width: 100%;
    gap: 32px;
  }

  .front-access__list {
    width: 100%;
  }

  .front-access__row {
    width: 100%;
    gap: 24px;
  }

  .front-access__row dt {
    width: 60px;
    padding: 0;
  }

  .front-access__row dd {
    flex: 1;
    width: auto;
    white-space: normal;
  }

  .front-access__photos {
    width: 100%;
    gap: 5.688px;
  }

  .front-access__photo {
    width: 170.642px;
    height: 109.587px;
  }

  .front-access__photo img {
    left: -3.13px;
    top: -7.83px;
    width: 176.063px;
    height: 117.414px;
  }

  .front-access__map-block {
    width: 100%;
    height: auto;
  }

  .front-access__map {
    width: 100%;
    height: 210px;
  }

  .front-access__map iframe {
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .front-concept {
    width: 100%;
    height: 877px;
    margin-top: 80px;
    margin-inline: auto;
    overflow: hidden;
  }

  .front-concept__bg {
    top: 776px;
    height: 100px;
  }

  .front-concept__heading {
    left: calc(var(--sp-artboard-left) + 32px);
    top: 196px;
    gap: 12px;
    height: auto;
  }

  .front-concept__title {
    font-size: 48px;
    line-height: 1;
  }

  .front-concept__en {
    align-self: flex-start;
  }

  .front-concept__text {
    left: calc(var(--sp-artboard-left) + 32px);
    top: 314px;
    width: min(310px, calc(var(--sp-artboard-width) - 64px));
    font-size: 16px;
    line-height: 2;
  }

  .front-concept__image--microscope {
    left: var(--sp-artboard-left);
    top: 0;
    width: 292px;
    height: 164px;
  }

  .front-concept__image--microscope img {
    left: -2px;
    top: 0;
    width: 294px;
    height: 165px;
  }

  .front-concept__image--main {
    left: var(--sp-artboard-left);
    top: 688px;
    width: 260px;
    height: 176px;
  }

  .front-concept__image--main img {
    left: -28px;
    top: -24px;
    width: 376px;
    height: 244px;
  }

  .front-concept__image--side {
    left: calc(var(--sp-artboard-left) + 276px);
    right: auto;
    top: 688px;
    width: 114px;
    height: 176px;
  }

  .front-concept__image--side img {
    left: -86px;
    top: -22px;
    width: 299px;
    height: 199px;
  }

  .front-concept__ornament--top {
    left: calc(var(--sp-artboard-left) + 324px);
    top: 139.41px;
  }

  .front-concept__ornament--bottom {
    left: calc(var(--sp-artboard-left) + 224px);
    top: 852.41px;
    width: 24px;
    height: 24px;
  }

  .front-feature {
    width: 100%;
    height: 2196px;
    margin-inline: auto;
    background:
      linear-gradient(#fff9ec 0 810px, #fff9ec 810px 1066px, #f8f3e8 1066px 2148px, var(--color-bg) 2148px);
  }

  .front-feature__bg--first {
    left: 0;
    top: 810px;
    width: 100%;
    height: 256px;
  }

  .front-feature__bg--first img {
    left: calc(50% - 341.25px);
    top: -67px;
    width: 536.376px;
    height: 357.703px;
  }

  .front-feature__bg--second {
    left: 0;
    right: auto;
    top: 1470px;
    width: 100%;
    height: 256px;
  }

  .front-feature__bg--second img {
    left: calc(50% - 195px);
    top: -3.66px;
    width: 390.175px;
    height: 260.203px;
  }

  .front-feature__heading {
    left: calc(var(--sp-content-inner-left) + 32px);
    top: 56px;
    width: 160px;
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 32px;
  }

  .front-feature__heading-text {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .front-feature__title {
    width: auto;
    font-size: 48px;
    line-height: 1.1;
    white-space: nowrap;
    writing-mode: horizontal-tb;
  }

  .front-feature__en {
    width: auto;
    height: auto;
    display: block;
    writing-mode: horizontal-tb;
  }

  .front-feature__line {
    position: static;
    width: 64px;
    height: 1px;
    display: block;
  }

  .front-feature-card {
    left: var(--sp-content-left);
    width: var(--sp-content-width);
  }

  .front-feature-card--01 {
    top: 233px;
    height: 639px;
  }

  .front-feature-card--02 {
    left: var(--sp-content-left);
    top: 920px;
    height: 614px;
  }

  .front-feature-card--03 {
    top: 1582px;
    height: 614px;
  }

  .front-feature-card::before {
    left: 0;
    width: 100%;
    height: 100%;
  }

  .front-feature-card::after {
    left: 16px;
    top: calc(100% - 32px);
  }

  .front-feature-card__number,
  .front-feature-card--02 .front-feature-card__number {
    left: -8px;
    right: auto;
    top: -8px;
    width: 48px;
    height: 48px;
    padding-bottom: 4px;
    font-size: 28px;
  }

  .front-feature-card__number::after,
  .front-feature-card--02 .front-feature-card__number::after {
    left: 28px;
    top: 42px;
    width: 12px;
    height: 12px;
  }

  .front-feature-card__content,
  .front-feature-card--02 .front-feature-card__content {
    left: 24px;
    top: 24px;
    width: calc(100% - 48px);
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
  }

  .front-feature-card--02 .front-feature-card__content {
    flex-direction: column;
  }

  .front-feature-card__text {
    width: 100%;
    gap: 24px;
  }

  .front-feature-card__text h3 {
    font-size: 28px;
    line-height: 1.4;
  }

  .front-feature-card__image {
    width: 100%;
    height: 248px;
    order: -1;
  }

  .front-feature-card--01 .front-feature-card__image img {
    left: -43.06px;
    top: -12.06px;
    width: 417.64px;
    height: 278.29px;
  }

  .front-feature-card--02 .front-feature-card__image img {
    left: -29px;
    top: -12px;
    width: 390px;
    height: 260px;
  }

  .front-feature-card--03 .front-feature-card__image img {
    left: -59px;
    top: -12px;
    width: 406px;
    height: 271px;
  }

  .front-feature-card .front-feature-card__content::after {
    right: -12px;
    top: -12px;
    width: 24px;
    height: 24px;
  }

  .front-feature-card--02 .front-feature-card__content::after {
    right: -12px;
  }

  .front-feature__ornament--middle {
    display: none;
  }

  .front-feature__ornament--bottom {
    display: none;
    top: 1093px;
  }

  .front-medical {
    width: 100%;
    max-width: var(--sp-content-max);
    height: 1267px;
    margin: 56px auto 0;
  }

  .front-medical__heading {
    left: 32px;
    top: 0;
  }

  .front-medical__title {
    font-size: 48px;
    line-height: 1.6;
  }

  .front-medical__ornament {
    display: block;
    left: 294px;
    top: 0;
  }

  .front-medical__grid {
    left: 16px;
    top: 153px;
    width: calc(100% - 32px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: auto;
    gap: 8px;
    align-items: start;
  }

  .front-medical-card {
    width: 100%;
    min-height: 211.491px;
    height: auto;
    gap: 10px;
    padding: 4px;
  }

  .front-medical-card--general { order: 1; }
  .front-medical-card--pediatric { order: 2; }
  .front-medical-card--atopic { order: 3; }
  .front-medical-card--acne { order: 4; }
  .front-medical-card--hyperhidrosis { order: 5; min-height: 231px; }
  .front-medical-card--tumors { order: 6; min-height: 231px; }
  .front-medical-card--warts { order: 7; min-height: 213.965px; }
  .front-medical-card--herpes { order: 8; min-height: 213.965px; }
  .front-medical-card--psoriasis { order: 9; min-height: 212.965px; }
  .front-medical-card--vaccine { order: 10; min-height: 212.965px; }

  .front-medical-card__image {
    width: 100%;
    height: 92px;
  }

  .front-medical-card--general .front-medical-card__image img,
  .front-medical-card--atopic .front-medical-card__image img {
    left: -8.553px;
    top: -21.711px;
    width: 181.579px;
    height: 121.053px;
  }

  .front-medical-card--hyperhidrosis .front-medical-card__image img {
    left: -8.553px;
    top: -21.711px;
    width: 181.579px;
    height: 121.053px;
  }

  .front-medical-card--psoriasis .front-medical-card__image img,
  .front-medical-card--tumors .front-medical-card__image img,
  .front-medical-card--vaccine .front-medical-card__image img {
    left: -8.553px;
    top: -14.474px;
    width: 181.579px;
    height: 121.053px;
  }

  .front-medical-card--pediatric .front-medical-card__image img {
    left: -8.553px;
    top: -3.948px;
    width: 181.579px;
    height: 121.053px;
  }

  .front-medical-card--warts .front-medical-card__image img {
    left: -25.579px;
    top: -18.421px;
    width: 193.397px;
    height: 128.947px;
  }

  .front-medical-card--acne .front-medical-card__image img {
    left: -8.553px;
    top: -7.237px;
    width: 181.579px;
    height: 121.053px;
  }

  .front-medical-card--herpes .front-medical-card__image img {
    left: 0.421px;
    top: -2px;
    width: 167px;
    height: 111px;
  }

  .front-medical-card__body {
    width: 100%;
    min-height: 101.491px;
    padding-inline: 6px;
  }

  .front-medical-card__body h3 {
    width: 100%;
    margin-bottom: 5.263px;
    font-size: 15px;
    line-height: 1;
  }

  .front-medical-card__body span {
    width: 100%;
    margin-bottom: 5.263px;
    font-size: 8px;
    line-height: 1.375;
  }

  .front-medical-card__body p {
    width: 100%;
    font-size: 12px;
    line-height: 1.42;
  }

  .front-medical-card__body a {
    width: 20px;
    height: 17px;
  }

  .front-medical-card__body a::after {
    content: none;
  }

  .front-greet {
    width: 100%;
    max-width: var(--sp-content-max);
    height: 1091px;
    margin: 56px auto 0;
    overflow: hidden;
  }

  .front-greet__image--standing {
    left: 16px;
    top: 0;
    width: 260px;
    height: 280px;
  }

  .front-greet__image--standing img {
    left: -234px;
    top: -26px;
    width: 684px;
    height: 456px;
  }

  .front-greet__heading {
    left: calc(100% - 84px);
    top: 64px;
    width: 52px;
    height: 155px;
  }

  .front-greet__title {
    width: 28px;
    font-size: 28px;
    line-height: 1.1;
  }

  .front-greet__en {
    left: 40px;
    width: 12px;
    height: 80px;
    font-size: 12px;
  }

  .front-greet__line {
    display: none;
  }

  .front-greet__text {
    left: 32px;
    top: 312px;
    width: 244px;
    font-size: 15px;
    line-height: 1.8;
  }

  .front-greet__signature {
    left: calc(100% - 78px);
    top: 312px;
    width: 40px;
    height: 135px;
  }

  .front-greet__clinic {
    right: 0;
    font-size: 14px;
  }

  .front-greet__doctor {
    left: 0;
    top: 20px;
    gap: 10px;
    font-size: 18px;
  }

  .front-greet__doctor span {
    font-size: 16px;
  }

  .front-greet__image--treatment {
    left: calc(100% - 194px);
    top: 484px;
    width: 84px;
    height: 287px;
  }

  .front-greet__image--treatment img {
    left: -208px;
    top: 0;
    width: 431px;
    height: 287px;
  }

  .front-greet__image--consultation {
    left: 0;
    top: 811px;
    width: 374px;
    height: 200px;
  }

  .front-greet__image--consultation img {
    left: -93px;
    top: -31px;
    width: 672px;
    height: 448px;
  }

  .front-greet__ornament--top {
    left: calc(100% - 74px);
    top: 0;
    width: 32px;
    height: 32px;
  }

  .front-greet__ornament--top::before {
    left: 7.27px;
    width: 24.727px;
    height: 24.727px;
  }

  .front-greet__ornament--top::after {
    left: 0;
    top: 16.97px;
    width: 15.03px;
    height: 15.03px;
  }

  .front-greet__ornament--left {
    left: calc(100% - 100px);
    top: 468px;
    width: 32px;
    height: 32px;
  }

  .front-greet__ornament--bottom {
    left: calc(100% - 108px);
    top: 787px;
    width: 48px;
    height: 48px;
  }

  .front-greet__pagetop {
    left: calc(100% - 48px);
    top: 1043px;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 0;
    background: url("../images/figma/icon-page-top-arrow.svg") center / contain no-repeat;
  }

  .front-greet__pagetop::before {
    display: none;
  }

  .site-footer {
    height: 723px;
    background: linear-gradient(#f5eee3 0 429px, #efe9df 429px);
  }

  .site-footer::after {
    content: "";
    position: absolute;
    right: 0;
    top: 429px;
    width: 15px;
    height: 294px;
    background: #e7e0ce;
  }

  .site-footer__info {
    left: 50%;
    top: 200px;
    width: min(calc(100% - 64px), var(--sp-content-max));
    transform: translateX(-50%);
  }

  .site-footer__nav {
    left: 50%;
    top: 469px;
    width: min(calc(100% - 64px), var(--sp-content-max));
    display: grid;
    grid-template-columns: 143px 151px;
    column-gap: 32px;
    row-gap: 24px;
    font-size: 16px;
    transform: translateX(-50%);
  }

  .site-footer__copyright {
    left: 50%;
    top: 605px;
    width: min(calc(100% - 64px), var(--sp-content-max));
    transform: translateX(-50%);
  }

  .h1-page-title {
    min-height: 280px;
    padding: 96px max(32px, calc((100% - var(--sp-content-max)) / 2)) 0;
  }

  .h1-page-title h1 {
    font-size: 32px;
  }

  .h2-main-title,
  .h2-sub-title,
  .h2-half-col,
  .h3-main-title,
  .h3-sub-text,
  .h3-list-title,
  .h3-number-title,
  .h2-image-list-title,
  .h3-image-gridlist-title,
  .h2-qa-title,
  .doctor-message-h2,
  .doctor-image-greeting-h2,
  .profile-two-col,
  .merit-demerit-list,
  .price-list-main,
  .time-access-half,
  .time-list-main,
  .access-list-main,
  .text-image-include,
  .text-no-image-include,
  .text-image-no-box,
  .text-area-include {
    width: min(calc(100% - 60px), var(--sp-content-max));
    margin-left: auto;
    margin-right: auto;
    padding: 40px 0;
  }

  .h2-main-title {
    height: auto;
  }

  .h2-main-title__header,
  .h2-half-col,
  .h2-image-list-title,
  .text-image-include,
  .text-image-no-box {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .h2-main-title__header > p {
    flex: none;
    max-width: 100%;
  }

  .h2-main-title__image {
    width: 100%;
  }

  .h2-main-title h2,
  .h2-sub-title h2,
  .h2-half-col h2,
  .h3-number-title h2,
  .h2-qa-title h2,
  .doctor-image-greeting-h2 h2,
  .doctor-message-h2 h2 {
    font-size: 32px;
  }

  .h3-main-title h3,
  .h3-sub-text h3,
  .h3-list-title h3,
  .h3-image-title h3,
  .h2-image-list-title h3,
  .h3-image-gridlist-title h3,
  .time-list-main h3,
  .access-list-main h3,
  .text-image-title-a,
  .text-no-image-title-a,
  .text-image-no-box-a,
  .text-area-title-a {
    font-size: 28px;
  }

  .h3-list-title dl div {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .h3-number-title__items p {
    margin-left: 0;
  }

  .h3-image-gridlist-title__grid {
    grid-template-columns: 1fr;
  }

  .time-list-main {
    overflow-x: auto;
  }

  .time-list-main table {
    min-width: 640px;
  }

  .template-heading--h2,
  .template-heading--h3,
  .template-heading--h3-en,
  .template-heading--h3-two-line,
  .h2-half-col__text,
  .h2-half-col__text > p,
  .h2-half-col__image,
  .h3-main-title > p,
  .h3-sub-text > p,
  .h3-image-title__items,
  .h3-image-title__items article,
  .h3-image-title__text,
  .h3-image-title__heading,
  .h3-image-title__text > p,
  .h3-image-title__image,
  .h3-image-gridlist-title__body,
  .doctor-image-greeting-h2__text,
  .doctor-image-greeting-h2__text > p,
  .doctor-image-greeting-h2__image,
  .profile-two-col__item,
  .price-list-main table,
  .time-access-half__panel,
  .time-access-half__map,
  .time-list-main__inner,
  .access-list-main__map,
  .text-image-include__body,
  .text-image-include__body > p,
  .text-image-include__image,
  .text-no-image-include__body,
  .text-no-image-include__body > p,
  .text-image-no-box__body,
  .text-image-no-box__body > p,
  .text-image-no-box__image,
  .text-area-include > p {
    width: 100%;
    max-width: 100%;
  }

  /* 見出し・経歴カードの固定高さを解除し、SPで文字が折り返しても要素が重ならないようにする */
  .template-heading--h2,
  .h2-sub-title .template-heading--h2,
  .template-heading--h3,
  .template-heading--h3-en,
  .template-heading--h3-two-line,
  .profile-two-col__item,
  .profile-two-col__item header {
    height: auto;
  }

  .time-list-main__inner > .template-heading,
  .time-list-main__inner > table,
  .time-list-main__inner > p {
    width: calc(100% - 48px);
    max-width: calc(100% - 48px);
    margin-left: 24px;
  }

  .h2-sub-title,
  .h2-half-col,
  .h3-main-title,
  .h3-sub-text,
  .h2-image-list-title,
  .h3-image-gridlist-title,
  .doctor-image-greeting-h2,
  .doctor-message-h2,
  .profile-two-col,
  .h2-qa-title,
  .merit-demerit-list,
  .price-list-main,
  .time-access-half,
  .time-list-main,
  .access-list-main,
  .text-image-include,
  .text-no-image-include,
  .text-image-no-box,
  .text-area-include {
    min-height: auto;
    min-height: 0;
  }

  .h3-sub-text,
  .doctor-image-greeting-h2,
  .profile-two-col,
  .merit-demerit-list,
  .time-access-half {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .h3-image-title__items article {
    height: auto;
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .h3-image-title__text > p {
    padding-left: 0;
  }

  .h3-image-gridlist-title__grid {
    padding: 20px;
  }

  .price-list-main,
  .time-list-main,
  .time-access-half__panel {
    min-width: 0;
    overflow-x: auto;
  }

  .price-list-main table,
  .time-list-main table,
  .time-access-half table {
    min-width: 0;
  }

  .time-access-half th,
  .time-access-half td,
  .time-list-main th,
  .time-list-main td {
    font-size: 12px;
  }

  .time-access-half tbody th,
  .time-list-main tbody th {
    width: 88px;
  }

  .access-list-main__map {
    height: 260px;
  }

  .text-image-include,
  .text-no-image-include {
    padding: 40px 24px;
  }

  .nakanoshima-link-pair {
    width: min(calc(100% - 60px), var(--sp-content-max));
    max-width: var(--sp-content-max);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 96px;
    gap: 16px;
  }

  .nakanoshima-button-primary {
    width: 180px;
  }

  .nakanoshima-button-secondary {
    width: 134px;
    font-size: 13px;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .site-header__inner {
    padding-inline: 32px;
  }

  .front-hero__content {
    margin-left: max(32px, calc((100vw - 500px) / 2));
  }

  .front-info,
  .front-access {
    margin-left: auto;
    margin-right: auto;
  }
}

/* === 下層ページ 画像枠：実画像をcoverで敷き詰める（Claude追記 / 画像はみ出し・重なり対策） === */
.h2-main-title__image,
.h2-half-col__image,
.h3-image-title__image,
.text-image-include__image,
.text-image-no-box__image,
.doctor-image-greeting-h2__image,
.h3-image-gridlist-title__image {
  position: relative;
  overflow: hidden;
}
.h2-main-title__image > img,
.h2-half-col__image > img,
.h3-image-title__image > img,
.text-image-include__image > img,
.text-image-no-box__image > img,
.doctor-image-greeting-h2__image > img,
.h3-image-gridlist-title__image > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* === 追加(2): 診療案内グリッドのカードをクリック可能にする（中の島はやし下層ページ用） === */
.h3-image-gridlist-title__grid article { position: relative; }
.h3-image-gridlist-title__link {
  position: absolute;
  inset: 0;
  z-index: 2;
  text-indent: -9999px;
  overflow: hidden;
}

/* === 追加(3): FAQアコーディオンを内容量に合わせて可変にする（中の島はやし下層ページ用） ===
   コーダー版は details/summary/p が固定px高のため、複数行の質問・回答で
   「枠だけ残る／回答がはみ出す」不具合が出る。高さを auto 化して内容に追従させる。 */
.q-list details,
.q-list details:first-child,
.q-list details[open] {
  height: auto;
}
.q-list details[open] {
  padding-bottom: 20px;
}
.q-list summary {
  height: auto;
  min-height: 52px;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-right: 44px;
  line-height: 1.5;
}
.q-list summary::after,
.q-list details[open] summary::after {
  top: 50%;
  transform: translateY(-50%);
}
.q-list details p {
  height: auto;
  align-items: baseline;
  line-height: 1.8;
  margin-top: 4px;
}

/* === 追加(4): セクション余白の適正化（クライアントFB：無駄なスペースが多い） ===
   コーダー版は h2-sub-title:444px / h3-main-title:421px / h2-half-col:453px の固定min-heightで、
   見出しのみ・短文セクションだと大きな空白になる。内容量に追従させて余白を詰める。 */
.h2-sub-title,
.h3-main-title,
.h2-half-col,
.h3-list-title,
.h3-sub-text {
  min-height: 0;
  padding-bottom: 56px;
}
/* 画像入り・ボックス型セクションも固定高をやめ内容量に追従（左右paddingは維持） */
.text-image-include,
.text-no-image-include,
.text-image-no-box,
.text-area-include {
  min-height: 0;
}
.h2-qa-title {
  min-height: 0;
}
/* 見出しのみのグループ見出し（本文・リストを持たない）はさらに詰める */
.h2-sub-title:not(:has(> .h2-sub-text)):not(:has(> ul)):not(:has(> ol)):not(:has(> dl)) {
  padding-bottom: 24px;
}

/* === 追加(5): 写真プレースホルダー（素材未定の箇所に推奨写真を明示） ===
   画像ボックスに class="image-ph" を付け、中の<span>に推奨写真の説明を入れる。
   点線枠＋小さめ文字で「ここに写真が入る」と分かるようにする。 */
.image-ph {
  background: #f6f1e8 !important;
  border: 2px dashed #c9b99a !important;
}
.image-ph > span {
  font-family: var(--font-mincho);
  font-size: 17px;
  line-height: 1.9;
  color: #9b8a6c;
  text-align: center;
  padding: 24px;
}

/* === 追加(6): 診療の流れ・FAQ見出し・フッターの余白統一（クライアントFB） === */
/* 診療の流れ：固定高(1216px)を解除して内容量に追従 */
.h3-number-title { min-height: 0; }
/* FAQセクションを他の見出しと同じ余白・間隔にそろえる（h2→英字12px／見出し→本文48px） */
.h2-qa-title {
  padding: 56px 0;
  display: flex;
  flex-direction: column;
  gap: 48px;
  min-height: 0;
}
.h2-qa-title h2 { margin: 24px 0 12px; }
/* フッター上下の余白を均一化（PC・1200px以上のみ。モバイルは別レイアウトのため対象外） */
@media (min-width: 1200px) {
  .site-footer { height: 380px; }
  .site-footer__info { top: 96px; }
  .site-footer__nav { top: 127px; }
  .site-footer__copyright { top: 268px; }
}

/* === 追加(7): 冒頭MV見出しが長い場合の右はみ出し対策（クライアントFB：帯状疱疹ページ等） ===
   h2-main-title__header は横並びflexだが、見出し(__title)が flex:0 0 auto で縮まず、
   本文(h2-main-text)も min-width:auto のため、見出しが長いと本文がページ右へはみ出していた。
   両者を縮小可能にして、2カラムを保ったまま見出しを折り返す。 */
.h2-main-title__title {
  min-width: 0;
  flex-shrink: 1;
}
.h2-main-text {
  min-width: 0;
}

/* === 追加(8): 診療時間テーブルの曜日列を等間隔にする（クライアントFB） ===
   table-layout未指定で内容依存の自動幅になり曜日列がばらついていた。
   固定レイアウト＋時間列のみ幅指定で、7曜日を均等幅にする。 */
.time-list-main table,
.time-access-half table {
  table-layout: fixed;
}
.time-list-main th:first-child,
.time-access-half th:first-child {
  width: 18%;
}

/* === 追加(9): dl見出し(dt)を中央揃えに（クライアントFB：とびひ・水いぼが左寄り） ===
   dtが display:grid で、改行(<br>)があると長い行の幅のボックス内で短い行が左寄せに見えていた。
   text-align:center で複数行の見出しも中央にそろえる。 */
.h3-list-title dt {
  text-align: center;
}

/* === 追加(10): テキスト+画像（h2-half-col）で本文が複数段落・リストの場合の行間調整（クライアントFB） ===
   h2-half-col__text 直下の <p> は min-height:192px（1段落用）＋要素間48pxで、
   複数段落・リストだと空白が過大になる。本文を .h3-image-text__body で囲み、行間を16pxに統一。 */
.h3-image-text__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* === 追加(11): お知らせ（一覧・個別）とサイトマップ（カスタム投稿タイプ info 用） === */
.news-archive,
.news-single,
.sitemap {
  width: min(1100px, calc(100% - var(--container-gutter) * 2));
  margin: 0 auto;
  padding: 56px 0;
}

/* お知らせ一覧 */
.news-archive__list {
  border-top: 1px solid #ebe7df;
  padding-top: 32px;
}

.news-archive__item {
  padding: 20px 0;
}

.news-archive__item:last-of-type {
  border-bottom: 1px solid #ebe7df;
}

.news-archive__item p a,
.news-single__body a {
  color: #565656;
  text-decoration: none;
}

.news-archive__item p a:hover {
  color: var(--color-accent-dark);
  text-decoration: underline;
}

.news-archive__empty {
  padding: 40px 0;
  color: #565656;
}

.news-archive__pager {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 40px;
}

.news-archive__pager .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid #e0d1b8;
  color: var(--color-accent-dark);
  text-decoration: none;
}

.news-archive__pager .page-numbers.current {
  background-color: var(--color-accent-dark);
  color: #fff;
}

/* お知らせ個別 */
.news-single__head {
  padding-bottom: 24px;
  border-bottom: 1px solid #e0d1b8;
}

.news-single__title {
  margin: 16px 0 0;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 26px;
  line-height: 1.5;
}

.news-single__body {
  padding: 32px 0;
  color: #565656;
  font-size: 16px;
  line-height: 1.9;
}

.news-single__body p {
  margin: 0 0 1.5em;
}

.news-single__body img {
  max-width: 100%;
  height: auto;
}

/* サイトマップ */
.sitemap__group + .sitemap__group {
  margin-top: 40px;
}

.sitemap__heading {
  margin: 0 0 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e0d1b8;
  color: var(--color-accent-dark);
  font-family: var(--font-mincho);
  font-size: 22px;
}

.sitemap__heading a {
  color: inherit;
  text-decoration: none;
}

.sitemap__heading a:hover {
  text-decoration: underline;
}

.sitemap__list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  margin: 0;
  padding: 0;
}

.sitemap__list li {
  position: relative;
  padding-left: 18px;
}

.sitemap__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 8px;
  height: 8px;
  background-color: var(--color-accent-dark);
  border-radius: 50%;
}

.sitemap__list a {
  color: #565656;
  text-decoration: none;
  line-height: 1.6;
}

.sitemap__list a:hover {
  color: var(--color-accent-dark);
  text-decoration: underline;
}

@media (max-width: 767px) {
  .sitemap__list {
    flex-direction: column;
    gap: 12px;
  }
}

/* === 追加(12): Gナビ診療内容ドロップダウン／フッター診療詳細／追従バナー（クライアントFB） === */

/* --- グローバルナビ：診療内容ドロップダウン（PC ≥1200px） --- */
.site-header__nav-item {
  position: relative;
  display: flex;
  align-items: center;
  height: 64px;
}
.site-header__nav-item--has-sub > .site-header__nav-link .site-header__nav-ja::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-left: 6px;
  border-right: 1.5px solid var(--color-accent);
  border-bottom: 1.5px solid var(--color-accent);
  transform: translateY(-2px) rotate(45deg);
}
.site-header__submenu {
  position: absolute;
  top: 64px;
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 232px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: #fff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 60;
}
.site-header__nav-item--has-sub:hover .site-header__submenu,
.site-header__nav-item--has-sub:focus-within .site-header__submenu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.site-header__submenu li a {
  display: block;
  padding: 11px 22px;
  font-family: var(--font-mincho);
  font-size: 15px;
  line-height: 1.4;
  color: var(--color-text);
  white-space: nowrap;
}
.site-header__submenu li a:hover {
  background: #f5eee3;
  color: var(--color-accent-dark);
}

/* --- SPメニュー：診療内容のサブリンク --- */
.site-header__sp-sub {
  display: flex;
  flex-direction: column;
  background: rgba(91, 75, 51, 0.04);
}
.site-header__sp-sub a {
  padding: 13px 16px 13px 36px;
  font-size: 14px;
  color: var(--color-text);
  border-bottom: 1px solid rgba(91, 75, 51, 0.08);
  text-decoration: none;
}

/* --- フッター上の診療案内リンク帯（通常フロー） --- */
.footer-medical {
  background: #f5eee3;
  border-top: 1px solid #e0d6c2;
  padding: 28px max(32px, calc((100% - 1100px) / 2));
}
.footer-medical__title {
  margin: 0 0 14px;
  font-family: var(--font-mincho);
  font-size: 18px;
  color: var(--color-accent-dark);
}
.footer-medical__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 28px;
}
.footer-medical__list li {
  position: relative;
  padding-left: 14px;
}
.footer-medical__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-accent-dark);
}
.footer-medical__list a {
  color: #565656;
  text-decoration: none;
  font-size: 15px;
  line-height: 1.5;
}
.footer-medical__list a:hover {
  color: var(--color-accent-dark);
  text-decoration: underline;
}

/* --- 追従バナー（電話／診療時間・アクセス）：Gナビが隠れる ≤1199px で表示 --- */
.site-fixed-cta {
  display: none;
}
.site-fixed-cta__item {
  flex: 1 1 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 60px;
  padding: 8px 6px;
  text-decoration: none;
  color: #fff;
  font-family: var(--font-mincho);
  font-size: 15px;
  line-height: 1.25;
  text-align: center;
}
.site-fixed-cta__item--tel { background: var(--color-accent-dark); }
.site-fixed-cta__item--access { background: #6f5d3f; }
.site-fixed-cta__label { display: block; font-weight: 500; }
.site-fixed-cta__sub {
  display: block;
  font-family: var(--font-en);
  font-size: 13px;
  margin-top: 2px;
}
.site-fixed-cta__icon { flex: 0 0 auto; }

@media (max-width: 1199px) {
  .site-fixed-cta {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 200;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
  }
  body { padding-bottom: 60px; }
}

@media (max-width: 767px) {
  .footer-medical__list {
    flex-direction: column;
    gap: 12px;
  }
}

/* === 追加(13): フッターを通常フローのレイアウトに再構成（クライアントFB：診療内容の下に診療詳細を連ねる・全体のバランス調整） ===
   旧フッターは絶対配置の固定レイアウトだったため、normal flow に上書きして
   「情報（左）／メニュー＋診療案内（右）／コピーライト（下）」の3ブロックに整える。 */
.site-footer {
  position: relative;
  height: auto;
  background: #f5eee3;
  color: #565656;
  display: grid;
  grid-template-columns: minmax(240px, 300px) 1fr;
  column-gap: 72px;
  row-gap: 28px;
  align-items: start;
  padding: 56px var(--pc-frame-offset) 36px;
}
.site-footer::after { display: none; }

/* 左：医院情報（絶対配置→縦並び） */
.site-footer__info {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  width: auto;
  height: auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.site-footer__brand { width: auto; }
.site-footer__address,
.site-footer__tel,
.site-footer__sitemap {
  position: static;
  left: auto;
  top: auto;
}
.site-footer__sitemap { align-self: flex-start; margin-top: 2px; }

/* 右：ナビ（2グループ＝一般メニュー／診療案内） */
.site-footer__nav {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  width: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 24px 64px;
  align-items: flex-start;
  white-space: normal;
  font-weight: 400;
}
.site-footer__nav-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.site-footer__nav-head {
  color: var(--color-accent-dark);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
}
.site-footer__nav-head:hover { text-decoration: underline; }

/* 診療内容の下に連なる診療詳細（多いので2段組でバランスを取る） */
.site-footer__nav-sub {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, auto);
  gap: 10px 28px;
}
.site-footer__nav-sub li {
  position: relative;
  padding-left: 13px;
}
.site-footer__nav-sub li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--color-accent-dark);
}
.site-footer__nav-sub a {
  color: #565656;
  font-size: 14px;
  line-height: 1.5;
  text-decoration: none;
}
.site-footer__nav-sub a:hover { color: var(--color-accent-dark); text-decoration: underline; }

/* コピーライト（最下部・全幅） */
.site-footer__copyright {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  grid-column: 1 / -1;
  margin: 12px 0 0;
  text-align: left;
}

/* タブレット〜スマホ：1カラムに */
@media (max-width: 1024px) {
  .site-footer {
    grid-template-columns: 1fr;
    row-gap: 32px;
    padding: 48px max(32px, calc((100% - var(--sp-content-max)) / 2)) 32px;
  }
  .site-footer__info { left: auto; top: auto; transform: none; width: auto; }
  .site-footer__nav { left: auto; top: auto; transform: none; width: auto; display: flex; gap: 28px 56px; }
  .site-footer__copyright { left: auto; top: auto; transform: none; }
}

@media (max-width: 600px) {
  .site-footer__nav { flex-direction: column; gap: 28px; }
  .site-footer__nav-sub { grid-template-columns: 1fr 1fr; }
}

/* === 追加(14): 追従バナーを右下フローティングに変更（PC・スマホ共通表示／nomoca AIチャットバナーの上に縦並び）（クライアントFB） === */
.site-fixed-cta {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  position: fixed;
  left: auto;
  right: 16px;
  bottom: 150px; /* 右下のAIチャットバナーと重ならないよう上に逃がす */
  width: auto;
  z-index: 9990;
  box-shadow: none;
}
.site-fixed-cta__item {
  flex: 0 0 auto;
  width: auto;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 18px;
  border-radius: 999px;
  font-family: var(--font-mincho);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2);
}
.site-fixed-cta__item--tel { background: var(--color-accent-dark); color: #fff; }
.site-fixed-cta__item--access {
  background: #fff;
  color: var(--color-accent-dark);
  border: 1px solid var(--color-accent-dark);
}
.site-fixed-cta__text { display: inline-flex; align-items: baseline; gap: 4px; }
.site-fixed-cta__label { display: inline; }
.site-fixed-cta__sub { display: inline; font-family: var(--font-en); font-size: 14px; margin: 0; }
.site-fixed-cta__icon { flex: 0 0 auto; width: 18px; height: auto; }

/* 追加(12)で入れていた下部全幅バー用の余白をリセット */
body { padding-bottom: 0; }

@media (max-width: 1199px) {
  .site-fixed-cta {
    display: flex;
    position: fixed;
    left: auto;
    right: 12px;
    bottom: 140px;
    box-shadow: none;
  }
  body { padding-bottom: 0; }
}

/* === 追加(15): 追従バナー PCは右下を自然な位置に／スマホはボトム全幅バーに戻す（クライアントFB） === */
/* PC：右下の自然な位置（AIチャットバナーが表示される環境では重なり回避のため要調整） */
.site-fixed-cta { bottom: 24px; }

/* スマホ・タブレット（≤1199px）：変更前のボトム全幅バーに戻す */
@media (max-width: 1199px) {
  .site-fixed-cta {
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
  }
  .site-fixed-cta__item {
    flex: 1 1 50%;
    border-radius: 0;
    min-height: 60px;
    padding: 8px 6px;
    box-shadow: none;
    justify-content: center;
  }
  .site-fixed-cta__item--tel { background: var(--color-accent-dark); color: #fff; }
  .site-fixed-cta__item--access { background: #6f5d3f; color: #fff; border: 0; }
  .site-fixed-cta__text { flex-direction: column; align-items: center; gap: 2px; }
  .site-fixed-cta__sub { font-size: 13px; }
  body { padding-bottom: 60px; }
}

/* === 追加(16): PC（≥1200px）では電話・診療時間アクセスの追従バナーを非表示（ヘッダーに同内容があるため）。スマホのボトムバーは維持（クライアントFB） === */
@media (min-width: 1200px) {
  .site-fixed-cta { display: none; }
}

/* === 追加(17): PCの追従バナーを再表示（クライアントFB：やはりPCでも必要）。追加(16)の非表示を取り消し。SPはボトムバーのまま === */
@media (min-width: 1200px) {
  .site-fixed-cta { display: flex; }
}

/* === 追加(18): フッターにマルホ患者向け情報バナー3点を追加（口唇ヘルペス／ニキビ／脇汗・外部リンク）。
   フッターはgrid（≤1024pxは中央約500px幅の1カラム）なので、バナー帯だけ全幅に抜き出して常に3つ横並びにする（クライアントFB：横並び希望） === */
.site-footer__banners {
  grid-column: 1 / -1;                 /* フッターgridの全列にまたがる */
  box-sizing: border-box;
  width: 100vw;                        /* 親パディングを抜けて全幅 */
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: 36px;
  padding: 0 24px;
}
.site-footer__banners-note {
  margin: 0 0 12px;
  text-align: center;
  font-size: 13px;
  color: inherit;
  opacity: .8;
}
.site-footer__banners-row {
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 16px;
}
.site-footer__banner {
  display: block;
  flex: 1 1 0;                         /* 3等分で横並び（幅に合わせて縮小） */
  min-width: 0;
  max-width: 330px;
  border-radius: 8px;
  overflow: hidden;
  transition: opacity .2s ease;
}
.site-footer__banner:hover { opacity: .85; }
.site-footer__banner img {
  display: block;
  width: 100%;
  height: auto;
}
/* スマホは縦積み（横3つだと小さくなりすぎるため） */
@media (max-width: 600px) {
  .site-footer__banners { padding: 0 16px; }
  .site-footer__banner { flex: 0 1 100%; max-width: 360px; }
}
