@charset "utf-8";
/*------------------------------------------------------------
  神保町ミセ歯科 — トップページリニューアル
  Mobile-first / breakpoints: 768px, 1080px
  BUILD: 202609151730
------------------------------------------------------------*/

/* スクロールふんわり表示（旧 features 内要素）を無効化 */
body.no-scroll-fade #main .features .imgBox .inner {
  opacity: 1;
  transform: none;
  transition: none;
}

/* ---- Design Tokens ---- */
:root {
  --renewal-gold: #C8AA7D;
  --renewal-gold-dark: #8B7355;
  --renewal-lightbrown: #c6a37b;
  --renewal-body: #656968;
  --renewal-cream: #FCF8F6;
  --renewal-cream-dark: #F3EEE7;
  --renewal-text: #333;
  --renewal-white: #fff;
  --renewal-brown: #A08060;
  --renewal-brown-dark: #6E5A42;
  --renewal-line: #06C755;
  --renewal-border: rgba(101, 105, 104, 0.25);
  --renewal-shadow: 0 8px 32px rgba(51, 51, 51, 0.08);
  --renewal-shadow-lg: 0 16px 48px rgba(51, 51, 51, 0.12);
  --renewal-radius: 8px;
  --renewal-radius-pill: 999px;
  --renewal-radius-lg: 16px;
  --renewal-transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
  --renewal-inner: min(100% - 40px, 1200px);
  --renewal-inner-wide: min(100% - 40px, 1400px);
  --renewal-font-serif: "kozuka-mincho-pr6n", serif;
  --renewal-font-sans: "kozuka-gothic-pr6n", sans-serif;
}

/* ---- Utility Spacing ---- */
.renewalU-mt0  { margin-top: 0 !important; }
.renewalU-mb0  { margin-bottom: 0 !important; }
.renewalU-mtSm { margin-top: 16px; }
.renewalU-mtMd { margin-top: 32px; }
.renewalU-mtLg { margin-top: 48px; }
.renewalU-mbSm { margin-bottom: 16px; }
.renewalU-mbMd { margin-bottom: 32px; }
.renewalU-mbLg { margin-bottom: 48px; }
.renewalU-ptSm { padding-top: 16px; }
.renewalU-ptMd { padding-top: 32px; }
.renewalU-ptLg { padding-top: 48px; }
.renewalU-pbSm { padding-bottom: 16px; }
.renewalU-pbMd { padding-bottom: 32px; }
.renewalU-pbLg { padding-bottom: 48px; }
.renewalU-textCenter { text-align: center; }
.renewalU-srOnly {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Body copy — matches body + #main .features .textBox .text */
.renewalTreat__lead,
.renewalReasons__body,
.renewalEval__text,
.renewalArea__text,
.renewalNews__excerpt,
.renewalFaq__a {
  font-size: 1.5rem;
  color: var(--renewal-body);
  line-height: 2;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  text-align: justify;
  text-justify: inter-ideograph;
}

/* ---- Shared: Section Label ---- */
.renewalSecLabel {
  display: block;
  margin-bottom: 12px;
  font-family: var(--renewal-font-serif);
  font-size: 1.5rem;
  font-weight: 200;
  letter-spacing: 0.25em;
  color: var(--renewal-gold);
  text-align: center;
}
.renewalSecLabel--left { text-align: left; }
.renewalSecLabel--white { color: var(--renewal-white); }

/* ---- Shared: Buttons ---- */
.renewalBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 28px;
  font-family: var(--renewal-font-sans);
  font-size: 1.3rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.4;
  color: var(--renewal-body);
  text-decoration: none;
  background: transparent;
  border: 1px solid var(--renewal-gold);
  border-radius: var(--renewal-radius-pill);
  cursor: pointer;
  transition: background var(--renewal-transition),
              color var(--renewal-transition),
              border-color var(--renewal-transition),
              opacity var(--renewal-transition);
}
.renewalBtn:hover {
  opacity: 1;
  color: var(--renewal-white);
  background: var(--renewal-gold);
  border-color: var(--renewal-gold);
}
.renewalBtn--white {
  color: var(--renewal-white);
  border-color: var(--renewal-white);
}
.renewalBtn--white:hover {
  color: var(--renewal-text);
  background: var(--renewal-white);
  border-color: var(--renewal-white);
}
.renewalBtn--fill {
  color: var(--renewal-white);
  background: var(--renewal-gold);
  border-color: var(--renewal-gold);
}
.renewalBtn--fill:hover {
  background: var(--renewal-gold-dark);
  border-color: var(--renewal-gold-dark);
}
.renewalBtn--dark {
  color: var(--renewal-white);
  background: var(--renewal-lightbrown);
  border-color: var(--renewal-lightbrown);
}
.renewalBtn--dark:hover {
  background: var(--renewal-gold-dark);
  border-color: var(--renewal-gold-dark);
}
.renewalBtn--line {
  color: var(--renewal-white);
  background: var(--renewal-line);
  border-color: var(--renewal-line);
}
.renewalBtn--line:hover {
  background: #05a847;
  border-color: #05a847;
}
.renewalBtn--lg {
  min-height: 56px;
  padding: 16px 40px;
  font-size: 1.4rem;
}
.renewalBtn--block {
  display: flex;
  width: 100%;
}
.renewalBtn__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  object-fit: contain;
}
.renewalBtn__arrow::after {
  content: "▶";
  font-size: 0.7em;
  margin-left: 4px;
}

/* ---- Shared: Feature Circles ---- */
.renewalCircle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  padding: 12px;
  font-family: var(--renewal-font-serif);
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: 0.04em;
  color: var(--renewal-text);
  text-align: center;
  background: var(--renewal-cream);
  border: 1px solid var(--renewal-gold);
  border-radius: 50%;
  box-sizing: border-box;
}
.renewalCircle__icon {
  display: block;
  width: 24px;
  height: 24px;
  margin-bottom: 6px;
  object-fit: contain;
}
.renewalCircle--gold {
  color: var(--renewal-white);
  background: linear-gradient(135deg, var(--renewal-gold) 0%, #d4bc96 100%);
  border-color: var(--renewal-gold);
}
.renewalCircle--dark {
  color: var(--renewal-white);
  background: var(--renewal-lightbrown);
  border-color: var(--renewal-lightbrown);
}
.renewalCircle--bronze {
  color: var(--renewal-white);
  background: var(--renewal-gold-dark);
  border-color: var(--renewal-gold-dark);
}
.renewalCircle--sm {
  width: 96px;
  height: 96px;
  font-size: 1rem;
}
.renewalCircle--lg {
  width: 140px;
  height: 140px;
  font-size: 1.2rem;
}

/* ============================================================
   1. Sticky Side Banners
   ============================================================ */
.renewalSticky {
  position: fixed;
  top: 50%;
  right: 10px;
  z-index: 900;
  display: none;
  flex-direction: column;
  align-items: stretch;
  width: 88px;
  padding: 18px 10px;
  background: linear-gradient(180deg, #b89870 0%, #9a7d58 100%);
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(51, 51, 51, 0.22);
  transform: translateY(-50%);
}
.renewalSticky__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 14px 6px;
  font-family: var(--renewal-font-serif);
  color: var(--renewal-white);
  text-decoration: none;
  text-align: center;
  transition: opacity var(--renewal-transition);
}
.renewalSticky__item:hover {
  opacity: 0.85;
}
.renewalSticky__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--renewal-white);
}
.renewalSticky__icon svg {
  display: block;
  width: 26px;
  height: 26px;
}
.renewalSticky__label {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.renewalSticky__labelLine {
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.45;
  white-space: nowrap;
}
.renewalSticky__divider {
  position: relative;
  flex-shrink: 0;
  width: calc(100% - 8px);
  height: 1px;
  margin: 4px auto;
  background: rgba(255, 255, 255, 0.45);
}
.renewalSticky__divider::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5px;
  height: 5px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.55);
  transform: translate(-50%, -50%) rotate(45deg);
}

@media all and (max-width: 767px) {
  .renewalSticky {
    display: none !important;
  }
}

@media all and (min-width: 768px) {
  .renewalSticky {
    right: 16px;
    width: 96px;
    padding: 22px 12px;
    border-radius: 18px;
  }
  .renewalSticky__item {
    padding: 18px 8px;
  }
  .renewalSticky__icon svg {
    width: 30px;
    height: 30px;
  }
  .renewalSticky__labelLine {
    font-size: 1.15rem;
    letter-spacing: 0.08em;
  }
  .renewalSticky__divider {
    margin: 6px auto;
  }
}

@media all and (min-width: 1080px) {
  .renewalSticky {
    right: 20px;
    width: 104px;
    padding: 24px 14px;
  }
  .renewalSticky__icon svg {
    width: 32px;
    height: 32px;
  }
  .renewalSticky__labelLine {
    font-size: 1.2rem;
  }
}

/* ============================================================
   2. Main Visual (Hero)
   ============================================================ */
.renewalMv {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  overflow: visible;
  background-color: var(--renewal-cream);
}
.renewalMv__slider {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.renewalMv__slider .slick-list,
.renewalMv__slider .slick-track,
.renewalMv__slider .slick-slide,
.renewalMv__slide {
  height: 100%;
}
.renewalMv__slider .slick-slide > div {
  height: 100%;
}
.renewalMv__slide {
  position: relative;
}
.renewalMv__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: center center / cover no-repeat;
  filter: brightness(1.06) saturate(0.94);
}
.renewalMv__bg--sp {
  display: none;
}
@media all and (max-width: 767px) {
  .renewalMv__bg--pc {
    display: none;
  }
  .renewalMv__bg--sp {
    display: block;
  }
}
.renewalMv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(
      105deg,
      rgba(252, 248, 246, 0.95) 0%,
      rgba(252, 248, 246, 0.86) 24%,
      rgba(252, 248, 246, 0.52) 48%,
      rgba(252, 248, 246, 0.18) 68%,
      transparent 86%
    );
}
.renewalMv__inner {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  margin: 0 auto;
  position: relative;
  width: var(--renewal-inner-wide);
  z-index: 2;
}
.renewalMv__header {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 100px clamp(20px, 4vw, 48px) 0;
  box-sizing: border-box;
}
.renewalMv__logo {
  flex: 1;
  min-width: 0;
}
.renewalMv__logoLink {
  display: flex;
  align-items: center;
  gap: 0;
  text-decoration: none;
  color: inherit;
}
.renewalMv__logoMark {
  flex-shrink: 0;
  width: 6.5rem;
  height: auto;
}
.renewalMv__logoTitle {
  flex: 1;
  min-width: 0;
  margin: 0;
  font-weight: 400;
  line-height: 1.5;
}
.renewalMv__logoDisplay {
  display: block;
  font-family: var(--renewal-font-serif);
  font-size: 2.3rem;
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.5;
  color: var(--renewal-text);
}
.renewalMv__logoSeo {
  display: block;
  margin-top: 3px;
  font-family: var(--renewal-font-serif);
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 1.45;
  color: #B07F53;
}
.renewalMv__nav {
  display: none;
  flex-shrink: 0;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}
.renewalMv__navBtn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  font-family: var(--renewal-font-serif);
  font-size: 1.5rem;
  letter-spacing: 0.06em;
  color: var(--renewal-text);
  text-decoration: none;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(139, 115, 85, 0.55);
  border-radius: var(--renewal-radius-pill);
  backdrop-filter: blur(4px);
  transition: background var(--renewal-transition),
              color var(--renewal-transition),
              border-color var(--renewal-transition);
}
.renewalMv__navBtn:hover {
  opacity: 1;
  color: var(--renewal-gold-dark);
  background: rgba(255, 255, 255, 0.98);
  border-color: var(--renewal-gold);
}
.renewalMv__navIcon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  color: var(--renewal-gold-dark);
}
.renewalMv__navIcon svg {
  display: block;
  width: 23px;
  height: 23px;
}
.renewalMv__navBtn img {
  width: 18px;
  height: 18px;
}

