@charset "UTF-8";

.causeCheckSpIndent {
  display: none;
}

@font-face {
  font-family: "NakafujiYuGothic";
  src: url("../font/YuGothM.woff2") format("woff2"),
       url("../font/YuGothM.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "NakafujiYuGothic";
  src: url("../font/YuGothB.woff2") format("woff2"),
       url("../font/YuGothB.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "NakafujiYuMincho";
  src: url("../font/yuminl.woff2") format("woff2"),
       url("../font/yuminl.woff") format("woff");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "NakafujiYuMincho";
  src: url("../font/yumin.woff2") format("woff2"),
       url("../font/yumin.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "NakafujiYuMincho";
  src: url("../font/yumindb.woff2") format("woff2"),
       url("../font/yumindb.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
:root {
  --navy: #050934;
  --blue: #1f5d89;
  --heroBlue: rgba(28, 81, 119, .82);
  --gold: #b98735;
  --ink: #050934;
  --mincho: "NakafujiYuMincho", "Yu Mincho", "YuMincho", serif;
  --gothic: "NakafujiYuGothic", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  font-size: calc(100vw / 1920 * 10);
}

body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: var(--gothic);
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

a {
  color: inherit;
  text-decoration: none;
	transition: all .3s ease-in-out;
}

a:hover{
    opacity: .8;
}

p,
h1 {
  margin: 0;
}

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

button {
  font-family: inherit;
}

.sp-br,
br.sp-br {
  display: none;
}

.pc-br,
br.pc-br {
  display: inline;
}

.sp-break-text {
  display: inline;
}

.pc-break-text {
  display: block;
}

.caseTitleSpOnly {
  display: none;
}

.caseSpBreak {
  display: none;
}

.siteWrap {
  min-width: 0;
  overflow: hidden;
}

.greeting {
  display: none;
}

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

.siteHeader,
.hero,
.intro,
.caseSection,
.reasonSection,
.announceSection,
.safetySection,
.mekkinSection,
.patientSection,
.flowSection,
.priceSection,
.messageSection,
.access,
.finalCta,
.siteFooter {
  display: none;
}

.finalCtaInner {
  display: none;
}

.footerLogoSp {
  display: none;
}

.drawerNav {
  display: none;
}

.spFixedCta {
  display: none;
}

.headerLogoTitle {
  display: none;
}

@media screen and (min-width: 769px) {
  .pc-no-border {
    border: 0 !important;
  }

  .siteHeader {
    position: absolute;
    z-index: 10;
    top: 0;
    left: 4.4rem;
    right: 2.4rem;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    height: 9.3rem;
  }

  .headerBrand {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    align-items: flex-start;
    width: 74.1rem;
    height: 8.9rem;
    padding: .55rem 2.2rem 0 2.4rem;
    background: rgba(255,255,255,.95);
    border-radius: 0 0 .8rem .8rem;
  }

  .headerLogoTitle {
    display: block;
    flex: 0 0 40.5rem;
    margin: 0 0 .45rem;
    color: #554d46;
    font-family: var(--gothic);
    font-size: 1.35rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .08em;
    text-align: left;
    white-space: nowrap;
  }

  .headerLogo {
    display: flex;
    width: 33.7rem;
  }

  .headerLogo img {
    width: 33.7rem;
  }

  .headerSiteName {
    display: grid;
    place-items: center;
    width: 32.6rem;
    height: 5rem;
    margin-left: 2.6rem;
    background: var(--navy);
    color: #fff;
    font-family: var(--mincho);
    font-size: 2.9rem;
    line-height: 1;
    white-space: nowrap;
  }

  .headerActions {
    display: flex;
    align-items: flex-start;
    height: 9.3rem;
  }

  .headerReserve {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 20rem;
    height: 9.3rem;
    padding-top: .5rem;
    background: var(--blue);
    color: #fff;
    text-align: center;
    font-family: var(--mincho);
  }

  .headerReserve::after {
    content: "";
    position: absolute;
    right: .7rem;
    bottom: .7rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 1.7rem 1.7rem;
    border-color: transparent transparent #fff transparent;
  }

  .headerReserve span {
    display: block;
    font-size: 2rem;
    line-height: 1.1;
  }

  .headerReserve b {
    display: block;
    margin-top: .5rem;
    font-size: 3.2rem;
    font-weight: 400;
    line-height: 1;
  }

  .headerTel {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 33.5rem;
    height: 9.3rem;
    padding-left: 5.9rem;
    background: rgba(255,255,255,.96);
    color: #030432;
    font-family: var(--mincho);
  }

  .headerTel::before {
    content: "";
    position: absolute;
    left: 3.3rem;
    top: 4.0rem;
    width: 3.2rem;
    height: 3.2rem;
    background: url("../img/implant/icon_tel.png") center / contain no-repeat;
  }

  .headerTel span {
    display: block;
    margin-bottom: 1rem;
    font-family: var(--gothic);
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1;
    margin-left: -1.5em;
  }

  .headerTel b {
    display: block;
    font-family: var(--mincho);
    font-size: 3.7rem;
    font-weight: 600;
    line-height: 1;
    padding-left: 1rem;
  }

  .menuButton {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 9.4rem;
    height: 9.3rem;
    padding: 0;
    border: 0;
    background: #303030;
    color: #fff;
    cursor: pointer;
  }

  .menuButton span {
    display: block;
    width: 5.8rem;
    height: .5rem;
    margin: .55rem 0;
    background: #fff;
  }

  .menuButton em {
    display: block;
    margin-top: .7rem;
    font-style: normal;
    font-size: 1.8rem;
    line-height: 1;
  }

  .drawerNav {
    position: absolute;
    z-index: 9;
    top: 9.2rem;
    left: 51.8rem;
    right: 1.3rem;
    display: none;
    min-height: 66.7rem;
    padding: 4.3rem 4.1rem 3.4rem;
    background: var(--navy);
  }

  .drawerNav.isOpen {
    display: block;
  }

  .drawerInnerPc {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2rem;
  }

  .drawerInnerSp {
    display: none;
  }

  .drawerColumn {
    display: flex;
    flex-direction: column;
  }

  .drawerColumn a {
    display: flex;
    align-items: center;
    min-height: 7.6rem;
    padding: 1.2rem 3.4rem;
    border-bottom: .1rem solid rgba(255,255,255,.55);
    color: #fff;
    font-family: var(--gothic);
    font-size: 1.95rem;
    font-weight: 400;
    line-height: 1.55;
    text-decoration: none;
  }

  .hero {
    position: relative;
    display: block;
    width: 100%;
    height: 93.6rem;
    overflow: hidden;
    background: #d4cec8;
  }

  .heroPicture,
  .heroBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .heroBg {
    max-width: none;
    object-fit: cover;
  }

  .heroCopy {
    position: absolute;
    left: 60rem;
    top: 21.7rem;
    width: 72rem;
  }

  .heroCopy::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 0;
    top: 0;
    width: 72rem;
    height: 42rem;
    background: var(--heroBlue);
  }

  .heroMessage {
    position: relative;
    z-index: 1;
    height: 42rem;
    padding: 4.5rem 2.3rem 3.3rem;
    color: #fef6ee;
    text-align: center;
    font-family: var(--mincho);
    text-shadow: 0 .2rem .35rem rgba(0,0,0,.22);
  }

  .heroMessage::before,
  .heroMessage::after {
    content: "";
    position: absolute;
    left: 3.2rem;
    width: 65.2rem;
    height: .1rem;
    background: #fef6ee;
  }

  .heroMessage::before {
    top: 25.4rem;
  }

  .heroMessage::after {
    top: 38.4rem;
  }

  .heroMessageTitle {
    position: absolute;
    left: 3.2rem;
    right: 3.2rem;
    top: 4.6rem;
    font-size: 6.2rem;
    font-weight: 400;
    line-height: 1.55;
  }

  .heroMessageTitle span {
    display: block;
  }
  .heroMessageTitle .heroMessageSmall {
    display: inline;
    font-size: .72em;
    line-height: 1;
  }

  .heroMessageTitle b {
    display: inline-block;
    margin: 0 .6rem;
    font-size: 8.7rem;
    font-weight: 400;
    line-height: .8;
    vertical-align: -.08em;
  }

  .heroLead {
    position: absolute;
    left: 3.2rem;
    right: 3.2rem;
    top: 27.4rem;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.35;
    white-space: nowrap;
  }

  .heroSub {
    position: absolute;
    left: 3.2rem;
    right: 3.2rem;
    top: 33rem;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.35;
    white-space: nowrap;
  }

  .heroChecks {
    position: relative;
    z-index: 2;
    width: 72rem;
    min-height: 23.8rem;
    padding: 2.4rem 4.6rem 2.2rem;
    background: rgba(255,255,255,.88);
    color: #171717;
    font-family: var(--mincho);
    font-size: 2.85rem;
    font-weight: 500;
    line-height: 1.45;
  }

  .heroChecks li {
    position: relative;
    padding-left: 5.2rem;
  }

  .heroChecks li + li {
    margin-top: .75rem;
  }

  .heroChecks li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .2rem;
    width: 3.5rem;
    height: 3.5rem;
    background: url("../img/implant/icon_check.png") no-repeat center / contain;
  }


  .heroBadges {
    position: absolute;
    right: 4.8rem;
    bottom: 6.2rem;
    display: block;
    width: 45.5rem;
    height: 39.4rem;
  }

  .heroBadge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 20.8rem;
    height: 20.8rem;
    border: .5rem solid rgba(200,200,200,.85);
    border-radius: 50%;
    background: rgba(255,255,255,.93);
    color: var(--navy);
    text-align: center;
    font-family: var(--mincho);
    box-shadow: 0 0 0 .1rem rgba(255,255,255,.8) inset;
  }

  .heroBadge img {
    width: auto;
    height: 5.8rem;
    margin-bottom: 1rem;
  }
  .heroBadge:nth-child(3) img {
    height: 4.8rem;
  }

  .heroBadge p,
  .heroBadge b {
    display: block;
    font-size: 2.65rem;
    font-weight: 700;
    line-height: 1.25;
  }

  .heroBadge p span {
    font-size: 2.25rem;
  }

  .heroBadge > span {
    display: block;
    margin-top: .35rem;
    font-size: 2.05rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .heroBadge:nth-child(1) {
    position: absolute;
    left: 0;
    bottom: 0;
  }

  .heroBadge:nth-child(2) {
    position: absolute;
    right: 0;
    bottom: 0;
  }

  .heroBadge:nth-child(3) {
    position: absolute;
    left: 12.35rem;
    top: 0;
  }

  .intro {
    display: block;
    background: #fff;
  }

  .introHead {
    display: grid;
    grid-template-columns: 33.2rem auto 33.2rem;
    gap: 4.3rem;
    align-items: center;
    width: 172.6rem;
    margin: 0 auto;
    padding: 7.6rem 0 4.6rem;
  }

  .introHead > span {
    display: block;
    height: .1rem;
    background: #1f5d89;
  }

  .introHead h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: #1f5d89;
    font-family: var(--mincho);
    font-size: 7.5rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }

  .introHead h2 img {
    width: 10.7rem;
    height: 10.4rem;
    margin-right: 2.2rem;
  }

  .introTitleFirst,
  .introTitleSecond {
    display: inline-block;
  }

  .introVisual {
    position: relative;
    height: 76rem;
    background: url("../img/implant/intro_bg.jpg") center top / 185.7rem 76rem no-repeat;
    overflow: hidden;
  }

  .introPanel {
    position: absolute;
    left: 50%;
    top: 1.2rem;
    width: 120rem;
    height: 72.6rem;
    margin-left: -60rem;
    padding: 6.9rem 11rem 0;
    background: url("../img/implant/intro_txt_bg.png") center / 100% 100% no-repeat;
    text-align: center;
    font-family: var(--mincho);
  }

  .introPanel h3 {
    margin: 0;
    color: #252525;
    font-size: 4.4rem;
    /* font-weight: 400; */
    line-height: 1.25;
  }

  .introLead {
    margin-top: 2.1rem;
    color: #252525;
    font-family: var(--gothic);
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1.75;
  }

  .introConcern {
    position: relative;
    width: 89rem;
    margin: 2rem auto 0;
    padding: 2.2rem 3.9rem 2rem;
    background: var(--navy);
    color: #fff;
    text-align: left;
    font-family: var(--gothic);
  }

  .introConcern::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -2.1rem;
    width: 0;
    height: 0;
    margin-left: -2.8rem;
    border-left: 2.8rem solid transparent;
    border-right: 2.8rem solid transparent;
    border-top: 2.2rem solid var(--navy);
  }

  .introConcern li {
    position: relative;
    min-height: 5rem;
    padding-left: 6rem;
    color: #fff;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.65;
  }

  .introConcern li + li {
    margin-top: .8rem;
  }

  .introConcern li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .1rem;
    width: 5rem;
    height: 5rem;
    background: url("../img/implant/icon_check_white.png") center / 5rem 5rem no-repeat;
  }

  .introConcern li::after {
    content: none;
  }

  .introNotice {
    width: 88rem;
    margin: 3.1rem auto 0;
    padding-bottom: 1.3rem;
    border-bottom: .1rem solid #b98735;
    color: #543b1d;
    font-family: var(--gothic);
    font-size: 2.35rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .introText {
    margin-top: 1.1rem;
    color: #543b1d;
    font-family: var(--gothic);
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.72;
  }

  .introGold {
    margin-top: 1.2rem;
    color: #b98735;
    font-family: var(--gothic);
    font-size: 2.85rem;
    font-weight: 700;
    line-height: 1.35;
  }

  .introCta {
    display: flex;
    justify-content: center;
    gap: 4rem;
    height: 20.1rem;
    padding-top: 2.1rem;
    background: #c5a85e;
    margin-top: 1px;
  }

  .introWeb,
  .introTel {
    display: flex;
    height: 15.8rem;
    color: #fff;
    font-family: var(--mincho);
  }

  .introWeb {
    position: relative;
    align-items: center;
    justify-content: center;
    width: 49rem;
    background: var(--blue);
  }

  .introWeb::after {
    content: "";
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.2rem 2.2rem;
    border-color: transparent transparent #fff transparent;
  }

  .introWeb span {
    margin-right: 2.4rem;
    font-size: 2.9rem;
    line-height: 1;
  }

  .introWeb b {
    font-size: 4.8rem;
    font-weight: 400;
    line-height: 1;
  }

  .introTel {
    flex-direction: column;
    justify-content: center;
    width: 49rem;
    background: #fff;
    color: var(--navy);
    text-align: center;
  }

  .introTel span {
    display: block;
    margin-bottom: 1.5rem;
    font-family: var(--gothic);
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
  }

  .introTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 6rem;
    font-weight: 600;
    line-height: 1;
  }

  .introTel b img {
    width: 4rem;
    height: 4.7rem;
    margin-right: 1.7rem;
  }

  .implantMenu {
    min-height: 204.6rem;
    padding-top: 15.9rem;
    background: #FFF url("../img/implant/menu_bg.png") center top / 192rem 204.6rem no-repeat;
    margin-top: 6rem;
  }

  .implantMenuInner {
    width: 173.5rem;
    margin: 0 auto;
  }

  .implantMenuHead {
    text-align: center;
    font-family: var(--mincho);
  }

  .implantMenuHead p {
    margin: 0;
    color: rgba(197, 168, 94, .45);
    font-size: 11.6rem;
    font-weight: 400;
    line-height: .82;
  }

  .implantMenuHead h2 {
    margin: 1.8rem 0 0;
    color: #543b1d;
    font-size: 7.1rem;
    font-weight: 400;
    line-height: 1;
  }

  .implantMenuGroup h3 {
    margin: 0;
    color: #252525;
    font-family: var(--gothic);
    font-size: 3.1rem;
    font-weight: 700;
    line-height: 1;
  }

  .implantMenuGroupAbout {
    margin-top: .3rem;
  }

  .implantMenuGroupImplant {
    margin-top: 8rem;
  }

  .implantMenuGroupTrouble {
    margin-top: 7.6rem;
  }

  .implantMenuList {
    display: grid;
    gap: 4rem;
    margin-top: 2.3rem;
  }

  .implantMenuListAbout {
    grid-template-columns: repeat(3, 39.7rem);
  }

  .implantMenuListImplant,
  .implantMenuListTrouble {
    grid-template-columns: repeat(4, 39.7rem);
  }

  .implantMenuList li {
    min-width: 0;
  }

  .implantMenuList a {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 39.7rem;
    height: 19rem;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    box-shadow: inset 0 0 0 .1rem rgba(255,255,255,.82), inset 0 0 0 .7rem rgba(255,255,255,.08);
  }


  .implantMenuList a::before {
    content: "";
    position: absolute;
    inset: .6rem;
    border: .1rem solid rgba(255,255,255,.48);
    pointer-events: none;
  }
  .implantMenuList a::after {
    content: "";
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2rem 2rem;
    border-color: transparent transparent #fff transparent;
  }

  .implantMenuListAbout a {
    background: var(--blue);
  }

  .implantMenuListImplant a {
    background: #ad875f;
  }

  .implantMenuListTrouble a {
    background: var(--navy);
    height: 19rem;
    font-size: 3rem;
    line-height: 1.35;
  }

  .implantMenuList img {
    width: auto;
    height: 7.3rem;
    margin-bottom: 1.2rem;
  }

  .implantMenuListAbout img,
  .implantMenuListImplant img {
    height: 9rem;
  }

  .implantMenuListTrouble img {
    height: 8.2rem;
    margin-bottom: 0;
  }

  .greeting {
    display: block;
    position: relative;
    padding-bottom: 6rem;
    background: #fff;
    color: #2c2c2c;
    font-family: var(--gothic);
  }

  .greetingHead {
    height: 24.8rem;
    padding-top: 6.2rem;
    text-align: center;
    background: #fff;
    font-family: var(--mincho);
  }

  .greetingHeadEn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3rem;
    margin: 0;
    color: var(--navy);
    font-size: 9.4rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0.5rem;
  }

  .greetingHeadEn::before,
  .greetingHeadEn::after {
    content: "";
    display: block;
    width: 13.5rem;
    height: .1rem;
    background: #1f5d89;
  }

  .greetingHeadTitle {
    margin: 2.2rem 0 0;
    color: #3d2a22;
    font-size: 3.5rem;
    font-weight: 600;
    line-height: 1;
  }

  .greetingVisual {
    position: relative;
    height: 115.7rem;
    background: url("../img/implant/greeting_bg.jpg") center top / 192rem 119.3rem no-repeat;
  }

  .greetingCatch {
    position: absolute;
    left: 0;
    top: 57.5rem;
    width: 110rem;
    height: 27.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(31, 93, 137, .88);
    color: #fff;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 600;
    line-height: 1.72;
    text-align: center;
  }

  .greetingDoctor {
    position: absolute;
    z-index: 2;
    right: 0;
    top: 22.8rem;
    width: 82rem;
    height: 91.2rem;
    object-fit: cover;
  }

  .greetingName {
    position: absolute;
    z-index: 3;
    right: 42.5rem;
    top: 90.8rem;
    width: 42.2rem;
    min-height: 16.6rem;
    padding: 2.8rem 2.8rem 2.4rem 4.5rem;
    background: rgba(76, 65, 53, .78);
    color: #fff;
    font-family: var(--mincho);
  }

  .greetingName p {
    margin: 0;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingName div {
    display: flex;
    align-items: center;
    margin-top: 2.1rem;
  }

  .greetingName span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 7.8rem;
    height: 5.2rem;
    margin-right: 2.2rem;
    background: #a9855f;
    font-size: 2.8rem;
    font-weight: 700;
  }

  .greetingName b {
    font-size: 5.2rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingBody {
    display: grid;
    grid-template-columns: 100.2rem calc(100% - 100.2rem);
    column-gap: 3.2rem;
    width: 97%;
    margin: -28.8rem auto 0;
    position: relative;
    z-index: 1;
  }

  .greetingMessage {
    min-height: 100%;
    padding: 5.4rem 5.8rem 5rem;
    background: rgba(238, 245, 248, .8);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 2.05;
  }

  .greetingMessage p + p {
    margin-top: 4.2rem;
  }

  .greetingMessage b {
    font-weight: 700;
  }

  .greetingProfile {
    width: 82.4rem;
    justify-self: end;
    padding-top: 27.1rem;
  }

  .greetingProfileBlock h3 {
    position: relative;
    margin: 0 0 2.1rem;
    /* height: 5.1rem; */
    padding: 1.5rem 0 1.2rem 3.2rem;
    background: #8d7d54;
    color: #fff;
    font-family: var(--gothic);
    font-size: 2.7rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingProfile .greetingProfileBlock h3 {
    width: 100%;
    box-sizing: border-box;
  }

  .greetingCourse .greetingProfileBlock h3 {
    width: 100%;
  }

  .greetingProfileBlock dl {
    margin: 0;
    padding-left: 2.5rem;
    font-size: 2rem;
    line-height: 2.02;
  }

  .greetingProfileBlock dl div {
    display: grid;
    grid-template-columns: 15.5rem 1fr;
  }

  .greetingProfileBlock dt,
  .greetingProfileBlock dd {
    margin: 0;
  }

  .greetingProfileBlock ul {
    margin: 0;
    padding-left: 3.5rem;
    font-size: 2rem;
    line-height: 2.05;
  }

  .greetingProfileBlockSociety {
    margin-top: 6.2rem;
  }

  .greetingCourse {
    display: grid;
    grid-template-columns: 84rem 92rem;
    column-gap: 4.8rem;
    width: 99%;
    margin: 5rem 0 0 auto;
    padding: 2.3rem 4rem 2.5rem 2rem;
    background: #f4f4f4;
  }

  .greetingCourse img {
    width: 84rem;
    height: 42.8rem;
    object-fit: cover;
  }

  .greetingCourse .greetingProfileBlock {
    padding-top: 1.4rem;
  }

  .greetingCourse .greetingProfileBlock h3 {
    margin-bottom: 2rem;
  }

  .greetingCourse .greetingProfileBlock ul {
    padding-left: 3.2rem;
    font-size: 2.2rem;
    line-height: 1.72;
  }

  .caseSection {
    display: block;
    padding: 7.2rem 0 8.8rem;
    background: #fff;
  }

  .caseHead {
    text-align: center;
  }

  .caseHeadEn {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 3.7rem;
    margin: 0;
    color: #050934;
    font-family: var(--mincho);
    font-size: 8.6rem;
    font-weight: 400;
    line-height: 1;
  }

  .caseHeadEn::before,
  .caseHeadEn::after {
    content: "";
    width: 14.3rem;
    height: .1rem;
    background: #265c83;
  }

  .caseHeadEn span {
    padding-left: 1.6rem;
    letter-spacing: 0.5rem;
  }

  .caseHeadTitle {
    margin: 1.8rem 0 0;
    color: #201b16;
    font-family: var(--mincho);
    font-size: 4.2rem;
    font-weight: 700;
    line-height: 1;
  }

  .casePanel {
    width: 170.8rem;
    min-height: 113.7rem;
    margin: 3.9rem auto 0;
    padding: 4.8rem 0 6.2rem;
    background: #f0efec;
  }

  .caseIntro {
    text-align: center;
  }

  .caseIntro h3 {
    margin: 0;
    color: #b99649;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 500;
    line-height: 1.45;
  }

  .caseIntro p {
    margin: 1.7rem 0 0;
    color: #333333;
    font-size: 2.8rem;
    font-weight: 600;
    line-height: 1.72;
  }

  .caseCarousel {
    position: relative;
    margin-top: 3.2rem;
  }

  .caseViewport {
    width: 134rem;
    margin: 0 auto;
    overflow: hidden;
  }

  .caseTrack {
    display: flex;
    transition: transform .48s ease;
    will-change: transform;
  }

  .caseCard {
    position: relative;
    flex: 0 0 100%;
    min-height: 81.8rem;
    padding: 3.5rem 12.1rem 2.6rem 14.5rem;
    background: #fff;
    border-radius: .7rem;
  }

  .caseNumber {
    position: absolute;
    top: -.6rem;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 10rem;
    height: 12rem;
    color: #fff;
    background: #9c904e;
    font-family: var(--mincho);
    font-size: 5.7rem;
    font-weight: 400;
    line-height: 1;
  }

  .caseCard h3 {
    margin: 0;
    color: #111;
    font-family: var(--mincho);
    font-size: 4.1rem;
    font-weight: 400;
    line-height: 1.2;
  }

  .casePhotoRow {
    display: grid;
    grid-template-columns: 47.4rem 2.9rem 47.4rem;
    align-items: center;
    column-gap: 3.7rem;
    width: 105.1rem;
    margin: 2.7rem auto 0;
  }

  .casePhotoRow figure {
    margin: 0;
    text-align: center;
  }

  .casePhotoRow figure > img {
    width: 47.4rem;
    height: 33.7rem;
    object-fit: cover;
  }

  .casePhotoRow figcaption {
    margin-top: .9rem;
    color: #9e8f8f;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
  }

  .casePhotoRow figure:last-child figcaption {
    color: #a99a59;
  }

  .casePhotoArrow {
    width: 2.9rem;
    height: 5.8rem;
  }

  .caseDetails {
    width: 108.5rem;
    margin: 1.2rem auto 0;
    color: #333333;
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.55;
  }

  .caseDetails div {
    display: grid;
    grid-template-columns: 20rem 1fr;
    align-items: center;
    min-height: 7.2rem;
    border-bottom: .1rem solid #b8b8b8;
  }

  .caseDetails dt,
  .caseDetails dd {
    margin: 0;
  }

  .caseDetails dt {
    white-space: nowrap;
  }

  .caseNav {
    position: absolute;
    top: 37.5rem;
    display: block;
    width: 7.4rem;
    height: 7.4rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
  }

  .caseNavPrev {
    left: 5.8rem;
  }

  .caseNavNext {
    right: 5.8rem;
  }

  .caseNav img {
    width: 7.4rem;
    height: 7.4rem;
  }

  .reasonSection {
    display: block;
    background: #fff;
  }

  .reasonHead {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 3rem;
    height: 18.8rem;
    background: #fff;
  }

  .reasonHead::before,
  .reasonHead::after {
    content: "";
    flex: 1 1 auto;
    height: .1rem;
    background: #265c83;
  }

  .reasonHead h2 {
    display: flex;
    align-items: center;
    column-gap: 2.7rem;
    margin: 0;
    color: #1f5d89;
    font-family: var(--mincho);
    font-size: 7.5rem;
    font-weight: 700;
    line-height: 1;
  }

  .reasonHead img {
    width: 10.2rem;
    height: 10.7rem;
    object-fit: contain;
  }

  .reasonBody {
    min-height: 214.9rem;
    padding-top: 8.7rem;
    background: url("../img/implant/reason_bg.jpg") center top / 192rem 213.6rem no-repeat;
  }

  .reasonList {
    display: grid;
    grid-template-columns: 70.4rem 70.4rem;
    column-gap: 5.8rem;
    row-gap: 5.4rem;
    width: 146.6rem;
    margin-left: 33.8rem;
  }

  .reasonCard {
    position: relative;
    min-height: 97.8rem;
    padding: 1.4rem 1.5rem 4.4rem;
    background: #fff;
  }

  .reasonCard:nth-child(n + 3) {
    min-height: 89rem;
  }

  .reasonNumber {
    position: absolute;
    top: 1.4rem;
    left: 1.5rem;
    z-index: 1;
    width: 16.4rem;
    height: 15rem;
    padding: 1.1rem 0 0 1.4rem;
    color: #fff;
    background: linear-gradient(137.5deg, #b38d1c 0 50%, transparent 50%);
    font-family: var(--mincho);
    line-height: 1;
  }

  .reasonNumber span,
  .reasonNumber b {
    display: block;
    font-weight: 400;
  }

  .reasonNumber span {
    font-size: 2.2rem;
  }

  .reasonNumber b {
    margin-top: .3rem;
    font-size: 4.6rem;
  }

  .reasonPhoto {
    width: 67rem;
    height: 36.2rem;
    object-fit: cover;
  }

  .reasonText {
    padding: 4.6rem 1.8rem 0;
  }

  .reasonText h3 {
    margin: 0;
    padding-bottom: 3rem;
    color: #333;
    border-bottom: .1rem solid #b0a792;
    font-family: var(--mincho);
    font-size: 4.8rem;
    font-weight: 600;
    line-height: 1.18;
    text-align: center;
  }

  .reasonText p {
    margin: 3.1rem 0 0;
    color: #333;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.82;
  }

  .announceSection {
    display: block;
    height: 107.4rem;
    padding-top: 10.6rem;
    background: url("../img/implant/announce_bg.jpg") center top / 192rem 107.4rem no-repeat;
  }

  .announcePanel {
    position: relative;
    width: 166.5rem;
    height: 85.6rem;
    margin-left: 14.6rem;
    background: rgba(255,255,255,.78);
  }

  .announceFrame {
    position: absolute;
    left: 5.5rem;
    top: 5.5rem;
    width: 155.4rem;
    height: 74rem;
    border: .4rem solid rgba(159, 147, 105, .62);
    background: #FFF;
  }

  .announceIcon {
    position: absolute;
    z-index: 2;
    right: -10.7rem;
    top: -7.1rem;
    width: 17.9rem;
    height: 17.9rem;
  }

  .announcePhoto {
    position: absolute;
    left: -16rem;
    top: 6rem;
    width: 82.9rem;
    height: 63.1rem;
    object-fit: cover;
    border: .5rem solid #fff;
  }

  .announceText {
    position: absolute;
    left: 72.4rem;
    top: 5.2rem;
    width: 77.5rem;
    color: #543b1d;
  }

  .announceTitle {
    margin: 0;
    padding-bottom: 2.2rem;
    color: #8f7b48;
    border-bottom: .1rem solid #c3a55b;
    font-size: 5.5rem;
    font-weight: 700;
    line-height: 1.5;
  }

  .announceText p:not(.announceTitle) {
    margin: 2.6rem 0 0;
    /* font-family: var(--mincho); */
    font-size: 2.55rem;
    font-weight: 400;
    line-height: 1.74;
  }

  .announceLead {
    color: #c3a55b;
    font-family: var(--gothic) !important;
    font-size: 3.8rem !important;
    font-weight: 700 !important;
    line-height: 1.72 !important;
  }

  .announceText b {
    font-family: var(--gothic);
    font-weight: 700;
  }

  .announceButton {
    position: absolute;
    left: 58.8rem;
    bottom: -4.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 43.6rem;
    height: 8.2rem;
    color: #fff;
    background: #b48333;
    font-size: 2.7rem;
    font-weight: 700;
    line-height: 1;
  }

  .safetySection {
    display: block;
    background: #fff;
  }

  .safetyHead {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 33.5rem;
    padding-top: 13rem;
    background: #fff;
  }

  .safetyHeadEn {
    position: relative;
    margin: 0;
    color: var(--navy);
    font-family: var(--mincho);
    font-size: 9.7rem;
    font-weight: 400;
    line-height: .95;
    text-align: center;
    letter-spacing: 0.5rem;
  }

  .safetyHeadEn::before,
  .safetyHeadEn::after {
    content: "";
    position: absolute;
    top: 4.35rem;
    width: 13.6rem;
    height: .1rem;
    background: #8d8a73;
  }

  .safetyHeadEn::before {
    left: -20.6rem;
  }

  .safetyHeadEn::after {
    right: -19.7rem;
  }

  .safetyHeadTitle {
    display: block;
    margin: 2.2rem 0 0;
    color: #2b211c;
    font-size: 3.9rem;
    line-height: 1;
    font-weight: 600;
    letter-spacing: normal;
    font-family: var(--mincho);
  }

  .safetyGrid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }

  .safetyItem {
    min-height: 72.1rem;
    padding-top: 7.2rem;
  }

  .safetyItem01 {
    padding-left: 8.4rem;
    background: #eef1f0;
  }

  .safetyItem02 {
    padding-left: 3rem;
    background: #e7e8ef;
  }

  .safetyItem03 {
    padding-top: 1.7rem;
    padding-left: 8.4rem;
    background: #f0efeb;
  }

  .safetyItem04 {
    padding-top: 1.7rem;
    padding-left: 3rem;
    background: #f5eddf;
  }

  .safetyCard {
    width: 84.6rem;
    min-height: 57.5rem;
    padding: 0 1.2rem 2.2rem;
    background: #fff;
    border-top: .6rem solid var(--safetyColor);
  }

  .safetyGreen {
    --safetyColor: #1d6837;
  }

  .safetyNavy {
    --safetyColor: #343e76;
  }

  .safetyBrown {
    --safetyColor: #74643b;
  }

  .safetyGold {
    --safetyColor: #b28720;
  }

  .safetyTitle {
    display: flex;
    align-items: center;
    min-height: 12.65rem;
    border-bottom: .1rem solid var(--safetyColor);
  }

  .safetyTitle span {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 9.8rem;
    width: 9.8rem;
    height: 9.8rem;
    margin-left: .9rem;
    color: #fff;
    border-radius: 50%;
    background: linear-gradient(140deg, rgba(255,255,255,.16) 0 40%, transparent 30% 100%), var(--safetyColor);
    font-family: var(--mincho);
    font-size: 5.6rem;
    font-weight: 400;
    line-height: 1;
  }

  .safetyTitle h3 {
    margin: -.2rem 0 0 2.3rem;
    color: var(--safetyColor);
    font-family: var(--mincho);
    font-size: 4.35rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .safetyBody {
    padding: 3.75rem 2.3rem 0 1.9rem;
    color: #333;
  }

  .safetyLead {
    display: grid;
    grid-template-columns: 33.5rem 1fr;
    column-gap: 5.2rem;
    align-items: start;
  }

  .safetyLead img {
    width: 33.5rem;
    height: 26.2rem;
    object-fit: cover;
  }

  .safetyBody p {
    margin: 0;
    color: #333;
    /* font-family: var(--mincho); */
    font-size: 2.45rem;
    font-weight: 400;
    line-height: 1.82;
  }

  .safetyBody > p {
    margin-top: 3.5rem;
  }

  .safetyBody b {
    font-family: var(--gothic);
    font-weight: 700;
  }

  .mekkinSection {
    display: block;
    height: 83.5rem;
    padding-top: 8.8rem;
    background: #fff;
  }

  .mekkinInner {
    width: 172.4rem;
    margin: 0 auto;
  }

  .mekkinInner > h2 {
    display: flex;
    align-items: center;
    height: 13rem;
    margin: 0;
    padding: .1rem 0 0 5.5rem;
    color: #fff;
    background: var(--navy);
    font-family: var(--mincho);
    font-size: 5.1rem;
    font-weight: 700;
    line-height: 1;
  }

  .mekkinContent {
    display: grid;
    grid-template-columns: 75rem 82.3rem;
    column-gap: 6.3rem;
    align-items: start;
    padding: 2.2rem 3rem 0 5.8rem;
  }

  .mekkinText {
    color: #333;
    /* font-family: var(--mincho); */
  }

  .mekkinText h3 {
    margin: 3.4rem 0 0;
    color: var(--navy);
    font-size: 3.75rem;
    font-weight: 700;
    line-height: 1.35;
    font-family: var(--mincho);
  }

  .mekkinText p {
    margin: 3.55rem 0 0;
    font-size: 2.65rem;
    font-weight: 400;
    line-height: 1.9;
  }

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

  .mekkinPhoto {
    width: 82.3rem;
    height: 51.2rem;
    margin-top: 0;
    clip-path: polygon(19.5% 0, 100% 0, 100% 100%, 0 100%);
    overflow: hidden;
  }

  .mekkinPhoto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .patientSection {
    display: block;
    min-height: 180.4rem;
    background: #f3f3f3;
  }

  .patientHead {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 17.8rem;
    padding-top: 6rem;
    background: #fff;
  }

  .patientHead h2 {
    position: relative;
    margin: -.2rem 0 0;
    color: #604b2d;
    font-family: var(--mincho);
    font-size: 7.5rem;
    font-weight: 400;
    line-height: 1;
  }

  .patientHead h2::before,
  .patientHead h2::after {
    content: "";
    position: absolute;
    top: 3.35rem;
    width: 33.1rem;
    height: .1rem;
    background: #604b2d;
  }

  .patientHead h2::before {
    left: -38.1rem;
  }

  .patientHead h2::after {
    right: -37.5rem;
  }

  .patientVisual {
    position: relative;
    height: 80.6rem;
    background: url("../img/implant/patient_bg.jpg") center top / cover no-repeat;
  }

  .patientSpBreak,
  .patientHeadImg {
    display: none;
  }

  .patientCopy {
    position: absolute;
    top: 6.1rem;
    left: 21.3rem;
    width: 41.2rem;
    height: 58.4rem;
    background: rgba(255, 255, 255, .84);
  }

  .patientCopyMain,
  .patientCopySub {
    position: absolute;
    margin: 0;
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-family: var(--mincho);
    font-weight: 700;
  }

  .patientCopyMain {
    top: 5.3rem;
    right: 5.5rem;
    color: #a87e12;
    font-size: 6rem;
    line-height: 1.5;
  }

  .patientCopySub {
    top: 13.9rem;
    right: 23.8rem;
    color: #2b211c;
    font-size: 3.6rem;
    line-height: 1.65;
  }

  .patientCopySubIndent {
    display: inline-block;
    padding-top: 3em;
  }

  .patientCards {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, 83.2rem);
    column-gap: 8.2rem;
    row-gap: 7rem;
    width: 174.6rem;
    margin: -16.4rem auto 0;
    padding-bottom: 8.1rem;
  }

  .patientCard {
    position: relative;
    height: 51.8rem;
    padding: 3.8rem 3.2rem 0;
    background: #fff;
  }

  .patientCard::before,
  .patientCard::after {
    content: "";
    position: absolute;
    inset: 1rem;
    pointer-events: none;
  }

  .patientCard::before {
    border-top: .1rem solid #2b211c;
    border-bottom: .1rem solid #2b211c;
    clip-path: polygon(0 0, 11% 0, 11% 100%, 0 100%, 0 0, 89% 0, 100% 0, 100% 100%, 89% 100%, 89% 0);
  }

  .patientCard::after {
    border-left: .1rem solid #2b211c;
    border-right: .1rem solid #2b211c;
    clip-path: polygon(0 0, 0 14%, 100% 14%, 100% 0, 0 0, 0 86%, 100% 86%, 100% 100%, 0 100%);
  }

  .patientCard h3 {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 8.4rem;
    margin: 0;
    color: #fff;
    background: #846a4d;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .patientCardBody {
    display: grid;
    grid-template-columns: 38rem 1fr;
    column-gap: 3.7rem;
    align-items: start;
    padding: 3.6rem 0 0;
  }

  .patientCardBody img {
    width: 38rem;
    height: 31.3rem;
    object-fit: cover;
  }

  .patientCardBody p {
    margin: 1.1rem 0 0;
    color: #543b1d;
    /* font-family: var(--mincho); */
    font-size: 2.55rem;
    font-weight: 400;
    line-height: 1.82;
  }

  .flowSection {
    display: block;
    background: #f1f1ee;
    padding-bottom: 12.6rem;
  }

  .flowHead {
    height: 31.3rem;
    padding-top: 12rem;
    background: #fff;
    text-align: center;
    font-family: var(--mincho);
  }

  .flowHeadEn {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 3.2rem;
    margin: 0;
    color: #245d86;
    font-size: 10rem;
    font-weight: 400;
    line-height: .9;
  }

  .flowHeadEn::before,
  .flowHeadEn::after {
    content: "";
    display: block;
    width: 13.6rem;
    height: .1rem;
    background: #265c83;
  }

  .flowHeadEn span {
    padding-left: 1.2rem;
  }

  .flowHeadTitle {
    margin: 2.2rem 0 0;
    color: #2b211c;
    font-size: 4.05rem;
    font-weight: 700;
    line-height: 1;
  }

  .flowBody {
    padding-top: 5.6rem;
  }

  .flowList {
    width: 153.6rem;
    margin: 0 auto;
  }

  .flowItem {
    position: relative;
    display: grid;
    grid-template-columns: 56.4rem 96.8rem;
    align-items: start;
    width: 153.2rem;
    min-height: 41.5rem;
  }

  .flowPhoto {
    display: block;
    width: 56.4rem;
    height: 38.5rem;
    object-fit: cover;
  }

  .flowText {
    align-self: start;
    width: 96.8rem;
    min-height: 30.5rem;
    margin-top: 3.4rem;
    padding: 5.6rem 4.5rem 3rem 10.4rem;
    background: #fff;
    /* font-family: var(--mincho); */
  }

  .flowStep {
    position: absolute;
    top: -1.6rem;
    left: 46.5rem;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 14.7rem;
    height: 14.7rem;
    border-radius: 50%;
    background: var(--navy);
    color: #fff;
    font-family: var(--mincho);
    text-align: center;
  }

  .flowStep span {
    display: block;
    margin-top: .5rem;
    font-size: 6rem;
    font-weight: 400;
    line-height: .9;
  }

  .flowStep b {
    display: block;
    margin-top: .7rem;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
  }

  .flowText h3 {
    margin: 0;
    padding: 0 2rem 2.8rem;
    border-bottom: .1rem solid #a9a58f;
    color: #543b1d;
    font-size: 5rem;
    font-weight: 400;
    line-height: 1;
    font-family: var(--mincho);
  }

  .flowText p {
    margin: 3.1rem 0 0;
    color: #543b1d;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.85;
    padding: 0 0 0 3rem;
  }

  .flowArrow {
    display: block;
    width: 12rem;
    height: 4rem;
    margin: -3.1rem 0 .1rem 103.4rem;
  }

  .priceSection {
    display: block;
    min-height: 213.1rem;
    padding: 5.9rem 0 7rem;
    background: #245173 url("../img/implant/price_bg.png") center top / 192rem auto no-repeat;
    color: #fff;
    font-family: var(--gothic);
  }

  .priceHead {
    text-align: center;
    font-family: var(--mincho);
  }

  .priceHeadEn {
    margin: 0;
    color: #b0ad93;
    font-size: 10rem;
    font-weight: 300;
    line-height: .9;
    letter-spacing: 0.5rem;
  }

  .priceHeadTitle {
    margin: 2.2rem 0 0;
    color: #fff;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
  }

  .priceTables {
    width: 135.9rem;
    margin: 4.9rem auto 0;
  }

  .priceBox {
    width: 100%;
    background: #fff;
    border: 1rem solid #fff;
    color: #2b2b2b;
  }

  .priceBox + .priceBox {
    margin-top: 5.9rem;
  }

  .priceBox h3 {
    display: grid;
    place-items: center;
    height: 6.7rem;
    margin: 0;
    background: #428bc3;
    color: #fff;
    font-size: 3.8rem;
    font-weight: 700;
    line-height: 1;
  }

  .priceRows {
    padding: 3rem 4.2rem 0;
  }

  .priceRow {
    display: grid;
    grid-template-columns: 64.5rem 1fr;
    align-items: center;
    min-height: 11.5rem;
    border-bottom: .1rem solid #c7c7c7;
  }

  .priceRows .priceRow:last-child {
    border-bottom: 0;
  }

  .priceName {
    margin: 0;
    padding-left: 20.8rem;
    color: #2d2d2d;
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1;
  }

  .priceName span {
    font-size: 2.3rem;
    font-weight: 400;
  }

  .priceValue {
    margin: 0;
    color: #cd903a;
    font-family: var(--mincho);
    font-size: 6.6rem;
    font-weight: 700;
    line-height: 1;
  }

  .priceValue .priceYen,
  .priceValue .priceTax {
    margin-left: .5rem;
    font-family: var(--gothic);
    font-size: 2rem;
    font-weight: 700;
  }

  .priceFree {
    font-size: 7rem;
  }

  .priceBoxExam {
    height: 35.8rem;
  }

  .priceBoxExam .priceRows {
    padding-top: 2.8rem;
  }

  .priceBoxImplant {
    height: 35.6rem;
  }

  .priceBoxImplant h3 {
    font-size: 3.5rem;
  }

  .priceBoxImplant .priceRows {
    padding: 2.6rem 3.3rem 0;
  }

  .priceRowWarranty {
    grid-template-columns: 36.8rem 42.7rem 1fr;
    min-height: 11.4rem;
  }

  .priceRowWarranty .priceName {
    padding-left: 3.2rem;
  }

  .priceWarranty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 41.6rem;
    height: 8rem;
    margin: 0 0 0 auto;
    background: #c88c31;
    color: #fff;
    font-family: var(--mincho);
    font-size: 4.1rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }

  .priceWarranty small {
    margin-left: .5rem;
    font-size: 2rem;
    line-height: 1;
  }

  .priceBoxBone {
    height: 35.6rem;
  }

  .priceBoxBone h3 {
    font-size: 3.5rem;
  }

  .priceRowsGrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 6.7rem;
    padding: 2.9rem 4rem 0;
  }

  .priceRowsGrid .priceRow {
    grid-template-columns: 26rem 1fr;
    min-height: 10.6rem;
  }

  .priceRowsGrid .priceName {
    padding-left: 1rem;
    font-size: 3rem;
    white-space: nowrap;
  }

  .priceRowsGrid .priceValue {
    font-size: 5.5rem;
    white-space: nowrap;
  }

  .priceRowsGrid .priceValue .priceYen,
  .priceRowsGrid .priceValue .priceTax {
    font-size: 1.8rem;
  }

  .priceCare {
    display: grid;
    grid-template-columns: 56.7rem 70rem;
    column-gap: 7.6rem;
    align-items: start;
    width: 134.3rem;
    margin: 5.4rem auto 0;
  }

  .priceCareImage {
    display: block;
    width: 56.7rem;
    height: 55.3rem;
  }

  .priceCareText {
    padding-top: 8rem;
    /* font-family: var(--mincho); */
  }

  .priceCareText h3 {
    margin: 0;
    padding-bottom: 2.9rem;
    border-bottom: .1rem solid rgba(255,255,255,.72);
    color: #fff;
    font-size: 6rem;
    font-weight: 400;
    line-height: 1;
    font-family: var(--mincho);
  }

  .priceCareText p {
    margin: 3rem 0 0;
    color: #fff;
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.8;
  }

  .messageSection {
    position: relative;
    display: block;
    min-height: 155.5rem;
    padding-top: 12rem;
    background: #fff url("../img/implant/message_bg.jpg") center 12rem / 192rem auto no-repeat;
    /* font-family: var(--mincho); */
  }

  .messageSection::before {
    content: none;
  }

  .messagePanel {
    position: absolute;
    left: 80.2rem;
    top: 16.2rem;
    width: 100.8rem;
    min-height: 119.9rem;
    padding: 6.5rem 7rem 6.2rem;
    background: rgba(255, 255, 255, .9);
  }

  .messageLead {
    display: flex;
    align-items: center;
    gap: 2.3rem;
    color: #b38617;
    font-size: 4.2rem;
    font-weight: 400;
    line-height: 1;
    font-family: var(--mincho);
  }

  .messageLead::after {
    content: "";
    display: block;
    flex: 1;
    height: .1rem;
    background: #b98735;
  }

  .messagePanel h2 {
    margin: 4.6rem 0 0;
    color: #333;
    font-size: 5.4rem;
    font-weight: 400;
    line-height: 1.6;
    font-family: var(--mincho);
  }

  .messageText {
    margin-top: 3.2rem;
    color: #333;
    font-size: 2.35rem;
    font-weight: 400;
    line-height: 1.85;
  }

  .messageText p {
    margin: 0;
  }

  .messageText p + p {
    margin-top: 5.5rem;
  }

  .messageText .messageQuote {
    margin-top: 5.9rem;
    font-weight: 700;
    line-height: 1.9;
  }

  .messageText .messageStrong {
    margin-top: 5.3rem;
    font-weight: 700;
    line-height: 1.8;
  }

  .access {
    display: block;
    padding: 9.1rem 0 8.9rem;
    background: #fff;
  }

  .accessPc {
    display: block;
  }

  .accessPcHeading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4.5rem;
    margin: 0 0 4.6rem;
    color: var(--navy);
    font-family: var(--mincho);
    font-size: 8rem;
    font-weight: 400;
    line-height: 1;
  }

  .accessPcHeading::before,
  .accessPcHeading::after {
    content: "";
    display: block;
    width: 33.6rem;
    height: .1rem;
    background: var(--navy);
  }

  .accessPcHeading span {
    display: block;
  }

  .accessPcPhotos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }

  .accessPcPhotos img {
    width: 100%;
    height: 64rem;
    object-fit: cover;
  }

  .accessPcContent {
    display: grid;
    grid-template-columns: 79.6rem 83.6rem;
    justify-content: space-between;
    width: 167.3rem;
    margin: 6.2rem 0 0 16.1rem;
  }

  .accessPcInfo {
    color: #252525;

    padding-top: 0;
    font-family: var(--gothic);
  }

  .accessPcLogo {
    display: block;
    width: 48.9rem;
    height: auto;
    max-width: none;
    margin: 0 0 4rem 1.5rem;
  }

  .accessPcAddress {
    margin: 0 0 3rem;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.4;
  }

  .accessPcStation {
    display: flex;
    align-items: center;
    gap: 3.5rem;
    margin: 0 0 4.1rem 2.8rem;
  }

  .accessPcStation img {
    width: 4.3rem;
    height: auto;
    max-width: none;
  }

  .accessPcStation p {
    margin: 0;
    font-size: 2.35rem;
    line-height: 1.85;
  }

  .accessPcSchedule {
    color: #27b8b6;

    width: 74.2rem;
    margin: 0 0 3.4rem 1.1rem;
    border-collapse: collapse;
    font-family: var(--gothic);
  }

  .accessPcSchedule th {
    background: #27b8b6;
    color: #fff;

    height: 5.7rem;
    font-size: 2.6rem;
    font-weight: 700;
    text-align: center;
    padding: 0 .25em;
  }

  .accessPcSchedule th:first-child {
    width: 21rem;
  }

  .accessPcSchedule th:last-child {
    padding-right:1.5em;
  }
  .accessPcSchedule td {
    height: 5.4rem;
    font-size: 2.6rem;
    text-align: center;
    vertical-align: middle;
    padding: 0.7em 0 0;
  }

  .accessPcSchedule td:first-child {
    color: #252525;

    width: 21rem;
    font-size: 2.6rem;
    text-align: center;
    white-space: nowrap;
  }

  .accessPcSchedule td:last-child {
    padding-right:1.5em;
  }

  .circleMark,
  .squareMark {
    display: inline-block;
    color: #27b8b6;
    font-size: 2.2rem;
    line-height: 1;
  }

  .accessPcNotes {
    border-top: .1rem solid #252525;

    width: 74.2rem;
    margin-left: 1.1rem;
    padding-top: 2.3rem;
    font-family: var(--gothic);
  }

  .accessPcNotes p {
    margin: 0 0 1.9rem 2.4rem;
    font-size: 2.4rem;
    line-height: 1.2;
  }

  .accessPcNotes span {
    color: #27b8b6;

    font-size: 3rem;
  }

  .accessPcNotes small {
    display: block;
    margin: 2.7rem 0 0 2.4rem;
    font-size: 2rem;
    line-height: 1.5;
  }

  .accessPcMap {
    width: 83.6rem;
    height: 67rem;
    border: 0;
  }

  .accessPcLinks {
    display: grid;
    grid-template-columns: repeat(3, 35.7rem);
    column-gap: 6.5rem;
    justify-content: center;
    margin-top: 8.2rem;
  }

  .accessPcLinks a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 8rem;
    background: var(--navy);
    color: #fff;
    font-family: var(--gothic);
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
  }

  .accessPcLinks span {
    position: absolute;
    top: 50%;
    right: 3.7rem;
    transform: translateY(-50%);
    font-size: 2.4rem;
    font-weight: 700;
  }

  .finalCta {
    display: block;
    padding: 5.6rem 0 4.7rem;
    background: #fff;
  }

  .finalCtaPc {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 97.8%;
    min-height: 76rem;
    margin: 0 auto;
    background: url("../img/implant/finalcta_bg.jpg") center center / cover no-repeat;
    overflow: hidden;
  }

  .finalCtaPcPanel {
    position: relative;
    z-index: 1;
    width: 116.2rem;
    min-height: 66.8rem;
    padding: 4.2rem 5.8rem 5rem;
    background: url("../img/implant/finalcta_bg_txt.jpg") center center / 100% 100% no-repeat;
    text-align: center;
  }

  .finalCtaPcPanel h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: 0;
    color: var(--gold);
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 600;
    line-height: 1.2;
    margin-left: 8rem;
  }

  .finalCtaPcPanel h2 img {
    width: 10.6rem;
    flex: 0 0 auto;
  }

  .finalCtaPcIntro {
    margin-top: 2rem;
    margin-left: 4rem;
    color: #543b1d;
    font-family: var(--gothic);
    font-size: 2.35rem;
    font-weight: 700;
    line-height: 2.15;
    margin-left: 4rem;
  }

  .finalCtaPcIntro p {
    margin: 0;
  }

  p.finalCtaPcCatch {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 106rem;
    height: 8.4rem;
    margin: 2.2rem auto 0 2rem;
    background: #b68334;
    clip-path: polygon(4.2rem 0, 100% 0, calc(100% - 4.8rem) 100%, 0 100%);
    color: #fff;
    font-family: var(--mincho);
    font-size: 3.2rem;
    font-weight: 400;
    line-height: 1;
  }

  .finalCtaPcCatch span {
    position: relative;
    z-index: 1;
  }

  p.finalCtaPcLead {
    width: 88rem;
    margin: 2.5rem auto 0;
    padding-bottom: 2.2rem;
    border-bottom: .1rem solid #b68334;
    color: #312719;
    font-family: var(--gothic);
    font-size: 2.9rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .finalCtaPcButtons {
    display: flex;
    justify-content: center;
    gap: 4rem;
    margin-top: 4.4rem;
  }

  .finalCtaPcWeb,
  .finalCtaPcTel {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 49.2rem;
    min-width: 0;
    height: 15.7rem;
    text-decoration: none;
  }

  .finalCtaPcWeb {
    position: relative;
    gap: 2.2rem;
    background: #25b9b3;
    color: #fff;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 400;
  }

  .finalCtaPcWeb::after {
    content: "";
    position: absolute;
    right: 1.1rem;
    bottom: 1.1rem;
    width: 0;
    height: 0;
    border-left: 2.3rem solid transparent;
    border-bottom: 2.3rem solid #fff;
  }

  .finalCtaPcWeb span {
    font-family: var(--mincho);
    font-size: 2.8rem;
    font-weight: 400;
  }

  .finalCtaPcTel {
    flex-direction: column;
    border: .35rem solid #7b5a32;
    background: rgba(255,255,255,.88);
    color: #4a3820;
  }

  .finalCtaPcTel span {
    margin-bottom: 1rem;
    color: #312719;
    font-family: var(--gothic);
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
  }

  .finalCtaPcTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.4rem;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 600;
    line-height: 1;
  }

  .finalCtaPcTel img {
    width: 4rem;
    flex: 0 0 auto;
  }

  .bannerSection {
    display: block;
    padding: 5.5rem 4rem 5.8rem;
    background: #efefef;
  }

  .bannerPcTop {
    display: grid;
    grid-template-columns: repeat(3, 58.5rem);
    justify-content: center;
    gap: 4.2rem 4rem;
  }

  .bannerPcBottom {
    display: flex;
    justify-content: center;
    gap: 7.8rem;
    margin-top: 5.8rem;
  }

  .bannerSection img {
    display: block;
    height: auto;
  }

  .bannerPcTop img {
    width: 58.5rem;
  }

  .bannerPcBottom img {
    width: 49.3rem;
  }

  .siteFooter {
    display: block;
    background: #e7e7ed;
  }

  .footerMain {
    display: grid;
    grid-template-columns: 39rem 1fr;
    gap: 15.5rem;
    width: 159rem;
    max-width: calc(100% - 18rem);
    margin: 0 auto;
    padding: 6rem 0 4.7rem;
    align-items: start;
  }

  .footerInfo {
    padding-top: 0;
  }

  .footerLogoPc {
    display: block;
    width: 27.2rem;
    height: auto;
  }

  .footerInfo p {
    margin: 2.8rem 0 0 .7rem;
    color: #1f1f24;
    font-family: var(--gothic);
    font-size: 2.1rem;
    font-weight: 400;
    line-height: 1.75;
  }

  .footerNavPc {
    display: grid;
    grid-template-columns: 30.5rem 42rem 28rem;
    gap: 3rem;
  }

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

  .footerNavPc li {
    margin: 0 0 1.35rem;
    color: #1f1f24;
    font-family: var(--gothic);
    font-size: 2rem;
    font-weight: 500;
    line-height: 1.35;
  }

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

  .copyright {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 5rem;
    margin: 0;
    padding: 0;
    background: #000133;
    color: #fff;
    font-family: var(--gothic);
    font-size: 1.85rem;
    font-weight: 700;
    line-height: 1;
  }
}

