@charset "UTF-8";

/* ===== 2026-renewal-fv.css ===== */
/* 2026 front-page renewal: first view only */
.renewal-fv,
.renewal-fv * {
  box-sizing: border-box;
}

.renewal-fv {
  position: relative;
  width: 100%;
  height: 683px;
  min-width: 1200px;
  background: #feffe7;
  overflow: hidden;
}

/*
 * PC layout follows Figma node 184:18.
 * The content uses grid/flex flow; only the decorative SP image is overlaid.
 */
.renewal-fv .mainvisual_box {
  position: relative;
  display: grid;
  grid-template-columns: minmax(24px, 1fr) 563px 132px 260px minmax(24px, 1fr);
  grid-template-rows: 534px 149px;
  align-items: center;
  width: 100%;
  height: 683px;
  margin: 0;
  padding: 0;
  background-color: #eef5e4;
  background-image:
    url('../img/mv/bg-t.png'),
    url('../img/mv/bg-pattern.png');
  background-position:
    left top,
    center top;
  background-repeat: no-repeat;
  background-size:
    auto 74px,
    auto 874px;
  overflow: hidden;
}

.renewal-fv .text-block {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 563px;
  max-width: none;
  height: auto;
  margin: 0;
  padding: 0;
  text-align: center;
}

.renewal-fv .text-block .pc-title {
  display: block;
  flex: 0 0 204px;
  width: 563px;
  height: 204px;
  margin: 0;
  object-fit: cover;
  object-position: center top;
}

.renewal-fv .badges {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 20px;
  width: 550px;
  margin: 0;
}

.renewal-fv .badges img {
  display: block;
  flex: 0 0 170px;
  width: 170px;
  height: auto;
  margin: 0;
}

.renewal-fv .subcopy {
  flex: 0 0 83px;
  width: 426px;
  height: 83px;
  margin: 0;
}

.renewal-fv .subcopy img {
  display: block;
  width: 426px;
  height: 83px;
  margin: 0;
  object-fit: contain;
}

.renewal-fv .video-block {
  grid-column: 4;
  grid-row: 1;
  display: block;
  width: 260px;
  height: 462px;
  max-width: none;
  margin: 0;
  padding: 0;
  border-radius: 12px;
  overflow: hidden;
}

.renewal-fv .video-block video {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
}

.renewal-fv .sp-bg-t,
.renewal-fv .sp-bg-b,
.renewal-fv .text-block-sp {
  display: none;
}

.renewal-fv__features {
  grid-column: 1 / -1;
  grid-row: 2;
  display: grid;
  grid-template-columns: repeat(6, 181px);
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  height: 149px;
  margin: 0;
  padding: 0;
  background: #feffe7;
  list-style: none;
}

.renewal-fv__features li {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 58px;
  margin: 0;
  padding: 4px 8px;
  border: 0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(21, 56, 44, 0.16);
  color: #333;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 21px;
  text-align: center;
}

.home .renewal-fv + .mainvisual_txt {
  height: 46px;
  margin: 0;
  padding: 0;
  background: #fff;
}

.home .renewal-fv + .mainvisual_txt .con_inner {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
  padding: 0;
}

.home .renewal-fv + .mainvisual_txt .head_txt {
  margin: 0;
  padding-top: 13px;
  color: #757575;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 19px;
  text-align: right;
}

@media screen and (max-width: 767.98px) {
  .home #body > .h1 {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .home .renewal-fv {
    width: 100%;
    height: 664px;
    min-width: 0;
    margin: 47px 0 0;
    padding: 0;
    background: #ffffee;
    overflow: hidden;
  }

  .renewal-fv .mainvisual_box {
    display: grid;
    grid-template-columns: 72% 4% 24%;
    grid-template-rows: 342px 11px 101px 14px 160px 36px;
    align-items: start;
    justify-content: start;
    width: calc(100% - 32px);
    max-width: 343.33px;
    height: 664px;
    margin: 0 auto;
    padding: 0;
    background: #ffffee;
    overflow: hidden;
  }

  .renewal-fv .text-block-sp {
    position: static !important;
    grid-column: 3;
    grid-row: 1;
    align-self: center;
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
  }

  .renewal-fv .text-block-sp img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
    object-fit: cover;
  }

  .renewal-fv .text-block {
    position: static !important;
    display: contents;
  }

  .renewal-fv .text-block .pc-title,
  .renewal-fv .subcopy,
  .renewal-fv .sp-bg-t {
    display: none;
  }

  .renewal-fv .video-block {
    position: static !important;
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: flex-start;
    width: 100%;
    height: 342px;
    margin: 0;
    padding: 6px 0 10px 10px;
    border-radius: 0;
    overflow: hidden;
  }

  .renewal-fv .video-block video {
    display: block;
    flex: 0 0 calc(100% - 10px);
    width: calc(100% - 10px);
    height: 326px;
    max-height: none;
    border-radius: 26px;
    object-fit: cover;
  }

  /* Decorative overlap only; content itself remains in grid/flex flow. */
  .renewal-fv .sp-bg-b {
    position: absolute;
    z-index: 2;
    top: 273px;
    left: -8px;
    display: block;
    width: calc(100% + 16px);
    max-width: none;
    height: auto;
    margin: 0;
    pointer-events: none;
  }

  .renewal-fv .badges {
    position: static !important;
    z-index: 3;
    grid-column: 1 / -1;
    grid-row: 3;
    align-self: stretch;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    justify-content: center;
    gap: 13px;
    width: 100%;
    height: 101px;
    margin: 0;
  }

  .renewal-fv .badges img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
  }

  .renewal-fv__features {
        position: static !important;
        z-index: 3;
        grid-column: 1 / -1;
        grid-row: 5;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        justify-content: normal;
        gap: 8px;
        width: calc(100% - 0px);
        height: 160px;
        margin: 0 auto;
        padding: 0;
        background: #ffffee;
  }

  .renewal-fv__features li {
    height: 48px;
    padding: 3px 6px;
    border: 1px solid #a9a694;
    border-radius: 10px;
    box-shadow: none;
    font-family: "Noto Sans JP", Meiryo, sans-serif;
    font-size: 14px;
    line-height: 16px;
  }
}


/* ===== 2026-renewal-problems.css ===== */
/* 2026 front-page renewal: concerns and consultation section */
.renewal-problems,
.renewal-problems * {
  box-sizing: border-box;
}

.home main > article.wide {
  margin-top: 0 !important;
}

.renewal-problems__legacy[hidden] {
  display: none !important;
}

.home main section.renewal-problems {
  width: 100%;
  height: 702px;
  margin: 60px 0;
  padding: 0;
  background: #fff;
  overflow: hidden;
}

.renewal-problems__visual {
  display: block;
  width: 973px;
  height: 369px;
  margin: 0 auto;
}

.renewal-problems__visual img {
  display: block;
  width: 973px;
  height: 369px;
  margin: 0;
}

.renewal-problems__consult {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 0;
}

.renewal-problems__consult h2 {
  display: block;
  margin: 12px 0 0;
  padding: 0;
  color: #4fab63;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 35.415px;
  font-weight: 700;
  line-height: 60px;
  text-align: center;
}

.renewal-problems__consult h2 span {
  display: inline;
}

.renewal-problems__arrows {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 71px;
  height: 43px;
  margin: 0;
}

.renewal-problems__arrows img {
  display: block;
  width: 71px;
  margin: 0;
}

.renewal-problems__arrows img:first-child {
  height: 22px;
}

.renewal-problems__arrows img:last-child {
  height: 21px;
}

.renewal-problems__message {
  display: grid;
  grid-template-columns: 567px 205px;
  grid-template-rows: auto auto;
  column-gap: 64px;
  width: 900px;
  height: 223px;
  margin: -5px 0 0;
  padding: 32px;
  border-radius: 10px;
  background: #fffdf7;
  overflow: hidden;
}

.renewal-problems__copy {
  width: 567px;
  margin: 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 28.5px;
}

.renewal-problems__copy p {
  margin: 0;
  padding: 0;
  font: inherit;
  line-height: inherit;
}

.renewal-problems__copy strong {
  font-weight: 700;
}

.renewal-problems__copy--first {
  grid-column: 1;
  grid-row: 1;
}

.renewal-problems__copy--second {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
}

.renewal-problems__illustration {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: start;
  display: block;
  width: 205px;
  height: 154px;
  margin: 0;
  object-fit: contain;
}

@media screen and (max-width: 767px) {
  .home main section.renewal-problems {
    height: 953px;
  }

  .renewal-problems__visual {
    width: 375px;
    max-width: 100%;
    height: auto;
  }

  .renewal-problems__visual img {
    width: 375px;
    max-width: 100%;
    height: auto;
  }

  .renewal-problems__consult h2 {
    width: 100%;
    margin: -14px 0 0;
    font-size: 24px;
    line-height: 40.8px;
  }

  .renewal-problems__consult h2 span {
    display: block;
  }

  .renewal-problems__arrows {
    margin-top: 6px;
  }

  .renewal-problems__message {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: calc(100% - 24px);
    height: 467px;
    margin: -23px 12px 0;
    padding: 43px 22px 0;
  }

  .renewal-problems__copy {
    width: 306px;
    max-width: 100%;
    height: 108px;
    font-size: 15px;
    line-height: 28.5px;
  }

  .renewal-problems__copy p {
    display: block;
    margin: 0;
  }

  .renewal-problems__illustration {
    flex: 0 0 112px;
    order: 2;
    align-self: center;
    width: 148px;
    height: 112px;
  }

  .renewal-problems__copy--first {
    order: 1;
  }

  .renewal-problems__copy--second {
    order: 3;
    align-self: center;
  }
}


/* ===== 2026-renewal-results.css ===== */
/* 2026 front-page renewal: results section */
.renewal-results,
.renewal-results * {
  box-sizing: border-box;
}

.renewal-results__legacy[hidden] {
  display: none !important;
}

.home main section.renewal-results {
  width: 100%;

  margin: 0;
  padding: 120px 0 0;
  background: linear-gradient(180deg, #f1faf2 0%, #fff 100%);
  overflow: hidden;
}

.renewal-results__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 45px;
  width: 1044px;
  margin: 0 auto;
}

.renewal-results__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  width: 100%;
  height: 99.2px;
}

.renewal-results__leaf {
  display: block;
  flex: 0 0 110px;
  width: 110px;
  height: auto;
  margin: 0;
}

.renewal-results__heading h2 {
  display: flex;
  flex: 0 0 451px;
  flex-direction: column;
  justify-content: center;
  width: 451px;
  margin: 0;
  padding: 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-style: normal;
  font-weight: 700;
  line-height: 51.2px;
  text-align: center;
}

.renewal-results__title-line {
  display: block;
  white-space: nowrap;
}

.renewal-results__title-place,
.renewal-results__title-record,
.renewal-results__title-rich {
  display: inline;
}

.renewal-results__heading h2 strong {
  font-size: 32px;
  font-weight: 700;
}

.renewal-results__heading h2 em {
  color: #10ad5b;
  font-size: 29.6px;
  font-style: normal;
  font-weight: 700;
}

.renewal-results__title-line--two em {
  font-size: 32px;
}

.renewal-results__catch {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1044px;
  height: 100.96px;
  margin: 0;
  padding: 0 20px 10px;
  border: 2px solid #10ad6f;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 40.96px;
  text-align: center;
}

.renewal-results__catch::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 10px;
  border-top: 2px solid #10ad6f;
  background: linear-gradient(90deg, #10ad6f 0%, #10ad6f 10%, rgba(16, 173, 111, 0) 20%, rgba(16, 173, 111, 0) 100%);
  content: "";
}

.renewal-results__catch strong {
  color: #10ad5b;
}

.renewal-results__catch-break {
  display: none;
}

.renewal-results__body {
  display: grid;
  grid-template-columns: 508px 496px;
  align-items: center;
  gap: 40px;
  width: 1044px;
}

.renewal-results__video {
  position: relative;
  display: block;
  width: 508px;
  height: 286px;
  border-radius: 4px;
  overflow: hidden;
}