/* fixedBox（PC固定ヘッダー） */
.fixedBox {
  padding: 14px 24px;
  background: transparent;
  box-shadow: none;
}
.fixedBox .inner {
  display: none;
}
.renewalFixedHeader {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2.5vw, 32px);
  width: min(100%, 1320px);
  margin: 0 auto;
  padding: 12px clamp(18px, 2.5vw, 28px);
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid rgba(168, 130, 78, 0.42);
  border-radius: 1rem;
  box-shadow: 0 4px 24px rgba(110, 90, 66, 0.08);
  box-sizing: border-box;
}
.renewalFixedHeader__logo {
  flex-shrink: 0;
}
.fixedBox .renewalMv__logoLink {
  gap: 0;
}
.fixedBox .renewalMv__logoMark {
  width: 6.4rem;
}
.fixedBox .renewalMv__logoTitle {
  line-height: 1.45;
}
.fixedBox .renewalMv__logoDisplay {
  font-size: 1.8rem;
  letter-spacing: 0.05em;
  line-height: 1.45;
}
.fixedBox .renewalMv__logoSeo {
  font-size: 1.1rem;
  margin-top: 2px;
  color: #B07F53;
}
.renewalFixedHeader__nav {
  display: flex;
  flex: 1;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 1.6vw, 24px);
  min-width: 0;
}
.renewalFixedHeader__nav a {
  position: relative;
  display: inline-block;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.22rem, 1.45vw, 1.48rem);
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--renewal-text);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--renewal-transition);
}
.renewalFixedHeader__nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 1.5px;
  background-color: var(--renewal-gold, #C8AA7D);
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.3s ease;
}
.renewalFixedHeader__nav a:hover {
  opacity: 1;
  color: var(--renewal-gold-dark, #8B7355);
}
.renewalFixedHeader__nav a:hover::after {
  transform: scale(1, 1);
}
.renewalFixedHeader__actions {
  flex-shrink: 0;
}
.fixedBox .renewalMv__nav {
  display: flex;
  flex-shrink: 0;
  flex-wrap: nowrap;
  gap: 8px;
  margin: 0;
}
.fixedBox .renewalMv__navBtn {
  padding: 8px 14px;
  font-size: clamp(1.05rem, 1.15vw, 1.25rem);
  white-space: nowrap;
  border-radius: 8px;
}
.renewalMv__navBtn--primary,
.renewalMv__navBtn--primary:link,
.renewalMv__navBtn--primary:visited {
  color: var(--renewal-white);
  background: #B07F53;
  border-color: #B07F53;
}
.renewalMv__navBtn--primary .renewalMv__navIcon {
  color: var(--renewal-white);
}
.renewalMv__navBtn--primary:hover,
.renewalMv__navBtn--primary:active,
.renewalMv__navBtn--primary:focus-visible {
  color: var(--renewal-white);
  background: #966944;
  border-color: #966944;
}
.renewalMv__navBtn--outline {
  color: #B07F53;
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(176, 127, 83, 0.55);
}
.renewalMv__navBtn--outline .renewalMv__navIcon {
  color: #B07F53;
}
.renewalMv__navBtn--outline:hover {
  color: #966944;
  background: var(--renewal-white);
  border-color: #B07F53;
}
.renewalMv__navBtn--outline:hover .renewalMv__navIcon {
  color: #966944;
}
@media all and (max-width: 1180px) {
  .renewalFixedHeader__nav {
    display: none;
  }
  .renewalFixedHeader {
    justify-content: space-between;
  }
  .renewalFixedHeader__actions {
    margin-left: auto;
  }
}

/* SP追従（FV通過後表示） */
.renewalSpFixedHeader,
.spFixedBox {
  display: none;
}

@media all and (max-width: 767px) {
  .renewalSpFixedHeader {
    position: fixed;
    top: 8px;
    left: 10px;
    right: 10px;
    z-index: 101;
  }
  .renewalSpFixedHeader__bar {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 8px 5px;
    background: rgba(255, 255, 255, 0.98);
    border: 1px solid rgba(168, 130, 78, 0.42);
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(110, 90, 66, 0.1);
    box-sizing: border-box;
  }
  .renewalSpFixedHeader__logo {
    flex: 1;
    min-width: 0;
    gap: 0;
  }
  .renewalSpFixedHeader__logo .renewalMv__logoMark {
    width: 3.6rem;
  }
  .renewalSpFixedHeader__logo .renewalMv__logoDisplay {
    font-size: 1.2rem;
    line-height: 1.35;
    letter-spacing: 0.04em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .renewalSpFixedHeader__logo .renewalMv__logoSeo {
    font-size: clamp(0.62rem, 2.4vw, 0.72rem);
    line-height: 1.3;
    color: #B07F53;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .renewalSpFixedHeader__cta {
    flex-shrink: 0;
    padding: 7px 10px;
    font-size: clamp(0.78rem, 2.8vw, 0.95rem);
    letter-spacing: 0.03em;
    white-space: nowrap;
    border-radius: 8px;
  }
  .renewalSpFixedHeader__cta .renewalMv__navIcon svg {
    width: 14px;
    height: 14px;
  }
  .renewalSpFixedHeader__burger {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    background: #eceae8 url("../images/common/webp/sp_menu.webp") no-repeat center center / 44px auto;
  }
  .no-webp .renewalSpFixedHeader__burger {
    background-image: url("../images/common/sp_menu.png");
  }
  .renewalSpFixedHeader__burger.on {
    background-image: url("../images/common/webp/sp_close.webp");
  }
  .no-webp .renewalSpFixedHeader__burger.on {
    background-image: url("../images/common/sp_close.png");
  }
  .renewalMv__header .renewalMv__nav {
    display: none;
  }
  .renewalMv__header {
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding: 16px 9px 0;
  }
  .renewalMv__logo {
    flex: 1;
    min-width: 0;
    width: auto;
    max-width: none;
  }
  .renewalMv__logoLink {
    width: auto;
    max-width: 100%;
    align-items: flex-start;
    gap: 0;
  }
  .renewalMv__logoMark {
    width: 4.2rem;
    height: auto;
  }
  .renewalMv__logoTitle {
    flex: 1;
    min-width: 0;
    padding-top: 0;
  }
  .renewalMv__logoDisplay {
    font-size: clamp(0.92rem, 3.2vw, 1.3rem);
    line-height: 1.4;
    letter-spacing: 0.04em;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .renewalMv__logoSeo {
    font-size: clamp(0.65rem, 2.4vw, 0.82rem);
    line-height: 1.45;
    letter-spacing: 0.02em;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .renewalMv__headerActions {
    position: relative;
    top: auto;
    right: auto;
    flex-shrink: 0;
    align-self: flex-start;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 4px;
  }
  body.is-past-fv .renewalMv__headerActions {
    display: none;
  }
  .renewalMv__headerActions .renewalMv__navBtn {
    padding: 5px 8px;
    font-size: 0.92rem;
    letter-spacing: 0.03em;
    white-space: nowrap;
    border-radius: 8px;
  }
  .renewalMv__headerActions .renewalMv__navIcon svg {
    width: 16px;
    height: 16px;
  }
  .renewalMv__headerBurger {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    background: rgba(236, 234, 232, 0.95) url("../images/common/webp/sp_menu.webp") no-repeat center center / 40px auto;
  }
  .no-webp .renewalMv__headerBurger {
    background-image: url("../images/common/sp_menu.png");
  }
  .renewalMv__headerBurger.on {
    background-image: url("../images/common/webp/sp_close.webp");
  }
  .no-webp .renewalMv__headerBurger.on {
    background-image: url("../images/common/sp_close.png");
  }

  /* SP追従フッター（4項目）— PC aside と同系統 */
  .spFixedBox {
    display: none;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: stretch;
    position: fixed;
    bottom: 2px;
    left: 10px;
    right: 10px;
    width: auto;
    z-index: 100;
    box-sizing: border-box;
    background: linear-gradient(180deg, #b89870 0%, #9a7d58 100%) !important;
    border: 1px solid rgba(255, 255, 255, 0.65) !important;
    border-radius: 1rem;
    box-shadow: 0 4px 20px rgba(51, 51, 51, 0.22);
    padding-bottom: 0;
  }
  body.is-past-fv .spFixedBox {
    display: flex !important;
  }
  .spFixedBox > .access,
  .spFixedBox > .line,
  .spFixedBox > .tel,
  .spFixedBox > .web {
    flex: 1 1 25%;
    width: 25%;
    min-width: 0;
    box-sizing: border-box;
  }
  .spFixedBox > div:not(:last-child) {
    border-right: 1px solid rgba(255, 255, 255, 0.45);
  }
  .spFixedBox > div a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 68px;
    padding: 10px 2px;
    color: var(--renewal-white) !important;
    font-family: var(--renewal-font-serif);
    font-size: clamp(0.85rem, 2.9vw, 1.08rem);
    line-height: 1.35;
    font-weight: 400;
    letter-spacing: 0.04em;
  }
  .spFixedBox .spFixedBox__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    padding: 0;
    background: none !important;
    color: var(--renewal-white);
  }
  .spFixedBox .spFixedBox__icon--line {
    color: var(--renewal-white);
  }
  .spFixedBox .spFixedBox__icon svg {
    display: block;
    width: 24px;
    height: 24px;
  }
  .spFixedBox > div a span {
    padding: 0 !important;
    background: none !important;
  }
  .spFixedBox .web a span {
    padding: 0 !important;
    background: none !important;
  }
  .spFixedBox .spFixedBox__label {
    display: block;
    padding: 0;
    background: none !important;
    font-size: clamp(0.85rem, 2.9vw, 1.08rem);
    line-height: 1.35;
    text-align: center;
    color: var(--renewal-white);
  }
}

@media all and (max-width: 768px) {
  #open-chatbot .chatbot-ai {
    z-index: 999;
    position: fixed;
    bottom: calc(96px + env(safe-area-inset-bottom, 0));
    right: 0;
    width: 40%;
  }
}

/* FV通過後に表示（PC追従ヘッダーと同タイミング） */
#open-chatbot {
  display: none;
}

.renewalMv__body {
  margin-top: 0;
  width: 100%;
  max-width: 760px;
}
.renewalMv__copy {
  margin-bottom: clamp(28px, 4vw, 44px);
}
.renewalMv__intro {
  opacity: 1;
  transform: none;
}
.renewalMv.is-mv-animate .renewalMv__intro {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  transition: opacity 1.3s ease-out, transform 1.3s ease-out;
}
.renewalMv.is-mv-animate.is-mv-show-copy .renewalMv__intro--step1,
.renewalMv.is-mv-animate.is-mv-show-badges .renewalMv__intro--step2 {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .renewalMv.is-mv-animate .renewalMv__intro {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
.renewalMv__title {
  margin: 0 0 clamp(18px, 2.5vw, 28px);
  font-family: var(--renewal-font-serif);
  font-size: clamp(3.2rem, 7vw, 5.6rem);
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1.55;
  color: #2e2a27;
  text-align: left;
}
.renewalMv__titleEmph {
  font-size: 1.32em;
  letter-spacing: 0.1em;
}
.renewalMv__sub {
  display: inline-flex;
  align-items: center;
  gap: clamp(10px, 2vw, 16px);
  margin: 0;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1rem, 1.8vw, 1.35rem);
  font-weight: 400;
  letter-spacing: 0.1em;
  color: #6e6560;
  text-align: left;
}
.renewalMv__subLine {
  flex: 0 0 clamp(24px, 4vw, 56px);
  width: clamp(24px, 4vw, 56px);
  height: 1px;
  background: #a4824e;
  opacity: 0.75;
}
.renewalMv__badges {
  display: flex;
  flex-wrap: nowrap;
  gap: clamp(8px, 2vw, 20px);
  justify-content: flex-start;
  width: 100%;
}
.renewalCircle--mv {
  color: #4a4038;
  background: #fff;
  border: 1px solid rgba(168, 130, 78, 0.48);
  box-shadow: 0 4px 16px rgba(110, 90, 66, 0.08);
}
.renewalCircle--mv .renewalCircle__icon {
  color: #8b7355;
}
.renewalMv__badges .renewalCircle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  max-width: 216px;
  height: auto;
  aspect-ratio: 1;
  padding: clamp(12px, 2.6vw, 18px);
  font-size: clamp(1rem, 3.47vw, 1.45rem);
  line-height: 1.38;
  overflow: hidden;
}
.renewalMv__badges .renewalCircle__text {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  font-size: 1.275em;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: normal;
}
.renewalMv__badges .renewalCircle__line {
  display: block;
  white-space: nowrap;
  line-height: 1.3;
}
.renewalMv__badges .renewalCircle__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(1.89rem, 5.92vw, 3.21rem);
  height: clamp(1.89rem, 5.92vw, 3.21rem);
  margin-bottom: clamp(3px, 0.8vw, 6px);
}
.renewalMv__badges .renewalCircle__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
.renewalMv__badges .renewalCircle__emph {
  display: block;
  margin-top: 2px;
  font-size: clamp(1.53rem, 5.71vw, 2.5rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.04em;
  color: #8b7355;
}
.renewalMv__badges .renewalCircle__emph .renewalCircle__line {
  line-height: 1.25;
}
.renewalMv__badges .renewalCircle__emph .renewalCircle__line + .renewalCircle__line {
  margin-top: 1px;
}

@media all and (max-width: 767px) {
  .renewalMv__inner {
    align-items: center;
    width: 100%;
    max-width: 100%;
    padding: 20px 6px 90px;
    box-sizing: border-box;
  }
  .renewalMv__body {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 100%;
  }
  .renewalMv__copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
  }
  .renewalMv__title {
    text-align: center;
    font-size: 2.7rem;
    letter-spacing: 0.1em;
  }
  .renewalMv__titleEmph {
    font-size: 1.43em;
    letter-spacing: 0.1em;
  }
  .renewalMv__sub {
    justify-content: center;
    text-align: center;
    font-size: 1.7rem;
  }
  .renewalMv__subLine {
    flex: 1 1 0;
    width: auto;
    min-width: 20px;
    max-width: 48px;
  }
  .renewalMv__badges {
    justify-content: center;
    align-items: stretch;
    gap: clamp(3px, 1.2vw, 6px);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .renewalMv__badges .renewalCircle {
    flex: 1 1 0;
    min-width: 0;
    width: auto;
    max-width: none;
    padding: clamp(10px, 3vw, 14px) clamp(4px, 1.2vw, 8px);
    font-size: clamp(0.98rem, 3.67vw, 1.22rem);
    line-height: 1.32;
  }
  .renewalMv__badges .renewalCircle__text {
    font-size: 1.245em;
  }
  .renewalMv__badges .renewalCircle__icon {
    width: clamp(1.79rem, 5.92vw, 2.35rem);
    height: clamp(1.79rem, 5.92vw, 2.35rem);
    margin-bottom: clamp(3px, 0.8vw, 6px);
  }
  .renewalMv__badges .renewalCircle__emph {
    font-size: 1.58rem;
    letter-spacing: -0.05em;
  }
  .renewalMv__badges .renewalCircle__emph .renewalCircle__line {
    line-height: 1.22;
  }
}

@media all and (min-width: 768px) {
  .renewalMv {
    min-height: 95svh;
  }
  .renewalMv__header {
    padding: 40px clamp(24px, 3vw, 48px) 0;
  }
  .renewalMv__inner {
    padding: 28px clamp(24px, 4vw, 48px) 52px;
  }
  .renewalMv__nav {
    display: flex;
  }
  .renewalMv__header > .renewalMv__nav {
    gap: 12px;
  }
  .renewalMv__header > .renewalMv__nav .renewalMv__navBtn {
    gap: 10px;
    padding: 14px 28px;
    font-size: 1.7rem;
  }
  .renewalMv__header > .renewalMv__nav .renewalMv__navIcon svg {
    width: 26px;
    height: 26px;
  }
  .renewalMv__body {
    max-width: 720px;
    margin-left: 0;
    margin-right: auto;
  }
  .renewalMv__title {
    font-size: clamp(3.6rem, 5vw, 5rem);
    letter-spacing: 0.14em;
  }
  .renewalMv__sub {
    font-size: clamp(1.1rem, 1.6vw, 1.35rem);
  }
  .renewalMv__badges .renewalCircle {
    flex: 0 0 216px;
    width: 216px;
    max-width: 216px;
    height: 216px;
    font-size: 1.53rem;
    padding: 14px;
  }
  .renewalMv__badges .renewalCircle__icon {
    width: 3.26rem;
    height: 3.26rem;
    margin-bottom: 5px;
  }
  .renewalMv__badges .renewalCircle__emph {
    font-size: 1.89rem;
  }
}

@media all and (min-width: 1080px) {
  .renewalMv__overlay {
    background:
      linear-gradient(
        102deg,
        rgba(252, 248, 246, 0.96) 0%,
        rgba(252, 248, 246, 0.88) 22%,
        rgba(252, 248, 246, 0.5) 46%,
        rgba(252, 248, 246, 0.12) 70%,
        transparent 88%
      );
  }
  .renewalMv__body {
    max-width: 780px;
  }
  .renewalMv__title {
    font-size: 5.6rem;
    letter-spacing: 0.14em;
    line-height: 1.5;
  }
  .renewalMv__sub {
    font-size: 2.35rem;
  }
  .renewalMv__badges .renewalCircle {
    flex: 0 0 240px;
    width: 240px;
    max-width: 240px;
    height: 240px;
    font-size: 1.71rem;
    padding: 18px;
  }
  .renewalMv__badges .renewalCircle__icon {
    width: 5.2rem;
    height: 5.2rem;
    margin-bottom: 7px;
  }
  .renewalMv__badges .renewalCircle__emph {
    font-size: 2.55rem;
  }
  .renewalMv__header > .renewalMv__nav .renewalMv__navBtn {
    padding: 16px 32px;
    font-size: 1.8rem;
  }
  .renewalMv__header > .renewalMv__nav .renewalMv__navIcon svg {
    width: 28px;
    height: 28px;
  }
}

/* ============================================================
   3. News
   ============================================================ */
.renewalNews {
  padding: clamp(48px, 8vw, 90px) 20px;
  background: var(--renewal-cream-dark);
}
.renewalNews__inner {
  width: min(100%, 880px);
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}
.renewalNews__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: start;
  gap: 16px 20px;
  margin-bottom: clamp(20px, 3vw, 28px);
}
.renewalNews__titleWrap {
  flex: 0 1 auto;
  min-width: 0;
}
.renewalNews__title {
  margin: 0;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2.4rem, 5vw, 3.2rem);
  font-weight: 400;
  letter-spacing: 0.18em;
  color: var(--renewal-text);
  line-height: 1.2;
}
.renewalNews__titleLine {
  display: block;
  width: min(120px, 42%);
  height: 1px;
  margin-top: 10px;
  background: var(--renewal-gold-dark);
}
.renewalNews__tabs {
  display: flex;
  flex-shrink: 0;
  gap: 8px;
}
.renewalNews__tab {
  padding: 7px 18px;
  font-family: var(--renewal-font-serif);
  font-size: 1.1rem;
  letter-spacing: 0.08em;
  color: var(--renewal-gold-dark);
  background: var(--renewal-white);
  border: 1px solid rgba(168, 130, 78, 0.45);
  border-radius: var(--renewal-radius-pill);
  cursor: pointer;
  transition: background var(--renewal-transition),
              color var(--renewal-transition),
              border-color var(--renewal-transition);
}
.renewalNews__tab:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.92);
  border-color: var(--renewal-gold-dark);
}
.renewalNews__tab.is-active {
  color: var(--renewal-white);
  background: var(--renewal-gold-dark);
  border-color: var(--renewal-gold-dark);
}
.renewalNews__tab.is-active:hover {
  background: #7a6348;
  border-color: #7a6348;
}
.renewalNews__body {
  width: 100%;
}
.renewalNews__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.renewalNews__list[hidden] {
  display: none !important;
}
.renewalNews__item {
  background: var(--renewal-white);
  border: 1px solid rgba(168, 130, 78, 0.16);
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(110, 90, 66, 0.07);
  transition: background var(--renewal-transition),
              border-color var(--renewal-transition),
              box-shadow var(--renewal-transition);
}
@media (hover: hover) {
  .renewalNews__item:hover {
    background: var(--renewal-gold-dark);
    border-color: var(--renewal-gold-dark);
    box-shadow: 0 4px 18px rgba(110, 90, 66, 0.16);
  }
  .renewalNews__item:hover .renewalNews__date,
  .renewalNews__item:hover .renewalNews__itemTitle,
  .renewalNews__item:hover .renewalNews__arrow {
    color: var(--renewal-white);
  }
  .renewalNews__item:hover .renewalNews__divider {
    background: rgba(255, 255, 255, 0.45);
  }
}
.renewalNews__link {
  display: flex;
  align-items: center;
  gap: clamp(10px, 2vw, 16px);
  padding: clamp(14px, 2.5vw, 18px) clamp(14px, 2.5vw, 20px);
  color: inherit;
  text-decoration: none;
}
.renewalNews__link:hover {
  opacity: 1;
}
.renewalNews__date {
  flex-shrink: 0;
  width: auto;
  min-width: 7.8em;
  margin: 0;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  letter-spacing: 0.06em;
  color: var(--renewal-gold);
  white-space: nowrap;
  transition: color var(--renewal-transition);
}
.renewalNews__divider {
  flex-shrink: 0;
  align-self: stretch;
  width: 1px;
  min-height: 1.2em;
  background: rgba(168, 130, 78, 0.35);
  transition: background var(--renewal-transition);
}
.renewalNews__itemTitle {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.15rem, 2.2vw, 1.35rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: var(--renewal-text);
  transition: color var(--renewal-transition);
}
.renewalNews__arrow {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--renewal-gold-dark);
  transition: color var(--renewal-transition);
}
.renewalNews__arrow svg {
  display: block;
  width: 18px;
  height: 18px;
}
.renewalNews__foot {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(18px, 3vw, 24px);
}
.renewalNews__more,
.renewalNews__more:link,
.renewalNews__more:visited {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--renewal-font-serif);
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  color: var(--renewal-brown);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity var(--renewal-transition);
}
.renewalNews__more:hover {
  opacity: 0.75;
  color: var(--renewal-brown);
}
.renewalNews__moreIcon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border: 1px solid var(--renewal-brown);
  border-radius: 50%;
  text-decoration: none;
}
.renewalNews__moreIcon svg {
  display: block;
  width: 14px;
  height: 14px;
}
.renewalNews__more[hidden] {
  display: none !important;
}
@media all and (max-width: 767px) {
  .renewalNews {
    padding-left: 16px;
    padding-right: 16px;
  }
  .renewalNews__date {
    min-width: 6.8em;
    font-size: 1rem;
  }
  .renewalNews__itemTitle {
    font-size: 1.1rem;
  }
  .renewalNews__arrow {
    width: 24px;
    height: 24px;
  }
}
@media all and (min-width: 768px) {
  .renewalNews__date {
    min-width: 9em;
  }
}