@media screen and (max-width: 768px) {

  .causeCheckSpIndent {
    display: inline-block;
    width: 1em;
  }
  html {
    font-size: calc(100vw / 750 * 10);
  }

  body {
    min-width: 0;
    padding-bottom: 6.6rem;
  }

  .spFixedCta {
    position: fixed;
    z-index: 100;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    height: 6.6rem;
    background: #fff;
    box-shadow: 0 -.1rem .6rem rgba(0, 0, 0, .12);
  }

  .spFixedCta a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 100%;
    font-family: var(--gothic);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
  }

  .spFixedCtaWeb {
    gap: 1.15rem;
    background: #1a547b;
    color: #fff;
  }

  .spFixedCtaWebIcon {
    position: relative;
    width: 3.1rem;
    height: 2.2rem;
    border: .34rem solid #fff;
    flex: 0 0 auto;
  }

  .spFixedCtaWebIcon::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -.9rem;
    width: 3.8rem;
    height: .34rem;
    background: #fff;
    transform: translateX(-50%);
  }

  .spFixedCtaMain {
    font-size: 2.75rem;
    white-space: nowrap;
  }

  .spFixedCtaSub {
    margin-left: .05rem;
    font-size: 2rem;
    white-space: nowrap;
  }

  .spFixedCtaTel {
    gap: 1.35rem;
    background: #fff;
    color: var(--navy);
  }

  .spFixedCtaTel img {
    width: 3.25rem;
    height: auto;
    flex: 0 0 auto;
  }

  .spFixedCtaTel span {
    font-size: 2.8rem;
    white-space: nowrap;
  }


  .bannerSection {
    display: block;
    padding: 6rem 0 8.8rem;
    background: #efefef;
    margin-top: 6rem;
  }

  .bannerPcTop {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4.5rem;
    justify-items: center;
  }

  .bannerPcBottom {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4.4rem;
    justify-items: center;
    margin-top: 6.8rem;
  }

  .bannerSection img {
    display: block;
    height: auto;
  }

  .bannerPcTop img {
    width: 65.5rem;
    /* max-width: calc(100% - 10rem); */
  }

  .bannerPcBottom img {
    width: 49.3rem;
    /* max-width: calc(100% - 22rem); */
  }

  .siteFooter {
    display: block;
    background: #e7e7ed;
  }

  .footerMain {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 5.2rem 0 7.8rem;
  }

  .footerInfo {
    padding: 0;
    text-align: center;
  }

  .footerLogoPc {
    display: none;
  }

  .footerLogoSp {
    display: block;
    width: 40.5rem;
    height: auto;
    margin: 0 auto;
  }

  .footerInfo p {
    margin: 2.85rem 0 0;
    color: #25252a;
    font-family: var(--gothic);
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
  }

  .footerInfo p br {
    display: none;
  }

  .footerNavPc {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 5.8rem;
    row-gap: 0;
    width: 63rem;
    max-width: calc(100% - 12rem);
    margin: 12.2rem auto 0;
  }

  .footerNavPc ul {
    display: grid;
    margin: 0;
    padding: 0;
    list-style: none;
    align-content: start;
  }

  .footerNavPc ul:nth-child(1) {
    grid-column: 1 / 3;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(6, auto);
    grid-auto-flow: column;
    column-gap: 5.8rem;
    row-gap: 4.45rem;
  }

  .footerNavPc ul:nth-child(2) {
    grid-column: 1 / 3;
    margin-top: 11.7rem;
    row-gap: 4.55rem;
  }

  .footerNavPc ul:nth-child(3) {
    grid-column: 1 / 3;
    margin-top: 8.2rem;
    row-gap: 4.55rem;
  }

  .footerNavPc li {
    margin: 0;
    color: #25252a;
    font-family: var(--gothic);
    font-size: 2.45rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }

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

  .copyright {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 6.8rem;
    margin: 0;
    padding: 0;
    background: #000133;
    color: #fff;
    font-family: var(--gothic);
    font-size: 1.95rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
  }

  .sp-br,
  br.sp-br {
    display: block;
  }

  .pc-br,
  br.pc-br {
    display: none;
  }

  .siteHeader {
    position: fixed;
    z-index: 10;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 13.2rem;
  }

  .headerBrand {
    position: absolute;
    top: 0;
    left: 1.4rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 44.5rem;
    height: 14.7rem;
    padding-top: .65rem;
    background: rgba(255,255,255,.96);
    border-radius: 0 0 .8rem .8rem;
  }

  .headerLogoTitle {
    display: block;
    width: 100%;
    margin: 0 0 .85rem;
    color: #554d46;
    font-family: var(--gothic);
    font-size: 1.55rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: .05em;
    text-align: center;
    white-space: nowrap;
  }

  .headerLogo {
    display: flex;
    width: 36.2rem;
  }

  .headerLogo img {
    width: 36.2rem;
  }

  .headerSiteName {
    display: grid;
    place-items: center;
    width: 32.6rem;
    height: 5rem;
    margin-top: 1.15rem;
    background: var(--navy);
    color: #fff;
    font-family: var(--mincho);
    font-size: 2.9rem;
    line-height: 1;
    white-space: nowrap;
  }

  .headerReserve,
  .headerTel {
    display: none;
  }

  .menuButton {
    position: absolute;
    top: .9rem;
    right: 2.1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 9.9rem;
    height: 9.9rem;
    padding: 0;
    border: 0;
    background: #303030;
    color: #fff;
  }

  .menuButton span {
    display: block;
    width: 5.8rem;
    height: .5rem;
    margin: .65rem 0;
    background: #fff;
  }

  .menuButton em {
    display: block;
    margin-top: .6rem;
    color: #fff;
    font-style: normal;
    font-size: 2rem;
    line-height: 1;
  }

  .drawerNav {
    position: fixed;
    z-index: 9;
    top: 13.2rem;
    left: 0;
    right: 0;
    display: none;
    max-height: calc(100vh - 13.2rem);
    padding: 3.8rem 3.2rem 5.2rem;
    background: var(--navy);
    overflow-y: auto;
  }

  .drawerNav.isOpen {
    display: block;
  }

  .drawerInnerPc {
    display: none;
  }

  .drawerInnerSp {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 2.4rem;
  }

  .drawerInnerSp a {
    display: flex;
    align-items: center;
    min-height: 7.8rem;
    padding: 1.4rem 1.2rem;
    border-bottom: .1rem solid rgba(255,255,255,.55);
    color: #fff;
    font-family: var(--gothic);
    font-size: 2.25rem;
    font-weight: 400;
    line-height: 1.35;
    text-decoration: none;
  }

  .hero {
    position: relative;
    display: block;
    width: 100%;
    height: 137.9rem;
    overflow: hidden;
    background: #d4cec8;
  }

  .heroPicture,
  .heroBg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .heroBg {
    max-width: none;
    object-fit: cover;
  }

  .heroCopy {
    position: absolute;
    left: 1.5rem;
    top: 41.2rem;
    width: 72rem;
  }

  .heroCopy::before {
    content: "";
    position: absolute;
    z-index: 0;
    left: 0;
    top: 0;
    width: 72rem;
    height: 36rem;
    background: var(--heroBlue);
  }

  .heroMessage {
    position: relative;
    z-index: 1;
    height: 35rem;
    color: #fef6ee;
    text-align: center;
    font-family: var(--mincho);
    text-shadow: 0 .2rem .35rem rgba(0,0,0,.22);
  }

  .heroMessage::before,
  .heroMessage::after {
    content: "";
    position: absolute;
    left: 3.1rem;
    width: 65.8rem;
    height: .1rem;
    background: #fef6ee;
  }

  .heroMessage::before {
    top: 20.3rem;
  }

  .heroMessage::after {
    top: 32.5rem;
  }

  .heroMessageTitle {
    position: absolute;
    left: 3rem;
    right: 3rem;
    top: 2.6rem;
    font-size: 6.4rem;
    font-weight: 400;
    line-height: 1.3;
    /* color: #fef6ee; */
  }

  .heroMessageTitle span {
    display: block;
    white-space: nowrap;
  }

  .heroMessageTitle b {
    display: inline-block;
    margin: 0 .4rem;
    font-size: 8.9rem;
    font-weight: 400;
    line-height: .8;
    vertical-align: -.08em;
  }

  .heroLead {
    position: absolute;
    left: 3.1rem;
    right: 3.1rem;
    top: 22.6rem;
    /* color: #fff; */
    font-family: var(--mincho);
    font-size: 2.9rem;
    font-weight: 400;
    line-height: 1.35;
    white-space: nowrap;
  }

  .heroSub {
    position: absolute;
    left: 3.1rem;
    right: 3.1rem;
    top: 27rem;
    /* color: #fff; */
    font-family: var(--mincho);
    font-size: 2.9rem;
    font-weight: 400;
    line-height: 1.35;
    white-space: nowrap;
  }

  .heroChecks {
    position: relative;
    z-index: 2;
    width: 72rem;
    height: 21rem;
    padding: 1.6rem 4.5rem 0rem;
    background: rgba(255,255,255,.91);
    color: #171717;
    font-family: var(--mincho);
    font-size: 2.75rem;
    font-weight: 400;
    line-height: 1.45;
    margin-top: 0.5rem;
  }

  .heroChecks li {
    position: relative;
    padding-left: 5.2rem;
    white-space: nowrap;
  }

  .heroChecks li + li {
    margin-top: .75rem;
  }

  .heroChecks li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .2rem;
    width: 3.6rem;
    height: 3.6rem;
    background: url("../img/implant/icon_check.png") no-repeat center / contain;
  }


  .heroBadges {
    position: absolute;
    left: .9rem;
    bottom: 15.4rem;
    display: flex;
    gap: 1.05rem;
  }

  .heroBadge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 23.5rem;
    height: 23.5rem;
    border: .5rem solid rgba(226,226,226,.95);
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    color: var(--navy);
    text-align: center;
    font-family: var(--mincho);
    box-shadow: 0 0 0 .1rem rgba(255,255,255,.8) inset;
  }

  .heroBadge img {
    width: auto;
    height: 5.8rem;
    margin-bottom: 1rem;
  }
  .heroBadge:nth-child(3) img {
    height: 4.8rem;
  }
  .heroBadge p,
  .heroBadge b {
    display: block;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.25;
  }

  .heroBadge p span {
    font-size: 2.35rem;
  }

  .heroBadge > span {
    display: block;
    margin-top: .35rem;
    font-size: 2.25rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .intro {
    display: block;
    background: #fff;
  }

  .introHead {
    position: relative;
    display: block;
    min-height: 25.5rem;
    padding: 5.7rem 0 2.5rem;
    text-align: center;
    background: #fff;
  }

  .introHead > span {
    display: none;
  }

  .introHead h2 {
    display: block;
    width: 75rem;
    margin: 0 auto;
    color: #1f5d89;
    font-family: var(--mincho);
    font-weight: 700;
    line-height: 1.18;
  }

  .introHead h2 img {
    position: absolute;
    left: 5.3rem;
    top: 4.2rem;
    width: 10.7rem;
    height: 10.4rem;
    margin: 0;
  }

  .introTitleFirst {
    display: block;
    padding-left: 0;
    font-size: 7.5rem;
  }

  .introTitleSecond {
    display: block;
    margin-top: 1.4rem;
    padding-left: 3.6rem;
    font-size: 7.5rem;
    text-align: left;
    white-space: nowrap;
  }

  .introVisual {
    position: relative;
    padding-top: 28.7rem;
    background: #fff;
  }

  .introVisual::after {
    z-index: 2;
  }

  .introVisual::before,
  .introVisual::after {
    content: "";
    position: absolute;
    left: 0;
    width: 75rem;
    background-position: center;
    background-size: 75rem auto;
    background-repeat: no-repeat;
  }

  .introVisual::before {
    top: 0;
    height: 28.7rem;
    background-image: url("../img/implant/intro_bg01-sp.jpg");
  }

  .introVisual::after {
    bottom: 0;
    height: 28.4rem;
    background-image: url("../img/implant/intro_bg02-sp.jpg");
  }

  .introPanel {
    position: relative;
    z-index: 1;
    min-height: 95.4rem;
    padding: 4.3rem 2.8rem 31.6rem;
    background: #fbfaf8;
    text-align: center;
    font-family: var(--mincho);
  }

  .introPanel h3 {
    margin: 0;
    color: #252525;
    font-size: 5rem;
    /* font-weight: 400; */
    line-height: 1.55;
  }

  .introLead {
    margin-top: 2.3rem;
    color: #252525;
    font-family: var(--gothic);
    font-size: 2.72rem;
    font-weight: 700;
    line-height: 1.75;
  }

  .introConcern {
    position: relative;
    width: 70rem;
    margin: 2.6rem auto 0;
    padding: 2rem 3.6rem 1.8rem;
    background: var(--navy);
    color: #fff;
    text-align: left;
    font-family: var(--gothic);
  }

  .introConcern::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -2rem;
    width: 0;
    height: 0;
    margin-left: -2.8rem;
    border-left: 2.8rem solid transparent;
    border-right: 2.8rem solid transparent;
    border-top: 2.2rem solid var(--navy);
  }

  .introConcern li {
    position: relative;
    min-height: 5rem;
    padding-left: 6.5rem;
    color: #fff;
    font-size: 2.85rem;
    font-weight: 700;
    line-height: 1.55;
    white-space: nowrap;
  }

  .introConcern li + li {
    margin-top: .9rem;
  }

  .introConcern li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 5rem;
    height: 5rem;
    background: #fff url("../img/implant/icon_check_white.png") center / 5rem 5rem no-repeat;
  }

  .introConcern li::after {
    content: none;
  }

  .introNotice {
    width: 68.6rem;
    margin: 4.2rem auto 0;
    padding-bottom: 3rem;
    border-bottom: .1rem solid #b98735;
    color: #543b1d;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.75;
  }

  .introText {
    margin-top: 2rem;
    color: #543b1d;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.75;
  }

  .introGold {
    margin-top: 2.7rem;
    color: #b0823a;
    font-family: var(--gothic);
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.75;
  }

  .introCta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
    height: 36.8rem;
    padding-top: 3.2rem;
    background: #c5a85e;
  }

  .introWeb,
  .introTel {
    display: flex;
    width: 49rem;
    height: 13.5rem;
    font-family: var(--mincho);
  }

  .introWeb {
    position: relative;
    align-items: center;
    justify-content: center;
    background: var(--blue);
    color: #fff;
  }

  .introWeb::after {
    content: "";
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.2rem 2.2rem;
    border-color: transparent transparent #fff transparent;
  }

  .introWeb span {
    margin-right: 1rem;
    font-size: 2.7rem;
    line-height: 1;
  }

  .introWeb b {
    font-size: 4.6rem;
    font-weight: 400;
    line-height: 1;
  }

  .introTel {
    flex-direction: column;
    justify-content: center;
    background: #fff;
    color: var(--navy);
    text-align: center;
  }

  .introTel span {
    display: block;
    margin-bottom: 1.4rem;
    font-family: var(--gothic);
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
  }

  .introTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4.9rem;
    font-weight: 600;
    line-height: 1;
  }

  .introTel b img {
    width: 4rem;
    height: 4.7rem;
    margin-right: 1.3rem;
  }

  .pc-break-text,
  .sp-break-text {
    display: block;
  }

  .implantMenu {
    /* min-height: 357.3rem; */
    padding-bottom: 10rem;
    padding-top: 12.2rem;
    background: #f4f2ee url("../img/implant/menu_bg-sp.jpg") center top / 75rem 357.3rem no-repeat;
    margin-top: 3rem;
  }

  .implantMenuInner {
    width: 70.6rem;
    margin: 0 auto;
  }

  .implantMenuHead {
    text-align: center;
    font-family: var(--mincho);
    margin-bottom: 5rem;
  }

  .implantMenuHead p {
    margin: 0;
    color: rgba(197, 168, 94, .45);
    font-size: 12rem;
    font-weight: 400;
    line-height: .82;
  }

  .implantMenuHead h2 {
    margin: .9rem 0 0;
    color: #543b1d;
    font-size: 8rem;
    font-weight: 400;
    line-height: 1;
  }

  .implantMenuGroup h3 {
    margin: 0;
    color: #252525;
    font-family: var(--gothic);
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1;
  }

  .implantMenuGroupAbout {
    margin: 1rem 0 0;
  }

  .implantMenuGroupImplant {
    margin-top: 8.8rem;
  }

  .implantMenuGroupTrouble {
    margin-top: 8.8rem;
  }

  .implantMenuList {
    display: grid;
    grid-template-columns: repeat(2, 33.1rem);
    gap: 4.8rem 3.9rem;
    margin-top: 1.5rem;
  }

  .implantMenuListAbout {
    grid-template-rows: repeat(2, 19.4rem);
  }

  .implantMenuList li {
    min-width: 0;
  }

  .implantMenuList a {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 33.1rem;
    height: 19.4rem;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    box-shadow: inset 0 0 0 .1rem rgba(255,255,255,.82), inset 0 0 0 .6rem rgba(255,255,255,.08);
  }


  .implantMenuList a::before {
    content: "";
    position: absolute;
    inset: .6rem;
    border: .1rem solid rgba(255,255,255,.48);
    pointer-events: none;
  }
  .implantMenuList a::after {
    content: "";
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.4rem 2.4rem;
    border-color: transparent transparent #fff transparent;
  }

  .implantMenuListAbout a {
    background: var(--blue);
  }

  .implantMenuListImplant a {
    background: #ad875f;
  }

  .implantMenuListTrouble a {
    background: var(--navy);
  }

  .implantMenuList img {
    width: auto;
    height: 8.1rem;
    margin-bottom: .9rem;
  }

  .implantMenuListAbout img,
  .implantMenuListImplant img {
    height: 8.6rem;
  }

  .implantMenuListTrouble img {
    height: 7.3rem;
    margin-bottom: .9rem;
  }

  .greeting {
    display: block;
    background: #fff;
    color: #2c2c2c;
    font-family: var(--gothic);
  }

  .greetingHead {
    height: 27.2rem;
    padding-top: 10rem;
    background: #fff;
    text-align: center;
  }

  .greetingHeadEn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.4rem;
    margin: 0;
    color: var(--navy);
    font-family: var(--mincho);
    font-size: 10rem;
    font-weight: 400;
    line-height: .95;
    /* width: 100%; */
  }

  .greetingHeadEn::before,
  .greetingHeadEn::after {
    content: "";
    display: block;
    width: 4.4rem;
    height: .1rem;
    background: #245d86;
  }

  .greetingHeadEn span {
    display: block;
  }

  .greetingHeadTitle {
    margin-top: 1rem;
    color: #3d2a22;
    font-family: var(--mincho);
    font-size: 4rem;
    line-height: 1;
    font-weight: 600;
  }

  .greetingVisual {
    position: relative;
    height: 184rem;
    background: url("../img/implant/greeting_bg-sp.jpg") center top / 75rem auto no-repeat;
  }

  .greetingCatch {
    position: absolute;
    z-index: 2;
    left: 0;
    top: 71.8rem;
    display: flex;
    align-items: center;
    /* justify-content: center; */
    width: 75rem;
    height: 28.4rem;
    background: rgba(31, 93, 137, .9);
    color: #fff;
    text-align: center;
    font-family: var(--mincho);
    text-shadow: 0 .2rem .35rem rgba(0,0,0,.22);
    /* font-weight: 700; */
  }

  .greetingCatch p {
    margin: 0;
    font-size: 6rem;
    font-weight: 700;
    line-height: 1.28;
  }

  .greetingCatch .sp-break-text {
    display: block;
  }

  .greetingCatchSub {
    display: block;
    margin-top: 1.2rem;
    font-size: 4rem;
    line-height: 1.25;
    transform: translateX(1em);
  }

  .greetingDoctor {
    position: absolute;
    z-index: 1;
    left: 5%;
    top: 102rem;
    width: 95%;
    height: auto;
    background: #fff;
  }

  .greetingName {
    position: absolute;
    z-index: 3;
    left: 0;
    top: 165rem;
    width: 41rem;
    min-height: 9.2rem;
    padding: 2.35rem 2.45rem 2.2rem;
    background: rgba(77, 67, 56, .9);
    color: #fff;
    font-family: var(--mincho);
  }

  .greetingName p {
    margin: 0;
    font-size: 3.2rem;
    line-height: 1;
  }

  .greetingName div {
    display: flex;
    align-items: center;
    margin-top: 1rem;
  }

  .greetingName span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 9rem;
    height: 5rem;
    margin-right: 2rem;
    background: #b98b54;
    font-size: 3.2rem;
    line-height: 1;
  }

  .greetingName b {
    font-size: 5.4rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingBody {
    display: block;
    width: 100%;
    margin: 0;
  }

  .greetingMessage {
    min-height: 0;
    padding: 3.8rem 3.1rem 7.8rem;
    background: #eef5f8;
    color: #2c2c2c;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 2.12;
  }

  .greetingMessage p {
    margin: 0;
  }

  .greetingMessage p + p {
    margin-top: 4.3rem;
  }

  .greetingMessage b {
    font-weight: 700;
  }

  .greetingProfile {
    padding: 4.3rem 2rem 0;
    background: #fff;
  }

  .greetingProfileBlock h3 {
    margin: 0 0 2.2rem;
    padding: 1.42rem 0 0 1.5rem;
    width: 100%;
    height: 5.5rem;
    background: #978750;
    color: #fff;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1;
  }

  .greetingProfileBlock dl {
    margin: 0;
    padding-left: 1.5rem;
    color: #4a4a4a;
    font-size: 2.8rem;
    line-height: 1.92;
  }

  .greetingProfileBlock dl div {
    display: block;
    margin-bottom: 2.7rem;
  }

  .greetingProfileBlock dt,
  .greetingProfileBlock dd {
    margin: 0;
  }

  .greetingProfileBlock ul {
    margin: 0;
    padding-left: 1.5rem;
    color: #4a4a4a;
    font-size: 2.8rem;
    line-height: 1.92;
    list-style: none;
  }

  .greetingProfileBlockSociety {
    margin-top: 7.3rem;
  }

  .greetingCourse {
    display: block;
    width: 100%;
    margin: 4.4rem 0 0;
    padding: 2.2rem 0 7.8rem 0;
    background: #f4f4f4;
  }

  .greetingCourse img {
    display: block;
    width: 71rem;
    height: 36.2rem;
    margin: 0 0 5.8rem;
    object-fit: cover;
  }

  .greetingCourse .greetingProfileBlock {
    padding: 0 2rem;
    margin: auto;
  }

  .greetingCourse .greetingProfileBlock h3 {
    margin-bottom: 1.8rem;
  }

  .greetingCourse .greetingProfileBlock ul {
    padding-left: 1.5rem;
    width: 66rem;
    font-size: 2.8rem;
    line-height: 1.92;
  }

  .caseSection {
    display: block;
    padding: 13.6rem 0 0;
    background: #fff;
  }

  .caseHead {
    text-align: center;
  }

  .caseHeadEn {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 4.1rem;
    margin: 0;
    color: #050934;
    font-family: var(--mincho);
    font-size: 9.6rem;
    font-weight: 400;
    line-height: .78;
  }

  .caseHeadEn::before,
  .caseHeadEn::after {
    content: "";
    width: 14rem;
    height: .1rem;
    background: #265c83;
  }

  .caseHeadEn span {
    padding-left: 1.5rem;
  }

  .caseHeadTitle {
    margin: 3.3rem 0 0;
    color: #3d2a22;
    font-family: var(--mincho);
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
  }

  .casePanel {
    width: 100%;
    min-height: 158rem;
    margin: 2.3rem 0 0;
    padding: 4.9rem 0 12rem;
    background: #f0efec;
  }

  .caseIntro {
    text-align: center;
  }

  .caseIntro h3 {
    margin: 0;
    color: #b99649;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 400;
    line-height: 1.55;
  }

  .caseSpBreak {
    display: block;
  }

  .caseIntro p {
    width: 100%;
    margin: 3.2rem auto 0;
    color: #242424;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.86;
  }

  .caseCarousel {
    position: relative;
    margin-top: 5.4rem;
  }

  .caseViewport {
    width: 65.3rem;
    margin: 0 auto;
    overflow: hidden;
  }

  .caseTrack {
    display: flex;
    transition: transform .48s ease;
    will-change: transform;
  }

  .caseCard {
    position: relative;
    flex: 0 0 100%;
    min-height: 95.2rem;
    padding: 3.3rem 1.1rem 4.4rem;
    background: #fff;
    border-radius: .7rem;
  }

  .caseNumber {
    position: absolute;
    top: -.9rem;
    left: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 9.9rem;
    height: 11.8rem;
    color: #fff;
    background: #9c904e;
    font-family: var(--mincho);
    font-size: 5.7rem;
    font-weight: 400;
    line-height: 1;
  }

  .caseCard h3 {
    min-height: 11.7rem;
    margin: 0 0 1.6rem 12.2rem;
    color: #141414;
    font-family: var(--mincho);
    font-size: 4rem;
    font-weight: 400;
    line-height: 1.35;
  }

  .caseTitleSpOnly {
    display: block;
  }

  .casePhotoRow {
    display: grid;
    grid-template-columns: 29.3rem 2.9rem 29.3rem;
    align-items: center;
    column-gap: .7rem;
    width: 62.9rem;
    margin: 0 auto;
  }

  .casePhotoRow figure {
    margin: 0;
    text-align: center;
  }

  .casePhotoRow figure > img {
    width: 29.3rem;
    height: 20.8rem;
    object-fit: cover;
  }

  .casePhotoRow figcaption {
    margin-top: 1rem;
    color: #9e8f8f;
    font-size: 2.3rem;
    font-weight: 700;
    line-height: 1;
  }

  .casePhotoRow figure:last-child figcaption {
    color: #a99a59;
  }

  .casePhotoArrow {
    width: 2.9rem;
    height: 5.8rem;
    margin-top: -2.5rem;
  }

  .caseDetails {
    width: 59.6rem;
    margin: 3.2rem auto 0;
    color: #111;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.52;
  }

  .caseDetails div {
    display: block;
    min-height: 11rem;
    padding: 0 0 1.4rem;
    border-bottom: .1rem solid #b9b9b9;
  }

  .caseDetails div + div {
    padding-top: 1.4rem;
  }

  .caseDetails dt,
  .caseDetails dd {
    margin: 0;
  }

  .caseDetails dt {
    margin-bottom: .4rem;
    white-space: nowrap;
  }

  .caseNav {
    position: absolute;
    top: 51.7rem;
    z-index: 5;
    display: block;
    width: 5.6rem;
    height: 5.6rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
  }

  .caseNavPrev {
    left: 0;
  }

  .caseNavNext {
    right: 0;
  }

  .caseNav img {
    width: 5.6rem;
    height: 5.6rem;
  }

  .reasonSection {
    display: block;
    background: #fff;
  }

  .reasonHead {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 24.3rem;
    background: #fff;
  }

  .reasonHead::before,
  .reasonHead::after {
    content: "";
    position: absolute;
    top: 17.55rem;
    width: 4.4rem;
    height: .1rem;
    background: #265c83;
  }

  .reasonHead::before {
    left: 0;
  }

  .reasonHead::after {
    right: 0;
  }

  .reasonHead h2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 1.4rem;
    margin: 0;
    color: #1f5d89;
    font-family: var(--mincho);
    font-size: 6.8rem;
    font-weight: 700;
    line-height: 1;
  }

  .reasonHead img {
    width: 10rem;
    height: auto;
    object-fit: contain;
  }

  .reasonBody {
    padding: 6.6rem 0 11.2rem;
    background: url("../img/implant/reason_bg-sp.jpg") center top / 75rem 491.5rem no-repeat;
    margin-bottom: 8rem;
  }

  .reasonList {
    display: block;
    width: 70.8rem;
    margin: 0 auto;
  }

  .reasonCard {
    position: relative;
    width: 100%;
    min-height: 0;
    padding: 1.35rem 1.35rem 5rem;
    background: #fff;
  }

  .reasonCard + .reasonCard {
    margin-top: 4.8rem;
  }

  .reasonNumber {
    position: absolute;
    top: 1.35rem;
    left: 1.35rem;
    z-index: 1;
    width: 17.2rem;
    height: 15.6rem;
    padding: 1.1rem 0 0 1.35rem;
    color: #fff;
    background: linear-gradient(137deg, #b38d1c 0 50%, transparent 50.5%);
    font-family: var(--mincho);
    line-height: 1;
  }

  .reasonNumber span,
  .reasonNumber b {
    display: block;
    font-weight: 400;
  }

  .reasonNumber span {
    font-size: 2.8rem;
  }

  .reasonNumber b {
    margin-top: .35rem;
    font-size: 4.8rem;
    padding-left: 0.5rem;
  }

  .reasonPhoto {
    display: block;
    width: 67rem;
    height: 36.2rem;
    object-fit: cover;
  }

  .reasonText {
    padding: 5rem 2.4rem 0;
  }

  .reasonText h3 {
    margin: 0;
    padding-bottom: 4rem;
    color: #333;
    border-bottom: 1px solid #b0a792;
    font-family: var(--mincho);
    font-size: 4.8rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
  }

  .reasonText p {
    margin: 2.75rem 0 0;
    color: #333;
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.88;
  }

  .announceSection {
    display: block;
    height: auto;
    /* min-height: 17.4rem; */
    padding: 16.3rem 0 8.8rem;
    background: url("../img/implant/announce_bg-sp.jpg") center top / 79rem auto no-repeat #f8f2e8;
    margin-top: 1rem;
  }

  .announcePanel {
    position: relative;
    width: 100%;
    height: auto;
    margin: 0;
    background: transparent;
  }

  .announceFrame {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 71rem;
    height: auto;
    margin: 0 auto;
    padding: 7.3rem 2.6rem 6.4rem;
    border: .4rem solid rgba(159, 147, 105, .62);
    background: rgba(255, 255, 255, .78);
  }

  .announceIcon {
    position: absolute;
    z-index: 3;
    top: -12.5rem;
    right: -0.5rem;
    width: 17.9rem;
    height: 17.9rem;
  }

  .announcePhoto {
    position: static;
    order: 2;
    display: block;
    width: 62.6rem;
    height: 47.5rem;
    margin-top: 2.8rem;
    object-fit: cover;
    border: 0;
  }

  .announceText {
    display: contents;
    color: #443526;
  }

  .announceTitle {
    /* position: static; */
    order: 1;
    width: 63rem;
    margin: 0;
    padding: 0 0 3.2rem;
    color: #8f7b48;
    border-bottom: .1rem solid #c3a55b;
    font-size: 4.8rem;
    font-weight: 700;
    line-height: 1.62;
  }

  .announceText p:not(.announceTitle) {
    order: 4;
    margin: 0;
    /* font-family: var(--mincho); */
    font-size: 2.75rem;
    font-weight: 400;
    line-height: 1.95;
    color: #543b1d;
  }

  .announceText p + p {
    margin-top: 3.6rem;
  }

  .announceText p:not(.announceLead):not(.announceTitle) br {
    display: none;
  }

  .announceLead {
    order: 3 !important;
    margin-top: 4.1rem !important;
    color: #c3a55b !important;
    font-family: var(--gothic) !important;
    font-size: 3.8rem !important;
    font-weight: 700 !important;
    line-height: 1.95 !important;
  }

  .announceText b {
    font-family: var(--gothic);
    font-weight: 700;
  }

  .announceButton {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 49.6rem;
    height: 9rem;
    margin: 3rem auto 0;
    color: #fff;
    background: #b48333;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
  }

  .safetySection {
    display: block;
    background: #f0f1f0;
  }

  .safetyHead {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 29.1rem;
    padding-top: 6rem;
    background: #fff;
  }

  .safetyHeadEn {
    position: relative;
    margin: 0;
    color: var(--navy);
    font-family: var(--mincho);
    font-size: 10rem;
    font-weight: 400;
    line-height: .95;
    text-align: center;
  }

  .safetyHeadEn::before,
  .safetyHeadEn::after {
    content: "";
    position: absolute;
    top: 3.65rem;
    width: 8.2rem;
    height: .1rem;
    background: #8d8a73;
  }

  .safetyHeadEn::before {
    left: -12.8rem;
  }

  .safetyHeadEn::after {
    right: -12rem;
  }

  .safetyHeadTitle {
    display: block;
    margin: 1.7rem 0 0;
    color: #3d2a22;
    font-size: 4rem;
    line-height: 1;
    font-weight: 600;
    font-family: var(--mincho);
  }

  .safetyGrid {
    display: block;
  }

  .safetyItem {
    min-height: 0;
    padding: 6.6rem 0 0;
  }

  .safetyItem01 {
    background: #f0f3f2;
  }

  .safetyItem02 {
    background: #e7e8ef;
  }

  .safetyItem03 {
    background: #f0efeb;
  }

  .safetyItem04 {
    padding-bottom: 7.2rem;
    background: #f5eddf;
  }

  .safetyCard {
    width: 70.4rem;
    min-height: 0;
    margin: 0 auto;
    padding: 0 1.3rem 5.1rem;
    background: #fff;
    border-top: .6rem solid var(--safetyColor);
  }

  .safetyGreen {
    --safetyColor: #1d6837;
  }

  .safetyNavy {
    --safetyColor: #343e76;
  }

  .safetyBrown {
    --safetyColor: #74643b;
  }

  .safetyGold {
    --safetyColor: #b28720;
  }

  .safetyTitle {
    display: flex;
    align-items: center;
    min-height: 12.1rem;
    border-bottom: .1rem solid var(--safetyColor);
    padding: 2rem 0;
  }

  .safetyTitle span {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 9.6rem;
    width: 9.6rem;
    height: 9.6rem;
    margin-left: 0;
    color: #fff;
    border-radius: 50%;
    background: linear-gradient(140deg, rgba(255,255,255,.16) 0 47%, transparent 47% 100%), var(--safetyColor);
    font-family: var(--mincho);
    font-size: 5.8rem;
    font-weight: 400;
    line-height: 1;
  }

  .safetyTitle h3 {
    margin: -.1rem 0 0 1.8rem;
    color: var(--safetyColor);
    font-family: var(--mincho);
    font-size: 4.4rem;
    font-weight: 700;
    line-height: 1.38;
  }

  .safetyBody {
    padding: 4rem 2.8rem 0;
    color: #333;
  }

  .safetyLead {
    display: block;
  }

  .safetyLead img {
    display: block;
    width: 33.5rem;
    height: 26.2rem;
    margin: 0 auto;
    object-fit: cover;
  }

  .safetyItem03 .safetyLead img,
  .safetyItem04 .safetyLead img {
    width: 58.4rem;
    height: 27.8rem;
    object-fit: cover;
  }

  .safetyBody p {
    margin: 3.55rem 0 0;
    color: #333;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.86;
  }

  .safetyBody > p {
    margin-top: 3.9rem;
  }

  .safetyBody b {
    font-family: var(--gothic);
    font-weight: 700;
  }

  .mekkinSection {
    display: block;
    min-height: 105rem;
    padding: 3.4rem 0 0rem;
    background: #fff;
  }

  .mekkinInner {
    width: 100%;
    margin: 0;
  }

  .mekkinInner > h2 {
    display: flex;
    align-items: center;
    width: 71.6rem;
    height: 13rem;
    margin: 0 auto;
    padding: .2rem 0 0 5.6rem;
    color: #fff;
    background: var(--navy);
    font-family: var(--mincho);
    font-size: 5.7rem;
    font-weight: 700;
    line-height: 1;
  }

  .mekkinContent {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 0;
  }

  .mekkinPhoto {
    order: 1;
    width: 70.4rem;
    height: 44.3rem;
    margin: 1.8rem auto 0;
    clip-path: none;
    overflow: hidden;
  }

  .mekkinPhoto img {
    width: 91rem;
    max-width: none;
    height: auto;
    transform: translate(-17.4rem, -.4rem);
  }

  .mekkinText {
    order: 2;
    width: 66.2rem;
    margin: 4.4rem auto 0;
    color: #333;
  }

  .mekkinText h3 {
    margin: 0 0 0;
    color: #030432;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.35;
    font-family: var(--mincho);
  }

  .mekkinText p {
    margin: 2.8rem 0 0;
    font-size: 2.85rem;
    font-weight: 400;
    line-height: 1.83;
  }

  .mekkinText p + p {
    margin-top: .7rem;
  }

  .mekkinText br {
    display: none;
  }

  .patientSection {
    display: block;
    background: #f3f3f3;
    padding-bottom: 6.7rem;
  }

  .patientHead {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20.2rem;
    background: #fff;
    padding-top: 1.5rem;
  }

  .patientHead h2 {
    position: relative;
    margin: -.4rem 0 0;
    color: #604b2d;
    font-family: var(--mincho);
    font-size: 6.8rem;
    font-weight: 400;
    line-height: 1.35;
    text-align: center;
  }

  .patientSpBreak {
    display: block;
  }

  .patientHead h2::before,
  .patientHead h2::after {
    content: "";
    position: absolute;
    top: 7.55rem;
    width: 6.3rem;
    height: .1rem;
    background: #604b2d;
  }

  .patientHead h2::before {
    left: -7.8rem;
  }

  .patientHead h2::after {
    right: -7.8rem;
  }

  .patientVisual {
    position: relative;
    height: 78.4rem;
    background: url("../img/implant/patient_bg-sp.jpg") center top / 75rem auto no-repeat;
    overflow: hidden;
  }

  .patientHeadImg {
    position: absolute;
    top: 6.4rem;
    right: 3rem;
    display: block;
    width: 33rem;
    height: 33rem;
    border-radius: 50%;
    object-fit: cover;
  }

  .patientCopy {
    position: absolute;
    top: 5.2rem;
    left: 1.6rem;
    width: 38.4rem;
    height: 61.3rem;
    background: rgba(255, 255, 255, .86);
  }

  .patientCopyMain,
  .patientCopySub {
    position: absolute;
    margin: 0;
    writing-mode: vertical-rl;
    font-family: var(--mincho);
    font-weight: 700;
  }
  .patientCopySubIndent{
    display: inline-block;
    transform: translateY(3em);
  }
  .patientCopyMain {
    top: 3.1rem;
    right: 3.6rem;
    color: #a87e12;
    font-size: 6rem;
    line-height: 1.5;
  }

  .patientCopySub {
    top: 10rem;
    right: 24rem;
    color: #2b211c;
    font-size: 3.6rem;
    line-height: 1.5;
  }

  .patientCards {
    display: block;
    width: 72.4rem;
    margin: -5rem auto 0;
    padding-bottom: 0;
  }

  .patientCard {
    position: relative;
    margin: 0 0 4rem;
    padding: 3.3rem 2.8rem 4.8rem;
    background: #fff;
  }

  .patientCard::before,
  .patientCard::after {
    content: "";
    position: absolute;
    inset: .8rem;
    pointer-events: none;
  }

  .patientCard::before {
    border-top: .1rem solid #2b211c;
    border-bottom: .1rem solid #2b211c;
    clip-path: polygon(0 0, 10% 0, 10% 100%, 0 100%, 0 0, 90% 0, 100% 0, 100% 100%, 90% 100%, 90% 0);
  }

  .patientCard::after {
    border-left: .1rem solid #2b211c;
    border-right: .1rem solid #2b211c;
    clip-path: polygon(0 0, 0 10%, 100% 10%, 100% 0, 0 0, 0 90%, 100% 90%, 100% 100%, 0 100%);
  }

  .patientCard h3 {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 8.5rem;
    margin: 0;
    padding: 1.5rem 1.5rem 1.5rem;
    color: #fff;
    background: #7c6247;
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
  }

  .patientCardBody {
    display: block;
    padding: 2.3rem 1.6rem 0;
  }

  .patientCardBody img {
    display: block;
    width: 38rem;
    height: 31.3rem;
    margin: 0 auto;
    object-fit: cover;
  }

  .patientCardBody p {
    margin: 3.5rem 0 0;
    color: #543b1d;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.9;
  }

  .flowSection {
    display: block;
    background: #f1f1ee;
    padding-bottom: 11rem;
  }

  .flowHead {
    height: 31rem;
    padding-top: 12rem;
    background: #fff;
    text-align: center;
    font-family: var(--mincho);
  }

  .flowHeadEn {
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 3rem;
    margin: 0;
    color: #245d86;
    font-size: 10rem;
    font-weight: 400;
    line-height: .9;
  }

  .flowHeadEn::before,
  .flowHeadEn::after {
    content: "";
    display: block;
    width: 14rem;
    height: .1rem;
    background: #265c83;
  }

  .flowHeadEn span {
    padding-left: 1.1rem;
  }

  .flowHeadTitle {
    margin: 2.2rem 0 0;
    color: #2b211c;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
  }

  .flowBody {
    padding-top: 4.8rem;
  }

  .flowList {
    width: 70.8rem;
    margin: 0 auto;
  }

  .flowItem {
    position: relative;
    display: block;
    width: 70.8rem;
    min-height: 0;
  }

  .flowPhoto {
    display: block;
    width: 56.4rem;
    height: 38.5rem;
    margin: 0 0 0 4.9rem;
    object-fit: cover;
  }

  .flowStep {
    position: absolute;
    top: -1rem;
    right: 3.8rem;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 14.7rem;
    height: 14.7rem;
    border-radius: 50%;
    background: #030432;
    color: #fff;
    font-family: var(--mincho);
    text-align: center;
  }

  .flowStep span {
    display: block;
    margin-top: .4rem;
    font-size: 6rem;
    font-weight: 400;
    line-height: .9;
  }

  .flowStep b {
    display: block;
    margin-top: .7rem;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
  }

  .flowText {
    width: 70rem;
    min-height: 0;
    margin: -1.2rem 0 0;
    padding: 4.9rem 2.6rem 4.2rem;
    background: #fff;
  }

  .flowText h3 {
    margin: 0;
    padding: 0 0 3.2rem 1rem;
    border-bottom: .1rem solid #aaa58f;
    color: #543b1d;
    font-size: 5rem;
    font-weight: 400;
    line-height: 1.25;
    font-family: var(--mincho);
  }

  .flowText p {
    margin: 3.1rem 0 0;
    color: #543b1d;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.85;
    padding: 0 2rem;
  }

  .flowArrow {
    display: block;
    width: 12rem;
    height: 4rem;
    margin: 1.7rem auto 1.4rem;
  }

  .priceSection {
    display: block;
    padding: 6.4rem 0 16rem;
    background: #20527e url("../img/implant/price_bg-sp.png") center top / 75rem auto no-repeat;
    color: #fff;
    font-family: var(--gothic);
  }

  .priceHead {
    text-align: center;
    font-family: var(--mincho);
  }

  .priceHeadEn {
    margin: 0;
    color: #b0ad93;
    font-size: 10rem;
    font-weight: 400;
    line-height: .9;
  }

  .priceHeadTitle {
    margin: 2rem 0 0;
    color: #fff;
    font-size: 3.9rem;
    font-weight: 700;
    line-height: 1;
  }

  .priceTables {
    width: 73.6rem;
    margin: 5rem auto 0;
  }

  .priceBox {
    width: 100%;
    background: #fff;
    border: .8rem solid #fff;
    color: #2b2b2b;
  }

  .priceBox + .priceBox {
    margin-top: 6.1rem;
  }

  .priceBox h3 {
    display: grid;
    place-items: center;
    height: 7.3rem;
    margin: 0;
    background: #428bc3;
    color: #fff;
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
  }

  .priceRows {
    padding: 1.9rem 2.7rem 1rem;
  }

  .priceRow {
    display: grid;
    grid-template-columns: 36.6rem 1fr;
    align-items: center;
    min-height: 13.5rem;
    border-bottom: .1rem solid #d1d1d1;
  }

  .priceRows .priceRow:last-child {
    border-bottom: 0;
  }

  .priceName {
    margin: 0;
    color: #2d2d2d;
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .priceName span {
    display: block;
    margin-top: .1rem;
    font-size: 3rem;
    font-weight: 400;
  }

  .priceValue {
    margin: 0;
    color: #d09a3a;
    font-family: var(--mincho);
    font-size: 7rem;
    font-weight: 700;
    line-height: .95;
    white-space: nowrap;
  }

  .priceValue .priceYen {
    display: inline;
    margin-left: .3rem;
    color: #d09a3a;
    font-family: var(--mincho);
    font-size: 4.4rem;
    font-weight: 700;
    line-height: 1;
  }

  .priceValue .priceTax {
    display: block;
    margin: .2rem 0 0;
    padding-right: .5rem;
    color: #d09a3a;
    font-family: var(--gothic);
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1;
    text-align: right;
    padding-right: 3em;
  }
.priceRowWarranty .priceValue .priceTax {
  padding-right: 8rem;
}
  .priceFree {
    font-size: 7rem;
  }

  .priceBoxExam {
    /* height: 36.6rem; */
  }

  .priceBoxExam .priceRows {
    padding-top: 1.9rem;
  }

  .priceBoxExam .priceRow {
    min-height: 13.2rem;
  }

  .priceBoxImplant {
    /* height: 47.6rem; */
  }

  .priceBoxImplant h3 {
    font-size: 4rem;
  }

  .priceBoxImplant .priceRows {
    padding: 2.3rem 1-2-7.3rem 0;
  }

  .priceRowWarranty {
    grid-template-columns: 1fr 29.6rem;
    min-height: 16.3rem;
    column-gap: 1.5rem;
    padding: 1rem 0 2rem;
    margin-bottom: 1rem;
  }

  .priceRowWarranty .priceName {
    grid-column: 1 / 3;
    padding-left: 1.1rem;
    align-self: end;
  }

  .priceRowWarranty .priceValue {
    grid-column: 1 / 2;
    align-self: start;
    padding-left: .8rem;
    font-size: 7rem;
    padding: .8rem 0 0 .8rem;
  }

  .priceRowWarranty .priceValue .priceTax {
    padding-right: 7rem;
  }

  .priceWarranty {
    /* grid-column: 2 / 3; */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    align-self: start;
    width: 29.6rem;
    /* height: 8.1rem; */
    margin: -1rem 0 0 auto;
    background: #c88c31;
    color: #fff;
    font-family: var(--mincho);
    font-size: 4.4rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    padding: 2rem 0;
  }

  .priceWarranty small {
    display: block;
    margin: .8rem 0 0;
    font-size: 2.6rem;
    line-height: 1;
  }

  .priceBoxBone {
    /* height: 56.7rem; */
  }

  .priceBoxBone h3 {
    font-size: 4rem;
  }

  .priceRowsGrid {
    display: block;
    padding: 1.9rem 2.7rem 0;
  }

  .priceRowsGrid .priceRow {
    grid-template-columns: 35.4rem 1fr;
    min-height: 12rem;
  }

  .priceRowsGrid .priceName {
    font-size: 3.6rem;
    white-space: nowrap;
  }

  .priceRowsGrid .priceValue {
    font-size: 6rem;
    text-align: right;
  }

  .priceRowsGrid .priceValue .priceTax {
    padding-right: 0;
  }

  .priceCare {
    display: block;
    width: 70rem;
    margin: 11rem auto 0;
  }

  .priceCareImage {
    display: block;
    width: 56.7rem;
    height: 55.3rem;
    margin: 0 auto;
  }

  .priceCareText {
    margin-top: 4.5rem;
  }

  .priceCareText h3 {
    margin: 0;
    padding: 0 0 2.8rem;
    border-bottom: .1rem solid rgba(255,255,255,.72);
    color: #fff;
    font-size: 6rem;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    font-family: var(--mincho);
  }

  .priceCareText p {
    margin: 3.5rem 0 0;
    color: #fff;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.9;
    padding: 0 1em;
  }

  .messageSection {
    position: relative;
    display: block;
    min-height: 260.1rem;
    background: #FFF url("../img/implant/message_bg-sp.jpg") center 16.2rem / 75rem auto no-repeat;
    font-family: var(--mincho);
  }

  .messagePanel {
    position: absolute;
    top: 87.4rem;
    left: 2.4rem;
    width: 72.6rem;
    padding: 8rem 5.7rem 4.9rem;
    background: rgba(255, 255, 255, .92);
  }

  .messageLead {
    position: absolute;
    top: -79.2rem;
    left: .9rem;
    display: flex;
    align-items: center;
    width: 72.6rem;
    color: #b98735;
    font-size: 4.2rem;
    font-weight: 400;
    line-height: 1;
  }

  .messageLead::after {
    content: "";
    display: block;
    flex: 1;
    height: .1rem;
    margin-left: 2.4rem;
    background: #b98735;
  }

  .messagePanel h2 {
    margin: 0;
    color: #333;
    font-size: 5.4rem;
    font-weight: 400;
    line-height: 1.75;
  }

  .messageText {
    margin-top: 5.3rem;
    color: #333;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.85;
    font-family: var(--gothic);
  }

  .messageText p {
    margin: 0;
  }

  .messageText p + p {
    margin-top: 5.2rem;
  }

  .messageText p:not(.messageQuote):not(.messageStrong) br {
    display: none;
  }

  .messageText .messageQuote {
    margin-top: 4.8rem;
    font-weight: 700;
    line-height: 1.7;
  }

  .messageText .messageStrong {
    margin-top: 5.6rem;
    font-weight: 700;
    line-height: 1.9;
  }

  .access {
    display: block;
    padding: 10rem 0 12.8rem;
    background: #fff;
  }

  .accessPc {
    display: block;
  }

  .accessPcHeading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4.1rem;
    width: 100vw;
    margin: 0 0 3.4rem 50%;
    transform: translateX(-50%);
    color: #27b8b6;
    font-family: var(--mincho);
    font-size: 7.2rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
  }

  .accessPcHeading::before,
  .accessPcHeading::after {
    content: "";
    display: block;
    flex: 1;
    height: .1rem;
    background: #27b8b6;
  }

  .accessPcHeading span {
    display: block;
  }

  .accessPcPhotos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100vw;
    margin-left: 50%;
    transform: translateX(-50%);
  }

  .accessPcPhotos img {
    width: 100%;
    height: 26.2rem;
    object-fit: cover;
  }

  .accessPcContent {
    display: block;
    width: 75rem;
    margin: 0;
    padding-top: 5.1rem;
  }

  .accessPcInfo {
    color: #282828;

    font-family: var(--gothic);
  }

  .accessPcLogo {
    display: block;
    width: 48.9rem;
    height: auto;
    max-width: none;
    margin: 0 0 3.9rem 3rem;
  }

  .accessPcAddress {
    margin: 0 3.2rem 3.9rem;
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.45;
  }

  .accessPcStation {
    display: flex;
    align-items: center;
    gap: 3rem;
    margin: 0 3.8rem 4.4rem;
  }

  .accessPcStation img {
    width: 4.3rem;
    height: auto;
    max-width: none;
  }

  .accessPcStation p {
    margin: 0;
    font-size: 2.85rem;
    font-weight: 700;
    line-height: 1.55;
  }

  .accessPcSchedule {
    color: #27b8b6;

    width: 70.2rem;
    margin: 0 auto 3.2rem;
    border-collapse: collapse;
    table-layout: fixed;
    font-family: var(--gothic);
  }

  .accessPcSchedule th {
    background: #27b8b6;
    color: #fff;

    height: 5.9rem;
    font-size: 2.8rem;
    font-weight: 700;
    text-align: center;
  }

  .accessPcSchedule th:first-child {
    width: 18.8rem;
  }

  .accessPcSchedule td {
    height: 6.2rem;
    font-size: 2.9rem;
    font-weight: 700;
    text-align: center;
    vertical-align: middle;
  }

  .accessPcSchedule td:first-child {
    color: #282828;

    width: 18.8rem;
    font-size: 2.55rem;
    font-weight: 400;
    text-align: center;
    white-space: nowrap;
  }

  .circleMark,
  .squareMark {
    display: inline-block;
    color: #27b8b6;
    font-size: 2.7rem;
    line-height: 1;
  }

  .accessPcNotes {
    border-top: .1rem solid #282828;

    width: 70.2rem;
    margin: 0 auto 6.1rem;
    padding: 2.3rem .5rem 0 1.5rem;
    font-family: var(--gothic);
  }

  .accessPcNotes p {
    margin: 0 0 2.1rem;
    font-size: 2.85rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .accessPcNotes span {
    color: #27b8b6;

    font-size: 3.2rem;
  }

  .accessPcNotes small {
    display: block;
    margin: 2.4rem 0 0;
    font-size: 2.4rem;
    font-weight: 400;
    line-height: 1.55;
  }

  .accessPcMap {
    display: block;
    width: 69rem;
    height: 49.8rem;
    max-width: none;
    margin: 0 auto;
    border: 0;
  }

  .accessPcLinks {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem 2.2rem;
    width: 70rem;
    max-width: calc(100% - 4.4rem);
    margin: 5.4rem auto 0;
  }

  .accessPcLinks a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 8.6rem;
    background: var(--navy);
    color: #fff;
    font-family: var(--gothic);
    font-size: 2.9rem;
    font-weight: 700;
    line-height: 1;
  }

  .accessPcLinks a:nth-child(3) {
    grid-column: 1 / -1;
    justify-self: center;
    width: 32.9rem;
  }

  .accessPcLinks span {
    position: absolute;
    top: 50%;
    right: 2.7rem;
    transform: translateY(-50%);
    font-size: 2.6rem;
    font-weight: 700;
  }

  .finalCta {
    display: block;
    /* padding: 0 0 13rem; */
    background: #fff;
  }

  .finalCtaPc {
    display: none;
  }

  .finalCtaInner {
    display: block;
    width: 100%;
    background: #fff;
  }

  .finalCtaInner > img.finalCtaSpPhoto {
    display: block;
    width: 100%;
    height: auto;
  }

  .finalCtaSpPanel {
    padding: 2.8rem 0 5rem;
    background: #fbfaf8;
    text-align: center;
  }

  .finalCtaSpHeading {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0;
    color: var(--gold);
    font-family: var(--mincho);
    font-size: 6rem;
    font-weight: 700;
    line-height: 1.32;
  }

  .finalCtaSpHeading img {
    width: 10.7rem;
    margin: 0 0 2.6rem;
  }

  .finalCtaSpIntro {
    margin-top: 3.2rem;
    color: #543b1d;
    font-family: var(--gothic);
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 2.08;
  }

  .finalCtaSpIntro p {
    margin: 0;
  }

  p.finalCtaSpCatch {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(100% + 4rem);
    height: 17rem;
    margin: 3.1rem -2rem 0;
    background: #b68334;
    clip-path: polygon(4rem 0, 100% 0, calc(100% - 4.2rem) 100%, 0 100%);
    color: #fff;
    font-family: var(--mincho);
    font-size: 4rem;
    font-weight: 600;
    line-height: 1.65;
  }

  .finalCtaSpCatch span {
    display: block;
  }

  p.finalCtaSpLead {
    width: calc(100% - 9.4rem);
    margin: 3rem auto 0;
    padding-bottom: 2.4rem;
    border-bottom: .1rem solid #b68334;
    color: #543b1d;
    font-family: var(--gothic);
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.72;
  }

  .finalCtaSpButtons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4.4rem;
    width: 55rem;
    max-width: calc(100% - 17.6rem);
    margin: 4.4rem auto 0;
  }

  .finalCtaSpWeb,
  .finalCtaSpTel {
    width: 100%;
    height: 14.2rem;
    text-decoration: none;
  }

  .finalCtaSpWeb {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.5rem;
    background: #25b9b3;
    color: #fff;
    font-family: var(--mincho);
    font-size: 5.3rem;
    font-weight: 400;
    line-height: 1;
  }

  .finalCtaSpWeb::after {
    content: "";
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    width: 0;
    height: 0;
    border-left: 2.2rem solid transparent;
    border-bottom: 2.2rem solid #fff;
  }

  .finalCtaSpWeb span {
    font-size: 3.1rem;
    line-height: 1;
  }

  .finalCtaSpTel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 2px solid #76552e;
    background: #fff;
    color: #4a3820;
  }

  .finalCtaSpTel span {
    margin-bottom: 1.3rem;
    color: #312719;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
  }

  .finalCtaSpTel b {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.3rem;
    font-family: var(--mincho);
    font-size: 5.6rem;
    font-weight: 600;
    line-height: 1;
  }

  .finalCtaSpTel img {
    width: 4rem;
    flex: 0 0 auto;
  }
.greetingCatchShift {
  display: inline-block;
  transform: translateX(1.5em);
}

}
.heroMessageTitle .heroMessageSmall {
  display: inline;
  font-size: .72em;
  line-height: 1;
}
.heroMessageTitle .heroMessageMedium {
  display: inline;
  font-size: 1.18em;
  line-height: 1;
}
.heroLead .heroTextSmall,
.heroSub .heroTextSmall {
  font-size: .78em;
}