.renewal-results__thumbnail {
  display: block;
  width: 508px;
  height: 286px;
  margin: 0;
  object-fit: cover;
}

.renewal-results__play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 68px;
  height: 48px;
  margin: 0;
  transform: translate(-50%, -50%);
}

.renewal-results__content {
  width: 496px;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-results__content h3 {
  margin: 0 0 19px;
  padding: 0;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 46.08px;
}

.renewal-results__content h3 span,
.renewal-results__content h3 strong {
  color: #10ad5b;
  font-weight: 700;
}

.renewal-results__content p {
  margin: 0 0 16px;
  padding: 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

.renewal-results__content p:last-child {
  margin-bottom: 0;
}

.renewal-results__content a {
  color: inherit;
  text-decoration: underline;
}

.renewal-results__copy-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .home main section.renewal-results {
    height: 899px;
    padding: 30.24px 0 0;
  }

  .renewal-results__inner {
    align-items: flex-start;
    gap: 25px;
    width: calc(100% - 32px);
    max-width: 370px;
    margin: 0 auto;
  }

  .renewal-results__heading {
    display: grid;
    grid-template-columns: 97.84px 1fr 97.84px;
    grid-template-rows: 149px 39.25px;
    gap: 0;
    width: 100%;
    height: 188.25px;
  }

  .renewal-results__leaf {
    align-self: end;
    width: 97.84px;
    height: auto;
  }

  .renewal-results__leaf--left {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .renewal-results__leaf--right {
    grid-column: 3;
    grid-row: 1 / 3;
  }

  .renewal-results__heading h2 {
    grid-column: 1 / -1;
    grid-row: 1;
    align-self: start;
    display: flex;
    width: 100%;
    flex-basis: auto;
    font-size: 23.1px;
    line-height: 38.4px;
  }

  .renewal-results__title-line {
    display: block;
    white-space: nowrap;
  }

  .renewal-results__title-place,
  .renewal-results__title-record,
  .renewal-results__title-rich,
  .renewal-results__title-effect {
    display: block;
    height: 38.4px;
    line-height: 38.4px;
  }

  .renewal-results__heading h2 .renewal-results__title-place strong {
    font-size: 21.6px;
  }

  .renewal-results__heading h2 .renewal-results__title-record em {
    font-size: 19.9px;
  }

  .renewal-results__heading h2 .renewal-results__title-record strong {
    font-size: 21.6px;
  }

  .renewal-results__heading h2 .renewal-results__title-rich strong {
    font-size: 21.6px;
  }

  .renewal-results__heading h2 .renewal-results__title-line--two .renewal-results__title-effect {
    font-size: 21.6px;
  }

  .renewal-results__catch {
    flex-direction: column;
    width: 100%;
    height: 95.19px;
    padding: 0 8px 10px;
    font-size: 16px;
    line-height: 25.6px;
  }

  .renewal-results__catch-break {
    display: none;
  }

  .renewal-results__catch > span {
    white-space: nowrap;
  }

  .renewal-results__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
    width: 100%;
  }

  .renewal-results__video {
    width: 100%;
    height: auto;
    aspect-ratio: 343.33 / 193.13;
  }

  .renewal-results__thumbnail {
    width: 100%;
    height: 100%;
  }

  .renewal-results__play {
    width: 54px;
    height: 38px;
  }

  .renewal-results__content {
    width: 100%;
  }

  .renewal-results__content h3 {
    margin-bottom: 17px;
    font-size: 19px;
    line-height: 34.2px;
  }

  .renewal-results__content p {
    margin-bottom: 17px;
    font-size: 15px;
    line-height: 27px;
  }

  .renewal-results__copy-pc {
    display: none;
  }

  .renewal-results__copy-sp {
    display: inline;
  }
}


/* ===== 2026-renewal-media.css ===== */
/* 2026 front-page renewal: media coverage */

.renewal-media,
.renewal-media * {
  box-sizing: border-box;
}

.home main section.renewal-media,
main.access section.renewal-media {
  --renewal-media-item-width: 149.33px;
  --renewal-media-gap: 24px;
  --renewal-media-group-width: 842.65px;
  --renewal-media-travel: -866.65px;
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
  padding: 50px 0;
  position: relative;
  z-index: 1;
}

.renewal-media__title {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  height: 56.67px;
  margin: 0 0 40px;
  padding: 0;
  border-bottom: 2.667px solid #88bd45;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: 36px;
  text-align: center;
}

.renewal-media__viewport {
  width: var(--renewal-media-group-width);
  max-width: 100%;
  height: 203.56px;
  margin: 0 auto;
  overflow: hidden;
}

.renewal-media__track {
  display: flex;
  align-items: flex-start;
  gap: var(--renewal-media-gap);
  width: max-content;
  will-change: transform;
}

.renewal-media__group {
  display: flex;
  flex: 0 0 var(--renewal-media-group-width);
  align-items: flex-start;
  gap: var(--renewal-media-gap);
  width: var(--renewal-media-group-width);
}

.renewal-media__item {
  display: block;
  flex: 0 0 var(--renewal-media-item-width);
  width: var(--renewal-media-item-width);
  height: 197.71px !important;
  margin: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  object-fit: fill;
}

.renewal-media__item--medium {
  height: 201.67px !important;
}

.renewal-media__item--tall {
  height: 203.56px !important;
}

@media screen and (max-width: 767.98px) {
  .home main section.renewal-media,
  main.access section.renewal-media {
    max-width: none;
  }

  /* the section goes full bleed on SP, so the title is pulled back to the
     content column - otherwise its rule runs edge to edge */
  .renewal-media__title {
    width: calc(100vw - 32px);
    max-width: 370px;
    margin-right: auto;
    margin-left: auto;
  }

  .renewal-media__track {
    animation: renewal-media-slide 45s linear infinite;
  }

  .renewal-media__viewport {
    width: 100%;
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .renewal-media__track {
    animation: none;
  }
}

@keyframes renewal-media-slide {
  to {
    transform: translate3d(var(--renewal-media-travel), 0, 0);
  }
}


/* ===== 2026-renewal-voices.css ===== */
/* 2026 front-page renewal: patient voices */

.renewal-voices,
.renewal-voices * {
  box-sizing: border-box;
}

.home main section.renewal-voices,
main.access section.renewal-voices {
  --voices-slide-width: 332px;
  --voices-slide-height: 220.93px;
  width: 100%;
  max-width: 1040.33px;
  margin: 0 auto;
  padding: 40px 0 120px;
  position: relative;
  z-index: 1;
  background: #fff;
  color: #1a1a1a;
}

/* 店舗ページだけ下余白を半分に（TOPは120pxのまま） */
main.access section.renewal-voices {
  padding-bottom: 60px;
}

.renewal-voices__title {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  height: 65.33px;
  margin: 0 0 29px;
  padding: 0;
  border-bottom: 2.667px solid #88bd45;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 38px;
  text-align: center;
}

.renewal-voices__lead {
  display: flex;
  align-items: center;
  width: 100%;
  height: 24px;
  margin: 0 0 29px !important;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

.renewal-voices__lead strong {
  font-weight: 700;
}

.renewal-voices__record {
  width: 1020px;
  max-width: 100%;
  min-height: 207px;
  margin: 0 auto 29px;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-weight: 700;
}

.renewal-voices__record-label {
  margin: 0 0 9px;
  font-size: 23.109px;
  line-height: normal;
}

.renewal-voices__record-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  width: 100%;
}

/* 元サイズ 372.996x114.509 の 70%（クライアント指示で縮小） */
.renewal-voices__rate {
  display: block;
  flex: 0 0 261.1px;
  width: 261.1px;
  height: 80.16px;
  margin: 0;
}

.renewal-voices__record-copy {
  flex: 1 1 auto;
  margin: 0;
  font-size: 31.096px;
  line-height: 1.4;
  white-space: nowrap;
}

.renewal-voices__record-copy strong {
  color: #df9118;
  font-size: 49.753px;
  font-weight: 700;
}

.renewal-voices__date {
  width: max-content;
  margin: 12px 0 0 auto;
  padding: 7.111px 17.776px;
  border-radius: 999px;
  background: rgba(223, 145, 24, 0.13);
  color: #df9118;
  font-size: 17.776px;
  line-height: normal;
  white-space: nowrap;
}

.cont2-slider__viewport {
  width: calc(100% - 20px);
  max-width: 1020px;
  height: var(--voices-slide-height);
  margin: 0 auto;
  overflow: hidden;
}

.cont2-slider__track {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  width: max-content;
  animation: renewal-voices-slide 141.23s linear infinite;
  will-change: transform;
}

.cont2-slider__group {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-start;
  gap: 8px;
}

.cont2-slider__item {
  display: block;
  flex: 0 0 var(--voices-slide-width);
  width: var(--voices-slide-width);
  height: var(--voices-slide-height) !important;
  margin: 0;
  border-radius: 4px;
  object-fit: cover;
}

@media screen and (max-width: 767.98px) {
  .home main section.renewal-voices,
  main.access section.renewal-voices {
    --voices-slide-width: min(332px, calc(100vw - 32px));
    --voices-slide-height: min(220.93px, calc((100vw - 32px) * 0.66545));
    width: 100%;
    max-width: none;
    padding: 40px 0;
  }

  .renewal-voices__title {
    width: calc(100vw - 32px);
    max-width: 370px;
    height: auto;
    min-height: 65.33px;
    margin: 0 auto 24px;
    padding: 0 0 12px;
    align-items: flex-start;
    font-size: 22px;
    line-height: 1.5;
  }

  .renewal-voices__lead {
    display: block;
    width: calc(100% - 32px);
    max-width: 370px;
    height: auto;
    margin: 0 auto 24px !important;
    font-size: 14px;
    line-height: 1.8;
  }

  .renewal-voices__record {
    width: calc(100% - 32px);
    max-width: 370px;
    min-height: 0;
    margin: 0 auto 24px;
  }

  .renewal-voices__record-label {
    font-size: 18px;
  }

  .renewal-voices__record-row {
    display: block;
  }

  /* SPも同じく70%（240px -> 168px） */
  .renewal-voices__rate {
    width: min(100%, 168px);
    height: auto;
    margin-top: 3%;
  }

  .renewal-voices__record-copy {
    margin-top: 4px;
    font-size: 21px;
    white-space: normal;
  }

  .renewal-voices__record-copy strong {
    font-size: 36px;
  }

  .renewal-voices__date {
    margin-top: 10px;
    padding: 6px 12px;
    font-size: 13px;
  }

  .cont2-slider__viewport {
    width: calc(100% - 32px);
    max-width: 370px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cont2-slider__track {
    animation: none;
  }
}

@keyframes renewal-voices-slide {
  to {
    transform: translate3d(calc(-50% - 4px), 0, 0);
  }
}


/* ===== 2026-renewal-voice-cards.css ===== */
.voice-slider {
  width: min(1040px, calc(100vw - 32px));
  margin: 44px auto 0;
  font-family: Meiryo, "Yu Gothic", sans-serif;
}

.voice-slider__viewport {
  overflow: hidden;
  padding: 8px 0 16px;
}

.voice-slider__stage {
  position: relative;
}

.voice-slider__track {
  display: flex;
  gap: 21px;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: transform 0.45s ease;
  will-change: transform;
}

.voice-card {
  box-sizing: border-box;
  display: flex;
  flex: 0 0 calc((100% - 50px) / 3);
  min-width: 0;
  min-height: 356px;
  padding: 14px;
  flex-direction: column;
  color: #1c2b2c;
  background: #fff;
  border: 2px solid #d9efd9;
  border-radius: 12px;
  box-shadow: 0 6px 8px rgba(79, 171, 99, 0.06);
}

.voice-card__header {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.voice-card__thumb {
  width: 92px;
  height: 92px;
  overflow: hidden;
  border-radius: 12px;
}

.voice-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.voice-card__summary {
  min-width: 0;
}

.voice-card__ttl {
  box-sizing: border-box;
  display: flex;
  min-height: 65px;
  margin: 0;
  padding: 7px 10px;
  align-items: center;
  color: #1c2b2c;
  background: #eff9df;
  border-left: 6px solid #4fab63;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.45;
}

.voice-card__profile {
  margin: 8px 0 0;
  color: #53615f;
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.45;
}

.voice-card__subject {
  margin: 14px 0 0;
  color: #111;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.7;
}

.voice-card__excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin: 4px 0 12px;
  color: #333;
  font-size: 15px;
  line-height: 1.75;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.voice-card__link {
  display: inline-flex;
  width: 106px;
  min-height: 35px;
  margin-top: auto;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: #4fab63;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.voice-card__link:hover,
.voice-card__link:focus-visible {
  color: #fff;
  background: #378f4b;
}

.voice-slider__dots {
  display: flex;
  margin-top: 12px;
  gap: 10px;
  align-items: center;
  justify-content: center;
}

.voice-slider__button {
  position: absolute;
  z-index: 2;
  top: 50%;
  display: grid;
  width: 42px;
  height: 42px;
  padding: 0;
  place-items: center;
  background: #4fab63;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  transform: translateY(-50%);
}

.voice-slider__button--prev {
  left: -58px;
}

.voice-slider__button--next {
  right: -58px;
}

.voice-slider__button img {
  display: block;
  width: 9px;
  height: auto;
}

.voice-slider__button--prev img {
  transform: rotate(180deg);
}

.voice-slider__button:disabled {
  opacity: 0.32;
  cursor: default;
}

.voice-slider__dot {
  display: block;
  width: 10px;
  height: 10px;
  padding: 0;
  background: #d5e6d8;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
}

.voice-slider__dot[aria-current="true"] {
  background: #4fab63;
  transform: scale(1.2);
}

.renewal-voices__support {
  width: min(1040.2px, calc(100vw - 32px));
  margin: 34px auto 0;
  color: #000;
  font-family: Meiryo, "Yu Gothic", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
  text-align: left;
}

.renewal-voices__support strong {
  font-weight: 700;
}

.renewal-voice-cards__legacy[hidden] {
  display: none !important;
}

@media (max-width: 767px) {
  .voice-slider {
    width: min(343.33px, calc(100vw - 32px));
    margin-top: 32px;
  }

  .voice-slider__track {
    gap: 16px;
  }

  .voice-slider__button {
    width: 36px;
    height: 36px;
  }

  .voice-slider__button--prev {
    left: -12px;
  }

  .voice-slider__button--next {
    right: -12px;
  }

  .voice-card {
    flex-basis: 100%;
  }

  .renewal-voices__support {
    width: min(343.33px, calc(100vw - 32px));
    margin-top: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .voice-slider__track {
    transition: none;
  }
}


/* ===== 2026-renewal-course.css ===== */
.renewal-course,
.renewal-course * {
  box-sizing: border-box;
}

.home main section.renewal-course {
  width: 100%;
  margin: 0;
  padding: 80px 16px;
  color: #000;
  background: #fffcf5;
  font-family: Meiryo, "Yu Gothic", sans-serif;
}

.renewal-course__inner {
  width: min(1020px, 100%);
  margin: 0 auto;
}

.renewal-course__title {
  display: flex;
  width: 100%;
  min-height: 117px;
  margin: 0 0 36px;
  padding: 0 0 20px;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  color: #000;
  border-bottom: 2.667px solid #88bd45;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}

.renewal-course__title strong {
  font-size: 32px;
  line-height: 1.6;
}

.renewal-course__intro,
.renewal-course__closing {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
}

.renewal-course__intro strong,
.renewal-course__closing strong {
  font-weight: 700;
}

.renewal-course__treatment {
  display: grid;
  margin-top: 36px;
  grid-template-columns: 234px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.renewal-course__photo {
  display: block;
  width: 234px;
  height: 131px;
  object-fit: cover;
}

.renewal-course__details h3 {
  margin: 0;
  color: #10ad5b;
  font-size: 20.8px;
  font-weight: 700;
  line-height: 1.5;
}

.renewal-course__details ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.renewal-course__details li {
  display: flex;
  min-height: 76px;
  padding: 10px 0;
  flex-direction: column;
  justify-content: center;
  border-bottom: 1px dashed rgba(172, 172, 172, 0.93);
  font-size: 16px;
  line-height: 1.6;
}

.renewal-course__details li strong {
  font-weight: 700;
}

.renewal-course__details p {
  margin: 10px 0 0;
  font-size: 16px;
  line-height: 1.8;
}

.renewal-course__plan {
  width: 820px;
  margin: 89px auto 0;
}

.renewal-course__plan-heading {
  display: block;
  width: 646px;
  height: 281px !important;
  margin: 0 auto;
  object-fit: cover;
}

.renewal-course__price-card {
  margin-top: 0;
  padding: 24px;
  background: #fff;
  border: 2px solid #d9efd9;
  border-radius: 12px;
  box-shadow: 0 6px 8px rgba(79, 171, 99, 0.06);
}

.renewal-course__prices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 21px;
}

.renewal-course__price {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.renewal-course__price img {
  display: block;
  width: 98px;
  height: 102px;
  object-fit: contain;
}

.renewal-course__price p {
  margin: 0;
  white-space: nowrap;
}

.renewal-course__price strong {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.2;
}

.renewal-course__price span {
  font-size: 22px;
  font-weight: 700;
}

.renewal-course__cta {
  display: flex;
  width: 320px;
  height: 64px;
  margin: 16px auto 0;
  padding: 0 20px;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: #10ad5b;
  border-radius: 999px;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
}

.renewal-course__cta span {
  margin-left: auto;
  font-size: 28px;
  line-height: 1;
}

/* テーマの a:hover{color:#000} に上書きされて黒字になるのを防ぐ */
.renewal-course__cta:hover,
.renewal-course__cta:focus-visible {
  color: #fff;
  background: #0d9a4f;
}

.renewal-course__closing {
  width: 1008px;
  max-width: 100%;
  margin: 42px auto 0;
}

@media (max-width: 767.98px) {
  .home main section.renewal-course {
    padding: 56px 16px;
  }

  .renewal-course__title {
    min-height: 96px;
    margin-bottom: 28px;
    font-size: 21px;
  }

  .renewal-course__inner {
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-course__title strong {
    font-size: 27px;
  }

  .renewal-course__treatment {
    display: flex;
    margin-top: 28px;
    flex-direction: column;
    gap: 20px;
  }

  .renewal-course__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 269 / 179;
  }

  .renewal-course__details h3 {
    font-size: 19px;
  }

  .renewal-course__plan {
    width: 100%;
    margin-top: 52px;
  }

  .renewal-course__plan-heading {
    width: 100%;
    height: auto !important;
    aspect-ratio: 646 / 281;
  }

  .renewal-course__price-card {
    padding: 20px 16px;
  }

  .renewal-course__prices {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .renewal-course__price {
    justify-content: center;
  }

  .renewal-course__price img {
    width: 78px;
    height: 80px;
  }

  .renewal-course__price strong {
    font-size: 32px;
  }

  .renewal-course__price span {
    font-size: 18px;
  }

  .renewal-course__cta {
    width: min(280px, 100%);
    height: 56px;
  }

  .renewal-course__closing {
    margin-top: 32px;
  }
}


/* ===== 2026-renewal-mechanism.css ===== */
.renewal-mechanism,
.renewal-mechanism * {
  box-sizing: border-box;
}

.home main section.renewal-mechanism {
  width: 100%;
  margin: 0;
  padding: 80px 0px;
  background: #fff;
  color: #000;
}

.renewal-mechanism__panel {
  position: relative;
  width: min(1000px, 100%);
  margin: 0 auto;
  padding: 60px 83px 100px;
  overflow: hidden;
  background-color: #fff;
  background-image:
    url("../img/renewal/mechanism/left_top.png"),
    url("../img/renewal/mechanism/right_top.png");
  background-position: left top, right top;
  background-repeat: no-repeat;
  background-size: auto 183px, auto 183px;
}

/* The bottom corners are the same two clovers rotated 180deg: rotating the
   whole layer maps left-top to bottom-right and right-top to bottom-left. */
.renewal-mechanism__panel::after {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  background-image:
    url("../img/renewal/mechanism/left_top.png"),
    url("../img/renewal/mechanism/right_top.png");
  background-position: left top, right top;
  background-repeat: no-repeat;
  background-size: auto 183px, auto 183px;
  transform: rotate(180deg);
  pointer-events: none;
}

.renewal-mechanism__title,
.renewal-mechanism__items {
  position: relative;
  z-index: 1;
}

.renewal-mechanism__title {
  display: flex;
  width: 511px;
  min-height: 181px;
  margin: 0 auto 34px;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  color: #000;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
  font-weight: 600;
  line-height: 1.54;
  text-align: center;
}

.renewal-mechanism__title span {
  font-size: 30px;
}

.renewal-mechanism__title strong {
  font-size: 33px;
  font-weight: 600;
  white-space: nowrap;
}

.renewal-mechanism__title em {
  color: #10ad5a;
  font-size: 40px;
  font-style: normal;
}

.renewal-mechanism__title b {
  font-size: 38px;
  font-weight: 600;
}

.renewal-mechanism__items {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.renewal-mechanism__item {
  display: grid;
  grid-template-columns: 319px 502px;
  gap: 10px;
  align-items: start;
}

.renewal-mechanism__item img {
  display: block;
  width: 319px;
  height: 166px !important;
  object-fit: cover;
}

.renewal-mechanism__item:first-child img {
  height: 148px !important;
}

.renewal-mechanism__copy {
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 22px;
}

/* scoped twice so the theme's `body.home section p` margin cannot win and
   collapse the blank line the node puts between paragraphs (PC and SP) */
.renewal-mechanism .renewal-mechanism__copy p {
  margin: 0 0 27px;
}

.renewal-mechanism .renewal-mechanism__copy p:last-child {
  margin-bottom: 0;
}

.renewal-mechanism__copy strong {
  color: #10ad5a;
  font-weight: 400;
}
.sec11{
    margin-top: 3% !important;
}
@media (max-width: 767.98px) {
  .home main section.renewal-mechanism {
    padding: 80px 0 0;
  }
.sec11{
    margin-top: 10% !important;
}
  /* SP follows Figma 80:2240 */
  .renewal-mechanism__panel {
    width: 100%;
    min-height: 1895px;
    padding: 26px 0 36px;
    background-image:
      url("../img/renewal/mechanism/left_top.png"),
      url("../img/renewal/mechanism/right_top.png"),
      url("../img/renewal/mechanism/sp_bottom_clover.png");
    background-position: left top, right top, center bottom;
    background-repeat: no-repeat;
    background-size: auto 107px, auto 107px, 100% auto;
    box-shadow: none;
  }

  /* SP uses the dedicated bottom band instead of the rotated corners */
  .renewal-mechanism__panel::after {
    content: none;
  }

  .renewal-mechanism__title {
    width: min(306px, calc(100vw - 48px));
    min-height: 0;
    margin: 0 auto;
    line-height: normal;
  }

  /* each line height is pinned so the larger runs cannot grow the boxes */
  .renewal-mechanism__title span {
    height: 28.8px;
    margin-bottom: 5px;
    font-size: 18px;
    line-height: 28.8px;
  }

  .renewal-mechanism__title strong,
  .renewal-mechanism__title b {
    height: 36.8px;
    line-height: 36.8px;
  }

  .renewal-mechanism__title strong {
    font-size: 20px;
  }

  .renewal-mechanism__title em {
    font-size: 24px;
  }

  .renewal-mechanism__title b {
    font-size: 23px;
  }

  /* the node has no card chrome on SP: the copy sits straight on the
     foliage background, so the panel artwork stays visible behind it */
  .renewal-mechanism__items {
    width: calc(100vw - 32px);
    max-width: 370px;
    margin: 0 auto;
    padding: 12px 12px 32px;
    gap: 10px;
    background: none;
    border-radius: 0;
    box-shadow: none;
  }

  .renewal-mechanism__item {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .renewal-mechanism__item img,
  .renewal-mechanism__item:first-child img {
    width: 100%;
    height: auto !important;
    aspect-ratio: 319 / 166;
    object-fit: cover;
  }

  .renewal-mechanism__item:first-child img {
    aspect-ratio: 319 / 148;
  }

  /* 24px below each copy block, so copy to next image is 34px */
  .renewal-mechanism__copy {
    padding-bottom: 24px;
    font-size: 15px;
    line-height: 27px;
  }

}


/* ===== 2026-renewal-recommend.css ===== */
/* 2026 front-page renewal: recommendations from doctors / nurses / acupuncturists (Figma 199:248) */

.renewal-recommend,
.renewal-recommend * {
  box-sizing: border-box;
}

.renewal-recommend__legacy[hidden] {
  display: none !important;
}

.home main section.renewal-recommend {
  width: 100%;
  margin: 0;
  padding: 80px 16px;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-recommend__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
}

/* ---- heading ---- */

.renewal-recommend__head {
  display: flex;
  flex-direction: column;
  gap: 34px;
}

.renewal-recommend__title {
  margin: 0;
  padding: 0 0 24px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 48px;
  text-align: center;
}

/* the Figma node fixes each line box at 48px, so the 32px run cannot grow it */
.renewal-recommend__title-line {
  display: block;
  height: 48px;
}

.renewal-recommend__title strong {
  font-size: 32px;
  font-weight: 700;
}

.renewal-recommend__lead {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 700;
  line-height: 28.8px;
}

/* ---- doctor columns ---- */

.renewal-recommend__doctors {
  display: flex;
  gap: 24px;
  align-items: stretch;
}

.renewal-recommend__doctor {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  width: 495.2px;
  margin: 0;
}

.renewal-recommend__doctors .renewal-recommend__doctor:first-child {
  width: 520.2px;
  padding-right: 24px;
  border-right: 1px solid #4fab63;
}

.renewal-recommend__photo {
  position: relative;
  width: 160px;
  height: 160px;
  margin: 0 auto 25px;
  overflow: hidden;
  border-radius: 50%;
}

.renewal-recommend__photo img {
  display: block;
  width: 160px;
  height: 160px !important;
  object-fit: cover;
}

.renewal-recommend__doctor--ishida .renewal-recommend__photo {
  background: #d7d7d7;
}

/* the Figma node crops this photo from a 172px source offset inside the 160px circle */
.renewal-recommend__doctor--ishida .renewal-recommend__photo img {
  position: absolute;
  top: -12.25px;
  left: -6px;
  width: 172px;
  max-width: none;
  height: 172px !important;
}

.renewal-recommend__doctor-catch {
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  background: none;
  color: #33402d;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "MS PMincho", serif;
  font-size: 22px;
  font-weight: 600;
  line-height: 31.9px;
}

.renewal-recommend__doctor-catch em {
  color: #189731;
  font-style: normal;
}

/* scoped twice so the theme's `body.home section p` margin cannot win */
.renewal-recommend .renewal-recommend__doctor-name {
  display: flex;
  align-items: baseline;
  margin: 0 0 18px;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-weight: 400;
}

.renewal-recommend__doctor-role {
  font-size: 20px;
  line-height: 30px;
}

.renewal-recommend__doctor-person {
  margin-left: 7.6px;
  font-size: 22.4px;
  line-height: 34px;
}

.renewal-recommend__doctor-honorific {
  margin-left: 3.7px;
  font-size: 16px;
  line-height: 24px;
}

.renewal-recommend__doctor-text {
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 25.5px;
}

.renewal-recommend__doctor-text p {
  margin: 0;
}

.renewal-recommend__doctor-text em {
  color: #10ad5a;
  font-style: normal;
}

.renewal-recommend__doctor-text .renewal-recommend__doctor-link {
  margin-top: 10.17px;
}

.renewal-recommend__doctor-link a {
  color: #168e59;
  text-decoration: underline;
  text-underline-position: from-font;
}

/* ---- recommendation cards ---- */

.renewal-recommend__cards {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.renewal-recommend__card {
  display: flex;
  gap: 20px;
  align-items: center;
  margin: 0;
  padding: 20px 24px;
  background: #fff;
  box-shadow: 0 5px 3.75px rgba(0, 0, 0, 0.06);
}

.renewal-recommend__card-photo {
  flex: 0 0 112px;
  width: 112px;
  height: 112px;
  overflow: hidden;
  border: 4px solid #d8f0e8;
  border-radius: 56px;
}

.renewal-recommend__card-photo img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}

.renewal-recommend__card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 27px;
  min-width: 0;
}

.renewal-recommend__card-quote {
  margin: 0;
  color: #563939;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "MS PMincho", serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 25.6px;
}

.renewal-recommend__card-quote em {
  color: #10ad5a;
  font-style: normal;
}

.renewal-recommend__card-namebox {
  padding-left: 14px;
  border-left: 2.667px solid #23a47a;
}

.renewal-recommend__card-role {
  margin: 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 20.67px;
}

/* height is fixed so the 14px run cannot grow the 49px Figma name box */
.renewal-recommend__card-person {
  height: 25.33px;
  margin: 2.98px 0 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 17px;
  font-weight: 700;
  line-height: 25.33px;
}

.renewal-recommend__card-person span {
  margin-left: 6px;
  font-size: 14px;
  font-weight: 400;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  .home main section.renewal-recommend {
    padding: 40px 0;
  }

  .renewal-recommend__inner {
    gap: 32px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-recommend__head {
    gap: 20px;
  }

  .renewal-recommend__title {
    padding-bottom: 16px;
    font-size: 17px;
    line-height: 32px;
  }

  .renewal-recommend__title-line {
    height: auto;
  }

  .renewal-recommend__title strong {
    font-size: 21px;
  }

  .renewal-recommend__lead {
    font-size: 14px;
    line-height: 24px;
  }

  /* SP reflows each doctor per Figma 69:366: catch on top, then the photo
     beside a two-line name, then the body copy and the link. */
  .renewal-recommend__doctors {
    flex-direction: column;
    gap: 0;
  }

  .renewal-recommend__doctor,
  .renewal-recommend__doctors .renewal-recommend__doctor:first-child {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    grid-template-areas:
      "catch catch"
      "photo name"
      "text  text";
    column-gap: 13px;
    row-gap: 11px;
    width: 100%;
    padding: 22px 0;
    border-top: 2px solid #10ad5a;
    border-right: 0;
    border-bottom: 2px solid #10ad5a;
  }

  /* collapse the shared rule between two stacked blocks into a single 2px line */
  .renewal-recommend__doctor + .renewal-recommend__doctor {
    margin-top: -2px;
  }

  .renewal-recommend__doctor .renewal-recommend__photo {
    grid-area: photo;
    width: 84px;
    height: 84px;
    margin: 0;
  }

  .renewal-recommend__doctor .renewal-recommend__photo img {
    width: 84px;
    height: 84px !important;
  }

  .renewal-recommend__doctor--ishida .renewal-recommend__photo img {
    top: -6.43px;
    left: -3.15px;
    width: 90.3px;
    height: 90.3px !important;
  }

  .renewal-recommend__doctor-catch {
    display: flex;
    flex-direction: column;
    grid-area: catch;
    justify-content: center;
    min-height: 80px;
    margin: 0;
    font-size: 18px;
    line-height: 27.55px;
  }

  .renewal-recommend .renewal-recommend__doctor-name {
    grid-area: name;
    align-self: center;
    flex-wrap: wrap;
    margin: 0;
  }

  .renewal-recommend__doctor-person {
    order: 1;
    margin-left: 0;
    font-size: 20px;
    line-height: 30px;
  }

  .renewal-recommend__doctor-honorific {
    order: 2;
    margin-left: 3.68px;
    font-size: 16px;
    line-height: 24px;
  }

  .renewal-recommend__doctor-role {
    order: 3;
    width: 100%;
    font-size: 18px;
    line-height: 27.33px;
  }

  .renewal-recommend__doctor-text {
    grid-area: text;
    font-size: 15px;
    line-height: 25.5px;
  }

  .renewal-recommend__doctor-text .renewal-recommend__doctor-link {
    margin-top: 11px;
  }

  .renewal-recommend__cards {
    gap: 14px;
  }

  .renewal-recommend__card {
    gap: 14px;
    align-items: flex-start;
    padding: 16px;
  }

  .renewal-recommend__card-photo {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    border-width: 3px;
    border-radius: 36px;
  }

  .renewal-recommend__card-body {
    gap: 14px;
  }

  .renewal-recommend__card-quote {
    font-size: 14px;
    line-height: 22.4px;
  }

  .renewal-recommend__card-role {
    font-size: 12px;
    line-height: 18px;
  }

  .renewal-recommend__card-person {
    height: auto;
    font-size: 15px;
    line-height: 22px;
  }

  .renewal-recommend__card-person span {
    font-size: 12px;
  }
}


/* ===== 2026-renewal-voice-videos.css ===== */
/* 2026 front-page renewal: patient voice videos (Figma 98:4774) */

.renewal-voice-videos,
.renewal-voice-videos * {
  box-sizing: border-box;
}

.home main section.renewal-voice-videos {
  width: 100%;
  margin: 0;
  padding: 80px 0px 120px;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-voice-videos__inner {
  display: flex;
  flex-direction: column;
  gap: 37px;
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
}

.renewal-voice-videos__title {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  height: 56.67px;
  margin: 0;
  padding: 0;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 36px;
  text-align: center;
}

.renewal-voice-videos__list {
  display: flex;
  gap: 18px;
  align-items: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
}

.renewal-voice-videos__item {
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  gap: 19px;
  min-width: 0;
  min-height: 442px;
  margin: 0;
  padding: 1px;
  overflow: hidden;
  border: 1px solid #b9e5c9;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(79, 72, 65, 0.08);
  list-style: none;
}

.renewal-voice-videos__item::before,
.renewal-voice-videos__item::after {
  content: none;
}

/* ---- video ---- */

/* the video bleeds over the card's 1px inner padding so it sits flush to the border.
   The thumbnail is a link; the clip itself opens in a Magnific Popup iframe modal. */
.renewal-voice-videos__video {
  position: relative;
  display: block;
  flex: 0 0 auto;
  width: calc(100% + 2px);
  margin: -1px -1px 0;
  overflow: hidden;
  border: 6px solid #59c68c;
  background: #111;
  cursor: pointer;
}

/* the ratio sits on the image so the 6px frame is added outside it,
   matching the Figma 322 x 176.38 player area */
.renewal-voice-videos__video img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 322 / 176.38;
  margin: 0;
  object-fit: cover;
}

.renewal-voice-videos__video::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.28));
}

.renewal-voice-videos__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 58px;
  height: 40px;
  transform: translate3d(-50%, -50%, 0);
  border-radius: 12px;
  background: #14ad59;
  box-shadow: 0 8px 9px rgba(0, 0, 0, 0.22);
  transition: background-color 0.15s ease;
}

.renewal-voice-videos__play::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 22.15px;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid #fff;
}

.renewal-voice-videos__video:hover .renewal-voice-videos__play,
.renewal-voice-videos__video:focus-visible .renewal-voice-videos__play {
  background: #0f9a4d;
}

/* ---- modal ---- */

.renewal-voice-videos__modal .mfp-content {
  width: min(1000px, 92vw);
  max-width: 100%;
}

.renewal-voice-videos__modal .mfp-iframe-scaler {
  padding-top: 56.25%;
}

.renewal-voice-videos__modal .mfp-iframe-holder .mfp-close {
  top: -44px;
  right: -6px;
  padding-right: 0;
  color: #fff;
  opacity: 1;
}

.renewal-voice-videos__modal.mfp-bg {
  background: #000;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.renewal-voice-videos__modal.mfp-bg.mfp-ready {
  opacity: 0.85;
}

.renewal-voice-videos__modal.mfp-bg.mfp-removing {
  opacity: 0;
}

.renewal-voice-videos__modal.mfp-wrap .mfp-content {
  opacity: 0;
  transform: scale(0.97);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.renewal-voice-videos__modal.mfp-wrap.mfp-ready .mfp-content {
  opacity: 1;
  transform: scale(1);
}

.renewal-voice-videos__modal.mfp-wrap.mfp-removing .mfp-content {
  opacity: 0;
  transform: scale(0.97);
}

@media (prefers-reduced-motion: reduce) {
  .renewal-voice-videos__modal.mfp-bg,
  .renewal-voice-videos__modal.mfp-wrap .mfp-content {
    transition: none;
  }
}

/* ---- copy ---- */

.renewal-voice-videos__body {
  display: flex;
  flex-direction: column;
  gap: 9px;
  width: calc(100% - 27.78px);
  margin: 0 auto;
}

.renewal-voice-videos__heading {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #3f2f2b;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "MS PMincho", serif;
  font-size: 19px;
  font-weight: 600;
  line-height: 26.6px;
}

.renewal-voice-videos__copy {
  color: #333;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 25.9px;
}

.renewal-voice-videos .renewal-voice-videos__copy p {
  margin: 0;
}

.renewal-voice-videos__copy em {
  color: #14ad59;
  font-style: normal;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  .home main section.renewal-voice-videos {
    padding: 40px 0 80px;
  }

  .renewal-voice-videos__inner {
    gap: 24px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-voice-videos__title {
    height: 48px;
    font-size: 20px;
    line-height: 30px;
  }

  .renewal-voice-videos__list {
    flex-direction: column;
    gap: 20px;
  }

  /* the list is a column here, so flex-basis 0 would collapse the card height */
  .renewal-voice-videos__item {
    flex: 0 0 auto;
    min-height: 0;
    padding-bottom: 20px;
  }

  .renewal-voice-videos__body {
    width: calc(100% - 32px);
  }

  .renewal-voice-videos__heading {
    font-size: 17px;
    line-height: 24px;
  }

  .renewal-voice-videos__copy {
    font-size: 14px;
    line-height: 25.9px;
  }
}


/* ===== 2026-renewal-sec11.css ===== */
/* sec11 keeps its legacy PC layout; the SP view follows Figma 24:64.
   The theme sets a fluid root font-size on SP, so every value here is px
   to hold the Figma scale. Several theme rules use !important, hence the
   matching !important below. */

@media screen and (max-width: 767.98px) {
  .home main section.sec11 > .con_inner {
    width: calc(100vw - 32px);
    max-width: 370px;
    margin-right: auto;
    margin-left: auto;
  }

  /* ---- title ---- */

  .home main section.sec11 h3.wp-block-heading {
    margin: 0 0 40px;
    padding: 0 0 14.39px;
    border-bottom: 2.667px solid #88bd45;
    color: #000;
    font-family: Meiryo, "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 25.6px;
    text-align: center;
  }

  .home main section.sec11 h3.wp-block-heading .has-swl-deep-04-color {
    display: block;
    margin-top: 5.59px;
    font-size: 23px;
    line-height: 36.8px;
  }

  /* the design keeps 国が認める 高度専門鍼灸師 on one line at one size */
  .home main section.sec11 h3.wp-block-heading .swl-fz {
    font-size: inherit;
  }

  .home main section.sec11 h3.wp-block-heading br.sp_ {
    display: none;
  }

  /* ---- portrait and profile ---- */

  .home main section.sec11 .block-columns {
    display: flex;
    flex-direction: column;
    gap: 13px;
    margin: 0 0 48px !important;
  }

  .home main section.sec11 .wp-block-column {
    margin: 0;
  }

  .home main section.sec11 .wp-block-column.has-text-align-center {
    margin: 0 !important;
  }

  .home main section.sec11 .wp-block-column img {
    box-sizing: border-box;
    display: block;
    width: 230px;
    max-width: 230px;
    height: 230px !important;
    margin: 0 auto;
    padding: 12px;
    background: #fff;
    box-shadow: 0 5px 7.5px rgba(0, 0, 0, 0.35);
    object-fit: cover;
  }

  /* height is fixed to two 36.67px lines so the 21px name cannot grow them */
  .home main section.sec11 .wp-block-column > p {
    height: 73.34px;
    margin: 0 0 13.66px !important;
    color: #000;
    font-family: Meiryo, "Noto Sans JP", sans-serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 36.67px;
    text-align: left;
  }

  .home main section.sec11 .wp-block-column > p .u-fz-l {
    font-size: 21px;
  }

  .home main section.sec11 .wp-block-group__inner-container > p {
    margin: 0 0 10px !important;
    color: #000;
    font-family: Meiryo, "Noto Sans JP", sans-serif;
    font-size: 15px;
    line-height: 22.67px;
  }

  /* ---- credentials list ---- */

  .home main section.sec11 .wp-block-list {
    margin: 0;
    padding-left: 6px;
    list-style: none;
  }

  .home main section.sec11 .wp-block-list li {
    position: relative;
    margin: 0 0 8px;
    padding-left: 16px;
    color: #000;
    font-family: Meiryo, "Noto Sans JP", sans-serif;
    font-size: 15px;
    line-height: 24px;
  }

  .home main section.sec11 .wp-block-list li:last-child {
    margin-bottom: 0;
  }

  .home main section.sec11 .wp-block-list li::before {
    content: "";
    position: absolute;
    top: 10.5px;
    left: 0;
    width: 6px;
    height: 6px;
    border-radius: 3px;
    background: #000;
  }

  /* ---- body copy ---- */

  .home main section.sec11 .inner .txtbox {
    margin: 0 0 18px !important;
  }

  .home main section.sec11 .inner .txtbox:last-child {
    margin-bottom: 32.17px !important;
  }

  .home main section.sec11 .inner .txtbox p {
    margin: 0 !important;
    color: #000;
    font-family: Meiryo, "Noto Sans JP", sans-serif;
    font-size: 15px;
    line-height: 27px;
  }

  /* ---- credential photo strip (hidden on SP in the legacy layout) ---- */

  .home main section.sec11 > .con_inner > .img.sp-none {
    display: block !important;
    margin: 0 0 40px !important;
  }

  .home main section.sec11 > .con_inner > .img img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto !important;
    padding: 0;
    background: none;
    box-shadow: none;
  }

  /* ---- CTA ---- */

  .home main section.sec11 > .con_inner > .btn-item {
    width: 320px;
    max-width: calc(100% - 23px);
    margin: 0 auto;
  }

  .home main section.sec11 > .con_inner > .btn-item a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 64px;
    padding: 0 32px;
    border-radius: 50px;
    background: #10ad5a;
    color: #fff;
    font-family: Meiryo, "Noto Sans JP", sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 24px;
    text-align: center;
  }

  /* replace the legacy arrow image with the Figma chevron */
  .home main section.sec11 > .con_inner > .btn-item a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 16.68px;
    width: 8px;
    height: 8px;
    border: 0;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    background: none;
    transform: translateY(-50%) rotate(45deg);
  }
}


/* ===== 2026-renewal-inflam.css ===== */
/* 2026 front-page renewal: hidden inflammation (Figma PC 206:274 / SP 206:275) */

.renewal-inflam,
.renewal-inflam * {
  box-sizing: border-box;
}

.home main section.renewal-inflam {
  position: relative;
  width: 100%;
  min-height: 1330px;
  margin: 0;
  padding: 71px 0 0;
  overflow: hidden;
  background: #ffffee;
  color: #000;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
}

/* ---- side leaves ----
   renewal-inflam_pc.png and renewal-inflam_pc_right.png are separate
   428 x 2660 exports, each exactly 2x the node's 214 x 1330 side column,
   and both already carry the node's 74% opacity (max alpha 189), so no
   extra opacity is applied here. */

.renewal-inflam__deco {
  position: absolute;
  z-index: 0;
  top: 0;
  display: block;
  width: 214px;
  max-width: none;
  height: 1330px !important;
  pointer-events: none;
}

.renewal-inflam__deco--left {
  left: 0;
}

.renewal-inflam__deco--right {
  right: 0;
}

.renewal-inflam__deco-sp {
  display: none;
}

/* ---- content column ---- */

.renewal-inflam__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 619px;
  max-width: calc(100% - 32px);
  margin: 0 auto;
}

.renewal-inflam__main {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 27px;
    width: 100%;
    margin-bottom: 10px;
}

/* ---- heading ---- */

.renewal-inflam__head {
  position: relative;
  width: 100%;
  padding-top: 41.74px;
}

.renewal-inflam__naze {
  position: absolute;
  top: 0;
  left: 107.72px;
  display: block;
  width: 107.72px;
  height: 50.81px !important;
}

.renewal-inflam__lead {
  margin: 0;
  color: #000;
  font-size: 21.544px;
  font-weight: 500;
  line-height: 43.089px;
  text-align: center;
}

/* height is pinned to the single 63.286px line so the 48.475px run
   cannot grow it and push everything below out of register */
.renewal-inflam__title {
  height: 63.29px;
  margin: -4.04px 0 0;
  padding: 0;
  border: 0;
  background: none;
  color: #363636;
  font-size: 37.703px;
  font-weight: 600;
  line-height: 63.286px;
  text-align: center;
}

.renewal-inflam__title em {
  color: #10ad5a;
  font-size: 48.475px;
  font-style: normal;
}

/* ---- quoted objection box ---- */

.renewal-inflam__quote {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 600px;
  max-width: 100%;
  height: 101px;
  margin: 0;
  border: 1.188px solid #6a4f22;
  border-radius: 8.318px;
  background: #fff;
  color: #6a4f22;
  font-size: 20px;
  font-weight: 700;
  line-height: 32.082px;
  text-align: center;
}

/* ---- body ---- */

.renewal-inflam__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 42px;
  width: 600px;
  max-width: 100%;
}

.renewal-inflam__copy {
  width: 100%;
  color: #000;
  font-size: 15px;
  font-weight: 400;
  line-height: 27px;
}

/* scoped twice so the theme's `body.home section p` margin cannot win and
   collapse the blank line the node puts between paragraphs */
.renewal-inflam .renewal-inflam__copy p {
  margin: 0 0 27px;
}

.renewal-inflam .renewal-inflam__copy p:last-child {
  margin-bottom: 0;
}

/* ---- cause statement ---- */

.renewal-inflam__cause {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  width: 350px;
  max-width: 100%;
}

.renewal-inflam .renewal-inflam__cause p {
  width: 100%;
  margin: 0;
  text-align: center;
}

.renewal-inflam__cause-lead,
.renewal-inflam__cause-tail {
  color: #000;
  font-size: 22.222px;
  font-weight: 500;
  line-height: 44.444px;
}

.renewal-inflam__cause-main {
  color: #10ad5a;
  font-size: 50px;
  font-weight: 600;
  line-height: 65.278px;
}

/* ---- diagram and closing copy ---- */

.renewal-inflam__detail {
  display: flex;
  flex-direction: column;
  gap: 15px;
  width: 100%;
}

.renewal-inflam .renewal-inflam__note {
  margin: 0;
  color: #000;
  font-size: 15px;
  font-weight: 400;
  line-height: 27px;
}

.renewal-inflam__figure {
  position: relative;
  width: 100%;
  height: 275.214px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #fff;
}

/* the node shows a vertical crop of the source, 61.8% down the overflow */
.renewal-inflam__figure img {
  position: absolute;
  top: 63.25px;
  left: 10.26px;
  display: block;
  width: 570.94px;
  max-width: none;
  height: 205.13px !important;
  object-fit: cover;
  object-position: center 61.8%;
}

.renewal-inflam__pill {
  position: absolute;
  top: 17.09px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 20.513px;
  border-radius: 47.863px;
  color: #000;
  font-size: 20.513px;
  font-weight: 400;
  line-height: 46.154px;
  white-space: nowrap;
}

.renewal-inflam__pill--red {
  left: 116.24px;
  background: #ffd5d5;
}

.renewal-inflam__pill--purple {
  left: 396.58px;
  background: #edc3ff;
}

.renewal-inflam__result-group {
  width: 100%;
}

.renewal-inflam__result {
  color: #000;
  font-size: 22px;
  font-weight: 600;
  line-height: 38px;
}

.renewal-inflam__result em {
  color: #10ad5a;
  font-size: 26px;
  font-style: normal;
}

.renewal-inflam__copy--guide {
  margin-top: 38px;
}

.renewal-inflam__arrow {
  display: block;
  flex: 0 0 auto;
  width: 52px;
  height: 52px !important;
}

/* ---- SP (Figma 206:275) ---- */

@media screen and (max-width: 767.98px) {
  /* The node lets the decoration break out above the section: its top 50px sit
     over the previous section, so only the lower half is backed by #ffffee and
     the artwork reads as overflowing the content area. `overflow` must stay
     visible or that upper half is clipped. */
  .home main section.renewal-inflam {
    min-height: 0;
    padding: 97px 0 0;
    overflow: visible;
  }

  .renewal-inflam__deco {
    display: none;
  }

  /* the FV bottom strip, flipped, becomes the top decoration */
  .renewal-inflam__deco-sp {
    position: absolute;
    z-index: 0;
    top: -50px;
    left: 50%;
    display: block;
    width: 375px;
    max-width: none;
    height: 166px !important;
    margin-left: -187.5px;
    object-fit: cover;
    transform: rotate(180deg);
    pointer-events: none;
  }

  .renewal-inflam__inner {
    gap: 0;
    width: 100%;
    max-width: none;
  }

  .renewal-inflam__main {
    gap: 16px;
  }

  .renewal-inflam__head {
    width: 319px;
    max-width: calc(100% - 32px);
    padding-top: 31px;
  }

  .renewal-inflam__naze {
    left: 9px;
    width: 80px;
    height: 37.74px !important;
  }

  .renewal-inflam__lead {
    font-size: 16px;
    line-height: 32px;
  }

  /* two 47px lines here */
  .renewal-inflam__title {
    height: 94px;
    margin-top: -3px;
    font-size: 28px;
    line-height: 47px;
  }

  .renewal-inflam__title em {
    font-size: 36px;
  }

  .renewal-inflam__quote {
    width: 322px;
    max-width: calc(100% - 32px);
    height: 85px;
    margin-top: 3px;
    border-width: 1px;
    border-radius: 7px;
    font-size: 15px;
    line-height: 27px;
  }

  .renewal-inflam__body {
    gap: 0;
    width: 319px;
    max-width: calc(100% - 32px);
  }

  .renewal-inflam__cause {
    gap: 0;
    width: 100%;
    margin-top: 39px;
  }

  .renewal-inflam__cause-lead,
  .renewal-inflam__cause-tail {
    font-size: 16px;
    line-height: 32px;
  }

  .renewal-inflam__cause-main {
    font-size: 36px;
    line-height: 47px;
  }

  .renewal-inflam .renewal-inflam__cause p.renewal-inflam__cause-main {
    margin-top: 6px;
  }

  .renewal-inflam .renewal-inflam__cause p.renewal-inflam__cause-tail {
    margin-top: 12px;
  }

  .renewal-inflam__detail {
    gap: 0;
    margin-top: 17px;
  }

  /* the diagram is wider than the copy column, so it is re-centred on the
     viewport rather than on the 319px column */
  .renewal-inflam__figure {
    width: 351px;
    max-width: calc(100vw - 24px);
    height: 161px;
    margin: 16px 0 0 50%;
    transform: translateX(-50%);
  }

  .renewal-inflam__figure img {
    top: 37px;
    left: 6px;
    width: 334px;
    height: 120px !important;
  }

  .renewal-inflam__pill {
    top: 10px;
    padding: 0 12px;
    border-radius: 28px;
    font-size: 12px;
    line-height: 27px;
  }

  .renewal-inflam__pill--red {
    left: 68px;
  }

  .renewal-inflam__pill--purple {
    left: 232px;
  }

  .renewal-inflam__result-group {
    margin-top: 17px;
  }

  .renewal-inflam__copy--guide {
    margin-top: 17px;
  }

  .renewal-inflam__arrow {
    margin-top: 54px;
  }
}


/* ===== 2026-renewal-symptom.css ===== */
/* 2026 front-page renewal: sec06 + sec07 form one band (Figma 1:276).
   sec07 keeps its existing fmenu1 markup, links and accordion script. */

.renewal-symptom,
.renewal-symptom * {
  box-sizing: border-box;
}

/* The band is pulled up by half the 52px arrow so the circle straddles the
   boundary, and the top padding compensates so the copy does not move.
   `position` is needed so this background paints after the inflam section's,
   which is itself positioned. */
.home main section.sec06.renewal-symptom {
  position: relative;
  width: 100%;
  margin: -26px 0 0 !important;
  padding: 66px 16px 0;
  background: #f7fcef;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-symptom__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  width: 1040.2px;
  max-width: 100%;
  margin: 0 auto;
}

/* ---- heading ---- */

.renewal-symptom__title {
  width: 100%;
  margin: 0;
  padding: 0 0 32.26px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 51.2px;
  text-align: center;
}

/* each line is pinned so the 32px runs cannot grow the 51.2px boxes */
.renewal-symptom__title-line {
  display: block;
  height: 51.2px;
}

.renewal-symptom__title strong {
  font-size: 32px;
  font-weight: 700;
}

.renewal-symptom__lead {
  width: 100%;
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 25.6px;
}

.renewal-symptom__lead strong {
  font-weight: 700;
}

/* ---- symptom pills ---- */

.renewal-symptom__pills {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 1020px;
  max-width: 100%;
}

.renewal-symptom .renewal-symptom__pills-title {
  width: 100%;
  margin: 0;
  color: #10ad5b;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 38.67px;
  text-align: center;
}

.renewal-symptom__pill-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 24px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.renewal-symptom__pill-list li {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

.renewal-symptom__pill-list a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  border: 1px solid #59c68c;
  border-radius: 999px;
  background: #ecf5f0;
  color: #14ad59;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  text-decoration: none;
}

.renewal-symptom__pill-list a span {
  font-size: 12px;
  line-height: 18px;
}

/* ---- sec07: same band, existing accordion ---- */

.home main section.sec07 {
  width: 100%;
  margin: 0 !important;
  padding: 58px 0px 70px;
  background-color: #f7fcef;
  background-image: url("../img/renewal/symptom/leaf-bottom.png");
  background-position: left bottom;
  background-repeat: no-repeat;
  background-size: 470px auto;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

/* the node groups heading + accordion at 32px, then 42px to the closing copy */
.home main section.sec07 > .con_inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  width: 1008.2px;
  max-width: 100%;
  margin: 0 auto;
}

.home main section.sec07 > .con_inner > p:first-child {
  width: 980px;
  max-width: 100%;
  margin: 0 !important;
  color: #10ad5b;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 38.67px;
  text-align: center;
}

.home main section.sec07 > .con_inner > p:first-child .swl-fz,
.home main section.sec07 > .con_inner > p:first-child .swl-inline-color {
  color: #10ad5b !important;
  font-size: inherit;
}

.home main section.sec07 > .con_inner > .inner {
  width: 980px;
  max-width: 100%;
  margin: 0;
}

.home main section.sec07 .top_fmenu1 {
  margin: 0;
}

.home main section.sec07 .top_fmenu1 .con_inner {
  width: 100%;
  margin: 0;
}

.home main section.sec07 .top_fmenu1 .con_inner .wrap {
  width: 100%;
  margin: 0;
}

/* 4 rows of 56.67px per column, matching the node's 227.33px block */
.home main section.sec07 .top_fmenu1 h3 {
  display: flex;
  align-items: center;
  height: 56.67px;
  padding: 0 17px;
  border-top-width: 0.667px;
  background-position: calc(100% - 17px) 50%;
  background-size: 22px 22px;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
}

.home main section.sec07 .top_fmenu1 ul li a {
  background-position: calc(100% - 17px) 50%;
  background-size: 22px 22px;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 15px;
}

.home main section.sec07 > .con_inner > .txtbox {
  width: 100%;
  margin: 10px 0 0;
}

.home main section.sec07 > .con_inner > .txtbox p {
  margin: 0 !important;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

.home main section.sec07 > .con_inner > .txtbox p strong {
  font-weight: 700;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  .home main section.sec06.renewal-symptom {
    padding: 66px 0 0;
  }

  .renewal-symptom__inner {
    gap: 24px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-symptom__title {
    padding-bottom: 20px;
    font-size: 17px;
    line-height: 34px;
  }

  .renewal-symptom__title-line {
    height: 34px;
  }

  .renewal-symptom__title strong {
    font-size: 21px;
  }

  .renewal-symptom__lead {
    font-size: 14px;
    line-height: 24px;
  }

  .renewal-symptom__pills {
    gap: 16px;
    width: 100%;
  }

  .renewal-symptom .renewal-symptom__pills-title {
    font-size: 17px;
    line-height: 28px;
  }

  .renewal-symptom__pill-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .renewal-symptom__pill-list a {
    height: 44px;
    gap: 6px;
    font-size: 13px;
  }

  .home main section.sec07 {
    padding: 32px 0 40px;
    background-size: 220px auto;
  }

  .home main section.sec07 > .con_inner {
    gap: 24px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .home main section.sec07 > .con_inner > p:first-child {
    width: 100%;
    font-size: 17px;
    line-height: 28px;
  }

  .home main section.sec07 > .con_inner > .inner {
    width: 100%;
  }

  .home main section.sec07 .top_fmenu1 h3 {
    height: 48px;
    padding: 0 12px;
    background-position: calc(100% - 12px) 50%;
    background-size: 18px 18px;
    font-size: 14px;
  }

  .home main section.sec07 .top_fmenu1 ul li a {
    background-position: calc(100% - 12px) 50%;
    background-size: 18px 18px;
    font-size: 14px;
  }

  .home main section.sec07 > .con_inner > .txtbox p {
    font-size: 14px;
    line-height: 25.2px;
  }
}


/* ===== 2026-renewal-cases.css ===== */
/* 2026 front-page renewal: case reports (Figma 210:21).
   The clinic card row reuses the theme's existing .sp-pc-btn component. */

.renewal-cases,
.renewal-cases * {
  box-sizing: border-box;
}

.home main section.renewal-cases {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
  margin: 0 !important;
  padding: 80px 16px;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-cases__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 37px;
  width: 860px;
  max-width: 100%;
}

/* ---- heading ---- */

.renewal-cases__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 592.32px;
  max-width: 100%;
  text-align: center;
}

.renewal-cases__title {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #3f2f2b;
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "MS PMincho", serif;
  font-size: 28px;
  font-weight: 600;
  line-height: 42px;
}

.renewal-cases .renewal-cases__lead {
  width: 100%;
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

/* ---- case list ---- */

.renewal-cases__list {
  width: 100%;
  /* the node leaves 26.79px between the lead and the first rule */
  margin: -10.21px 0 0;
  padding: 0;
  border-top: 0.667px dashed #cfcfcf;
  list-style: none;
}

.renewal-cases__list li {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

.renewal-cases__list a {
  position: relative;
  display: flex;
  align-items: center;
  height: 72.67px;
  padding-right: 40px;
  border-bottom: 0.667px dashed #cfcfcf;
  text-decoration: none;
}

.renewal-cases__cat {
  display: flex;
  flex: 0 0 150px;
  align-items: center;
  justify-content: center;
  width: 150px;
  height: 36px;
  border-radius: 4px;
  background: #14ad59;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 16.9px;
  text-align: center;
}

.renewal-cases__subject {
  margin-left: 20px;
  color: #333;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 24px;
}

.renewal-cases__list a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18.14px;
  width: 9px;
  height: 9px;
  border-top: 2px solid #14ad59;
  border-right: 2px solid #14ad59;
  transform: translateY(-50%) rotate(45deg);
}

/* ---- CTA ---- */

.renewal-cases__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  width: 320px;
  max-width: 100%;
}

.renewal-cases .renewal-cases__cta-lead {
  width: 100%;
  margin: 0;
  color: #000;
  font-size: 25.6px;
  font-weight: 400;
  line-height: 38.67px;
  text-align: center;
}

.renewal-cases__cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 65px;
  border-radius: 50px;
  background: #10ad5a;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-decoration: none;
}

/* テーマの a:hover{color:#000} に上書きされて黒字になるのを防ぐ */
.renewal-cases__cta-btn:hover,
.renewal-cases__cta-btn:focus-visible {
  color: #fff;
  background: #0d9a4f;
}

/* ---- clinic cards (existing .sp-pc-btn component) ---- */

.renewal-cases__clinics {
  width: 1018px;
  max-width: 100%;
  margin: 0;
  padding: 0;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  .home main section.renewal-cases {
    gap: 32px;
    padding: 40px 0;
  }

  .renewal-cases__main {
    gap: 28px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-cases__head {
    width: 100%;
  }

  .renewal-cases__title {
    font-size: 22px;
    line-height: 33px;
  }

  .renewal-cases .renewal-cases__lead {
    font-size: 14px;
    line-height: 25.2px;
    text-align: left;
  }

  .renewal-cases__list {
    margin: 0;
  }

  /* SP rows follow Figma 1:1432: the pill stays inline, 72px wide, with the
     subject beside it and the row growing if the subject wraps to two lines */
  .renewal-cases__list a {
    align-items: center;
    gap: 5px;
    min-height: 64px;
    height: auto;
    padding: 8px 23px 8px 0;
  }

  .renewal-cases__cat {
    flex: 0 0 72px;
    width: 72px;
    height: auto;
    min-height: 31.6px;
    padding: 8px 12px;
    font-size: 12px;
    line-height: 15.6px;
  }

  .renewal-cases__subject {
    flex: 1 1 auto;
    margin-left: 0;
    font-size: 15px;
    line-height: 24px;
  }

  .renewal-cases__list a::after {
    right: 8px;
  }

  .renewal-cases .renewal-cases__cta-lead {
    font-size: 18px;
    line-height: 28px;
  }

  .renewal-cases__cta-btn {
    height: 56px;
    font-size: 16px;
  }

  .renewal-cases__clinics {
    width: calc(100vw - 32px);
    max-width: 370px;
  }
}


/* ===== 2026-renewal-staff.css ===== */
/* 2026 front-page renewal: five features (Figma PC 1:490 / SP 1:1571) */

.renewal-staff,
.renewal-staff * {
  box-sizing: border-box;
}

.home main section.renewal-staff {
  position: relative;
  width: 100%;
  margin: 0 !important;
  padding: 80px 16px;
  overflow: hidden;
  background: #f7fcef;
  color: #333;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
}

.renewal-staff__leaf {
  position: absolute;
  z-index: 0;
  top: 0;
  right: 0;
  display: block;
  width: 365px;
  max-width: none;
  height: 236px !important;
  object-fit: cover;
  object-position: left top;
  pointer-events: none;
}

.renewal-staff__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 38px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

/* ---- heading ---- */

.renewal-staff__title {
display: flex;
    flex-direction: column;
    /* align-items: center; */
    /* justify-content: center; */
    /* width: 100%; */
    /* height: 181px; */
    margin: 0;
    padding: 0 0 30px;
    /* border: 0; */
    border-bottom: 2.667px solid #88bd45;
    /* background: none; */
    color: #363636;
    /* font-family: "Noto Sans JP", Meiryo, sans-serif; */
    font-weight: 600;
    text-align: center;
}

.renewal-staff__title-lead,
.renewal-staff__title-name {
  font-size: 29.677px;
}

.renewal-staff__title-lead {
  line-height: 69.742px;
}

.renewal-staff__title-name {
  line-height: 47.484px;
}

.renewal-staff__title-main {
  color: #10ad5a;
  font-size: 53.419px;
  font-weight: 600;
  line-height: 69.742px;
}

/* ---- feature list ---- */

.renewal-staff__list {
  display: flex;
  flex-direction: column;
  gap: 32px;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.renewal-staff__item {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  width: 100%;
  margin: 0;
  padding: 12px 12px 12px 0;
  border: 0;
  list-style: none;
}

.renewal-staff__media {
  flex: 0 0 320px;
  width: 320px;
}

/* feature 01 is a 3 x 2 thumbnail grid */
.renewal-staff__item--gallery .renewal-staff__media {
  display: grid;
  grid-template-columns: repeat(3, 100px);
  gap: 10.07px 10px;
}

.renewal-staff__item--gallery .renewal-staff__media img {
  display: block;
  width: 100px;
  height: 99.71px !important;
  object-fit: cover;
}

.renewal-staff__photo {
  display: block;
  width: 100%;
  height: 159.5px !important;
  object-fit: cover;
}

/* crop offsets taken from the node's image transforms */
.renewal-staff__photo--02 {
  object-position: center top;
}

.renewal-staff__photo--03 {
  height: 167px !important;
  object-position: center 17%;
}

.renewal-staff__photo--04 {
  height: 167px !important;
  object-position: center 59%;
}

.renewal-staff__photo--05 {
  object-position: center 31%;
}

.renewal-staff__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

.renewal-staff__head {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 100%;
}

.renewal-staff .renewal-staff__heading {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 47px;
  margin: 0;
}

.renewal-staff__num {
  flex: 0 0 auto;
  color: #10ad5a;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 23px;
  font-weight: 700;
  line-height: 33px;
  white-space: nowrap;
}

.renewal-staff__name {
  color: #333;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 19.72px;
  font-weight: 600;
  line-height: 29px;
}

.renewal-staff .renewal-staff__sub {
  margin: 0;
  color: #10ad5a;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 18px;
}

.renewal-staff .renewal-staff__desc {
  display: flex;
  align-items: flex-start;
  width: 100%;
  min-height: 72px;
  margin: 0;
  padding:4px 4% 4px 4%;
  border-radius: 7px;
  background: #fff;
  color: #333;
  font-family: "Noto Sans JP", Meiryo, sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 32px;
}

.renewal-staff .renewal-staff__desc--tall {
  min-height: 120px;
}

/* ---- SP (Figma 1:1571) ---- */

@media screen and (max-width: 767.98px) {
  .home main section.renewal-staff {
    padding: 41px 0 40px;
  }

  .renewal-staff__leaf {
    width: 123.5px;
    height: 83px !important;
    object-position: left top;
  }

  .renewal-staff__inner {
    gap: 30px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-staff__title {
    width: 342px;
    max-width: 100%;
    height: 124px;
    margin: 0 auto;
    padding: 0 24px 12px;
    border-bottom: 4px solid #10ad5a;
  }

  .renewal-staff__title-lead {
    font-size: 20px;
    line-height: 47px;
  }

  .renewal-staff__title-name {
    font-size: 20px;
    line-height: 32px;
  }

  .renewal-staff__title-main {
    font-size: 36px;
    line-height: 47px;
  }

  .renewal-staff__list {
    gap: 36px;
  }

  /* SP stacks the media above the copy for every feature */
  .renewal-staff__item {
    flex-direction: column;
    gap: 16px;
    padding: 0;
  }

  .renewal-staff__media {
    flex: 0 0 auto;
    width: 100%;
  }

  .renewal-staff__item--gallery .renewal-staff__media {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5.56px 8px;
  }

  .renewal-staff__item--gallery .renewal-staff__media img {
    width: 100%;
    height: auto !important;
    aspect-ratio: 1 / 1;
  }

  .renewal-staff__photo,
  .renewal-staff__photo--03,
  .renewal-staff__photo--04 {
    height: auto !important;
    aspect-ratio: 343 / 171;
  }

  .renewal-staff__body {
    gap: 5px;
  }

  .renewal-staff__head {
    gap: 5px;
  }

  .renewal-staff .renewal-staff__heading {
    gap: 17px;
    height: auto;
    min-height: 33.6px;
  }

  .renewal-staff__num {
    font-size: 24px;
    line-height: 33.6px;
  }

  .renewal-staff__name {
    font-size: 20px;
    line-height: 30px;
  }

  /* the sub line hangs under the title, clear of the number */
  .renewal-staff .renewal-staff__sub {
    margin-left: 51px;
    font-size: 14px;
    font-weight: 400;
    line-height: 19px;
  }

  .renewal-staff .renewal-staff__desc,
  .renewal-staff .renewal-staff__desc--tall {
    min-height: 0;
    padding: 10px 12px;
  }
}


/* ===== 2026-renewal-stacking.css ===== */
/* The floating reserve/menu buttons are `position: fixed` with `z-index: auto`,
   so every positioned element inside <main> paints over them - z-index auto
   positioned boxes paint in tree order, and any positive z-index wins outright.
   Lifting them above page content fixes it; 900 stays below Magnific Popup
   (1042) so the video modal still covers them. */

.home header .fixed-button {
  z-index: 900;
}


/* ===== 2026-renewal-flow.css ===== */
/* 2026 front-page renewal: first-visit flow, sec12 (Figma 1:573).
   The node names the header `summary`, so the steps are native <details>
   accordions - no script needed. Step 1 is open by default. */

.renewal-flow,
.renewal-flow * {
  box-sizing: border-box;
}

.home main section.sec12.renewal-flow {
  position: relative;
  width: 100%;
  margin: 0 !important;
  padding: 72px 16px 40px;
  overflow: hidden;
  background-color: #f7fcef;
  /* the node's bottom-left foliage is byte-identical to the sec07 export */
  background-image: url("../img/renewal/symptom/leaf-bottom.png");
  background-position: left bottom;
  background-repeat: no-repeat;
  background-size: 360px auto;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-flow__inner {
  position: relative;
  z-index: 1;
  width: 1040.33px;
  max-width: 100%;
  margin: 0 auto;
}

/* ---- heading ---- */

.renewal-flow__title {
  width: 1020.33px;
  max-width: 100%;
  height: 68.67px;
  margin: 0 auto;
  padding: 0 0 18px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 48px;
  text-align: center;
}

.renewal-flow__title strong {
  font-size: 32px;
  font-weight: 700;
}

/* ---- step list ---- */

.renewal-flow__steps {
  width: 100%;
  margin: 28.66px 0 0;
  padding: 32px;
  background: #fff;
  list-style: none;
}

.renewal-flow__step {
  position: relative;
  margin: 0 0 40px;
  padding: 0;
  border: 0;
  list-style: none;
}

.renewal-flow__step:last-child {
  margin-bottom: 0;
}

/* the grey chevron that links one step to the next */
.renewal-flow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  bottom: -30.23px;
  left: 50%;
  width: 14px;
  height: 14px;
  border-right: 2.667px solid #b7b7b7;
  border-bottom: 2.667px solid #b7b7b7;
  transform: translateX(-50%) rotate(45deg);
}

.renewal-flow__details {
  border: 1px solid #b9e5c9;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

/* ---- step header ---- */

.renewal-flow__head {
  position: relative;
  display: flex;
  align-items: center;
  height: 76px;
  padding: 0 48px 0 18px;
  background: #ecf5f0;
  cursor: pointer;
  list-style: none;
}

.renewal-flow__head::-webkit-details-marker {
  display: none;
}

.renewal-flow__head::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 19.51px;
  width: 12px;
  height: 12px;
  border-right: 2.667px solid #14ad59;
  border-bottom: 2.667px solid #14ad59;
  transform: translate(0, -70%) rotate(45deg);
}

.renewal-flow__details[open] .renewal-flow__head::after {
  transform: translate(0, -30%) rotate(-135deg);
}

.renewal-flow__badge {
  display: flex;
  flex: 0 0 48px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 24px;
  background: #10ad5b;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-weight: 700;
}

.renewal-flow__badge small {
  font-size: 10px;
  line-height: 10px;
}

.renewal-flow__badge b {
  margin-top: 6px;
  font-size: 20px;
  font-weight: 700;
  line-height: 20px;
}

.renewal-flow__label {
  margin-left: 16px;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 19.2px;
  font-weight: 700;
  line-height: 28.8px;
}

/* ---- step body ---- */

.renewal-flow__main {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 24px 30px 28px 82px;
  background: #fff;
}

.renewal-flow__copy {
  flex: 1 1 auto;
  min-width: 0;
}

.renewal-flow .renewal-flow__copy p {
  margin: 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

.renewal-flow__img {
  flex: 0 0 232px;
  width: 232px;
  height: 148.14px;
  overflow: hidden;
  border: 6px solid #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
}

.renewal-flow__img img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
}

/* ---- footnote ---- */

.renewal-flow .renewal-flow__note {
  width: 100%;
  margin: 16px 0 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 12.8px;
  font-weight: 400;
  line-height: 20.48px;
  text-align: center;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  .home main section.sec12.renewal-flow {
    padding: 40px 0;
    background-size: 200px auto;
  }

  .renewal-flow__inner {
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-flow__title {
    width: 100%;
    height: auto;
    padding-bottom: 14px;
    font-size: 17px;
    line-height: 34px;
  }

  .renewal-flow__title strong {
    font-size: 21px;
  }

  .renewal-flow__steps {
    margin-top: 20px;
    padding: 16px;
  }

  .renewal-flow__step {
    margin-bottom: 32px;
  }

  .renewal-flow__step:not(:last-child)::after {
    bottom: -24px;
    width: 11px;
    height: 11px;
  }

  .renewal-flow__head {
    height: auto;
    min-height: 64px;
    padding: 10px 34px 10px 10px;
  }

  .renewal-flow__head::after {
    right: 12px;
    width: 10px;
    height: 10px;
  }

  .renewal-flow__badge {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
  }

  .renewal-flow__badge b {
    margin-top: 4px;
    font-size: 17px;
    line-height: 17px;
  }

  .renewal-flow__label {
    margin-left: 10px;
    font-size: 15px;
    line-height: 22px;
  }

  /* SP stacks the image under the copy */
  .renewal-flow__main {
    flex-direction: column;
    gap: 12px;
    padding: 16px;
  }

  .renewal-flow .renewal-flow__copy p {
    font-size: 14px;
    line-height: 25.2px;
  }

  .renewal-flow__img {
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    aspect-ratio: 232 / 148.14;
  }

  .renewal-flow .renewal-flow__note {
    font-size: 12px;
    line-height: 19.2px;
    text-align: left;
  }
}


/* ===== 2026-renewal-faq-intro.css ===== */
/* 2026 front-page renewal: sec15 intro copy under the title (Figma 98:5188 / 211:62).
   The node drops the two-column layout and the qa01 illustration: the copy runs
   full width, left aligned, on a 22px rhythm. */

.renewal-faq-intro {
  display: flex;
  flex-direction: column;
  gap: 22px;
  width: 100%;
  margin-bottom: 40px;
  box-sizing: border-box;
}

.home main section.sec15 .renewal-faq-intro p {
  margin: 0 !important;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
  text-align: left;
}

.home main section.sec15 .renewal-faq-intro__lead strong {
  font-weight: 700;
}

@media screen and (max-width: 767.98px) {
  .renewal-faq-intro {
    gap: 18px;
  }

  .home main section.sec15 .renewal-faq-intro p {
    font-size: 14px;
    line-height: 25.2px;
  }
}


/* ===== 2026-renewal-store.css ===== */
/* 2026 front-page renewal: three clinics, sec16 (Figma PC 98:5189 / SP 212:149) */

.renewal-store,
.renewal-store * {
  box-sizing: border-box;
}

.home main section.sec16.renewal-store {
  width: 100%;
  margin: 0 !important;
  padding: 80px 16px;
  background: #fff;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

.renewal-store__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

/* ---- heading ---- */

.renewal-store__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  width: 100%;
}

.renewal-store__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #10ad5b;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-weight: 700;
  text-align: center;
}

.renewal-store__title-lead {
  font-size: 25.6px;
  line-height: 40.96px;
}

.renewal-store__title-main {
  font-size: 25.6px;
  line-height: 56.32px;
}

.renewal-store__title-main strong {
  font-size: 35.2px;
  font-weight: 700;
}

.renewal-store .renewal-store__lead {
  width: 100%;
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
}

/* ---- store card ---- */

.renewal-store__box {
  width: 100%;
  padding: 30.67px;
  border: 2px solid #bddbcb;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 6px rgba(79, 171, 99, 0.08);
}

.renewal-store .renewal-store__name {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 38.67px;
  text-align: center;
}

.renewal-store .renewal-store__catch {
  margin: 6px 0 0;
  color: #000;
  font-size: 19.2px;
  font-weight: 400;
  line-height: 29.33px;
  text-align: center;
}

.renewal-store__media {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-top: 22px;
}

.renewal-store__photo,
.renewal-store__map {
  flex: 1 1 0;
  min-width: 0;
  height: 225px;
  overflow: hidden;
  border-radius: 4px;
}

.renewal-store__photo img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  object-position: center top;
}

.renewal-store__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ---- opening hours ---- */

.renewal-store .renewal-store__hours-ttl {
  display: flex;
  align-items: center;
  height: 26.88px;
  margin: 23px 0 0;
  padding: 0 0 0 10px;
  border: 0;
  border-left: 4.667px solid #14ad59;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 19.2px;
  font-weight: 700;
  line-height: 26.88px;
}

.renewal-store__hours {
  display: flex;
  gap: 30px;
  align-items: center;
  margin-top: 20px;
}

.renewal-store__table {
  flex: 0 0 400px;
  width: 400px;
}

.renewal-store__table img {
  display: block;
  width: 100%;
  height: auto !important;
}

.renewal-store__notes {
  flex: 1 1 auto;
  min-width: 0;
}

.renewal-store .renewal-store__notes p {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 25.6px;
}

/* ---- CTA ---- */

.renewal-store__cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 320px;
  max-width: 100%;
  height: 64px;
  margin: 20px auto 0;
  border-radius: 50px;
  background: #10ad5a;
  color: #fff;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-decoration: none;
}

/* テーマの a:hover{color:#000} に上書きされて黒字になるのを防ぐ */
.renewal-store__cta:hover,
.renewal-store__cta:focus-visible {
  color: #fff;
  background: #0d9a4f;
}

.renewal-store__cta::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16.68px;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translateY(-50%) rotate(45deg);
}
.footer-banner .image{
display:none;
}
/* ---- SP (Figma 212:149) ---- */

@media screen and (max-width: 767.98px) {
  .home main section.sec16.renewal-store {
    padding: 40px 0;
  }

  .renewal-store__inner {
    gap: 15px;
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-store__head {
    gap: 30px;
  }

  .renewal-store__title-lead {
    font-size: 18px;
    line-height: 27.33px;
  }

  .renewal-store__title-main {
    font-size: 18px;
    line-height: 38.4px;
  }

  .renewal-store__title-main strong {
    font-size: 25.6px;
  }

  .renewal-store .renewal-store__lead {
    font-size: 15px;
    line-height: 25.92px;
  }

  .renewal-store__box {
    padding: 20.67px 16.67px 15px;
  }

  .renewal-store .renewal-store__name {
    font-size: 21px;
    line-height: 31.33px;
  }

  .renewal-store .renewal-store__catch {
    margin-top: 6px;
    font-size: 16px;
    line-height: 24px;
  }

  /* the SP node drops the embedded map; the photo runs full width */
  .renewal-store__media {
    display: block;
    margin-top: 18.5px;
  }

  .renewal-store__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 310 / 154;
  }

  .renewal-store__map {
    display: none;
  }

  .renewal-store .renewal-store__hours-ttl {
    height: 23.79px;
    margin-top: 18px;
    padding-left: 14.66px;
    font-size: 17px;
    line-height: 23.79px;
  }

  .renewal-store__hours {
    display: block;
    margin-top: 20.79px;
  }

  .renewal-store__table {
    width: 100%;
  }

  .renewal-store__notes {
    margin-top: 14.65px;
  }

  .renewal-store .renewal-store__notes p {
    font-size: 15px;
    line-height: 27px;
  }

  .renewal-store__cta {
    margin-top: 19.9px;
  }
}


/* ===== 2026-renewal-closing.css ===== */
/* 2026 front-page renewal: closing message, sec17 (Figma 1:866) */

.renewal-closing,
.renewal-closing * {
  box-sizing: border-box;
}

/* background-color only: the shorthand would reset the theme's leaf position */
.home main section.sec17.renewal-closing {
  position: relative;
  width: 100%;
  margin: 0 0 60px !important;
  padding: 72px 16px;
  overflow: hidden;
  background-color: #f7fcef;
  background-position: top right;
  background-repeat: no-repeat;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
}

/* The leaf comes from the theme's existing `.cont12, .sec17` rule, which sets
   `img/top/bg-top.png` at `top right` sized 33vw. That artwork is the node's
   leaf (same 1.487 aspect); only the scale is off, so just the size is
   overridden here to the node's 380px. `.cont12` keeps its own 33vw. */
.home main section.sec17.renewal-closing {
  background-size: 380px auto;
}

.renewal-closing__inner {
  position: relative;
  z-index: 1;
  width: 1020px;
  max-width: 100%;
  margin: 0 auto;
}

/* ---- heading ---- */

.renewal-closing__title {
  width: 100%;
  height: 68.67px;
  margin: 0;
  padding: 0 0 18px;
  border: 0;
  border-bottom: 2.667px solid #88bd45;
  background: none;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 25.6px;
  font-weight: 700;
  line-height: 48px;
  text-align: center;
}

.renewal-closing__title strong {
  font-size: 32px;
  font-weight: 700;
}

/* ---- body copy ---- */

.renewal-closing__copy {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
  margin-top: 31.6px;
}

.renewal-closing .renewal-closing__copy p {
  margin: 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
  text-align: left;
}

.renewal-closing .renewal-closing__catch {
  margin: 40px 0 0;
  color: #000;
  font-family: Meiryo, "Noto Sans JP", sans-serif;
  font-size: 28.8px;
  font-weight: 700;
  line-height: 43.33px;
  text-align: center;
}

/* ---- gallery ---- */

.renewal-closing__gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  margin: 32px 0 0;
  padding: 0;
  list-style: none;
}

.renewal-closing__gallery li {
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

.renewal-closing__gallery img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 247.5 / 164.01;
  object-fit: cover;
}

.renewal-closing .renewal-closing__note {
  margin: 31.6px 0 0;
  color: #000;
  font-size: 16px;
  font-weight: 400;
  line-height: 28.8px;
  text-align: center;
}

/* ---- SP ---- */

@media screen and (max-width: 767.98px) {
  .home main section.sec17.renewal-closing {
    padding: 40px 0;
  }

  .home main section.sec17.renewal-closing {
    background-size: 190px auto;
  }

  .renewal-closing__inner {
    width: calc(100vw - 32px);
    max-width: 370px;
  }

  .renewal-closing__title {
    height: auto;
    padding-bottom: 14px;
    font-size: 17px;
    line-height: 34px;
  }

  .renewal-closing__title strong {
    font-size: 21px;
  }

  .renewal-closing__copy {
    gap: 18px;
    margin-top: 24px;
  }

  .renewal-closing .renewal-closing__copy p {
    font-size: 14px;
    line-height: 25.2px;
  }

  .renewal-closing .renewal-closing__catch {
    margin-top: 28px;
    font-size: 19px;
    line-height: 28.5px;
  }

  .renewal-closing__gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 24px;
  }

  .renewal-closing .renewal-closing__note {
    margin-top: 24px;
    font-size: 14px;
    line-height: 25.2px;
    text-align: left;
  }
}


/* テーマ共通の .btn-item a（緑の丸ボタン）も a:hover{color:#000} に負けて
   黒字になる。style.css を直すとサイト全体に影響するため、リニューアル済み
   ページ（TOP＝.home / 店舗3院＝main.access）に限って白文字を維持する。 */

.home .btn-item a:hover,
.home .btn-item a:focus-visible,
main.access .btn-item a:hover,
main.access .btn-item a:focus-visible {
  color: #fff;
  background-color: #0d9a4f;
}