/* ============================================================
   4. Concept
   ============================================================ */
.renewalConcept {
  position: relative;
  padding: 80px 0;
  overflow: hidden;
  color: var(--renewal-white);
  text-align: center;
}
.renewalConcept__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: center center / cover no-repeat;
}
.renewalConcept__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(101, 105, 104, 0.72);
}
.renewalConcept__inner {
  position: relative;
  z-index: 2;
  max-width: 920px;
  margin: 0 auto;
  padding: 0 10px;
}
.renewalConcept__title {
  margin-bottom: 3rem;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2.4rem, 5vw, 3.2rem);
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1.5;
}
.renewalConcept__lead {
  margin-bottom: 2.5rem;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2.85rem, 7vw, 3.6rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.65;
}
.renewalConcept__text {
  margin: 0 auto 28px;
  font-size: 1.5rem;
  line-height: 2.35;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  text-align: justify;
  text-justify: inter-ideograph;
}
.renewalConcept__text:last-of-type {
  margin-bottom: 36px;
}
.renewalConcept__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 280px;
  margin-top: 8px;
  padding: 18px 56px;
  font-family: var(--renewal-font-serif);
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 1.4;
  color: #fff;
  text-decoration: none;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 0;
  transition: opacity var(--renewal-transition);
}
.renewalConcept__btn::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid rgba(255, 255, 255, 0.95);
  pointer-events: none;
}
.renewalConcept__btn::after {
  content: "";
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 10px;
  height: 10px;
  background: var(--renewal-white);
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
  pointer-events: none;
}
.renewalConcept__btn:hover {
  opacity: 0.85;
  color: #fff;
}

a.renewalConcept__btn,
a.renewalConcept__btn:link,
a.renewalConcept__btn:visited,
a.renewalConcept__btn:hover,
a.renewalConcept__btn:active {
  color: #fff;
}

@media all and (max-width: 767px) {
  .renewalConcept__inner {
    max-width: none;
    padding: 0 25px;
  }
  .renewalConcept__lead {
    font-size: clamp(2.2rem, 5.6vw, 2.3rem);
    letter-spacing: 0.05em;
    line-height: 1.75;
  }
  .renewalConcept__text {
    font-size: 1.35rem;
    letter-spacing: 0.05em;
    line-height: 2.15;
    text-align: left;
    text-justify: auto;
  }
  .renewalConcept__btn {
    display: flex;
    width: 100%;
    max-width: 600px;
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }
}

@media all and (min-width: 768px) {
  .renewalConcept {
    padding: 100px 0;
  }
  .renewalConcept__lead {
    margin-bottom: 3rem;
    font-size: clamp(3.5rem, 4.2vw, 3.5rem);
    line-height: 1.6;
  }
  .renewalConcept__text {
    line-height: 2.4;
  }
}

@media all and (min-width: 1080px) {
  .renewalConcept {
    padding: 120px 0;
  }
}

/* ============================================================
   5. Points
   ============================================================ */
.renewalPoints {
  padding: clamp(56px, 8vw, 90px) 20px;
  background: var(--renewal-cream);
}
.renewalPoints__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.renewalPoints__head {
  width: 100%;
  max-width: 100%;
  margin-bottom: clamp(36px, 5vw, 52px);
  text-align: center;
}
.renewalPoints__titleEn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 3.2vw, 24px);
  margin: 0 0 clamp(16px, 2.8vw, 24px);
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.75rem, 3.2vw, 3rem);
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.6;
  color: var(--renewal-text);
}
.renewalPoints__titleLine {
  flex: 0 1 clamp(48px, 9vw, 96px);
  width: clamp(48px, 9vw, 96px);
  height: 1px;
  background: var(--renewal-gold);
  opacity: 0.85;
}
.renewalPoints__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, 2vw, 18px);
  width: 100%;
  max-width: 100%;
  margin: 0;
}
.renewalPoints__titleMain {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 0.12em clamp(0.8em, 3.5vw, 2em);
  width: 100%;
  max-width: 100%;
  font-family: var(--renewal-font-serif);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.35;
  color: var(--renewal-text);
}
.renewalPoints__titlePhrase {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
}
.renewalPoints__titleBase {
  font-size: clamp(1.9rem, 4.5vw, 2.85rem);
  font-weight: 600;
  color: var(--renewal-text);
}
.renewalPoints__titleEmph {
  font-size: clamp(3.2rem, 8.5vw, 5.8rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.12;
  background: linear-gradient(180deg, var(--renewal-gold) 0%, #a08060 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.renewalPoints__titleSub {
  display: block;
  width: 100%;
  max-width: 100%;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2.5rem, 6.5vw, 4.2rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.4;
  color: var(--renewal-text);
}
.renewalPoints__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 4vw, 36px);
}
.renewalPoints__card {
  min-width: 0;
  height: 100%;
}
.renewalPoints__cardInner {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  height: 100%;
  background: var(--renewal-white);
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(110, 90, 66, 0.1);
  overflow: hidden;
}
.renewalPoints__num {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  width: 80px;
  height: 80px;
  padding: 10px 0 0 12px;
  font-family: var(--renewal-font-serif);
  font-size: 2.5rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1;
  color: var(--renewal-white);
  background: linear-gradient(135deg, #9a8468 0%, #6e5a42 100%);
  clip-path: polygon(0 0, 100% 0, 0 100%);
  box-sizing: border-box;
}
.renewalPoints__imgWrap {
  position: relative;
  overflow: hidden;
}
.renewalPoints__imgWrap img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.renewalPoints__body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 1;
  padding: clamp(18px, 2.8vw, 24px) clamp(14px, 2.2vw, 20px) clamp(22px, 3.2vw, 28px);
}
.renewalPoints__highlight {
  margin-bottom: clamp(16px, 2.5vw, 22px);
  padding: clamp(16px, 3cqi, 20px) clamp(16px, 3.5cqi, 24px);
  background: #fcf8f5;
  border: 1px solid rgba(168, 130, 78, 0.38);
  border-radius: 8px;
  box-shadow: none;
  box-sizing: border-box;
  container-type: inline-size;
}
.renewalPoints__catchRow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 3cqi, 16px);
  width: 100%;
  margin: 0;
  box-sizing: border-box;
}
.renewalPoints__divider {
  display: block;
  width: 100%;
  height: 0;
  margin: clamp(10px, 2.2cqi, 14px) 0;
  padding: 0;
  border: none;
  border-top: 1px solid rgba(168, 130, 78, 0.38);
}
.renewalPoints__sub {
  margin: 0;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.35rem, 7cqi, 1.85rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
  color: var(--renewal-text);
  text-align: center;
  word-break: keep-all;
}
.renewalPoints__subEmph {
  font-weight: 600;
  background: linear-gradient(180deg, #c8aa7d 0%, #8b7355 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.renewalPoints__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(48px, 14cqi, 58px);
  height: clamp(48px, 14cqi, 58px);
  color: var(--renewal-gold-dark);
  border: 1px solid rgba(168, 130, 78, 0.5);
  border-radius: 50%;
}
.renewalPoints__icon svg {
  display: block;
  width: clamp(30px, 8cqi, 34px);
  height: clamp(30px, 8cqi, 34px);
}
.renewalPoints__catch {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  text-align: left;
}
.renewalPoints__catchLead {
  display: block;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.2rem, 7cqi, 1.65rem);
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: var(--renewal-text);
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}
.renewalPoints__catchEmph {
  display: block;
  margin-top: clamp(4px, 1cqi, 8px);
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.85rem, 10.5cqi, 2.75rem);
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.15;
  background: linear-gradient(180deg, #c8aa7d 0%, #8b7355 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}
.renewalPoints__catchEmph--lg {
  font-size: clamp(2.2rem, 14cqi, 4.2rem);
  letter-spacing: 0.06em;
}
.renewalPoints__text {
  width: 100%;
  margin: 0;
  font-size: clamp(1.35rem, 2vw, 1.5rem);
  color: var(--renewal-body);
  line-height: 2.1;
  letter-spacing: 0.05em;
  font-feature-settings: "palt";
  text-align: justify;
  text-justify: inter-ideograph;
}

@media all and (max-width: 767px) {
  .renewalPoints {
    padding-left: 16px;
    padding-right: 16px;
  }
  .renewalPoints__titleEn {
    font-size: 1.7rem;
  }
  .renewalPoints__text {
    text-align: left;
    text-justify: auto;
  }
  .renewalPoints__card:nth-child(3) .renewalPoints__catchLead {
    font-size: clamp(1.15rem, 4vw, 1.45rem);
  }
  .renewalPoints__card:nth-child(3) .renewalPoints__catchEmph {
    font-size: clamp(1.82rem, 12.2cqi, 2.8rem);
    letter-spacing: -0.01em;
  }
}

@media all and (min-width: 768px) {
  .renewalPoints__catchLead,
  .renewalPoints__catchEmph,
  .renewalPoints__sub {
    white-space: nowrap;
  }
  .renewalPoints__highlight {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: clamp(10px, 2.2cqi, 14px);
    min-height: 200px;
  }
  .renewalPoints__catchRow {
    flex: 0 0 auto;
    align-items: center;
  }
  .renewalPoints__divider {
    flex-shrink: 0;
    margin: 0;
  }
  .renewalPoints__sub {
    flex-shrink: 0;
    min-height: 1.5em;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .renewalPoints__catchLead {
    font-size: 1.45rem;
  }
  .renewalPoints__catchEmph--lg {
    font-size: 3.35rem;
  }
  .renewalPoints__card:nth-child(3) .renewalPoints__catchEmph {
    font-size: 2.45rem;
    letter-spacing: 0.03em;
  }
  .renewalPoints__sub {
    font-size: 1.55rem;
  }
  .renewalPoints__titleMain {
    flex-wrap: nowrap;
    gap: 0.15em clamp(1em, 4vw, 2.4em);
  }
  .renewalPoints__titleBase {
    font-size: clamp(2.2rem, 3.2vw, 3rem);
  }
  .renewalPoints__titleEmph {
    font-size: clamp(3.8rem, 6.8vw, 6.2rem);
  }
  .renewalPoints__titleSub {
    font-size: clamp(2.8rem, 4.8vw, 4.5rem);
  }
  .renewalPoints__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(20px, 2.5vw, 28px);
  }
}

@media all and (min-width: 1080px) {
  .renewalPoints__highlight {
    min-height: 175px;
  }
  .renewalPoints__catchLead {
    font-size: 2rem;
  }
  .renewalPoints__catchEmph--lg {
    font-size: 4.2rem;
  }
  .renewalPoints__card:nth-child(3) .renewalPoints__catchEmph {
    font-size: 2.8rem;
  }
  .renewalPoints__highlight .renewalPoints__sub {
    font-size: 2rem;
  }
  .renewalPoints__titleBase {
    font-size: 3rem;
  }
  .renewalPoints__titleEmph {
    font-size: 6.2rem;
  }
  .renewalPoints__titleSub {
    font-size: 4.6rem;
  }
  .renewalPoints__grid {
    gap: 32px;
  }
}

/* ============================================================
   6. Reasons
   ============================================================ */
.renewalReasons {
  padding: clamp(56px, 8vw, 88px) 0 clamp(64px, 8vw, 96px);
  background: var(--renewal-cream-dark);
}
.renewalReasons__inner {
  width: min(100% - 40px, 1200px);
  margin: 0 auto;
  box-sizing: border-box;
}
.renewalReasons__head {
  margin-bottom: clamp(24px, 4vw, 36px);
  text-align: center;
}
.renewalReasons__leadRow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 2.5vw, 20px);
  margin: 0 0 clamp(12px, 2vw, 18px);
}
.renewalReasons__leadLine {
  position: relative;
  flex: 1 1 clamp(40px, 8vw, 120px);
  max-width: 120px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(139, 115, 85, 0.55));
}
.renewalReasons__leadRow .renewalReasons__leadLine:last-child {
  background: linear-gradient(90deg, rgba(139, 115, 85, 0.55), transparent);
}
.renewalReasons__leadText {
  flex-shrink: 0;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.6rem, 2.8vw, 2.4rem);
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.5;
  color: var(--renewal-text);
  white-space: nowrap;
}
.renewalReasons__leadText em {
  font-style: normal;
  font-weight: 500;
  color: var(--renewal-gold-dark);
}
.renewalReasons__headDivider {
  position: relative;
  width: min(100%, 280px);
  height: 10px;
  margin: 0 auto clamp(10px, 2vw, 16px);
}
.renewalReasons__headDivider::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(139, 115, 85, 0.45) 20%, rgba(139, 115, 85, 0.45) 80%, transparent);
}
.renewalReasons__headDivider::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  background: var(--renewal-gold-dark);
  transform: translate(-50%, -50%) rotate(45deg);
}
.renewalReasons__heading {
  margin: 0;
  font-family: var(--renewal-font-serif);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.15;
  color: var(--renewal-text);
  text-align: center;
  padding-bottom: 1rem;
}
.renewalReasons__headingNum {
  display: inline-block;
  vertical-align: baseline;
  font-size: clamp(5.4rem, 11vw, 9.2rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
  color: #af9069;
}
.renewalReasons__headingSmall {
  display: inline-block;
  vertical-align: baseline;
  font-size: clamp(1.6rem, 2.8vw, 2.1rem);
  letter-spacing: 0.08em;
}
.renewalReasons__headingMain {
  display: inline-block;
  vertical-align: baseline;
  font-size: clamp(3.3rem, 6vw, 5.4rem);
  letter-spacing: 0.15em;
  line-height: 1.2;
  padding: 0;
  background: none;
  color: var(--renewal-text);
  box-decoration-break: unset;
  -webkit-box-decoration-break: unset;
}
.renewalReasons__body {
  max-width: 920px;
  margin: 0 auto clamp(32px, 5vw, 48px);
  font-size: clamp(1.35rem, 1.8vw, 1.5rem);
  color: var(--renewal-body);
  line-height: 2.4;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  text-align: center;
}
.renewalReasons__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(18px, 2.5vw, 24px);
  margin-bottom: clamp(36px, 5vw, 48px);
}
.renewalReasons__item {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: clamp(24px, 3.5vw, 36px) clamp(22px, 3vw, 32px) clamp(28px, 3.8vw, 36px);
  border: 2px solid rgba(255, 255, 255, 0.92);
  border-radius: 16px;
  box-shadow: 0 4px 14px rgba(51, 51, 51, 0.05);
  box-sizing: border-box;
}
.renewalReasons__item--01 { background: #EEF3F8; }
.renewalReasons__item--02 { background: #FDF6EF; }
.renewalReasons__item--03 { background: #EFF6F1; }
.renewalReasons__item--04 { background: #F3F0F8; }
.renewalReasons__item--05 { background: #EDF6F9; }
.renewalReasons__item--06 { background: #F5F0EB; }
.renewalReasons__itemTop {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 0;
}
.renewalReasons__itemNum {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(6px, 1vw, 10px);
  font-family: var(--renewal-font-serif);
  font-size: clamp(4rem, 6vw, 5.4rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;
  color: #af9069;
}
.renewalReasons__itemNum::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background: #af9069;
}
.renewalReasons__itemIcon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: clamp(72px, 11vw, 96px);
  height: clamp(72px, 11vw, 96px);
  padding: clamp(10px, 1.4vw, 13px);
  color: var(--renewal-gold-dark);
  background: rgba(255, 255, 255, 0.88);
  border: 2px solid rgba(176, 127, 83, 0.42);
  border-radius: 50%;
  box-sizing: border-box;
  overflow: hidden;
}
.renewalReasons__itemIcon svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  stroke-width: 1.4;
}
.renewalReasons__item--04 .renewalReasons__itemIcon {
  padding: clamp(7px, 1.1vw, 10px);
}
.renewalReasons__item--01 .renewalReasons__itemIcon,
.renewalReasons__item--05 .renewalReasons__itemIcon {
  padding: clamp(6px, 1vw, 9px);
}
.renewalReasons__itemTitle {
  margin: 0 0 1.2rem;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.85rem, 2.8vw, 2.5rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.55;
  color: #222;
}
.renewalReasons__itemDivider {
  width: 100%;
  height: 1px;
  margin-bottom: clamp(16px, 2.4vw, 22px);
  background: rgba(139, 115, 85, 0.35);
}
.renewalReasons__itemText {
  margin: 0;
  font-size: clamp(1.3rem, 1.6vw, 1.5rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.85;
  color: #4A4E4D;
}
.renewalReasons__inner > .comBtn {
  margin-top: 0;
  margin-bottom: 0;
}

@media all and (max-width: 767px) {
  .renewalReasons__itemTitle {
    font-size: 2.5rem;
  }
}

@media all and (min-width: 640px) {
  .renewalReasons__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }
}

@media all and (min-width: 1080px) {
  .renewalReasons__leadText {
    font-size: 2.4rem;
    letter-spacing: 0.2em;
  }
  .renewalReasons__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }
  .renewalReasons__itemTitle {
    font-size: 2.6rem;
  }
  .renewalReasons__itemText {
    font-size: 1.4rem;
  }
}

/* renewalSpecialize — shared heading tokens */
.renewalSpecialize__lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(2px, 0.6vw, 6px);
  margin-bottom: clamp(10px, 1.8vw, 14px);
  font-family: var(--renewal-font-serif);
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.7;
  color: var(--renewal-text);
}
.renewalSpecialize__leadSmall {
  display: block;
  flex-shrink: 0;
  font-size: calc(clamp(1.35rem, 2.4vw, 2rem) * var(--venn-scale, 1));
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.55;
  color: var(--renewal-text);
  white-space: nowrap;
  text-shadow: var(--venn-copy-glow, 0 0 14px rgba(255, 255, 255, 0.92), 0 0 32px rgba(255, 255, 255, 0.65));
}
.renewalSpecialize__leadEmph {
  display: block;
  margin: clamp(2px, 0.8vw, 6px) 0;
  font-size: calc(clamp(2.6rem, 5.8vw, 4.8rem) * var(--venn-scale, 1));
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.15;
  white-space: nowrap;
  background: linear-gradient(180deg, #c4a574 0%, #9a8062 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: var(--venn-gradient-glow, drop-shadow(0 0 14px rgba(255, 255, 255, 0.88)));
}
.renewalSpecialize__heading {
  font-family: var(--renewal-font-serif);
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.15;
  color: var(--renewal-text);
}
.renewalSpecialize__headingNum {
  display: inline-block;
  vertical-align: baseline;
  font-size: calc(6rem * var(--venn-scale, 1));
  letter-spacing: 0.02em;
  line-height: 1;
  background: linear-gradient(180deg, #c8aa7d 0%, var(--renewal-gold-dark) 58%, #6e5840 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: var(--venn-gradient-glow, drop-shadow(0 0 14px rgba(255, 255, 255, 0.88)));
}
.renewalSpecialize__headingSmall {
  display: inline-block;
  vertical-align: baseline;
  font-size: 1em;
  letter-spacing: 0.08em;
  text-shadow: var(--venn-copy-glow, 0 0 14px rgba(255, 255, 255, 0.92), 0 0 32px rgba(255, 255, 255, 0.65));
}
.renewalSpecialize__headingMain {
  display: inline-block;
  vertical-align: baseline;
  font-size: calc(3.6rem * var(--venn-scale, 1));
  letter-spacing: 0.1em;
  line-height: 1.2;
  padding: 0;
  background: none;
  color: var(--renewal-text);
  box-decoration-break: unset;
  -webkit-box-decoration-break: unset;
  text-shadow: var(--venn-copy-glow, 0 0 14px rgba(255, 255, 255, 0.92), 0 0 32px rgba(255, 255, 255, 0.65));
}

@media all and (min-width: 768px) {
  .renewalSpecialize__heading {
    font-size: calc(2rem * var(--venn-scale, 1));
  }
  .renewalSpecialize__headingNum {
    font-size: calc(7.2rem * var(--venn-scale, 1));
  }
  .renewalSpecialize__headingMain {
    font-size: calc(4.2rem * var(--venn-scale, 1));
  }
}

@media all and (min-width: 1080px) {
  .renewalSpecialize__heading {
    font-size: calc(2.1rem * var(--venn-scale, 1));
  }
  .renewalSpecialize__headingNum {
    font-size: calc(8.4rem * var(--venn-scale, 1));
  }
  .renewalSpecialize__headingMain {
    font-size: calc(4.8rem * var(--venn-scale, 1));
  }
}

/* ============================================================
   7. Clinic Photo Slider
   ============================================================ */
.renewalClinicSlide {
  padding: 0;
  background: var(--renewal-cream-dark);
  overflow: hidden;
}
.renewalClinicSlide__track {
  display: flex;
  gap: 0;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.renewalClinicSlide__track::-webkit-scrollbar {
  display: none;
}
.renewalClinicSlide__slide {
  flex: 0 0 85%;
  scroll-snap-align: start;
}
.renewalClinicSlide__slide img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}
.renewalClinicSlide__dots {
  display: flex;
  gap: 8px;
  justify-content: center;
  padding: 16px 0 24px;
}
.renewalClinicSlide__dot {
  width: 8px;
  height: 8px;
  padding: 0;
  background: var(--renewal-border);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: background var(--renewal-transition),
              transform var(--renewal-transition);
}
.renewalClinicSlide__dot.is-active {
  background: var(--renewal-gold);
  transform: scale(1.25);
}

@media all and (min-width: 768px) {
  .renewalClinicSlide__slide {
    flex: 0 0 50%;
  }
}

@media all and (min-width: 1080px) {
  .renewalClinicSlide__slide {
    flex: 0 0 33.333%;
  }
  .renewalClinicSlide__slide img {
    aspect-ratio: 4 / 3;
  }
}

/* ============================================================
   8. Specialize (3 Venn Circles)
   ============================================================ */
.renewalSpecialize {
  --venn-scale: 1.2;
  --venn-copy-glow:
    0 0 20px rgba(255, 255, 255, 1),
    0 0 44px rgba(255, 255, 255, 0.94),
    0 0 80px rgba(255, 255, 255, 0.72),
    0 0 120px rgba(255, 255, 255, 0.45);
  --venn-gradient-glow:
    drop-shadow(0 0 20px rgba(255, 255, 255, 1))
    drop-shadow(0 0 44px rgba(255, 255, 255, 0.88))
    drop-shadow(0 0 72px rgba(255, 255, 255, 0.58));
  position: relative;
  padding: 0;
  background: var(--renewal-cream);
  overflow: hidden;
  content-visibility: auto;
  contain-intrinsic-size: auto 900px;
}
.renewalSpecialize__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  pointer-events: none;
}
.renewalSpecialize__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0) 58%,
    rgba(255, 255, 255, 0.35) 82%,
    rgba(255, 255, 255, 0.72) 100%
  );
  pointer-events: none;
}
.renewalSpecialize > .content {
  position: static;
  max-width: none;
  width: 100%;
  margin: 0;
  padding-top: 64px;
  padding-left: clamp(12px, 2.5vw, 20px);
  padding-right: clamp(12px, 2.5vw, 20px);
  box-sizing: border-box;
}
.renewalSpecialize__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0 auto;
  --venn-circle: min(calc(148px * var(--venn-scale)), calc((100vw - 56px) / 2 * 0.93 * var(--venn-scale)));
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  align-items: center;
  padding: 0 0 32px;
}
.renewalSpecialize__venn {
  --venn-center: calc(var(--venn-circle) * 0.58);
  --venn-text-shift: calc(var(--venn-circle) * 0.03);
  position: relative;
  left: 50%;
  width: calc(var(--venn-circle) * 2);
  height: calc(var(--venn-circle) * 1.75);
  transform: translateX(-50%);
}
.renewalSpecialize__vennCircle {
  --venn-light-x: 34%;
  --venn-light-y: 26%;
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  width: var(--venn-circle);
  height: var(--venn-circle);
  padding: calc(clamp(14px, 4vw, 22px) * var(--venn-scale));
  font-family: var(--renewal-font-serif);
  font-size: calc(clamp(1.25rem, 3.6vw, 1.55rem) * var(--venn-scale));
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.5;
  text-align: center;
  color: rgba(255, 255, 255, 0.97);
  text-shadow: none;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 50%;
  box-sizing: border-box;
  box-shadow:
    0 0 56px rgba(58, 42, 28, 0.1),
    0 10px 28px rgba(58, 42, 28, 0.16),
    0 1px 0 rgba(255, 255, 255, 0.38) inset;
}
.renewalSpecialize__vennCircle::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: 50%;
  background:
    radial-gradient(
      ellipse 88% 72% at var(--venn-light-x) var(--venn-light-y),
      rgba(255, 248, 238, 0.22) 0%,
      rgba(255, 248, 238, 0.06) 42%,
      transparent 72%
    ),
    linear-gradient(
      180deg,
      rgba(128, 98, 68, 0.78) 0%,
      rgba(108, 80, 54, 0.84) 48%,
      rgba(72, 52, 34, 0.9) 100%
    );
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  pointer-events: none;
}
.renewalSpecialize__vennCircle::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 50%,
    transparent 52%,
    rgba(72, 54, 38, 0.12) 82%,
    rgba(48, 34, 22, 0.22) 100%
  );
  pointer-events: none;
}
.renewalSpecialize__vennCircle--top {
  --venn-light-x: 38%;
  --venn-light-y: 22%;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
}
.renewalSpecialize__vennCircle--left {
  --venn-light-x: 30%;
  --venn-light-y: 28%;
  bottom: 0;
  left: 0;
  z-index: 3;
}
.renewalSpecialize__vennCircle--right {
  --venn-light-x: 66%;
  --venn-light-y: 28%;
  bottom: 0;
  right: 0;
  z-index: 3;
}
.renewalSpecialize__vennName {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  max-width: 74%;
  margin: 0 auto;
  font-size: 1em;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.42;
  color: var(--renewal-white);
  text-align: center;
  word-break: keep-all;
  text-shadow: none;
}
.renewalSpecialize__vennCircle--top .renewalSpecialize__vennName {
  transform: translateY(calc(var(--venn-text-shift) * -1.1));
}
.renewalSpecialize__vennCircle--left .renewalSpecialize__vennName,
.renewalSpecialize__vennCircle--left .renewalSpecialize__vennName--implant {
  transform: translate(calc(var(--venn-text-shift) * -0.15), calc(var(--venn-text-shift) * 1.25));
  max-width: 66%;
  font-size: 0.94em;
  letter-spacing: 0.03em;
}
.renewalSpecialize__vennNameNowrap {
  display: inline-block;
  white-space: nowrap;
}
.renewalSpecialize__vennCircle--right .renewalSpecialize__vennName {
  transform: translate(var(--venn-text-shift), var(--venn-text-shift));
  max-width: 74%;
}
.renewalSpecialize__vennCircle small {
  display: block;
  margin-top: 4px;
  font-size: 0.75rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.92);
}
.renewalSpecialize__vennCenter {
  position: absolute;
  top: 53%;
  left: 50%;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  width: var(--venn-center);
  height: var(--venn-center);
  padding: clamp(8px, 2vw, 14px);
  font-family: var(--renewal-font-serif);
  text-align: center;
  container-type: inline-size;
  background:
    radial-gradient(
      ellipse 85% 65% at 50% 24%,
      rgba(255, 255, 255, 0.45) 0%,
      transparent 68%
    ),
    linear-gradient(180deg, #fff 0%, #f3ece4 100%);
  border: 1.5px solid rgba(139, 115, 85, 0.4);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 8px 22px rgba(120, 98, 72, 0.1);
}
.renewalSpecialize__vennCenterLogo {
  display: block;
  width: clamp(40px, 28cqi, 64px);
  height: auto;
  margin: 0 auto;
}
.renewalSpecialize__vennCenterName {
  display: block;
  margin-top: clamp(4px, 1.2cqi, 8px);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-shadow: none;
  line-height: 1.4;
  color: var(--renewal-gold-dark);
  word-break: keep-all;
}
.renewalSpecialize__content {
  position: relative;
  left: 50%;
  width: calc(var(--venn-circle) * 2);
  max-width: 100%;
  transform: translateX(-50%);
  text-align: center;
}
.renewalSpecialize__copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(4px, 1vw, 8px);
  padding: clamp(20px, 3.2vw, 32px) clamp(24px, 4.5vw, 48px);
  isolation: isolate;
}
.renewalSpecialize__copy::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -14% -10%;
  border-radius: 50%;
  background: radial-gradient(
    ellipse at center,
    rgba(255, 255, 255, 0.97) 0%,
    rgba(255, 255, 255, 0.88) 32%,
    rgba(255, 255, 255, 0.55) 58%,
    rgba(255, 255, 255, 0.18) 78%,
    rgba(255, 255, 255, 0) 100%
  );
  filter: blur(22px);
  pointer-events: none;
}
.renewalSpecialize__copyDivider {
  position: relative;
  width: min(100%, clamp(260px, 45vw, 380px));
  height: 9px;
  margin: clamp(6px, 1.2vw, 12px) auto;
  flex-shrink: 0;
  filter:
    drop-shadow(0 0 18px rgba(255, 255, 255, 0.96))
    drop-shadow(0 0 36px rgba(255, 255, 255, 0.78));
}
.renewalSpecialize__copyDivider::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(139, 115, 85, 0.45) 8%,
    rgba(139, 115, 85, 0.75) calc(50% - 8px),
    transparent calc(50% - 1px),
    transparent calc(50% + 1px),
    rgba(139, 115, 85, 0.75) calc(50% + 8px),
    rgba(139, 115, 85, 0.45) 92%,
    transparent 100%
  );
}
.renewalSpecialize__copyDivider::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5px;
  height: 5px;
  background: var(--renewal-gold-dark);
  transform: translate(-50%, -50%) rotate(45deg);
}
.renewalSpecialize__heading {
  display: block;
  width: 100%;
  margin: 0;
  text-align: center;
}
.renewalSpecialize__headingInner {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: nowrap;
  white-space: nowrap;
}
@media all and (max-width: 767px) {
  .renewalSpecialize__inner {
    --venn-circle: min(calc(140px * var(--venn-scale)), calc((100vw - 56px) / 2 * 0.93 * var(--venn-scale)));
    justify-items: center;
  }
  .renewalSpecialize__venn {
    left: auto;
    width: calc(var(--venn-circle) * 2);
    max-width: 100%;
    margin: 0 auto;
    transform: none;
  }
  .renewalSpecialize__content {
    left: auto;
    width: 100%;
    max-width: 100%;
    padding: 0 12px;
    margin: 0 auto;
    transform: none;
  }
  .renewalSpecialize__vennCircle {
    padding: calc(6px * var(--venn-scale));
    font-size: calc(1.75rem * var(--venn-scale));
  }
  .renewalSpecialize__vennCircle--left .renewalSpecialize__vennName,
  .renewalSpecialize__vennCircle--left .renewalSpecialize__vennName--implant {
    transform: translate(calc(var(--venn-text-shift) * -2.4), calc(var(--venn-text-shift) * 1.15));
    max-width: 54%;
    font-size: 0.82em;
    letter-spacing: 0;
    line-height: 1.35;
  }
  .renewalSpecialize__vennCircle--left .renewalSpecialize__vennNameNowrap {
    white-space: nowrap;
    font-size: 1em;
  }
  .renewalSpecialize__vennCircle--right .renewalSpecialize__vennName {
    max-width: 68%;
  }
  .renewalSpecialize {
    --venn-copy-glow:
      0 0 3px rgba(255, 255, 255, 1),
      0 0 12px rgba(255, 255, 255, 1),
      0 0 28px rgba(255, 255, 255, 0.98),
      0 0 52px rgba(255, 255, 255, 0.9);
    --venn-gradient-glow:
      drop-shadow(0 0 3px rgba(255, 255, 255, 1))
      drop-shadow(0 0 10px rgba(255, 255, 255, 1))
      drop-shadow(0 0 22px rgba(255, 255, 255, 0.98))
      drop-shadow(0 0 40px rgba(255, 255, 255, 0.88));
  }
  .renewalSpecialize__bg::after {
    background: linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.12) 42%,
      rgba(255, 255, 255, 0.52) 68%,
      rgba(255, 255, 255, 0.88) 100%
    );
  }
  .renewalSpecialize__copy {
    align-items: center;
  }
  .renewalSpecialize__leadSmall,
  .renewalSpecialize__headingSmall,
  .renewalSpecialize__headingMain {
    filter:
      drop-shadow(0 0 3px rgba(255, 255, 255, 1))
      drop-shadow(0 0 12px rgba(255, 255, 255, 0.98))
      drop-shadow(0 0 28px rgba(255, 255, 255, 0.88));
  }
  .renewalSpecialize__leadEmph {
    font-size: calc(clamp(2.2rem, 8.2vw, 3rem) * var(--venn-scale));
    filter:
      drop-shadow(0 0 3px rgba(255, 255, 255, 1))
      drop-shadow(0 0 10px rgba(255, 255, 255, 1))
      drop-shadow(0 0 22px rgba(255, 255, 255, 0.98))
      drop-shadow(0 0 40px rgba(255, 255, 255, 0.88));
  }
  .renewalSpecialize__headingNum {
    filter:
      drop-shadow(0 0 3px rgba(255, 255, 255, 1))
      drop-shadow(0 0 10px rgba(255, 255, 255, 1))
      drop-shadow(0 0 22px rgba(255, 255, 255, 0.98))
      drop-shadow(0 0 40px rgba(255, 255, 255, 0.88));
  }
  .renewalSpecialize__copyDivider {
    filter:
      drop-shadow(0 0 8px rgba(255, 255, 255, 1))
      drop-shadow(0 0 20px rgba(255, 255, 255, 0.92));
  }
  .renewalSpecialize__headingMain {
    letter-spacing: 0.06em;
    padding-right: 0.06em;
  }
}
@media all and (min-width: 768px) {
  .renewalSpecialize {
    padding: 10px 0 0;
    --venn-scale: 1.1;
  }
  .renewalSpecialize__inner {
    justify-content: center;
    width: var(--renewal-inner-wide);
    margin: 0 auto;
    padding: 16px 0 40px;
    --venn-circle: calc(228px * var(--venn-scale));
  }
  .renewalSpecialize__vennCircle {
    font-size: calc(1.48rem * var(--venn-scale));
    padding: calc(20px * var(--venn-scale));
  }
  .renewalSpecialize__vennName {
    max-width: 76%;
    font-size: 1.05em;
  }
  .renewalSpecialize__vennCenterName {
    font-size: 1.8rem;
  }
  .renewalSpecialize__leadSmall {
    font-size: calc(2rem * var(--venn-scale));
  }
  .renewalSpecialize__leadEmph {
    font-size: calc(4.6rem * var(--venn-scale));
  }
  .renewalSpecialize__headingNum {
    font-size: calc(8.4rem * var(--venn-scale));
  }
  .renewalSpecialize__headingMain {
    font-size: calc(4.6rem * var(--venn-scale));
  }
}

@media all and (min-width: 1080px) {
  .renewalSpecialize {
    --venn-scale: 1.12;
  }
  .renewalSpecialize__inner {
    grid-template-columns: auto auto;
    gap: 0;
    padding: 24px 0 56px;
    --venn-circle: calc(324px * var(--venn-scale));
  }
  .renewalSpecialize__venn {
    left: auto;
    transform: none;
  }
  .renewalSpecialize__content {
    left: auto;
    width: auto;
    min-width: min(100%, 480px);
    max-width: none;
    transform: none;
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .renewalSpecialize__copy {
    align-items: center;
  }
  .renewalSpecialize__copyDivider {
    margin-left: auto;
    margin-right: auto;
  }
  .renewalSpecialize__heading {
    text-align: center;
  }
  .renewalSpecialize__vennCircle {
    font-size: calc(3rem * var(--venn-scale));
    padding: calc(24px * var(--venn-scale));
  }
  .renewalSpecialize__vennCenterLogo {
    width: 6.5rem;
  }
  .renewalSpecialize__vennCircle--left .renewalSpecialize__vennName,
  .renewalSpecialize__vennCircle--left .renewalSpecialize__vennName--implant {
    font-size: 0.9em;
    letter-spacing: 0.01em;
  }
  .renewalSpecialize__leadSmall {
    font-size: calc(2.6rem * var(--venn-scale));
  }
  .renewalSpecialize__leadEmph {
    font-size: calc(8.2rem * var(--venn-scale));
    margin: clamp(4px, 1vw, 10px) 0;
  }
  .renewalSpecialize__headingNum {
    font-size: calc(10.5rem * var(--venn-scale));
  }
  .renewalSpecialize__headingMain {
    font-size: calc(5.8rem * var(--venn-scale));
    font-weight: 500;
  }
  .renewalSpecialize__copyDivider {
    width: min(100%, clamp(280px, 42vw, 440px));
    margin-top: clamp(8px, 1.4vw, 14px);
    margin-bottom: clamp(8px, 1.4vw, 14px);
  }
}

/* ============================================================
   9. Treatment Detail Blocks
   ============================================================ */
.renewalTreat {
  padding: 0;
  margin-bottom: 0;
  background: var(--renewal-cream);
}
.renewalTreat + .renewalTreat {
  padding-top: 0;
}
.renewalTreat__block {
  width: 100%;
  margin: 0 auto 0;
  padding: 0;
}
.renewalTreat__row {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  min-height: clamp(520px, 50vw, 680px);
  padding: clamp(64px, 7vw, 96px) 20px;
  overflow: hidden;
  box-sizing: border-box;
}
.renewalTreat__row::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    90deg,
    rgba(252, 248, 246, 0.98) 0%,
    rgba(252, 248, 246, 0.94) 38%,
    rgba(252, 248, 246, 0.72) 52%,
    rgba(252, 248, 246, 0.25) 68%,
    rgba(252, 248, 246, 0) 82%
  );
  pointer-events: none;
}
.renewalTreat__textCol {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: min(100%, 620px);
}

@media all and (max-width: 767px) {
  .renewalTreat__row {
    min-height: auto;
    padding: 40px 0px;
  }
  .renewalTreat__textCol {
    padding: 0px 20px;
  }
  .renewalTreat__row::after {
    background: linear-gradient(
      180deg,
      rgba(252, 248, 246, 0.98) 0%,
      rgba(252, 248, 246, 0.93) 58%,
      rgba(252, 248, 246, 0.55) 100%
    );
  }
  .renewalTreat__points {
    flex-wrap: nowrap;
    justify-content: center;
    gap: 0;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 2px;
    box-sizing: border-box;
  }
  .renewalTreat__point {
    flex: 0 0 clamp(98px, 28.5vw, 122px);
    width: clamp(98px, 28.5vw, 122px);
    height: clamp(98px, 28.5vw, 122px);
    min-width: clamp(98px, 28.5vw, 122px);
    min-height: clamp(98px, 28.5vw, 122px);
    max-width: clamp(98px, 28.5vw, 122px);
    max-height: clamp(98px, 28.5vw, 122px);
    padding: 9px 6px;
    font-size: clamp(0.88rem, 2.65vw, 1.05rem);
    line-height: 1.42;
    letter-spacing: 0.03em;
  }
  .renewalTreat__point + .renewalTreat__point {
    margin-left: clamp(-34px, -9vw, -22px);
  }
  .renewalTreat__point:nth-child(1) {
    z-index: 1;
  }
  .renewalTreat__point:nth-child(2) {
    z-index: 2;
  }
  .renewalTreat__point:nth-child(3) {
    z-index: 3;
  }
  .renewalTreat__desc {
    text-align: left;
    text-justify: auto;
  }
}
.renewalTreat__lead {
  margin-bottom: 16px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2rem, 3vw, 2.2rem);
  letter-spacing: 0.08em;
  color: rgba(58, 52, 47, 0.72);
}
@media all and (max-width: 767px) {
  .renewalTreat__lead {
    margin-bottom: 10px;
    font-family: var(--renewal-font-serif);
    font-size: 1.9rem;
    letter-spacing: 0.08em;
    color: rgba(58, 52, 47, 0.72);
  }
}
.renewalTreat__title {
  position: relative;
  z-index: 0;
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.5vw, 18px);
  margin-bottom: 36px;
  padding: 0;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2.8rem, 4.2vw, 6.4rem);
  font-weight: 500;
  letter-spacing: 0.07em;
  line-height: 1.5;
  color: #4A7898;
  border: none;
  box-sizing: border-box;
  box-shadow: none;
}
@media all and (max-width: 767px) {
  .renewalTreat__title {
    font-size: clamp(3.5rem, 4.2vw, 6.4rem);
  }
}
.renewalTreat__title::before {
  display: none;
}
.renewalTreat__titleAccent {
  flex-shrink: 0;
  align-self: stretch;
  width: 4px;
  min-height: 1.1em;
  background: linear-gradient(180deg, #d4b88a 0%, #b07f53 55%, #9a8062 100%);
}
.renewalTreat__foot {
  margin: 0;
}
.renewalTreat__more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 32px;
  padding: 14px 36px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.25rem, 1.5vw, 1.35rem);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.4;
  color: #4A7898;
  text-decoration: none;
  background: rgba(252, 248, 246, 0.94);
  border: 1px solid #4A7898;
  transition: opacity var(--renewal-transition), background var(--renewal-transition);
}
.renewalTreat__more:hover {
  opacity: 0.85;
  color: #4A7898;
  background: rgba(255, 252, 250, 0.98);
}
a.renewalTreat__more,
a.renewalTreat__more:link,
a.renewalTreat__more:visited,
a.renewalTreat__more:active {
  color: #4A7898;
  background: rgba(252, 248, 246, 0.94);
}
a.renewalTreat__more:hover {
  color: #4A7898;
  background: rgba(255, 252, 250, 0.98);
  opacity: 0.85;
}
.renewalTreat__moreArrow {
  margin-left: 0.35em;
}
.renewalTreat__desc {
  margin: 36px 0 0;
  font-size: clamp(1.45rem, 1.75vw, 1.65rem);
  line-height: 2.25;
  letter-spacing: 0.06em;
  color: rgba(101, 105, 104, 0.88);
  font-feature-settings: "palt";
  text-align: justify;
  text-justify: inter-ideograph;
}
.renewalTreat__points {
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  justify-content: flex-start;
  margin: 0;
}
@media all and (max-width: 767px) {
  .renewalTreat__points {
    justify-content: center;
  }
}
.renewalTreat__point {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 0 0 142px;
  flex-shrink: 0;
  width: 142px;
  height: 142px;
  min-width: 142px;
  min-height: 142px;
  max-width: 142px;
  max-height: 142px;
  aspect-ratio: 1 / 1;
  padding: 14px 10px;
  font-family: var(--renewal-font-serif);
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--renewal-white);
  text-align: center;
  border-radius: 50%;
  box-sizing: border-box;
  box-shadow: var(--renewal-shadow);
}
.renewalTreat__pointEmph {
  display: inline-block;
  font-size: 1.65em;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.2;
  color: #FFE566;
  text-shadow: 0 1px 3px rgba(46, 42, 39, 0.18);
}
.renewalTreat__nowrap {
  white-space: nowrap;
}
.renewalTreat__pointEmph--md {
  font-size: 1.5em;
  color: #FFE566;
}
@media all and (max-width: 767px) {
  .renewalTreat__pointEmph {
    display: inline-block;
    font-size: 1.22em;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.2;
  }
  .renewalTreat__pointEmph--md {
    font-size: 1.32em;
  }
}
.renewalTreat__point:nth-child(1) {
  z-index: 1;
  background: var(--renewal-gold-dark);
}
.renewalTreat__point:nth-child(2) {
  z-index: 2;
  background: var(--renewal-lightbrown);
}
.renewalTreat__point:nth-child(3) {
  z-index: 3;
  background: var(--renewal-gold);
}

/* 3つの特化診療 — メダルカラー（全セクション共通ブルー） */
.renewalTreat__points--perio .renewalTreat__point:nth-child(1),
.renewalTreat__points--implant .renewalTreat__point:nth-child(1),
.renewalTreat__points--ortho .renewalTreat__point:nth-child(1) {
  background: linear-gradient(145deg, #5B8DB5 0%, #3A6888 100%);
  box-shadow: 0 8px 24px rgba(58, 104, 136, 0.22);
}
.renewalTreat__points--perio .renewalTreat__point:nth-child(2),
.renewalTreat__points--implant .renewalTreat__point:nth-child(2),
.renewalTreat__points--ortho .renewalTreat__point:nth-child(2) {
  background: linear-gradient(145deg, #6B9DC5 0%, #4A7898 100%);
  box-shadow: 0 8px 24px rgba(74, 120, 152, 0.22);
}
.renewalTreat__points--perio .renewalTreat__point:nth-child(3),
.renewalTreat__points--implant .renewalTreat__point:nth-child(3),
.renewalTreat__points--ortho .renewalTreat__point:nth-child(3) {
  background: linear-gradient(145deg, #7BADD5 0%, #5A88A8 100%);
  box-shadow: 0 8px 24px rgba(90, 136, 168, 0.22);
}
.renewalTreat__imgCol {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.renewalTreat__imgCol img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  border-radius: 0;
}

/* 歯周病のみ：写真左・テキスト右 + 背景グラデーション */
.renewalTreat__block--perio .renewalTreat__row::after {
  background: linear-gradient(
    270deg,
    rgba(252, 248, 246, 0.98) 0%,
    rgba(252, 248, 246, 0.96) 24%,
    rgba(252, 248, 246, 0.82) 38%,
    rgba(252, 248, 246, 0.3) 52%,
    rgba(252, 248, 246, 0) 66%
  );
}
.renewalTreat__block--perio .renewalTreat__imgCol img {
  /* 被写体（歯）が写真右寄り → セクション左側の見える範囲へ寄せる */
  width: 160%;
  max-width: none;
  height: 120%;
  object-fit: cover;
  object-position: 82% 42%;
  transform: translate(-38%, -6%);
}
@media all and (min-width: 768px) {
  .renewalTreat__block--perio .renewalTreat__row {
    justify-content: flex-end;
  }
  .renewalTreat__block--perio .renewalTreat__textCol {
    width: auto;
    flex: 0 1 auto;
    max-width: min(100%, 620px);
    margin-left: auto;
    margin-right: 0;
  }
}
@media all and (min-width: 1080px) {
  .renewalTreat__block--perio .renewalTreat__textCol {
    max-width: min(100%, 680px);
  }
}
@media all and (max-width: 767px) {
  .renewalTreat__block--perio .renewalTreat__row::after {
    background: linear-gradient(
      180deg,
      rgba(252, 248, 246, 0.98) 0%,
      rgba(252, 248, 246, 0.93) 58%,
      rgba(252, 248, 246, 0.55) 100%
    );
  }
  .renewalTreat__block--perio .renewalTreat__imgCol img {
    width: 100%;
    height: 100%;
    object-position: 70% 40%;
    transform: none;
  }
}

.renewalTreat__gallery {
  max-width: 920px;
  margin: 0 auto;
  padding: 0 10px;
  box-sizing: border-box;
}
.renewalTreat__galleryTitle {
  margin-bottom: 20px;
  font-family: var(--renewal-font-serif);
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--renewal-text);
  text-align: center;
}
@media all and (max-width: 767px) {
  .renewalTreat__galleryTitle {
    font-size: 2.6rem;
  }
  .renewalTreat__gallery {
    max-width: none;
    padding: 0 25px;
  }
}
.renewalTreat__cases {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
.renewalTreat__case {
  border: 1px solid var(--renewal-border);
  border-radius: var(--renewal-radius);
  overflow: hidden;
  background: var(--renewal-white);
}
.renewalTreat__caseImgs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  background: var(--renewal-white);
}
.renewalTreat__caseImg {
  position: relative;
  overflow: hidden;
}
.renewalTreat__caseImg::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  padding: 6px 12px;
  font-family: var(--renewal-font-sans);
  font-size: 1.2rem;
  letter-spacing: 0.06em;
  line-height: 1;
  color: var(--renewal-white);
  background: var(--renewal-gold-dark);
}
.renewalTreat__caseImg--before::before {
  content: "Before";
}
.renewalTreat__caseImg--after::before {
  content: "After";
}
.renewalTreat__caseImg img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.renewalTreat__caseTable {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.7rem;
}
.renewalTreat__caseTable th,
.renewalTreat__caseTable td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--renewal-border);
  vertical-align: top;
  line-height: 1.6;
  text-align: left;
}
.renewalTreat__caseTable th {
  width: 40%;
  font-weight: 500;
  color: var(--renewal-text);
  background: var(--renewal-cream);
}
.renewalTreat__caseTableLabel {
  display: flex;
  align-items: center;
  gap: 10px;
}
.renewalTreat__caseTableIcon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  color: var(--renewal-gold-dark);
}
.renewalTreat__caseTableIcon svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.renewalTreat__caseTableText {
  flex: 1;
  min-width: 0;
  line-height: 1.45;
}
.renewalTreat__caseTable td {
  color: var(--renewal-body);
}
.renewalTreat__case .comBtn {
  margin: 0;
  padding: 20px 16px 24px;
}

.renewalTreat > .renewalTreat__gallery {
  padding-top: clamp(40px, 5vw, 64px);
  padding-bottom: clamp(48px, 6vw, 72px);
  background: transparent;
}
.renewalTreat__featuredCase {
  border: 1px solid var(--renewal-border);
  border-radius: var(--renewal-radius);
  overflow: hidden;
  background: var(--renewal-white);
}
.renewalTreat__featuredHead {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 3vw, 28px);
  padding: clamp(24px, 3vw, 32px) clamp(16px, 2vw, 24px) 0;
  margin-bottom: clamp(16px, 2vw, 24px);
}
.renewalTreat__featuredLine {
  flex: 1 1 auto;
  max-width: clamp(80px, 12vw, 160px);
  height: 1px;
  background: rgba(176, 127, 83, 0.45);
}
.renewalTreat__featuredTitle {
  margin: 0;
  flex: 0 0 auto;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2rem, 2.8vw, 2.8rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.4;
  color: var(--renewal-text);
  white-space: nowrap;
}
.renewalTreat__featuredImgs {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: clamp(8px, 1.5vw, 16px);
  padding: 0 clamp(16px, 2vw, 24px) clamp(16px, 2vw, 24px);
  background: transparent;
}
.renewalTreat__featuredImg {
  position: relative;
  overflow: hidden;
}
.renewalTreat__featuredImgLabel {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  margin: 0;
  padding: 6px 12px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.1rem, 1.3vw, 1.25rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1;
  color: var(--renewal-white);
  background: rgba(58, 52, 47, 0.72);
}
.renewalTreat__featuredImg img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.renewalTreat__featuredArrow {
  flex-shrink: 0;
  width: clamp(28px, 4vw, 36px);
  height: clamp(28px, 4vw, 36px);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b07f53' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.renewalTreat__featuredTable {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--renewal-border);
  margin-bottom: 30px;
  font-size: 1.7rem;
  table-layout: fixed;
}
/* ③ PC: 症例詳細テキストの左右に余白を確保して視認性向上 */
.renewalTreat__featuredTableWrap {
  width: 100%;
  box-sizing: border-box;
  padding: 0 clamp(12px, 2vw, 20px) clamp(8px, 1.5vw, 16px);
}
@media all and (min-width: 768px) {
  .renewalTreat__featuredTableWrap {
    width: 80%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    padding: 0 0 clamp(16px, 2vw, 24px);
  }
  /* ラッパー未挿入時のフォールバック */
  .renewalTreat__featuredCase > .renewalTreat__featuredTable {
    width: 80%;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }
}
.renewalTreat__featuredTable th,
.renewalTreat__featuredTable td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--renewal-border);
  vertical-align: top;
  line-height: 1.65;
  text-align: left;
}
.renewalTreat__featuredTable tr:last-child th,
.renewalTreat__featuredTable tr:last-child td {
  border-bottom: none;
}
.renewalTreat__featuredTableIcon {
  width: 42px;
  padding-right: 0;
  color: var(--renewal-gold-dark);
  vertical-align: middle;
  background: var(--renewal-cream);
}
.renewalTreat__featuredTableIcon svg {
  display: block;
  width: 22px;
  height: 22px;
  margin: 0 auto;
  overflow: visible;
}
.renewalTreat__featuredTableLabel {
  width: 34%;
  min-width: 120px;
  font-weight: 500;
  color: var(--renewal-text);
  background: var(--renewal-cream);
}
.renewalTreat__featuredTableValue {
  color: var(--renewal-body);
  background: var(--renewal-white);
}
@media all and (max-width: 639px) {
  .renewalTreat__featuredImgs {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .renewalTreat__featuredArrow {
    justify-self: center;
    transform: rotate(90deg);
  }
  .renewalTreat__featuredTableLabel {
    width: 38%;
    min-width: 0;
  }
}
@media all and (max-width: 767px) {
  .renewalTreat__caseTable,
  .renewalTreat__featuredTable {
    font-size: 1.3rem;
  }
}

/* ============================================================
   Cases Slider（症例紹介・統合）
   ============================================================ */
.renewalCases {
  padding: clamp(48px, 7vw, 80px) 0 clamp(56px, 8vw, 96px);
  background: var(--renewal-cream);
}
.renewalCases > .content {
  max-width: none;
  width: 100%;
  padding-left: clamp(12px, 2.5vw, 32px);
  padding-right: clamp(12px, 2.5vw, 32px);
  box-sizing: border-box;
}
.renewalCases__inner {
  width: 100%;
  max-width: min(98vw, 1840px);
  margin: 0 auto;
  padding: 0 clamp(12px, 2.5vw, 32px);
  box-sizing: border-box;
}
.renewalCases__head {
  margin-bottom: clamp(28px, 4vw, 40px);
  text-align: center;
}
.renewalCases__labelEn {
  margin: 0 0 8px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.2rem, 1.5vw, 1.4rem);
  font-weight: 400;
  letter-spacing: 0.28em;
  line-height: 1.4;
  color: rgba(58, 52, 47, 0.55);
}
.renewalCases__titleRow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 3vw, 28px);
}
.renewalCases__titleLine {
  flex: 1 1 auto;
  max-width: clamp(80px, 12vw, 160px);
  height: 1px;
  background: rgba(176, 127, 83, 0.45);
}
.renewalCases__title {
  margin: 0;
  flex: 0 0 auto;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1.4;
  color: var(--renewal-text);
  white-space: nowrap;
}
.renewalCases__sliderWrap {
  position: relative;
  padding: 0;
}
.renewalCases__slider {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 24px);
}
.renewalCases__slider.slick-initialized {
  display: block;
  gap: 0;
}
.renewalCases__foot {
  margin: clamp(32px, 4vw, 48px) 0 0;
  text-align: center;
}
.renewalCases__listBtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%, 420px);
  padding: 18px 40px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.3rem, 1.6vw, 1.45rem);
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.4;
  color: var(--renewal-gold-dark);
  text-decoration: none;
  background: var(--renewal-white);
  border: 1px solid var(--renewal-gold-dark);
  box-sizing: border-box;
  transition: opacity var(--renewal-transition);
}
.renewalCases__listBtn:hover {
  opacity: 0.75;
  color: var(--renewal-gold-dark);
}
a.renewalCases__listBtn,
a.renewalCases__listBtn:link,
a.renewalCases__listBtn:visited,
a.renewalCases__listBtn:hover,
a.renewalCases__listBtn:active {
  color: var(--renewal-gold-dark);
}
.renewalCases__listBtnArrow {
  margin-left: 0.35em;
}
.renewalCases__slider .slick-list {
  overflow: hidden;
  margin: 0 -12px;
}
.renewalCases__slider .slick-track {
  display: flex;
  align-items: stretch;
}
.renewalCases__slider .slick-slide {
  float: none;
  height: auto;
  padding: 0 12px;
  box-sizing: border-box;
}
.renewalCases__slider .slick-slide > div,
.renewalCases__slide {
  height: 100%;
}
.renewalCases__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: transparent;
}
.renewalCases__ba {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  cursor: ew-resize;
  user-select: none;
  touch-action: none;
  background: #ddd;
}
.renewalCases__ba::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  background: rgba(0, 0, 0, 0.42);
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
}
.renewalCases__ba.is-hover:not(.is-active):not(.is-ba-used)::after {
  opacity: 1;
}
.renewalCases__baAfter,
.renewalCases__baBefore {
  position: absolute;
  inset: 0;
}
.renewalCases__baBefore {
  z-index: 2;
  width: 50%;
  overflow: hidden;
}
.renewalCases__baAfter img,
.renewalCases__baBefore img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}
.renewalCases__baBefore img {
  position: absolute;
  top: 0;
  left: 0;
  max-width: none;
  height: 100%;
}
.renewalCases__baLabel {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: inline-block;
  width: max-content;
  max-width: none;
  padding: clamp(10px, 1.2vw, 14px) clamp(20px, 2.5vw, 32px);
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.35rem, 1.6vw, 1.75rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.3;
  white-space: nowrap;
  writing-mode: horizontal-tb;
  color: var(--renewal-white);
  background: rgba(255, 255, 255, 0.16);
  border-radius: 4px;
  opacity: 0;
  transition: opacity 0.2s ease;
  pointer-events: none;
  box-sizing: border-box;
}
.renewalCases__ba:not(.is-ba-used):not(.is-active) .renewalCases__baLabel {
  opacity: 1;
}
@media (hover: hover) and (pointer: fine) {
  .renewalCases__ba:not(.is-ba-used):not(.is-active) .renewalCases__baLabel {
    opacity: 0;
  }
  .renewalCases__ba.is-hover:not(.is-active):not(.is-ba-used) .renewalCases__baLabel {
    opacity: 1;
  }
}
.renewalCases__baLabel--before {
  left: 25%;
  transform: translate(-50%, -50%);
}
.renewalCases__baLabel--after {
  left: auto;
  right: 25%;
  transform: translate(50%, -50%);
}
.renewalCases__baHandle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  z-index: 6;
  width: 0;
  transform: translateX(-50%);
  pointer-events: none;
}
.renewalCases__baHandleLine {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 3px;
  margin-left: -1.5px;
  background: #fff;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.08);
  opacity: 1;
}
.renewalCases__baHandleBtn {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1px;
  width: 42px;
  height: 42px;
  margin: -21px 0 0 -21px;
  border: 3px solid transparent;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  opacity: 1;
  pointer-events: none;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.renewalCases__ba.is-hover:not(.is-active):not(.is-ba-used) .renewalCases__baHandleBtn {
  background: rgba(0, 0, 0, 0.22);
  border-color: #fff;
  box-shadow: none;
}
.renewalCases__baHandleChev {
  font-family: var(--renewal-font-serif);
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1;
  color: #9a8062;
  letter-spacing: 0;
  transition: color 0.2s ease;
}
.renewalCases__ba.is-hover:not(.is-active):not(.is-ba-used) .renewalCases__baHandleChev {
  color: #fff;
}
.renewalCases__cardMeta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
}
.renewalCases__cardTag {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.1rem, 1.2vw, 1.25rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.3;
  color: var(--renewal-white);
  background: var(--renewal-gold-dark);
}
.renewalCases__cardDate {
  flex-shrink: 0;
  font-family: var(--renewal-font-sans);
  font-size: clamp(1.1rem, 1.2vw, 1.25rem);
  letter-spacing: 0.04em;
  line-height: 1.3;
  color: rgba(58, 52, 47, 0.62);
}
.renewalCases__cardTitle {
  margin: 10px 0 0;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.45rem, 1.8vw, 1.75rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.5;
}
.renewalCases__cardTitle a {
  color: var(--renewal-text);
  text-decoration: none;
  transition: opacity var(--renewal-transition);
}
.renewalCases__cardTitle a:hover {
  opacity: 0.72;
}
.renewalCases__empty {
  margin: 0;
  padding: 48px 20px;
  font-size: 1.4rem;
  color: var(--renewal-body);
  text-align: center;
  letter-spacing: 0.06em;
}
.renewalCases__arrow {
  position: absolute;
  top: 42%;
  z-index: 5;
  display: none;
  align-items: center;
  justify-content: center;
  width: clamp(36px, 4vw, 44px);
  height: clamp(36px, 4vw, 44px);
  padding: 0;
  border: 1px solid rgba(139, 115, 85, 0.45);
  border-radius: 50%;
  background: #fff;
  background-color: #fff;
  box-shadow: 0 4px 16px rgba(51, 51, 51, 0.08);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.renewalCases__arrow:hover,
.renewalCases__arrow:focus,
.renewalCases__arrow:focus-visible,
.renewalCases__arrow:active,
.renewalCases__arrow.slick-disabled {
  background: #fff;
  background-color: #fff;
  opacity: 1;
}
.renewalCases__arrow:hover,
.renewalCases__arrow:focus-visible {
  border-color: var(--renewal-gold-dark);
  box-shadow: 0 4px 16px rgba(51, 51, 51, 0.12);
}
.renewalCases__arrow span {
  display: block;
  width: 10px;
  height: 10px;
  border-top: 2px solid var(--renewal-gold-dark);
  border-right: 2px solid var(--renewal-gold-dark);
}
.renewalCases__arrow--prev {
  left: 0;
}
.renewalCases__arrow--prev span {
  transform: rotate(-135deg);
  margin-left: 4px;
}
.renewalCases__arrow--next {
  right: 0;
}
.renewalCases__arrow--next span {
  transform: rotate(45deg);
  margin-right: 4px;
}
.renewalCases__sliderWrap .slick-dots {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 1;
}
.renewalCases__sliderWrap .slick-dots li {
  width: 12px !important;
  height: 12px !important;
  margin: 0 10px !important;
  padding: 0 !important;
  background: none !important;
}
.renewalCases__sliderWrap .slick-dots li button {
  width: 12px;
  height: 12px;
  padding: 0;
  background: rgba(139, 115, 85, 0.35) !important;
  border-radius: 50%;
}
.renewalCases__sliderWrap .slick-dots li.slick-active button {
  background: var(--renewal-gold-dark) !important;
}
.renewalCases__slider .slick-dots {
  display: none;
}

@media all and (min-width: 768px) {
  .renewalCases__arrow {
    z-index: 910;
  }
  .renewalCases__arrow--prev {
    left: 112px;
  }
  .renewalCases__arrow--next {
    right: 112px;
  }
}
@media all and (min-width: 1080px) {
  .renewalCases__arrow--prev {
    left: 60px;
  }
  .renewalCases__arrow--next {
    right: 60px;
  }
}

@media all and (max-width: 899px) {
  .renewalCases__slider:not(.slick-initialized) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media all and (max-width: 767px) {
  .renewalCases__sliderWrap {
    padding-left: 44px;
    padding-right: 44px;
  }
  .renewalCases__arrow {
    display: flex;
  }
  .renewalCases__arrow--prev {
    left: 0;
  }
  .renewalCases__arrow--next {
    right: 0;
  }
  /* ドットをカード下に通常配置（absoluteだとタイトルと重なる） */
  .renewalCases__sliderWrap .slick-dots {
    position: static;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
    width: 100%;
    margin: 20px 0 0;
    padding: 0;
    line-height: 1;
  }
  .renewalCases__slider .slick-dots {
    display: none;
  }
}
@media all and (max-width: 639px) {
  .renewalCases > .content {
    padding-left: 0;
    padding-right: 0;
  }
  .renewalCases__title {
    font-size: 2.4rem;
  }
  .renewalCases__titleLine {
    max-width: 48px;
  }
  .renewalCases__listBtn {
    width: calc(100% - 32px);
    min-width: 0;
  }
  .renewalCases__inner {
    padding-left: 0;
    padding-right: 0;
  }
  .renewalCases__slider:not(.slick-initialized) {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

@media all and (min-width: 768px) {
  .renewalTreat__row {
    min-height: clamp(580px, 52vw, 740px);
    padding: clamp(72px, 7vw, 96px) max(20px, calc((100% - var(--renewal-inner-wide)) / 2 + 20px));
  }
  .renewalTreat__textCol {
    width: auto;
    flex: 0 1 auto;
    max-width: min(100%, 620px);
    margin: 0;
  }
  .renewalTreat__points {
    flex-wrap: nowrap;
    gap: 20px;
    width: 100%;
  }
  .renewalTreat__point {
    flex: 0 0 188px;
    width: 188px;
    height: 188px;
    min-width: 188px;
    min-height: 188px;
    max-width: 188px;
    max-height: 188px;
    aspect-ratio: 1 / 1;
    font-size: 1.42rem;
    padding: 16px 12px;
  }
  .renewalTreat__cases {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
  .renewalTreat__galleryTitle {
    font-size: 3rem;
  }
}

@media all and (min-width: 1080px) {
  .renewalTreat__row {
    min-height: clamp(620px, 54vw, 800px);
    padding: 96px max(20px, calc((100% - var(--renewal-inner-wide)) / 2 + 20px));
  }
  .renewalTreat__textCol {
    max-width: min(100%, 680px);
  }
  .renewalTreat__points {
    flex-wrap: nowrap;
    gap: 24px;
    width: 100%;
  }
  .renewalTreat__point {
    flex: 0 0 200px;
    width: 200px;
    height: 200px;
    min-width: 200px;
    min-height: 200px;
    max-width: 200px;
    max-height: 200px;
    aspect-ratio: 1 / 1;
    font-size: 1.52rem;
    padding: 18px 14px;
  }
}

/* ============================================================
   10. Evaluation (日本歯科医療評価機構)
   ============================================================ */
.renewalEval {
  padding: 64px 0;
  background: var(--renewal-cream-dark);
}
.renewalEval__box {
  width: 100%;
  margin: 0 auto;
  padding: 40px 24px;
  text-align: center;
  background: var(--renewal-white);
  border: 8px solid var(--renewal-gold);
  border-radius: var(--renewal-radius);
  box-sizing: border-box;
}
.renewalEval__title {
  margin-bottom: 20px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.6;
  color: var(--renewal-text);
}
.renewalEval__text {
  margin-bottom: 12px;
}
.renewalEval__text:last-of-type {
  margin-bottom: 28px;
}
.renewalEval__link {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 20px;
  width: 100%;
  max-width: 640px;
  min-height: 56px;
  padding: 12px 20px;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: var(--renewal-body);
  text-decoration: none;
  background: var(--renewal-cream);
  border: 1px solid var(--renewal-gold-dark);
  border-radius: var(--renewal-radius);
  transition: background var(--renewal-transition),
              border-color var(--renewal-transition);
}
.renewalEval__link:hover {
  opacity: 1;
  background: rgba(95, 122, 90, 0.08);
  border-color: var(--renewal-gold);
}
.renewalEval__linkLogo {
  height: 36px;
  width: auto;
}
.renewalEval__linkIcon {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

@media all and (max-width: 767px) {
  .renewalEval__box {
    width: 100%;
  }
  .renewalEval__box .headLine02 .jp {
    padding: 0 55px;
  }
}

@media all and (min-width: 768px) {
  .renewalEval {
    padding: 80px 0;
  }
  .renewalEval__box {
    padding: 56px 48px;
  }
}

/* ============================================================
   11. Banners (Instagram / LINE / 求人)
   ============================================================ */
.renewalBanners {
  padding: 48px 0;
  background: var(--renewal-cream);
}
.renewalBanners .renewalBanners__item--insta,
.renewalBanners .renewalBanners__item--line {
  max-width: 100%;
}
.renewalBanners__inner {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.renewalBanners__row {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.renewalBanners__item {
  display: block;
  overflow: hidden;
  text-decoration: none;
  border-radius: var(--renewal-radius);
  transition: opacity var(--renewal-transition),
              transform var(--renewal-transition);
}
.renewalBanners__item:hover {
  opacity: 0.88;
  transform: translateY(-2px);
}
.renewalBanners__item--insta,
.renewalBanners__item--line {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1801 / 501;
  color: var(--renewal-white);
  overflow: visible;
}
.renewalBanners__item--insta {
  background: linear-gradient(135deg, #833ab4 0%, #c13584 45%, #fd1d1d 100%);
}
.renewalBanners__item--line {
  background: var(--renewal-line);
}
.renewalBanners__frame {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 2.5vw, 18px);
  width: 100%;
  height: 100%;
  padding: 16px 20px;
  box-sizing: border-box;
}
.renewalBanners__brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  overflow: visible;
}
.renewalBanners__icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  color: var(--renewal-white);
}
.renewalBanners__icon svg {
  display: block;
  width: clamp(26px, 5vw, 32px);
  height: clamp(26px, 5vw, 32px);
}
.renewalBanners__icon--line {
  color: var(--renewal-white);
}
.renewalBanners__icon--line svg {
  display: block;
  width: clamp(32px, 6vw, 40px);
  height: clamp(32px, 6vw, 40px);
}
.renewalBanners__name {
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.5rem, 3.2vw, 1.85rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.2;
  color: var(--renewal-white);
}
.renewalBanners__pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(120px, 28vw, 160px);
  padding: clamp(7px, 1.5vw, 9px) clamp(18px, 4vw, 28px);
  font-family: var(--renewal-font-sans);
  font-size: clamp(1rem, 2.2vw, 1.15rem);
  font-weight: 400;
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: var(--renewal-text);
  background: var(--renewal-white);
  border-radius: var(--renewal-radius-pill);
  white-space: nowrap;
}
.renewalBanners__item--recruit {
  aspect-ratio: 1801 / 501;
}
.renewalBanners__item--recruit picture {
  display: block;
  width: 100%;
  height: 100%;
}
.renewalBanners__item--recruit img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  background: var(--renewal-white);
}

@media all and (max-width: 767px) {
  .renewalBanners {
    padding: 0 0 48px;
    background: var(--renewal-cream);
  }
  .renewalBanners__item--recruit {
    aspect-ratio: 645 / 741;
  }
}

@media all and (min-width: 768px) {
  .renewalBanners__row {
    flex-direction: row;
    align-items: stretch;
    gap: 16px;
  }
  .renewalBanners__row .renewalBanners__item {
    flex: 1;
  }
  .renewalBanners__item--recruit {
    width: 100%;
  }
}

.renewalBanners--footer {
  margin-top: 40px;
  padding: 0;
  background: transparent;
}
.renewalBanners--footer .renewalBanners__inner {
  width: 100%;
  max-width: none;
}

/* ============================================================
   12. Contact
   ============================================================ */
.renewalContact {
  position: relative;
  padding: clamp(56px, 8vw, 88px) 0 clamp(64px, 8vw, 96px);
  overflow: hidden;
  color: var(--renewal-text);
  text-align: center;
  background: var(--renewal-cream);
}
.renewalContact__bg {
  position: absolute;
  inset: 0;
  background: url("../images/index/webp/bg_contact.webp") no-repeat top left / cover;
  pointer-events: none;
}
.renewalContact__inner {
  position: relative;
  z-index: 1;
  width: min(100% - 40px, 1100px);
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}
.renewalContact__head {
  margin-bottom: clamp(28px, 4vw, 40px);
}
.renewalContact__title {
  margin: 0 0 clamp(12px, 2vw, 16px);
  font-family: var(--renewal-font-serif);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.4;
  color: var(--renewal-text);
}
.renewalContact__titleInner {
  display: inline-block;
  position: relative;
  padding: 0 clamp(40px, 6vw, 59px);
  font-size: clamp(2.1rem, 4vw, 3rem);
}
.renewalContact__titleInner::before,
.renewalContact__titleInner::after {
  content: "";
  position: absolute;
  top: 50%;
  width: clamp(24px, 4vw, 30px);
  height: 1px;
  background: var(--renewal-body);
}
.renewalContact__titleInner::before {
  left: 0;
}
.renewalContact__titleInner::after {
  right: 0;
}
.renewalContact__lead {
  margin: 0 0 clamp(12px, 2vw, 18px);
  font-size: clamp(1.35rem, 1.8vw, 1.5rem);
  letter-spacing: 0.08em;
  line-height: 2;
  font-feature-settings: "palt";
  color: var(--renewal-body);
}
.renewalContact__headDivider {
  position: relative;
  width: min(100%, 280px);
  height: 10px;
  margin: 0 auto;
}
.renewalContact__headDivider::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(139, 115, 85, 0.45) 20%, rgba(139, 115, 85, 0.45) 80%, transparent);
}
.renewalContact__headDivider::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  background: var(--renewal-gold-dark);
  transform: translate(-50%, -50%) rotate(45deg);
}
.renewalContact__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(12px, 2vw, 16px);
}
.renewalContact__card {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2vw, 16px);
  min-height: clamp(72px, 10vw, 88px);
  padding: clamp(16px, 2.5vw, 22px) clamp(14px, 2.2vw, 20px);
  text-decoration: none;
  text-align: left;
  color: var(--renewal-text);
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(139, 115, 85, 0.16);
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(51, 51, 51, 0.04);
  box-sizing: border-box;
  transition: transform var(--renewal-transition),
              box-shadow var(--renewal-transition),
              border-color var(--renewal-transition),
              background-color var(--renewal-transition),
              color var(--renewal-transition);
}
.renewalContact__card:hover {
  transform: translateY(-2px);
  background: #857048;
  border-color: #857048;
  box-shadow: var(--renewal-shadow);
  color: var(--renewal-white);
}
.renewalContact__card:hover .renewalContact__cardIcon {
  color: var(--renewal-white);
}
.renewalContact__card:hover .renewalContact__cardIcon--brand {
  filter: brightness(0) invert(1);
}
.renewalContact__card:hover .renewalContact__cardLabel,
.renewalContact__card:hover .renewalContact__cardNote,
.renewalContact__card:hover .renewalContact__cardSub {
  color: rgba(255, 255, 255, 0.92);
}
.renewalContact__card:hover .renewalContact__cardTel,
.renewalContact__card:hover .renewalContact__cardTitle {
  color: var(--renewal-white);
}
.renewalContact__card:hover .renewalContact__cardPill {
  color: var(--renewal-white);
  background: transparent;
  border-color: rgba(255, 255, 255, 0.75);
}
.renewalContact__card:hover .renewalContact__cardArrow {
  color: var(--renewal-white);
  opacity: 1;
}
.renewalContact__cardIcon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: clamp(44px, 6vw, 52px);
  height: clamp(44px, 6vw, 52px);
  color: var(--renewal-gold-dark);
}
.renewalContact__cardIcon svg {
  display: block;
  width: clamp(28px, 4vw, 32px);
  height: clamp(28px, 4vw, 32px);
}
.renewalContact__cardIcon--brand {
  color: inherit;
}
.renewalContact__cardBody {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.renewalContact__cardBody--social {
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 1.2rem;
}
.renewalContact__cardLabel {
  font-size: clamp(1.1rem, 1.5vw, 1.25rem);
  letter-spacing: 0.06em;
  line-height: 1.5;
  color: var(--renewal-body);
}
.renewalContact__cardTel {
  font-family: var(--renewal-font-serif);
  font-size: clamp(2rem, 3.5vw, 2.6rem);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.2;
  color: var(--renewal-gold-dark);
}
.renewalContact__cardNote {
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  letter-spacing: 0.04em;
  line-height: 1.55;
  color: var(--renewal-body);
  white-space: nowrap;
}
.renewalContact__cardTitle {
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.45rem, 2.2vw, 1.75rem);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.45;
  color: var(--renewal-text);
}
.renewalContact__cardSub {
  font-size: clamp(1.1rem, 1.5vw, 1.25rem);
  letter-spacing: 0.06em;
  line-height: 1.5;
  color: var(--renewal-body);
}
.renewalContact__cardPill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px clamp(14px, 2.5vw, 20px);
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  letter-spacing: 0.06em;
  line-height: 1.4;
  color: var(--renewal-body);
  background: var(--renewal-white);
  border: 1px solid rgba(139, 115, 85, 0.28);
  border-radius: var(--renewal-radius-pill);
  white-space: nowrap;
}
.renewalContact__cardArrow {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  color: var(--renewal-gold-dark);
  opacity: 0.85;
}

@media all and (min-width: 768px) {
  .renewalContact__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .renewalContact__card:nth-child(-n + 3) {
    grid-column: span 2;
  }
  .renewalContact__card:nth-child(4) {
    grid-column: 2 / span 2;
  }
  .renewalContact__card:nth-child(5) {
    grid-column: 4 / span 2;
  }
}

@media all and (max-width: 767px) {
  .renewalContact__cardBody--social {
    align-items: center;
    justify-content: space-between;
  }
}

/* ============================================================
   13. Area (神保町エリア)
   ============================================================ */
.renewalArea {
  position: relative;
  padding: 72px 20px;
  overflow: hidden;
}
.renewalArea__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: center center / cover no-repeat;
}
.renewalArea__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(110, 90, 66, 0.78) 0%,
    rgba(139, 115, 85, 0.68) 100%
  );
}
.renewalArea__box {
  position: relative;
  z-index: 2;
  width: min(100%, 800px);
  margin: 0 auto;
  padding: 40px 28px;
  text-align: center;
  background: rgba(255, 255, 255, 0.88);
  border-radius: var(--renewal-radius-lg);
  backdrop-filter: blur(6px);
}
.renewalArea__title {
  margin-bottom: 16px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(1.8rem, 3.5vw, 2.4rem);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.6;
  color: var(--renewal-text);
}
.renewalArea__text {
  margin-bottom: 28px;
}
.renewalArea__box .comBtn {
  margin-top: 8px;
  margin-bottom: 0;
}

@media all and (max-width: 767px) {
  .renewalArea__box .headLine02 .jp {
    padding: 0 55px;
  }
}

@media all and (min-width: 768px) {
  .renewalArea {
    padding: 96px 20px;
  }
  .renewalArea__box {
    width: min(100%, 900px);
    padding: 56px 48px;
  }
}

/* ============================================================
   14. FAQ Accordion
   ============================================================ */
.renewalFaq {
  padding: 64px 20px;
  background: var(--renewal-cream);
}
.renewalFaq__inner {
  margin: 0 auto;
}
.renewalFaq__title {
  margin-bottom: 32px;
  font-family: var(--renewal-font-serif);
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--renewal-text);
  text-align: center;
}
.renewalFaq__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.renewalFaq__item {
  border: 1px solid var(--renewal-border);
  border-radius: var(--renewal-radius);
  overflow: hidden;
  background: var(--renewal-white);
  transition: box-shadow var(--renewal-transition);
}
.renewalFaq__item.is-open {
  box-shadow: var(--renewal-shadow);
}
.renewalFaq__q {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 16px 48px 16px 16px;
  font-family: var(--renewal-font-sans);
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: var(--renewal-text);
  text-align: left;
  background: transparent;
  border: none;
  cursor: pointer;
  position: relative;
  transition: background var(--renewal-transition);
}
.renewalFaq__q:hover {
  background: rgba(200, 170, 125, 0.06);
}
.renewalFaq__qIcon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  font-family: var(--renewal-font-serif);
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--renewal-white);
  background: var(--renewal-gold-dark);
  border-radius: 50%;
}
.renewalFaq__qText {
  flex: 1;
}
.renewalFaq__toggle {
  position: absolute;
  right: 16px;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  pointer-events: none;
}
.renewalFaq__toggle::before,
.renewalFaq__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: var(--renewal-gold);
  border-radius: 1px;
  transition: transform var(--renewal-transition),
              background var(--renewal-transition);
}
.renewalFaq__toggle::before {
  width: 14px;
  height: 2px;
  transform: translate(-50%, -50%);
}
.renewalFaq__toggle::after {
  width: 2px;
  height: 14px;
  transform: translate(-50%, -50%);
}
.renewalFaq__item.is-open .renewalFaq__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}
.renewalFaq__item.is-open .renewalFaq__toggle::before {
  background: var(--renewal-gold);
}
.renewalFaq__aWrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--renewal-transition);
}
.renewalFaq__item.is-open .renewalFaq__aWrap {
  grid-template-rows: 1fr;
}
.renewalFaq__aInner {
  overflow: hidden;
}
.renewalFaq__a {
  padding: 0 16px 0 64px;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity var(--renewal-transition),
              transform var(--renewal-transition),
              padding var(--renewal-transition);
}
.renewalFaq__item.is-open .renewalFaq__a {
  padding: 4px 16px 20px 64px;
  opacity: 1;
  transform: translateY(0);
}

@media all and (min-width: 768px) {
  .renewalFaq {
    padding: 80px 20px;
  }
  .renewalFaq__inner {
    width: min(100%, 900px);
  }
  .renewalFaq__q {
    padding: 18px 56px 18px 20px;
    font-size: 1.5rem;
  }
  .renewalFaq__qIcon {
    width: 40px;
    height: 40px;
    font-size: 1.8rem;
  }
  .renewalFaq__a {
    padding-left: 76px;
  }
  .renewalFaq__item.is-open .renewalFaq__a {
    padding: 4px 20px 24px 76px;
  }
}

/* ============================================================
   15. Policy (ホームページ運営について) — footer
   ============================================================ */
#gFooter .renewalPolicy__card {
  width: min(100% - 40px, 900px);
  margin: 0 auto clamp(40px, 6vw, 56px);
  padding: 32px 24px 36px;
  background: var(--renewal-white);
  border-radius: 8px;
  box-sizing: border-box;
}
.renewalPolicy__header {
  margin-bottom: 24px;
  padding: 12px 24px;
  font-family: var(--renewal-font-serif);
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--renewal-text);
  text-align: center;
  background: var(--renewal-cream-dark);
  border-radius: var(--renewal-radius-pill);
}
.renewalPolicy__text {
  margin-bottom: 20px;
  font-family: var(--renewal-font-serif);
  font-size: 1.5rem;
  line-height: 2;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  text-align: justify;
  text-justify: inter-ideograph;
  color: var(--renewal-text);
}
.renewalPolicy__links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.renewalPolicy__link {
  font-size: 1.3rem;
  letter-spacing: 0.04em;
  color: var(--renewal-gold);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--renewal-transition);
}
.renewalPolicy__link:hover {
  opacity: 1;
  color: var(--renewal-gold-dark);
}

@media all and (min-width: 768px) {
  #gFooter .renewalPolicy__card {
    padding: 48px 56px 52px;
  }
  .renewalPolicy__header {
    font-size: 1.6rem;
  }
}

#gFooter .address {
  text-align: center;
}

a.renewalSticky__item {
  color: #fff;
}

/* ---- Renewal section titles (headLine02) ---- */
.renewalConcept .headLine02 {
  margin-bottom: 3rem;
}
@media all and (max-width: 767px) {
  .renewalReasons__body {
    line-height: 2.5;
  }
}
@media all and (min-width: 768px) {
  .renewalReasons__body {
    line-height: 2.6;
  }
}
.renewalEval__box .headLine02 {
  margin-bottom: 20px;
}
.renewalEval__box .headLine02 .jp {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: 1.6;
}
.renewalContact .renewalContact__title {
  margin-bottom: clamp(12px, 2vw, 16px);
}
.renewalArea__box .headLine02 {
  margin-bottom: 16px;
}
.renewalFaq__inner .headLine02 {
  margin-bottom: 32px;
}
.headLine02--white .jp {
  color: var(--renewal-white);
}
.headLine02--white .jp::before,
.headLine02--white .jp::after {
  background-color: var(--renewal-white);
}

/* ---- Legacy #main sections ---- */
#main {
  background: var(--renewal-cream);
}

#main .clinic {
  margin-bottom: 99px;
  margin-top: 10rem;
  background: var(--renewal-cream);
}

#main .renewalClinicSlide {
  width: 100%;
  overflow: hidden;
  padding: 48px 0;
  background: var(--renewal-cream-dark);
}
#main .renewalClinicSlide .infiniteslide_wrap {
  background: var(--renewal-cream-dark);
}
#main .renewalClinicSlide .slideList li {
  margin: 0 15px;
  width: 300px;
  align-self: center;
}
#main .renewalClinicSlide .slideList li img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: top;
}
#main .renewalClinicSlide .slideList li:nth-of-type(2n+1),
#main .renewalClinicSlide .slideList li:nth-of-type(2n),
#main .renewalClinicSlide .slideList li.infiniteslide_clone {
  margin-top: 0;
}

@media all and (max-width: 767px) {
  #main .renewalClinicSlide {
    margin-top: 4rem;
    padding: 32px 0;
  }
  #main .renewalClinicSlide .slideList li {
    margin: 0 8px;
    width: 150px;
  }
}

@media all and (min-width: 768px) {
  #main .renewalClinicSlide {
    margin-top: 0;
    padding: 56px 0;
  }
}

/* 医院写真スライダー（FAQ下） */
.renewalFaq + .renewalClinicSlide {
  margin-top: 0;
  background: var(--renewal-cream-dark);
}
@media all and (min-width: 768px) {
  .renewalFaq + .renewalClinicSlide {
    margin-top: 0;
  }
}

/* SPメニュー内ロゴ */
@media all and (max-width: 767px) {
  .menuBox {
    z-index: 1100;
    padding: 72px 10px calc(24px + env(safe-area-inset-bottom, 0)) 10px;
  }
  .menuBox__close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    background: #eceae8 url("../images/common/webp/sp_close.webp") no-repeat center center / 44px auto;
  }
  .no-webp .menuBox__close {
    background-image: url("../images/common/sp_close.png");
  }
  body.is-menu-open .renewalSpFixedHeader,
  body.is-menu-open .spFixedBox,
  body.is-menu-open .renewalMv__headerActions {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    opacity: 0 !important;
  }
  .menuBox .logoImg {
    text-align: left;
    padding: 0 12px;
  }
  .menuBox .menuBox__logoLink {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: #656968;
  }
  .menuBox .menuBox__logoMark {
    flex-shrink: 0;
    width: 4.8rem;
    height: auto;
  }
  .menuBox .menuBox__logoText {
    margin: 0;
    font-weight: 400;
    line-height: 1.5;
  }
  .menuBox .menuBox__logoTitle {
    margin: 0;
    font-size: 1.35rem;
    letter-spacing: 0.06em;
  }
  .menuBox .menuBox__logoSeo {
    margin: 4px 0 0;
    font-size: 1rem;
    font-weight: 400;
    letter-spacing: 0.03em;
    line-height: 1.45;
    color: #7a756d;
  }
}

/* 院長紹介下：歯科外来体制 */
#main .doctor ~ .content .pricebox:last-of-type {
  margin-bottom: 40px;
}

/* 学会バナー帯（全幅背景） */
.renewalBnrBand {
  background: var(--renewal-cream-dark);
}

@media all and (min-width: 768px) {
  .renewalBnrBand {
    padding: clamp(24px, 4vw, 40px) 0 clamp(32px, 5vw, 48px);
  }
}

/* ---- Section background rhythm (cream ↔ cream-dark) ---- */
/* 特化診療ブロック */
#main .renewalSpecialize + .renewalTreat {
  background: var(--renewal-cream-dark);
}
#main .renewalSpecialize + .renewalTreat + .renewalTreat {
  background: var(--renewal-cream);
}
#main .renewalSpecialize + .renewalTreat + .renewalTreat + .renewalTreat {
  background: var(--renewal-cream-dark);
}

/* 当院の特徴 → 診療メニュー以降（features は style.css の cream を維持） */
#main .features {
  overflow: hidden;
}
#main .menuSec {
  position: relative;
  z-index: 1;
  background-color: var(--renewal-cream-dark);
}
#main .menuSec.menuSec--cards {
  background: none;
  background-color: transparent;
}
@media all and (min-width: 768px) {
  #main .menuSec .linkList li a {
    padding-top: 85px;
    display: block;
    position: relative;
    height: 100%;
    font-size: 1.2rem;
    line-height: 1.3;
    letter-spacing: 0.1em;
    text-align: center;
    background-color: #fff;
    background-image: url("../images/index/webp/menu_pho01.webp");
    background-repeat: no-repeat;
    background-position: top 45px center;
    background-size: 50px auto;
    box-sizing: border-box;
  }
  .no-webp #main .menuSec .linkList li a {
    background-image: url("../images/index/menu_pho01.png");
  }
  /* お悩み文言が長いため少し小さめに */
  #main .menuSec .linkList li a span {
    font-size: 1.15rem;
    line-height: 1.35;
  }
}
@media all and (max-width: 767px) {
  #main .menuSec .linkList li a {
    padding-top: 48%;
    font-size: 1rem;
    background: #fff url("../images/index/webp/menu_pho01.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li a {
    background-image: url("../images/index/menu_pho01.png");
  }
  #main .menuSec .linkList li a span {
    font-size: 0.95rem;
    line-height: 1.3;
    letter-spacing: 0.02em;
  }
  /* 最終行の中央空きを解消：左から詰めて並べる */
  #main .menuSec .linkList {
    justify-content: flex-start;
    gap: 12px 3.5%;
  }
  #main .menuSec .linkList li {
    margin: 0;
    width: 31%;
  }
  #main .menuSec .linkList li:nth-of-type(5n),
  #main .menuSec .linkList li:last-of-type {
    margin-right: 0;
  }
}

/* 診療メニュー：新規8項目（li13–li20）menu_pho25–32 */
#main .menuSec .linkList li.li13 a {
  background-color: #fff;
  background-image: url("../images/index/webp/menu_pho25.webp");
}
.no-webp #main .menuSec .linkList li.li13 a {
  background-image: url("../images/index/menu_pho25.png");
}
#main .menuSec .linkList li.li14 a {
  background-color: #fff;
  background-image: url("../images/index/webp/menu_pho26.webp");
}
.no-webp #main .menuSec .linkList li.li14 a {
  background-image: url("../images/index/menu_pho26.png");
}
#main .menuSec .linkList li.li15 a {
  background-color: #fff;
  background-image: url("../images/index/webp/menu_pho27.webp");
}
.no-webp #main .menuSec .linkList li.li15 a {
  background-image: url("../images/index/menu_pho27.png");
}
#main .menuSec .linkList li.li16 a {
  background-color: #fff;
  background-image: url("../images/index/webp/menu_pho28.webp");
}
.no-webp #main .menuSec .linkList li.li16 a {
  background-image: url("../images/index/menu_pho28.png");
}
#main .menuSec .linkList li.li17 a {
  background-color: #fff;
  background-image: url("../images/index/webp/menu_pho29.webp");
}
.no-webp #main .menuSec .linkList li.li17 a {
  background-image: url("../images/index/menu_pho29.png");
}
#main .menuSec .linkList li.li18 a {
  background-color: #fff;
  background-image: url("../images/index/webp/menu_pho30.webp");
}
.no-webp #main .menuSec .linkList li.li18 a {
  background-image: url("../images/index/menu_pho30.png");
}
#main .menuSec .linkList li.li19 a {
  background-color: #fff;
  background-image: url("../images/index/webp/menu_pho31.webp");
}
.no-webp #main .menuSec .linkList li.li19 a {
  background-image: url("../images/index/menu_pho31.png");
}
#main .menuSec .linkList li.li20 a {
  background-color: #fff;
  background-image: url("../images/index/webp/menu_pho32.webp");
}
.no-webp #main .menuSec .linkList li.li20 a {
  background-image: url("../images/index/menu_pho32.png");
}
@media all and (min-width: 768px) {
  #main .menuSec .linkList li.li13 a:hover,
  #main .menuSec .linkList li.li14 a:hover,
  #main .menuSec .linkList li.li15 a:hover,
  #main .menuSec .linkList li.li16 a:hover,
  #main .menuSec .linkList li.li17 a:hover,
  #main .menuSec .linkList li.li18 a:hover,
  #main .menuSec .linkList li.li19 a:hover,
  #main .menuSec .linkList li.li20 a:hover {
    color: #fff;
    background-color: #656968;
    background-repeat: no-repeat;
    background-position: top 45px center;
    background-size: 50px auto;
  }
  #main .menuSec .linkList li.li13 a:hover {
    background-image: url("../images/index/webp/menu_pho33.webp");
  }
  #main .menuSec .linkList li.li14 a:hover {
    background-image: url("../images/index/webp/menu_pho34.webp");
  }
  #main .menuSec .linkList li.li15 a:hover {
    background-image: url("../images/index/webp/menu_pho35.webp");
  }
  #main .menuSec .linkList li.li16 a:hover {
    background-image: url("../images/index/webp/menu_pho36.webp");
  }
  #main .menuSec .linkList li.li17 a:hover {
    background-image: url("../images/index/webp/menu_pho37.webp");
  }
  #main .menuSec .linkList li.li18 a:hover {
    background-image: url("../images/index/webp/menu_pho38.webp");
  }
  #main .menuSec .linkList li.li19 a:hover {
    background-image: url("../images/index/webp/menu_pho39.webp");
  }
  #main .menuSec .linkList li.li20 a:hover {
    background-image: url("../images/index/webp/menu_pho40.webp");
  }
}
@media all and (max-width: 767px) {
  #main .menuSec .linkList li.li13 a:hover {
    background: #fff url("../images/index/webp/menu_pho25.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li.li13 a:hover {
    background-image: url("../images/index/menu_pho25.png");
  }
  #main .menuSec .linkList li.li14 a:hover {
    background: #fff url("../images/index/webp/menu_pho26.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li.li14 a:hover {
    background-image: url("../images/index/menu_pho26.png");
  }
  #main .menuSec .linkList li.li15 a:hover {
    background: #fff url("../images/index/webp/menu_pho27.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li.li15 a:hover {
    background-image: url("../images/index/menu_pho27.png");
  }
  #main .menuSec .linkList li.li16 a:hover {
    background: #fff url("../images/index/webp/menu_pho28.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li.li16 a:hover {
    background-image: url("../images/index/menu_pho28.png");
  }
  #main .menuSec .linkList li.li17 a:hover {
    background: #fff url("../images/index/webp/menu_pho29.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li.li17 a:hover {
    background-image: url("../images/index/menu_pho29.png");
  }
  #main .menuSec .linkList li.li18 a:hover {
    background: #fff url("../images/index/webp/menu_pho30.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li.li18 a:hover {
    background-image: url("../images/index/menu_pho30.png");
  }
  #main .menuSec .linkList li.li19 a:hover {
    background: #fff url("../images/index/webp/menu_pho31.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li.li19 a:hover {
    background-image: url("../images/index/menu_pho31.png");
  }
  #main .menuSec .linkList li.li20 a:hover {
    background: #fff url("../images/index/webp/menu_pho32.webp") no-repeat top 24% center / 35px auto;
  }
  .no-webp #main .menuSec .linkList li.li20 a:hover {
    background-image: url("../images/index/menu_pho32.png");
  }
  #main .menuSec .linkList li a:hover {
    background-color: #fff;
  }
}
#main .doctor {
  background-color: var(--renewal-cream);
}
#main .flow {
  background: var(--renewal-white);
  padding-bottom: clamp(48px, 6vw, 72px);
}

/* ============================================================
   セクション単位のスクロールフェードイン（features .inner.active と同方式）
   ============================================================ */
.renewalScrollFade:not(.is-scroll-visible) .renewalScrollFade__target {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
}
.renewalScrollFade.is-scroll-visible .renewalScrollFade__target {
  opacity: 1;
  transform: none;
  transition: opacity 1s ease-out, transform 1s ease-out;
}
.renewalScrollFade.is-scroll-no-animate .renewalScrollFade__target {
  transition: none;
}
@media (prefers-reduced-motion: reduce) {
  .renewalScrollFade .renewalScrollFade__target {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ============================================================
   Subpage chrome (is-subpage)
   ============================================================ */
/* Subpage chrome: always-on via is-past-fv from JS */
@media all and (min-width: 768px) {
  body.is-subpage.is-past-fv .fixedBox {
    display: block !important;
  }
}
@media all and (max-width: 767px) {
  body.is-subpage.is-past-fv .fixedBox.pc {
    display: none !important;
  }
  body.is-subpage.is-past-fv .renewalSpFixedHeader {
    display: block !important;
  }
  body.is-subpage.is-past-fv .spFixedBox {
    display: flex !important;
  }
}
