@charset "UTF-8";

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

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


.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 {
  --turquoise: #22b8b3;
  --turquoise-dark: #0da0a0;
  --gold: #ad842d;
  --gold-dark: #755829;
  --brown: #6d502f;
  --ink: #543b1d;
  --beige: #eee7df;
  --pale: #f8f5f0;
  --line: #d7c8b6;
  --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);
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font-family: var(--gothic);
  font-size: 1.8rem;
  line-height: 1.85;
  overflow-x: hidden;
}

body.isNavOpen {
  overflow: 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;
}

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

p,
h1,
h2,
h3 {
  margin: 0;
}

.uBrSp {
  display: none;
}

.uBrPc {
  display: block;
}

.siteWrap {
  overflow: hidden;
}

.inner {
  width: 168rem;
  max-width: calc(100% - 12rem);
  margin: 0 auto;
  position: relative;
}

.siteHeader {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  width: 100%;
  height: 9.2rem;
  padding-left: 4.4rem;
}

.headerLogo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45.4rem;
  min-height: 9.2rem;
  padding: 2rem 2.4rem 1.6rem;
  background: rgba(255,255,255,.94);
  border-radius: 0 0 .8rem .8rem;
}

.headerLogoTitle {
  display: none;
}

.headerLogo img {
  width: 40.5rem;
}

.headerActions {
  display: flex;
  align-items: stretch;
  height: 9.2rem;
  margin-right: 2.5rem;
}

.headerReserve,
.headerTel,
.menuButton {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 0;
  color: #fff;
  text-align: center;
  font-family: var(--gothic);
}

.headerReserve {
  position: relative;
  width: 20rem;
  min-width: 20rem;
  background: var(--turquoise);
}

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

.headerReserve span,
.headerTel span {
  font-size: 1.7rem;
  line-height: 1.1;
}

.headerReserve b {
  margin-top: .4rem;
  font-size: 3.2rem;
  line-height: 1.1;
  font-family: var(--mincho);
  font-weight: 700;
}

.headerTel {
  width: 33.4rem;
  min-width: 33.4rem;
  padding: .8rem 2.2rem 0;
  background: rgba(255,255,255,.94);
  color: var(--brown);
}

.headerTel span {
  font-size: 1.55rem;
  font-weight: 700;
}

.headerTel b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  margin-top: .4rem;
  font-size: 3.7rem;
  line-height: 1.1;
  font-family: var(--mincho);
  font-weight: 600;
}

.headerTel b::before {
  content: "";
  display: block;
  width: 2.7rem;
  height: 3.2rem;
  background: url("../img/top/icon_tel.png") center / contain no-repeat;
}

.menuButton {
  width: 9.1rem;
  min-width: 9.1rem;
  align-items: center;
  gap: .8rem;
  background: var(--turquoise);
  cursor: pointer;
}

.menuButton span {
  display: block;
  width: 5.9rem;
  height: .4rem;
  background: #fff;
}

.menuButton em {
  font-style: normal;
  font-size: 1.8rem;
  line-height: 1;
}

.drawerNav {
  position: fixed;
  z-index: 50;
  inset: 0;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding-top: 11rem;
  background: rgba(66,47,31,.92);
}

.drawerNav.isOpen {
  display: flex;
}

.drawerClose {
  position: absolute;
  top: 3rem;
  right: 3rem;
  padding: 1rem 2rem;
  border: 1px solid rgba(255,255,255,.7);
  background: transparent;
  color: #fff;
  font-size: 1.6rem;
}

.drawerInner {
  display: grid;
  grid-template-columns: repeat(2, 34rem);
  gap: 2rem 6rem;
}

.drawerInnerPc {
  display: none;
}

.drawerInner a {
  display: block;
  padding: 1.6rem 2rem;
  border-bottom: 1px solid rgba(255,255,255,.35);
  color: #fff;
  font-size: 2.2rem;
}

@media screen and (min-width: 769px) {
  .siteHeader {
    z-index: 70;
  }

  .headerLogo {
    flex-direction: column;
    justify-content: flex-start;
    padding: .75rem 2.4rem 1.3rem;
  }

  .headerLogoTitle {
    display: block;
    width: 100%;
    margin: 0 0 .45rem;
    color: var(--brown);
    text-align: center;
    font-family: var(--gothic);
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.1;
  }

  .drawerNav {
    z-index: 60;
    inset: auto 1.3rem auto 51.8rem;
    top: 9.2rem;
    height: 61.6rem;
    justify-content: flex-start;
    padding: 5.7rem 3.3rem 4.4rem 5.5rem;
    background: #08b7b4;
  }

  .drawerNav.isOpen {
    display: block;
  }

  .drawerClose {
    display: none;
  }

  .drawerInnerSp {
    display: none;
  }

  .drawerInnerPc {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
  }

  .drawerInnerPc .drawerHome {
    position: absolute;
    top: -3.2rem;
    right: .4rem;
    display: inline-flex;
    align-items: center;
    gap: 1.2rem;
    padding: 0;
    border-bottom: 0;
    color: #fff;
    font-family: var(--gothic);
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
  }

  .drawerInnerPc .drawerHome::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 1.45rem 1.45rem;
    border-color: transparent transparent #fff transparent;
  }

  .drawerColumns {
    display: grid;
    grid-template-columns: 1fr 1.06fr 1.06fr 1.18fr 1.5fr;
    column-gap: 1.6rem;
    height: 100%;
  }

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

  .drawerColumnNoTitle {
    padding-top: 5.7rem;
  }

  .drawerColumn .nav-title,
  .drawerColumn a {
    margin: 0;
    color: #fff;
    font-family: var(--gothic);
    font-size: 1.95rem;
    font-weight: 700;
    line-height: 1.65;
  }

  .drawerColumn .nav-title {
    display: flex;
    align-items: center;
    height: 5.7rem;
    padding: 0 .8rem;
  }

  .drawerColumn a {
    display: flex;
    align-items: center;
    min-height: 7.7rem;
    padding: 1.1rem 1.7rem;
    border-bottom: 1px solid rgba(255,255,255,.45);
    font-weight: 400;
  }
}

.hero {
  position: relative;
  height: 93.6rem;
  background: #ece5de;
  overflow: hidden;
}

.heroPhotos,
.heroPhoto {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.heroPhoto {
  object-fit: cover;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity 1.2s ease, transform 5s ease;
}

.heroPhoto.isActive {
  opacity: 1;
  transform: scale(1);
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
}

.heroPanel {
  position: absolute;
  z-index: 2;
  top: 29.4rem;
  left: 59.5rem;
  width: 72rem;
  height: 51.8rem;
  margin-left: 0;
  padding: 6.1rem 4.3rem 0;
  background: url("../img/top/hero_copy_bg.png") center / 100% 100% no-repeat;
  color: #fff;
  text-align: center;
  font-family: var(--mincho);
  text-shadow: .2rem .2rem .5rem rgba(72,45,23,.55);
}

.heroMainCopy,
.heroSubCopy {
  position: relative;
  z-index: 1;
}

.heroMainCopy {
  margin: 1.5rem 0 0;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.2rem;
}

.heroLine {
  display: block;
  height: 8.25rem;
  white-space: nowrap;
}

.heroLine01 {
  font-size: 6.25rem;
}

.heroLine02 {
  margin-top: 2.6rem;
  font-size: 4.8rem;
}

.heroLine03 {
  margin-top: .4rem;
  font-size: 4.8rem;
}

.heroWordLarge {
  position: relative;
  display: inline-block;
  margin: 0 .2rem;
  font-size: 7.25rem;
  line-height: .9;
  vertical-align: -.08em;
}

.heroWordLarge::before,
.heroWordLarge::after {
  content: "";
  position: absolute;
  top: -3.1rem;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: #40c3c3;
  text-shadow: none;
}

.heroWordLarge::before {
  left: 2.35rem;
}

.heroWordLarge::after {
  right: 2.35rem;
}

.heroWordMedium {
  display: inline-block;
  margin-left: .2rem;
  font-size: 5.25rem;
  line-height: .9;
  vertical-align: -.03em;
}

@media screen and (min-width: 769px) {
  .heroWordAccentPc {
    display: inline-block;
    font-size: 1.12em;
    line-height: .9;
    /* vertical-align: -.04em; */
  }
}

.heroMainCopy::after {
  /* content: ""; */
  display: block;
  /* width: 60.2rem; */
  /* height: 1px; */
  /* margin: 2.1rem auto 0; */
  /* background: rgba(255,255,255,.72); */
}

.heroSubCopy {
  display: block;
  margin-top: 0;
  font-size: 2.8rem;
  font-weight: 40;
  line-height: 1.8;
  border-top: 1px solid #FFF;
  border-bottom: 1px solid #FFF;
  padding: 1rem 0;
}

.heroSubCopy::after {
  /* content: ""; */
  /* display: block; */
  /* width: 60.2rem; */
  /* height: 1px; */
  /* margin: 1.4rem auto 0; */
  /* background: rgba(255,255,255,.72); */
}

.heroBadges {
  position: absolute;
  z-index: 2;
  left: 4.4rem;
  bottom: 4.3rem;
  display: flex;
  gap: 3.7rem;
}

.heroBadges div {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 21.1rem;
  height: 21.1rem;
  padding-top: 2.2rem;
  border: .6rem solid #d8d5ce;
  border-radius: 50%;
  background: rgba(255,255,255,.95);
  color: var(--brown);
  text-align: center;
  box-shadow: 0 .2rem .6rem rgba(0,0,0,.12);
  font-family: var(--mincho);
}

.heroBadges div::before {
  content: "";
  display: block;
  margin-bottom: 1.2rem;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

.heroBadges div:nth-child(1)::before {
  width: 6.2rem;
  height: 6.1rem;
  background-image: url("../img/top/icon_calendar.png");
}

.heroBadges div:nth-child(2)::before {
  width: 4.3rem;
  height: 5.9rem;
  background-image: url("../img/top/ico_train.png");
}

.heroBadges div:nth-child(3)::before {
  width: 6.5rem;
  height: 5.9rem;
  background-image: url("../img/top/ico_parking.png");
}

.heroBadges b {
  font-size: 2.65rem;
  font-weight: 700;
  line-height: 1.25;
}

.heroBadges b .badgeSmall {
  display: inline;
  margin: 0;
  font-size: 1.85rem;
  font-weight: 700;
  line-height: 1;
}

.heroBadges > div > span {
  margin-top: .2rem;
  font-size: 2.65rem;
  font-weight: 700;
  line-height: 1.25;
}

.heroBadges > div:first-child > span {
  font-size: 2rem;
}

@media screen and (min-width: 769px) {
  .heroBadges div:nth-child(3) {
    position: absolute;
    left: 12.3rem;
    top: -19.9rem;
    padding-top: 3.2rem;
  }

  .heroBadges div:nth-child(3)::before {
    width: 5.7rem;
    height: 5.4rem;
  }
}

.sectionBeige {
  background: linear-gradient(110deg, #fff 0 25%, var(--beige) 25% 100%);
}

.sectionWhite {
  background: #fff;
}

.intro {
  padding: 9rem 0 8rem;
  text-align: center;
}

.verticalTooth {
  position: absolute;
  top: -3rem;
  left: 5rem;
  color: rgba(173,132,45,.12);
  font-family: var(--mincho);
  font-size: 13rem;
  writing-mode: vertical-rl;
  line-height: 1;
}

.sectionLead {
  color: var(--brown);
  font-family: var(--mincho);
  font-size: 4.4rem;
  line-height: 1.4;
}

.intro h2 {
  margin-top: 2rem;
  color: var(--brown);
  font-family: var(--mincho);
  font-size: 3.2rem;
  font-weight: 400;
  line-height: 1.7;
}

.checkGrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.2rem 3rem;
  width: 154rem;
  margin: 5rem auto;
  text-align: left;
}

.checkGrid li {
  position: relative;
  padding: 1.5rem 2rem 1.5rem 7rem;
  background: var(--gold);
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
}

.checkGrid li::before {
  content: "";
  position: absolute;
  left: 2.2rem;
  top: 50%;
  width: 2.8rem;
  height: 2.8rem;
  background: #fff;
  transform: translateY(-50%);
}

.checkGrid li::after {
  content: "";
  position: absolute;
  left: 2.9rem;
  top: 50%;
  width: 1.2rem;
  height: .7rem;
  border-left: .3rem solid var(--gold);
  border-bottom: .3rem solid var(--gold);
  transform: translateY(-70%) rotate(-45deg);
}

.messageBlock {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 5rem;
  align-items: stretch;
  margin-top: 3rem;
  text-align: left;
}

.messageText {
  padding: 4rem 5rem;
  background: rgba(255,255,255,.78);
  font-size: 1.9rem;
}

.messageText p + p,
.messageText strong + p {
  margin-top: 2rem;
}

.messageText strong {
  display: block;
  margin-top: 3rem;
  color: var(--brown);
  font-family: var(--mincho);
  font-size: 2.8rem;
  font-weight: 700;
}

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

@media screen and (min-width: 769px) {
  .intro {
    position: relative;
    height: 166.2rem;
    padding: 0;
    background: url("../img/top/intro_bg.jpg") center top / 100% 100% no-repeat;
    text-align: center;
    overflow: hidden;
  }

  .intro .inner {
    width: 100%;
    max-width: none;
    height: 100%;
  }

  .intro .verticalTooth {
    display: none;
  }

  .intro .sectionLead {
    position: absolute;
    top: 8.4rem;
    left: 0;
    width: 100%;
    color: #4f3b22;
    font-size: 7.6rem;
    font-weight: 400;
    line-height: 1.15;
  }

  .intro h2 {
    position: absolute;
    top: 20.2rem;
    left: 0;
    width: 100%;
    margin: 0;
    color: #4f3b22;
    font-size: 4.5rem;
    font-weight: 400;
    line-height: 1.75;
  }

  .intro .checkGrid {
    position: absolute;
    top: 39.4rem;
    left: 7.8rem;
    display: grid;
    grid-template-columns: repeat(2, 86.2rem);
    gap: 3.3rem 4.8rem;
    width: auto;
    margin: 0;
    text-align: left;
  }

  .intro .checkGrid li {
    display: flex;
    align-items: center;
    min-height: 9.6rem;
    padding: 0 3rem 0 9.6rem;
    background: linear-gradient(135deg, #ba904d 0 6.4rem, #b0823a 6.5rem 100%);
    color: #fff;
    font-size: 3.2rem;
    font-weight: 500;
    line-height: 1.35;
  }

  .intro .checkGrid li span {
    color: #fff26b;
    font-weight: 800;
  }

  .intro .checkGrid li::before {
    left: 2.2rem;
    width: 5.1rem;
    height: 5.1rem;
    background: rgba(255,255,255,.92);
  }

  .intro .checkGrid li::after {
    left: 3.4rem;
    width: 2.4rem;
    height: 1.4rem;
    border-left: .35rem solid #4b4b4b;
    border-bottom: .35rem solid #4b4b4b;
    transform: translateY(-72%) rotate(-45deg);
  }

  .intro .messageBlock {
    position: absolute;
    top: 79.2rem;
    left: 3rem;
    display: block;
    width: 189rem;
    height: 75rem;
    margin: 0;
    background: rgba(255,255,255,.5);
    text-align: left;
  }

  .intro .messageBlock::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 2rem;
    left: 2rem;
    width: 122rem;
    height: 71rem;
    background: rgba(255,255,255,.92);
    clip-path: polygon(0 0, 84.2% 0, 75.8% 100%, 0 100%);
  }

  .intro .messageText {
    position: absolute;
    top: 2rem;
    left: 2rem;
    z-index: 2;
    width: 95.4rem;
    height: 60.2rem;
    padding: 6rem 2.1rem 0 4rem;
    background: transparent;
    color: #4a3820;
    font-size: 2.8rem;
    line-height: 1.75;
  }

  .intro .messageText p {
    position: relative;
    margin: 0;
  }

  .intro .messageText p:nth-of-type(-n+3) {
    padding: 0 0 3rem 2.8rem;
    border-bottom: 1px dashed rgba(86,71,48,.45);
  }

  .intro .messageText p:nth-of-type(2),
  .intro .messageText p:nth-of-type(3) {
    margin-top: 3rem;
  }

  .intro .messageText p:nth-of-type(-n+3)::before {
    content: "";
    position: absolute;
    top: 1.5rem;
    left: 0;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    background: #dfcfaa;
  }

  .intro .messageText p span {
    color: #b98735;
    font-weight: 700;
  }

  .intro .messageText strong {
    display: block;
    margin: 4.3rem 0 0 4.8rem;
    color: #4a3820;
    font-family: var(--gothic);
    font-size: 3.8rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .intro .messageText strong + p {
    margin: 1.1rem 0 0;
    padding: 0;
    border-bottom: 0;
    text-align: center;
    font-size: 3rem;
    line-height: 1.75;
  }

  .intro .messageBlock img {
    position: absolute;
    z-index: 1;
    top: 2rem;
    right: 0;
    width: 94.5rem;
    height: 71rem;
    object-fit: cover;
    object-position: center top;
    clip-path: polygon(10.8% 0, 100% 0, 100% 100%, 0 100%);
  }
}

.consult {
  padding: 8rem 0 6rem;
  background: #fff;
}

.iconTitle {
  margin-bottom: 4rem;
  color: var(--turquoise);
  text-align: center;
  font-family: var(--mincho);
  font-size: 4rem;
}

.consultCard {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  align-items: center;
  min-height: 49rem;
  background: var(--pale);
}

.consultCard img {
  width: 100%;
  height: 49rem;
  object-fit: cover;
}

.consultCard div {
  margin-left: -10rem;
  padding: 5rem 6rem;
  background: rgba(255,255,255,.92);
  text-align: center;
}

.consultCard h2 {
  color: var(--brown);
  font-family: var(--mincho);
  font-size: 3rem;
  line-height: 1.65;
}

.consultCard ul {
  width: 58rem;
  max-width: 100%;
  margin: 3rem auto 2rem;
  padding: 2rem 4rem;
  background: #573719;
  color: #fff;
  text-align: left;
}

.consultCard li {
  padding-left: 2.8rem;
  position: relative;
  font-size: 1.9rem;
}

.consultCard li::before {
  content: "笨・;
  position: absolute;
  left: 0;
  color: #fff;
}

.ctaBar {
  display: flex;
  justify-content: center;
  margin-top: 0;
  background: var(--gold);
  padding: 2.4rem;
}

.webCta,
.telCta {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 34rem;
  min-height: 8rem;
  padding: 1.4rem 4rem;
  line-height: 1.2;
  font-weight: 700;
}

.webCta {
  flex-direction: column;
  background: var(--turquoise);
  color: #fff;
  font-size: 3rem;
}

.webCta span,
.telCta span {
  display: block;
  font-size: 1.4rem;
  font-weight: 400;
}

.telCta {
  flex-direction: column;
  background: #fff;
  color: var(--brown);
  font-family: Georgia, serif;
  font-size: 3.3rem;
}

@media screen and (min-width: 769px) {
  .consult {
    padding: 10rem 0 0;
    background: #fff;
    overflow: hidden;
  }

  .consult .inner {
    width: 100%;
    max-width: none;
  }

  .consult .iconTitle {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.2rem;
    margin: 0 0 6rem;
    color: #25b9b3;
    font-family: var(--mincho);
    font-size: 6.4rem;
    font-weight: 400;
    line-height: 1;
    background: linear-gradient(90deg, #25b9b3 0 calc(50% - 67rem), transparent calc(50% - 67rem) calc(50% + 67rem), #25b9b3 calc(50% + 67rem) 100%) center / 100% .2rem no-repeat;
  }

  .consult .iconTitle span {
    font-size: 7.5rem;
  }

  .consult .iconTitle::before {
    content: "";
    display: block;
    width: 10.8rem;
    height: 10.4rem;
    background: url("../img/top/consult_title_icon.png") center / contain no-repeat;
  }

  .consult .iconTitle::after {
    content: none;
  }

  .consultCard {
    position: relative;
    display: block;
    width: 192rem;
    height: 77rem;
    min-height: 0;
    margin: 0 auto;
    background: url("../img/top/consult_bg_photo.jpg") center top / 185.8rem 77rem no-repeat;
  }

  .consultCard > img {
    display: none;
  }

  .consultCard > div {
    position: absolute;
    top: 3.6rem;
    left: 50%;
    width: 116rem;
    height: 70.5rem;
    margin: 0;
    padding: 4.9rem 12.6rem 0;
    background: url("../img/top/consult_bg_txt.png") center / 100% 100% no-repeat;
    text-align: center;
    transform: translateX(-50%);
  }

  .consultCard h2 {
    margin: 0;
    color: #4a3820;
    font-family: var(--mincho);
    font-size: 4.8rem;
    font-weight: 700;
    line-height: 1.4;
  }

  .consultCard ul {
    position: relative;
    width: 89rem;
    max-width: none;
    margin: 2.7rem auto 0;
    padding: 1.8rem 4.2rem 1.7rem;
    background: #5a3717;
    color: #fff;
    text-align: left;
  }

  .consultCard ul::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -2.4rem;
    width: 0;
    height: 0;
    border-left: 2.7rem solid transparent;
    border-right: 2.7rem solid transparent;
    border-top: 2.7rem solid #5a3717;
    transform: translateX(-50%);
  }

  .consultCard li {
    position: relative;
    min-height: 5rem;
    padding: .3rem 0 0 7.4rem;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.45;
  }

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

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

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

  .consultCard .consultLead {
    margin: 3.5rem auto 0;
    color: #b68334;
    font-family: var(--gothic);
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.7;
    /* padding-bottom: 2rem; */
    width: 88.5rem;
    text-align: right;
  }

  .consultCard .consultNote {
    display: block;
    width: 88rem;
    margin: 1.2rem auto 0;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(182,131,52,.8);
    color: #4a3820;
    font-size: 3rem;
    line-height: 1.7;
    font-weight: 600;
  }

  .ctaBar {
    display: flex;
    justify-content: center;
    gap: 4rem;
    height: 20rem;
    margin-top: 0;
    padding: 2.2rem 0;
    background: #b68334;
  }

  .webCta,
  .telCta {
    min-width: 0;
    width: 49.2rem;
    min-height: 15.7rem;
    height: 15.7rem;
    padding: 0;
  }

  .webCta {
    position: relative;
    flex-direction: row;
    gap: 2.4rem;
    background: #25b9b3;
    color: #fff;
    font-family: var(--mincho);
    font-size: 4.6rem;
    font-weight: 400;
  }

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

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

  .telCta {
    position: relative;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #4a3820;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 600;
  }

  .telCta::before {
    content: "";
    position: absolute;
    left: 5.2rem;
    bottom: 3.9rem;
    width: 4.2rem;
    height: 4.2rem;
    background: url("../img/top/icon_tel.png") center / contain no-repeat;
    filter: brightness(.45);
  }

  .telCta b {
    display: block;
    font-family: var(--mincho);
    font-size: 5.7rem;
    font-weight: 600;
    line-height: 1.1;
    padding-left: 5rem;
  }

  .telCta b::before {
    content: none;
  }

  .telCta span {
    display: block;
    margin: 0 0 .9rem .3rem;
    color: #4a3820;
    font-family: var(--gothic);
    font-size: 2.5rem;
    font-weight: 700;
  }
}

.choice {
  padding: 9rem 0;
}

.softTitle {
  margin-bottom: 5rem;
  color: var(--brown);
  text-align: center;
  font-family: var(--mincho);
  font-size: 4.2rem;
  font-weight: 400;
}

.spChoiceBreak {
  display: none;
}

.spChoiceH3Break {
  display: none;
}

.choicePanel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: 4rem;
  background: var(--pale);
}

.choicePanel img {
  width: 100%;
  height: 47rem;
  object-fit: cover;
}

.choicePanel > div {
  padding: 5rem 6rem;
  background: rgba(255,255,255,.92);
}

.choicePanel h3 {
  color: var(--gold-dark);
  font-family: var(--mincho);
  font-size: 3.2rem;
  line-height: 1.55;
}

.choicePanel p {
  margin-top: 2.5rem;
  font-size: 1.8rem;
}

.miniLinks {
  display: flex;
  gap: 2rem;
  margin-top: 4rem;
}

.miniLinks a {
  display: block;
  min-width: 20rem;
  padding: 1.5rem 1rem;
  background: var(--gold-dark);
  color: #fff;
  text-align: center;
  font-size: 1.5rem;
    position: relative;
}
.miniLinks a:after{
    content: "→";
    position: absolute;
    right: 1.9rem;
    top: 50%;
    font-size: 3.1rem;
    font-weight: 400;
    transform: translateY(-53%);
}

@media screen and (min-width: 769px) {
  .choice {
    position: relative;
    padding: 14.2rem 0 7.7rem;
    background: #fff;
    overflow: hidden;
  }

  .choice::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 27rem;
    height: 114rem;
    background: url("../img/top/choice_bg.jpg") center top / 192rem 117.4rem no-repeat;
  }

  .choice .inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
  }

  .choice .softTitle {
    position: relative;
    display: block;
    width: fit-content;
    margin: 0 auto 15.4rem;
    color: #4a3820;
    font-family: var(--mincho);
    font-size: 6.2rem;
    font-weight: 400;
    line-height: 1.15;
    white-space: nowrap;
  }

  .choice .softTitle::before,
  .choice .softTitle::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 26rem;
    height: 1px;
    background: #4a3820;
  }

  .choice .softTitle::before {
    right: calc(100% + 3.8rem);
  }

  .choice .softTitle::after {
    left: calc(100% + 3.8rem);
  }

  .choice .choiceTitleLargePc,
  .choice .choiceTitleLarge {
    font-size: 1.3em;
    margin-right: 0rem;
  }

  .choicePanel {
    position: relative;
    display: block;
    width: 166.5rem;
    height: 94rem;
    margin: 3.2rem auto 0;
    padding: 0;
    background: url("../img/top/choice_bg_txt.jpg") center / 100% 100% no-repeat;
  }

  .choicePanel::before {
    content: none;
  }

  .choicePanel::after {
    content: "";
    position: absolute;
    right: -7.4rem;
    top: -1.6rem;
    z-index: 4;
    width: 17.9rem;
    height: 17.9rem;
    background: url("../img/top/choice_icon.png") center / contain no-repeat;
  }

  .choicePanel img {
    content: url("../img/top/choice_photo.jpg");
    position: absolute;
    left: -10.1rem;
    top: 11.7rem;
    z-index: 2;
    display: block;
    width: 82.9rem;
    height: 63.1rem;
    background: url("../img/top/choice_photo.jpg") center / cover no-repeat;
    object-fit: cover;
  }

  .choicePanel > div {
    position: absolute;
    top: 11.5rem;
    left: 79.2rem;
    z-index: 3;
    width: 77.5rem;
    padding: 0;
    background: transparent;
  }

  .choicePanel h3 {
    margin: 0 0 2.2rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid rgba(157,123,47,.72);
    color: #b68334;
    font-family: var(--gothic);
    font-size: 3.8rem;
    font-weight: 700;
    line-height: 1.75;
  }

  .choicePanel p {
    margin: 0;
    color: #4a3820;
    font-family: var(--gothic);
    font-size: 2.6rem;
    font-weight: 400;
    line-height: 1.75;
    /* padding-right: 3em; */
  }

  .choicePanel p::after {
    content: "縲後←縺薙↓逶ｸ隲・☆繧後・縺・＞縺九ｏ縺九ｉ縺ｪ縺・構A縺昴≧諢溘§縺滓凾縺薙◎縲∽ｸ蠎ｦ縺願ｶ翫＠縺上□縺輔＞縲・;
    display: block;
    margin-top: 2.7rem;
    color: #4a3820;
    font-weight: 700;
    line-height: 1.9;  }

  .miniLinks {
    position: absolute;
    left: -58.3rem;
    bottom: -13rem;
    display: flex;
    gap: 4.9rem;
    margin: 0;
  }

  .miniLinks a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36.8rem;
    min-width: 0;
    height: 7.7rem;
    padding: 0 5rem 0 2rem;
    color: #fff;
    text-align: center;
    font-family: var(--gothic);
    font-size: 2.7rem;
    font-weight: 700;
    line-height: 1;
  }

  .miniLinks a:first-child {
    background: #b68334;
  }

  .miniLinks a:first-child::before {
    content: "菫ｮ蠕ｩ豐ｻ逋ゅし繧､繝・;
    font-size: 2.7rem;
  }

  .miniLinks a:nth-child(2) {
    background: #262626;
  }

  .miniLinks a:nth-child(3) {
    background: #6a321f;
  }

}

.medical {
  padding: 10rem 0;
  background: #f7f7f7;
}

.enHeading {
  margin-bottom: 6rem;
  color: var(--gold);
  text-align: center;
  font-family: var(--mincho);
  font-weight: 400;
}

.enHeading span {
  display: block;
  font-size: 6rem;
  line-height: 1;
}

.enHeading small {
  display: block;
  margin-top: 1rem;
  color: var(--ink);
  font-size: 1.9rem;
}

.alignLeft {
  text-align: left;
}

.medicalList {
  display: grid;
  gap: 3rem;
}

.medicalItem {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  background: #fff;
}

.medicalItem.reverse {
  grid-template-columns: 1.1fr 1fr;
}

.medicalItem.reverse img {
  order: 2;
}

.medicalItem img {
  width: 100%;
  height: 36rem;
  object-fit: cover;
}

.medicalItem div {
  padding: 4.8rem 5rem;
}
.medicalItem div.medicalHead {
  padding: 0.8rem 5rem 0.8rem 1rem;
}
.medicalItem:nth-child(even) div.medicalHead {
  padding: 0.8rem 0rem 0.8rem 8rem;
  width: 103%;
}

.medicalItem h3 {
  margin-bottom: 2rem;
  padding: 1.8rem 3rem;
  background: linear-gradient(110deg, var(--gold) 0 68%, var(--gold-dark) 68% 100%);
  color: #fff;
  font-family: var(--mincho);
  font-size: 3.2rem;
  font-weight: 400;
}

.medicalItem h3 small {
  font-size: 1.9rem;
}

.medicalItem p {
  margin-bottom: 3rem;
  color: var(--gold-dark);
  font-size: 2.2rem;
  font-weight: 700;
}

.medicalItem a {
  display: inline-block;
  min-width: 20rem;
  padding: 1.3rem 2rem;
  border: 1px solid var(--line);
  text-align: center;
}

.medicalBody {
  display: none;
}

@media screen and (min-width: 769px) {
  .medical {
    padding: 11.2rem 0 0;
    background: linear-gradient(#fff 0 31rem, #efede9 3rem 100%);
  }

  .medical .inner {
    width: 100%;
    max-width: none;
  }

  .medical .enHeading {
    position: relative;
    margin: 0 0 7rem;
    color: #6f604f;
  }

  .medical .enHeading::before,
  .medical .enHeading::after {
    display: none;
  }

  .medical .enHeading::before {
    left: calc(50% - 43.8rem);
  }

  .medical .enHeading::after {
    right: calc(50% - 43.8rem);
  }

  .medical .enHeading span {
    position: relative;
    display: inline-block;
    font-size: 9.4rem;
    line-height: 1;
    letter-spacing: 1rem;
    font-weight: 300;
  }

  .medical .enHeading span::first-letter {
    color: #efbd85;
  }

  .medical .enHeading span::before,
  .medical .enHeading span::after {
    content: "";
    position: absolute;
    top: 54%;
    width: 12rem;
    height: .1rem;
    background: #b9b2a7;
  }

  .medical .enHeading span::before {
    right: calc(100% + 2.8rem);
  }

  .medical .enHeading span::after {
    left: calc(100% + 2.8rem);
  }

  .medical .enHeading small {
    margin-top: 1.2rem;
    color: #4d3a25;
    font-size: 4rem;
    line-height: 1;
    font-weight: 600;
  }

  .medicalList {
    display: block;
    /* width: min(192rem, calc(100% - 4rem)); */
    max-width: 100%;
    margin: 0 auto;
  }

  .medicalItem,
  .medicalItem.reverse {
    display: grid;
    grid-template-columns: minmax(0, 90fr) minmax(0, 100fr);
    column-gap: 2rem;
    /* width: 90%; */
    min-height: 43.4rem;
    margin: 0;
    background: #f1f0ec;
    /* border-top: .8rem solid #fff; */
    border-bottom: .8rem solid #fff;
  }

  .medicalItem.reverse {
    grid-template-columns: minmax(0, 100fr) minmax(0, 90fr);
  }

  .medicalItem + .medicalItem {
    margin-top: 3rem;
  }

  .medicalItem:first-child {
    border-top: 0;
  }

  .medicalItem img,
  .medicalItem.reverse img {
    order: initial;
    position: relative;
    width: 100%;
    height: auto;
    margin-top: 3.1rem;
    border: 0;
    object-fit: contain;
  }

  .medicalItem:nth-child(odd) img {
    width: 100%;
    margin-right: 0;
  }

  .medicalItem:nth-child(even) img {
    width: 100%;
    margin-left: 0;
  }

  .medicalItem:nth-child(2) img {
    order: 2;
  }

  .medicalItem:nth-child(4) img {
    order: 2;
  }

  .medicalItem > div {
    position: relative;
    /* min-height: 55.2rem; */
    padding: 3rem 5.2rem 3rem 1rem;
    background: transparent;
  }

  .medicalItem > div::before {
    content: "";
    position: absolute;
    top: 3.1rem;
    left: 0;
    right: -.1rem;
    height: 17.9rem;
    background: #6b5a3d;
    clip-path: polygon(0 0, 91% 0, 100% 100%, 0 100%);
  }

  .medicalItem:nth-child(even) > div::before {
    background: #98762b;
    clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
  }

  .medicalItem h3,
  .medicalItem p,
  .medicalItem a {
    position: relative;
    z-index: 1;
  }

  .medicalItem h3 {
    margin: 0;
    padding: 1.6rem 3rem 1rem;
    background: transparent;
    color: #fff;
    font-size: 5.4rem;
    font-weight: 600;
    line-height: 1.18;
    letter-spacing: 0.5rem;
  }

  .medicalItem h3 small {
    margin-left: 1rem;
    font-size: 3.5rem;
    font-weight: 400;
    letter-spacing: normal;
  }

  .medicalItem p {
    margin: 0;
    padding: 1rem 3rem 0rem;
    color: #fff;
    border-top: .1rem solid rgba(255, 255, 255, .42);
    font-family: var(--mincho);
    font-size: 3.8rem;
    font-weight: 400;
    line-height: 1.45;
  }

  .medicalItem .medicalBody {
    display: block;
    margin-top: 2.8rem;
    color: #4b4135;
    font-family: var(--gothic);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 2.05;
    padding: 0 5rem;
  }

.medicalItem:nth-child(even) .medicalBody{
    padding: 0 0 0 11rem;
}
  .medicalItem a {
    display: block;
    position: relative;
    width: fit-content;
    min-width: 23rem;
    margin: 5.5rem 0 0 auto;
    padding: 1.5rem 3.8rem;
    color: #66593e;
    border-color: #66593e;
    background: transparent;
    font-size: 2.7rem;
    font-weight: 700;
  }
  .medicalItem:nth-child(even) a {
    color: #98762b;
    border-color: #98762b;
  }
  .medicalItem a::after {
    content: "竊・;
    margin-left: 2.4rem;
  }
}

.feature {
  padding: 11rem 0;
}

.featureGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7rem 8rem;
}

.featureGrid article {
  display: grid;
  grid-template-columns: 1fr 27rem;
  gap: 2.5rem;
  align-items: start;
}

.featureGrid span {
  color: var(--turquoise);
  font-family: var(--mincho);
  font-size: 5.4rem;
  line-height: 1;
}

.featureGrid h3 {
  grid-column: 1 / 2;
  margin-top: -4.6rem;
  padding: 0 0 1.3rem 7.8rem;
  border-bottom: .25rem solid var(--turquoise);
  color: var(--turquoise-dark);
  font-family: var(--mincho);
  font-size: 2.8rem;
}

.featureGrid p {
  grid-column: 1 / 2;
  font-size: 1.7rem;
}

.featureGrid img {
  grid-column: 2;
  grid-row: 1 / span 3;
  width: 27rem;
  height: 17rem;
  object-fit: cover;
}

.featureText,
.featureHead {
  display: contents;
}

@media screen and (min-width: 769px) {
  .feature {
    padding: 12.5rem 0 14.4rem;
    background: #fbfcfc;
  }

  .feature .inner {
    width: 176rem;
    max-width: none;
  }

  .feature .enHeading {
    position: relative;
    margin-bottom: 7.9rem;
  }

  .feature .enHeading::before,
  .feature .enHeading::after {
    content: "";
    position: absolute;
    top: 4.1rem;
    width: 13.8rem;
    height: .1rem;
    background: #9b8f7d;
  }

  .feature .enHeading::before {
    left: 45rem;
  }

  .feature .enHeading::after {
    right: 45rem;
  }

  .feature .enHeading span {
    color: #8a6e4f;
    font-size: 9.4rem;
    letter-spacing: 1rem;
    font-weight: 300;
  }

  .feature .enHeading span::first-letter {
    color: #e7b67f;
  }

  .feature .enHeading small {
    /* margin-top: 1.8rem; */
    color: var(--ink);
    font-size: 4rem;
    font-weight: 600;
  }

  .featureGrid {
    display: block;
  }

  .featureGrid article {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 5.8rem;
    min-height: 39.9rem;
  }

  .featureGrid article + article {
    margin-top: 5.8rem;
  }

  .featureGrid article:nth-child(2) {
    min-height: 39.8rem;
  }

  .featureGrid article:nth-child(3) {
    min-height: 39.5rem;
    margin-top: 9.1rem;
  }

  .featureGrid article:nth-child(4) {
    min-height: 39.8rem;
    margin-top: 11.2rem;
  }

  .featureText {
    display: block;
    flex: 0 0 110rem;
  }

  .featureHead {
    display: flex;
    align-items: flex-start;
    width: 100%;
    height: 10.2rem;
    border-bottom: .3rem solid #22b8b3;
    padding-left: 3rem;
  }

  .featureGrid span {
    display: inline-block;
    vertical-align: top;
    color: #25b9b3;
    font-family: var(--mincho);
    font-size: 9.8rem;
    line-height: 1;
  }

  .featureGrid h3 {
    display: block;
    width: auto;
    height: auto;
    margin: 2.6rem 0 0 2.8rem;
    padding: 0;
    border-bottom: 0;
    color: var(--turquoise-dark);
    font-family: var(--mincho);
    font-size: 4.3rem;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
  }

  .featureGrid p {
    margin: 5.1rem 0 0 .3rem;
    color: var(--ink);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.72;
    padding: 0 6rem;
  }

  .featureGrid p b {
    display: block;
    margin-bottom: 1.9rem;
    color: #2f2924;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.35;
  }

  .featureGrid img {
    flex: 0 0 58.5rem;
    width: 58.5rem;
    height: 39.9rem;
    object-fit: cover;
  }

  .featureGrid article:nth-child(even) {
    flex-direction: row-reverse;
  }

  .featureGrid article:nth-child(even) .featureText {
    flex-basis: 110rem;
  }
}

.commitment {
  padding: 11rem 0 9rem;
  background: linear-gradient(rgba(255,255,255,.55), rgba(255,255,255,.55)), url("../img/top/clinic_img03_03.jpg") center / cover;
}

.verticalHeading {
  /* width: 12rem; */
  margin: 0 auto 4rem;
  padding: 2rem 1rem;
  background: rgba(255,255,255,.9);
  color: var(--gold-dark);
  text-align: center;
  font-family: var(--mincho);
  font-size: 3rem;
  writing-mode: vertical-rl;
}

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

.commitGrid article {
  padding: 4.6rem;
  background: rgba(255,255,255,.94);
  border: 1px solid var(--line);
  text-align: center;
}

.commitGrid span {
  color: var(--gold);
  font-family: var(--mincho);
  font-size: 5rem;
}

.commitGrid h3 {
  color: var(--brown);
  font-family: var(--mincho);
  font-size: 2.8rem;
  font-weight: 400;
}

.commitGrid b {
  display: block;
  margin: 2rem 0;
  padding: 1.2rem;
  background: var(--gold-dark);
  color: #fff;
}

.commitGrid img {
  width: 100%;
  height: 22rem;
  object-fit: cover;
}

.commitGrid p {
  margin-top: 2rem;
  text-align: left;
  font-size: 1.7rem;
}

.commitmentBg,
.commitmentWatermark,
.commitGridPc {
  display: none;
}

@media screen and (min-width: 769px) {
  .commitment {
    position: relative;
    overflow: hidden;
    padding: 0 0 9.6rem;
    background: #f3f3f3;
  }

  .commitment .inner {
    position: relative;
    width: 100%;
    max-width: none;
    padding-top: 64.4rem;
  }

  .commitmentBg {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 80.6rem;
    object-fit: cover;
    object-position: center top;
  }

  .commitment .verticalHeading {
    position: absolute;
    z-index: 2;
    top: 5.7rem;
    left: 31.2rem;
    /* width: 3em; */
    /* height: 52.6rem; */
    margin: 0;
    padding: 4rem 4.9rem;
    background: rgba(255, 255, 255, .86);
    color: #b38617;
    box-shadow: none;
    font-size: 6.3rem;
    font-weight: 700;
    line-height: 1;
  }

  .commitmentWatermark {
    display: block;
    position: absolute;
    z-index: 1;
    top: 47.1rem;
    left: 3.7rem;
    color: rgba(173, 132, 45, .24);
    font-family: var(--mincho);
    font-size: 20.8rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
  }

  .commitment .commitGrid:not(.commitGridPc) {
    display: none;
  }

  .commitGridPc {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(2, 83.7rem);
    gap: 6.5rem 8rem;
    width: 175.4rem;
    margin: 0 auto;
  }

  .commitGridPc .commitCard {
    position: relative;
    min-height: 102rem;
    padding: 4.3rem 3.3rem 3.2rem;
    background: #fff;
    border: 0;
    text-align: center;
  }

  .commitGridPc .commitCard:nth-child(n+3) {
    min-height: 93.6rem;
  }

  .commitGridPc .commitCard::before,
  .commitGridPc .commitCard::after {
    content: "";
    position: absolute;
    top: 1.1rem;
    width: 8.7rem;
    height: 9.6rem;
    border-top: .1rem solid #86817a;
    pointer-events: none;
  }

  .commitGridPc .commitCard::before {
    left: 1rem;
    border-left: .1rem solid #86817a;
  }

  .commitGridPc .commitCard::after {
    right: 1rem;
    border-right: .1rem solid #86817a;
  }

  .commitGridPc span::before,
  .commitGridPc span::after {
    content: "";
    position: absolute;
    bottom: 1rem;
    width: 8.7rem;
    height: 9.6rem;
    border-bottom: .1rem solid #86817a;
    pointer-events: none;
  }

  .commitGridPc span::before {
    left: 1rem;
    border-left: .1rem solid #86817a;
  }

  .commitGridPc span::after {
    right: 1rem;
    border-right: .1rem solid #86817a;
  }

  .commitGridPc span {
    display: block;
    color: #7c6247;
    font-family: var(--mincho);
    font-size: 9.6rem;
    font-weight: 400;
    line-height: 1;
  }

  .commitGridPc h3 {
    margin: 0.5rem 0 2.6rem;
    color: var(--ink);
    font-family: var(--mincho);
    font-size: 4.3rem;
    font-weight: 400;
    line-height: 1.3;
  }

  .commitGridPc b {
    display: block;
    margin: 0 0;
    padding: 1.7rem 2rem 1.8rem;
    background: #806346;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3.5rem;
    font-weight: 400;
    line-height: 1.2;
  }

  .commitGridPc img {
    display: block;
    width: 100%;
    height: 33.4rem;
    object-fit: cover;
  }

  .commitGridPc p {
    margin: 2.4rem 2.7rem 0;
    color: #51483f;
    text-align: left;
    font-family: var(--gothic);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 2.05;
  }

  .commitGridPc p + p {
    margin-top: 5.4rem;
  }
}

.menuSection {
  padding: 10rem 0;
  background: linear-gradient(110deg, #fff 0 45%, var(--beige) 45% 100%);
}

.menuPc {
  display: none;
}

.menuGroup {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.2rem;
  margin-bottom: 4rem;
}

.menuGroup a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 8.4rem;
  padding: 1.5rem;
  color: #fff;
  text-align: center;
  font-size: 2rem;
  font-weight: 700;
}

.menuGroup.turquoise a {
  background: var(--turquoise);
}

.menuGroup.gold a {
  background: #b58b4a;
}

@media screen and (min-width: 769px) {
  .menuSection {
    /* min-height: 173.1rem; */
    padding: 8.8rem 0 13.8rem;
    background: url("../img/top/menu_bg.jpg") center top / cover no-repeat;
    margin-top: 8rem;
  }

  .menuSection .inner {
    width: 171.4rem;
    max-width: none;
  }

  .menuSection .enHeading {
    margin: 0 0 4.5rem;
    color: #4a321c;
    text-align: center;
    font-family: var(--mincho);
    font-weight: 400;
  }

  .menuSection .enHeading span {
    display: block;
    font-size: 7.6rem;
    font-weight: 400;
    line-height: 1.22;
  }

  .menuSection .enHeading small {
    display: block;
    margin-top: 2rem;
    color: #4a321c;
    font-size: 4.5rem;
    font-weight: 400;
    line-height: 1.3;
  }

  .menuPc {
    display: block;
  }

  .menuSection > .inner > .menuGroup {
    display: none;
  }

  .menuPcHeading {
    margin: 0 0 2rem;
    color: #2e302f;
    font-family: var(--gothic);
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .menuPcHeadingSymptoms {
    margin-top: 7.7rem;
  }

  .menuPcGrid {
    display: grid;
    grid-template-columns: repeat(4, 40.1rem);
    gap: 4.1rem 4.2rem;
  }

  .menuPcGrid a {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 19.6rem;
    padding: 1.7rem 1.8rem 2.2rem;
    border: .5rem solid #25b7b2;
    color: #fff;
    text-align: center;
    font-family: var(--gothic);
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
  }

  .menuPcGrid a::before {
    content: "";
    position: absolute;
    inset: .5rem;
    border: .1rem solid rgba(255,255,255,.55);
    pointer-events: none;
  }

  .menuPcGrid a::after {
    content: "";
    position: absolute;
    right: .7rem;
    bottom: .7rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.1rem 2.1rem;
    border-color: transparent transparent #fff transparent;
    pointer-events: none;
  }

  .menuPcGridTreatment a {
    background: #25b7b2;
  }

  .menuPcGridSymptoms a {
    border-color: #b18d67;
    background: #b18d67;
  }

  .menuPcGrid img {
    display: block;
    width: 11rem;
    height: 10rem;
    margin: 0 auto .5rem;
    object-fit: contain;
  }

  .menuPcGrid span {
    display: block;
  }
}

.greeting {
  padding: 11rem 0;
}

.greetingPc {
  display: none;
}

.greetingInner {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 7rem;
  align-items: center;
}

.greetingText h3 {
  display: inline-block;
  margin-bottom: 4rem;
  padding: 2.5rem 5rem;
  background: var(--gold-dark);
  color: #fff;
  font-family: var(--mincho);
  font-size: 4rem;
  font-weight: 400;
  line-height: 1.6;
}

.greetingText p {
  margin-top: 2.5rem;
  font-size: 1.8rem;
}

.doctorCard {
  position: relative;
}

.doctorCard img {
  width: 100%;
}

.doctorCard div {
  position: absolute;
  right: 0;
  bottom: 4rem;
  min-width: 34rem;
  padding: 2.4rem 3rem;
  background: rgba(82,59,39,.9);
  color: #fff;
}

.doctorCard small,
.doctorCard b {
  display: block;
}

.doctorCard b {
  font-family: var(--mincho);
  font-size: 3rem;
}

@media screen and (min-width: 769px) {
  .greeting {
    padding: 11.6rem 0 0;
    overflow: hidden;
  }

  .greeting > .greetingInner {
    display: none;
  }

  .greetingPc {
    display: block;
  }

  .greetingPcHeading {
    position: relative;
    width: fit-content;
    margin: 0 auto 7rem;
    color: #7c6247;
    text-align: center;
    font-family: var(--mincho);
  }

  .greetingPcHeading::before,
  .greetingPcHeading::after {
    content: "";
    position: absolute;
    top: 4.1rem;
    width: 13.4rem;
    height: .1rem;
    background: #9f988e;
  }

  .greetingPcHeading::before {
    right: calc(100% + 2.6rem);
  }

  .greetingPcHeading::after {
    left: calc(100% + 2.6rem);
  }

  .greetingPcHeading span {
    display: block;
    background: linear-gradient(90deg, #e6b272 0 16%, #7c6247 16% 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-size: 9.4rem;
    line-height: 1;
    letter-spacing: 1rem;
    font-weight: 300;
  }

  .greetingPcHeading small {
    display: block;
    margin-top: 2rem;
    color: #2f2a27;
    line-height: 1.2;
    font-size: 4rem;
    line-height: 1;
    font-weight: 600;
  }

  .greetingPcMain {
    position: relative;
    display: block;
    min-height: 116rem;
  }

  .greetingPcCatch {
    width: 140rem;
    margin: 0;
    padding: 3.4rem 0 4.1rem 9.1rem;
    background: #8d7937;
    color: #fff;
    font-family: var(--mincho);
    font-size: 7.2rem;
    font-weight: 600;
    line-height: 1.56;
    white-space: nowrap;
    z-index: 1;
  }

  .greetingPcCatchLine {
    display: inline-block;
    padding-left: 24rem;
  }

  .greetingPcBody {
    width: 95rem;
    margin: 6.2rem 0 11.6rem 10.8rem;
    color: #4d4742;
    font-family: var(--gothic);
    font-size: 2.7rem;
    font-weight: 400;
    line-height: 1.85;
  }

  .greetingPcBody p {
    margin: 0;
  }

  .greetingPcBody p + p {
    margin-top: 5rem;
  }

  .greetingPcDoctor {
    position: absolute;
    top: 3.3rem;
    right: 0;
    width: 72.6rem;
    margin-top: 0;
    z-index: 2;
  }

  .greetingPcDoctor img {
    display: block;
    width: 72.6rem;
    height: auto;
  }

  .greetingPcName {
    position: absolute;
    left: -3.8rem;
    bottom: 5rem;
    width: 44.2rem;
    padding: 2.4rem 3.5rem 2.9rem 4.5rem;
    background: rgba(82, 73, 65, .9);
    color: #fff;
    font-family: var(--mincho);
  }

  .greetingPcName small {
    display: block;
    margin-bottom: 1.5rem;
    font-size: 2.7rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingPcName span {
    display: flex;
    align-items: center;
    gap: 1.8rem;
  }

  .greetingPcName em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 10rem;
    height: 5.6rem;
    background: #b28753;
    font-style: normal;
    font-size: 3rem;
    line-height: 1;
  }

  .greetingPcName b {
    display: block;
    font-size: 4.5rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingPcCareer {
    position: absolute;
    top: 86rem;
    right: 0;
    width: 72.6rem;
    margin-top: 0;
    color: #4d4742;
    font-family: var(--gothic);
  }

  .greetingPcCareer h3,
  .greetingPcInfo h3 {
    margin: 0;
    background: #806346;
    color: #fff;
    font-family: var(--gothic);
    font-size: 2.6rem;
    font-weight: 600;
    line-height: 1;
  }

  .greetingPcCareer h3 {
    padding: 1.7rem 3rem 1.7rem;
  }

  .greetingPcCareer dl {
    margin: 2.2rem 0 0 2.8rem;
    font-size: 2.1rem;
    line-height: 1.85;
  }

  .greetingPcCareer dl div {
    display: grid;
    grid-template-columns: 15rem 1fr;
    column-gap: 1rem;
  }

  .greetingPcCareer dt,
  .greetingPcCareer dd {
    margin: 0;
    font-weight: 400;
  }

  .greetingPcInfo {
    padding: 4.8rem 0 5.8rem;
    background: #f4f4f4;
  }

  .greetingPcInfoInner {
    display: grid;
    grid-template-columns: 68.4rem 84.2rem;
    gap: 5.4rem;
    width: 162.5rem;
    margin: 0 auto;
  }

  .greetingPcInfo h3 {
    padding: 1.6rem 3rem 1.8rem;
  }

  .greetingPcInfo ul {
    margin: 2.4rem 0 0 3.2rem;
    padding: 0;
    list-style: none;
    color: #4d4742;
    font-family: var(--gothic);
    font-size: 2.15rem;
    font-weight: 400;
    line-height: 1.8;
  }
}

.access {
  padding: 9rem 0;
  background: #f8f8f8;
}

.accessPc {
  display: none;
}

.jpHeading {
  margin-bottom: 5rem;
  color: var(--turquoise-dark);
  text-align: center;
  font-family: var(--mincho);
  font-size: 5rem;
  font-weight: 400;
}

.clinicPhotos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-bottom: 5rem;
}

.clinicPhotos img {
  width: 100%;
  height: 33rem;
  object-fit: cover;
}

.accessGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
}

.clinicInfo {
  padding: 4rem;
  background: #fff;
}

.clinicInfo img {
  width: 28rem;
  margin-bottom: 2rem;
}

.clinicInfo table {
  width: 100%;
  margin-top: 2rem;
  border-collapse: collapse;
  font-size: 1.6rem;
}

.clinicInfo th,
.clinicInfo td {
  border-bottom: 1px solid var(--line);
  padding: 1.1rem;
  text-align: left;
}

.accessGrid iframe {
  width: 100%;
  height: 42rem;
  border: 0;
}

.footerLinks {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3rem;
  margin-top: 5rem;
}

.footerLinks a {
  padding: 1.6rem;
  background: var(--turquoise);
  color: #fff;
  text-align: center;
}

@media screen and (min-width: 769px) {
  .access {
    padding: 10.1rem 0 14.3rem;
    background: #fff;
  }

  .accessPc {
    display: block;
  }

  .accessLegacy {
    display: none;
  }

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

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

  .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: var(--turquoise);

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

  .accessPcSchedule th {
    background: var(--turquoise);
    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: var(--turquoise);
    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: var(--turquoise);

    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(4, 32.3rem);
    gap: 4.5rem;
    justify-content: center;
    margin-top: 8.2rem;
  }

  .accessPcLinks a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 8rem;
    background: var(--turquoise);
    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 {
  padding: 7rem 0;
  background: #fff;
}

.finalCtaPc {
  display: none;
}

.finalCtaInner {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  align-items: center;
  background: var(--pale);
}

.finalCtaInner > img {
  width: 100%;
  height: 36rem;
  object-fit: cover;
}

.finalCtaInner > div {
  padding: 5rem 6rem;
  text-align: center;
}

.finalCta h2 {
  color: var(--gold);
  font-family: var(--mincho);
  font-size: 4rem;
  font-weight: 400;
}

.finalCta p {
  margin: 2rem 0;
  font-size: 2rem;
}

.bannerSection {
  display: none;
}

@media screen and (min-width: 769px) {
  .finalCta {
    padding: 0 0 8.8rem;
    background: #fff;
  }

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

  .finalCtaInner {
    display: none;
  }

  .finalCtaPcPanel {
    position: relative;
    z-index: 1;
    width: 120rem;
    /* min-height: 70.6rem; */
    padding: 5.2rem 7.2rem 7.8rem 10.2rem;
    background: url("../img/top/finalcta_bg_txt.jpg") center center / 100% 100% no-repeat;
    text-align: center;
  }

  .finalCtaPcPanel h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.2rem;
    width: 94rem;
    margin: 0 auto;
    color: var(--gold);
    font-family: var(--mincho);
    font-size: 5.2rem;
    font-weight: 600;
    line-height: 1.2;
  }

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

  .finalCtaPcTitleMain {
    font-size: 5.9rem;
  }

  .finalCtaPcTitleSub {
    font-size: 4.6rem;
    margin-left: -.5em;
  }

  p.finalCtaPcCatch {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 94rem;
    height: 11rem;
    margin: 2.6rem auto 0;
    background: #b0823a;
    clip-path: polygon(5rem 0, 100% 0, calc(100% - 5rem) 100%, 0 100%);
    color: #fff;
    font-family: var(--mincho);
    font-size: 4.8rem;
    font-weight: 600;
    line-height: 1;
  }

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

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

  .finalCtaPcButtons {
    display: flex;
    justify-content: center;
    gap: 4rem;
    margin-top: 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: 1.5rem;
    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: 5.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: #f3f3f3;
  }

  .bannerPcTop {
    display: grid;
    grid-template-columns: repeat(3, 57.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 {
  background: #e9ded2;
}

.footerLogoPc,
.footerNavPc {
  display: none;
}

.footerMain {
  display: grid;
  grid-template-columns: 34rem 1fr 1fr;
  gap: 6rem;
  padding: 5rem 0;
  align-items: start;
}

.footerMain img {
  width: 40rem;
}

.footerMain ul {
  columns: 2;
}

.footerMain a {
  display: inline-block;
  margin-bottom: .8rem;
  font-size: 1.5rem;
}

.copyright {
  margin: 0;
  padding: 1.2rem;
  background: #4d371f;
  color: #fff;
  text-align: center;
  font-size: 1.2rem;
}

@media screen and (min-width: 769px) {
  .siteFooter {
    background: #e9ded2;
    margin-top: 2px;
  }

  .footerMain {
    display: grid;
    grid-template-columns: 39rem 1fr;
    gap: 10rem;
    width: 156rem;
    max-width: calc(100% - 20rem);
    padding: 5.8rem 0 3rem;
    align-items: start;
  }

  .footerInfo {
    padding-top: .4rem;
  }

  .footerLogoPc {
    display: block;
    width: 34.4rem;
  }

  .footerLogoSp,
  .footerNavSp {
    display: none;
  }

  .footerInfo p {
    margin: 2.8rem 0 0;
    color: #2f2b28;
    font-family: var(--gothic);
    font-size: 2.15rem;
    font-weight: 400;
    line-height: 1.7;
  }

  .footerNavPc {
    display: grid;
    grid-template-columns: 27rem 1fr;
    gap: 8.8rem;
  }

  .footerNavGroup .nav-title {
    margin: 0 0 2.1rem;
    color: #2f2b28;
    font-family: var(--gothic);
    font-size: 2.1rem;
    font-weight: 700;
    line-height: 1;
  }

  .footerNavGroup ul {
    margin: 0 0 0 1rem;
    padding: 0;
    list-style: none;
    columns: auto;
  }

  .footerNavGroup li {
    margin: 0 0 1.2rem;
    color: #2f2b28;
    font-family: var(--gothic);
    font-size: 2rem;
    font-weight: 400;
    line-height: 1.35;
  }

  .footerNavGroup a {
    display: inline;
    margin: 0;
    font-size: inherit;
  }

  .footerNavColumns {
    display: grid;
    grid-template-columns: 22rem 21rem 27rem;
    gap: 3.2rem;
  }

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

.spFixedCta {
  display: none;
}

.lpHero {
  position: relative;
  min-height: 88rem;
  padding: 20rem 0 10rem;
  background: var(--pale);
  overflow: hidden;
}

.lpHero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--hero-image) center / cover no-repeat;
  opacity: .82;
}

.lpHero .inner {
  z-index: 1;
}

.lpLabel {
  display: inline-block;
  margin-bottom: 2rem;
  padding: .8rem 2.5rem;
  background: var(--turquoise);
  color: #fff;
  font-size: 1.8rem;
}

.lpHero h1 {
  width: 72rem;
  padding: 4rem 5rem;
  background: rgba(255,255,255,.9);
  color: var(--brown);
  font-family: var(--mincho);
  font-size: 5.4rem;
  line-height: 1.45;
}

.lpHero p {
  width: 70rem;
  margin-top: 3rem;
  padding: 2.5rem 3rem;
  background: rgba(101,70,38,.86);
  color: #fff;
  font-size: 2.3rem;
}

.problemSection,
.flowSection,
.faqSection {
  padding: 10rem 0;
}

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

.problemGrid li {
  padding: 3rem;
  background: #fff;
  border-left: .8rem solid var(--gold);
  box-shadow: 0 1rem 3rem rgba(0,0,0,.06);
  font-size: 2rem;
}

.twoColumn {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}

.twoColumn img {
  width: 100%;
  height: 52rem;
  object-fit: cover;
}

.twoColumn h2 {
  color: var(--brown);
  font-family: var(--mincho);
  font-size: 4.4rem;
  line-height: 1.55;
}

.twoColumn p {
  margin-top: 2.5rem;
}

.flowList {
  counter-reset: flow;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2.5rem;
}

.flowList li {
  counter-increment: flow;
  padding: 4rem 3rem;
  background: #fff;
  border: 1px solid var(--line);
}

.flowList li::before {
  content: counter(flow, decimal-leading-zero);
  display: block;
  margin-bottom: 1.5rem;
  color: var(--turquoise);
  font-family: var(--mincho);
  font-size: 4rem;
}

.faqList {
  display: grid;
  gap: 2rem;
}

.faqList details {
  padding: 2.5rem 3rem;
  background: #fff;
  border: 1px solid var(--line);
}

.faqList summary {
  color: var(--brown);
  font-weight: 700;
  cursor: pointer;
}

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

  .causeCheckSpIndent {
    display: inline-block;
    width: 1em;
  }
  .sp-br,
  br.sp-br {
    display: block;
  }

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

  .uBrSp {
    display: block;
  }

  .uBrPc {
    display: none;
  }

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

  body {
    padding-bottom: 8.8rem;
    font-size: 2.6rem;
    line-height: 1.8;
  }

  .inner {
    width: 67rem;
    max-width: calc(100% - 5rem);
  }

  .siteHeader {
    position: fixed;
    height: 11rem;
    padding-left: 0;
  }

  .headerLogo {
    flex-direction: column;
    justify-content: flex-start;
    width: 45.4rem;
    min-height: 11rem;
    margin-left: 1.6rem;
    padding: .8rem 2.4rem 1.2rem;
    border-radius: 0 0 .8rem 0;
  }

  .headerLogoTitle {
    display: block;
    width: 100%;
    margin: 0 0 .65rem;
    color: var(--brown);
    text-align: center;
    font-family: var(--gothic);
    font-size: 1.65rem;
    font-weight: 400;
    line-height: 1.1;
  }

  .headerLogo img {
    width: 40.5rem;
  }

  .headerActions {
    height: auto;
    margin-right: 2.1rem;
    padding-top: .9rem;
  }

  .headerReserve,
  .headerTel {
    display: none;
  }

  .menuButton {
    width: 10rem;
    min-width: 10rem;
    height: 10rem;
    gap: .7rem;
  }

  .menuButton span {
    width: 5.7rem;
    height: .45rem;
  }

  .menuButton em {
    font-size: 2rem;
  }

  .drawerNav {
    padding-top: 14rem;
  }

  .drawerInner {
    grid-template-columns: 1fr;
    width: 100%;
    gap: 1rem;
  }

  .drawerInner a {
    font-size: 2.8rem;
  }

  .siteHeader {
    z-index: 70;
  }

  .drawerNav {
    z-index: 60;
    inset: 10rem 0 0;
    display: none;
    padding: 3.2rem 4rem 6rem;
    background: #08b7b4;
    overflow-y: auto;
  }

  .drawerNav.isOpen {
    display: block;
  }

  .drawerClose,
  .drawerInnerPc {
    display: none;
  }

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

  .drawerInnerSp .drawerHome {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    width: auto;
    align-self: flex-end;
    margin: 0 0 2.8rem;
    padding: 0;
    border-bottom: 0;
    color: #fff;
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
  }

  .drawerInnerSp .drawerHome::after {
    content: "";
    display: block;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 1.7rem 1.7rem;
    border-color: transparent transparent #fff transparent;
  }

  .drawerInnerSp .drawerColumns {
    display: grid;
    gap: 3rem;
  }

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

  .drawerInnerSp .drawerColumnNoTitle {
    margin-top: -3rem;
  }

  .drawerInnerSp .drawerColumn .nav-title,
  .drawerInnerSp .drawerColumn a {
    margin: 0;
    color: #fff;
    font-family: var(--gothic);
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.55;
  }

  .drawerInnerSp .drawerColumn .nav-title {
    grid-column: 1 / -1;
    padding: 0 1.2rem 1.4rem;
  }

  .drawerInnerSp .drawerColumn a {
    display: flex;
    align-items: center;
    min-height: 7.4rem;
    padding: 1.2rem 1.4rem;
    border-bottom: 1px solid rgba(255,255,255,.45);
    font-weight: 600;
  }

  .hero {
    height: 123.2rem;
  }

  .heroPhoto {
    object-position: 61% top;
  }

  .heroPanel {
    top: 45.5rem;
    left: 5.3rem;
    width: 64.8rem;
    height: 46.7rem;
    margin-left: 0;
    padding: 4.9rem 3.2rem 0;
    background-image: url("../img/top/hero_copy_bg-sp.png");
  }

  .heroLine {
    height: 7.75rem;
  }

  .heroLine01 {
    font-size: 5.05rem;
  }

  .heroLine02 {
    margin-top: .3rem;
    font-size: 4.55rem;
  }

  .heroLine03 {
    margin-top: .1rem;
    font-size: 4.55rem;
  }

  .heroWordLarge {
    font-size: 6rem;
  }

  .heroWordMedium {
    font-size: 5.1rem;
  }

  .heroWordAccentPc {
    display: inline-block;
    font-size: 1.12em;
    line-height: .9;
  }

  .heroWordLarge::before,
  .heroWordLarge::after {
    top: -2.5rem;
    width: 1.35rem;
    height: 1.35rem;
  }

  .heroWordLarge::before {
    left: 2.25rem;
  }

  .heroWordLarge::after {
    right: 2.25rem;
  }

  .heroMainCopy::after {
    width: 54.2rem;
    margin-top: 1.25rem;
  }

  .heroSubCopy {
    margin-top: 1.4rem;
    font-size: 2.65rem;
    line-height: 1.85;
  }

  .heroSubCopy::after {
    width: 54.2rem;
    margin-top: 1.8rem;
  }

  .heroBadges {
    left: .4rem;
    bottom: 5.7rem;
    gap: 1.4rem;
  }

  .heroBadges div {
    width: 23.8rem;
    height: 23.8rem;
    padding-top: 2.8rem;
    border-width: .6rem;
  }
  .heroBadges div:nth-child(3){
    padding-top: 3.4rem;
  }

  .heroBadges div::before {
    margin-bottom: 1.3rem;
  }

  .heroBadges div:nth-child(1)::before {
    width: 6.2rem;
    height: 6.1rem;
  }

  .heroBadges div:nth-child(2)::before {
    width: 4.9rem;
    height: 6.7rem;
    margin-bottom: 1rem;
  }

  .heroBadges b {
    font-size: 3.05rem;
    line-height: 1.15;
  }

  .heroBadges b .badgeSmall {
    font-size: 2.05rem;
  }

  .heroBadges > div > span {
    margin-top: .25rem;
    font-size: 3.05rem;
    line-height: 1.15;
  }

  .heroBadges > div:first-child > span {
    font-size: 2.35rem;
  }

  .intro,
  .consult,
  .choice,
  .medical,
  .feature,
  .commitment,
  .menuSection,
  .greeting,
  .access,
  .finalCta,
  .problemSection,
  .flowSection,
  .faqSection {
    padding: 9rem 0;
  }

  .sectionLead,
  .softTitle,
  .iconTitle,
  .jpHeading {
    font-size: 4.2rem;
  }

  .intro h2 {
    font-size: 3rem;
  }

  .checkGrid,
  .messageBlock,
  .consultCard,
  .choicePanel,
  .medicalItem,
  .medicalItem.reverse,
  .featureGrid,
  .commitGrid,
  .greetingInner,
  .accessGrid,
  .finalCtaInner,
  .footerMain,
  .twoColumn {
    grid-template-columns: 1fr;
  }
  .featureGrid{
    gap: 2rem 8rem;
  }
  .checkGrid {
    width: 100%;
    gap: 1.6rem;
  }

  .checkGrid li {
    font-size: 2.4rem;
  }

  .messageText,
  .choicePanel > div,
  .clinicInfo,
  .finalCtaInner > div {
    padding: 4rem 3rem 8rem;
  }
    .choicePanel > div{
        padding: 4rem 1rem 8rem;
    }

  .intro {
    padding: 0 0 7.8rem;
    background: #f3eee7 url("../img/top/intro_bg-sp.jpg") center top / 100% auto no-repeat;
    text-align: center;
  }

  .intro .inner {
    width: 100%;
    max-width: none;
  }

  .intro .verticalTooth {
    display: none;
  }

  .intro .sectionLead {
    margin: 0;
    padding-top: 7.8rem;
    color: #4f3b22;
    font-family: var(--mincho);
    font-size: 5.15rem;
    font-weight: 400;
    line-height: 1.25;
  }

  .intro h2 {
    margin: 2.1rem 0 0;
    color: #4f3b22;
    font-family: var(--mincho);
    font-size: 3.5rem;
    font-weight: 400;
    line-height: 1.62;
  }

  .intro .checkGrid {
    display: grid;
    grid-template-columns: 1fr;
    width: 69rem;
    max-width: none;
    margin: 3.8rem auto 0;
    gap: 1.6rem;
  }

  .intro .checkGrid li {
    display: block;
    align-content: center;
    /* height: 7.6rem; */
    min-height: 7.6rem;
    padding: 1rem 2.2rem 1rem 9.4rem;
    background: linear-gradient(135deg, #ba904d 0 6.8rem, #b0823a 6.9rem 100%);
    color: #fff;
    font-family: var(--gothic);
    font-size: 2.75rem;
    font-weight: 400;
    line-height: 1.35;
  }

  .intro .checkGrid li::before {
    left: 2rem;
    width: 5.2rem;
    height: 5.2rem;
    background: rgba(255,255,255,.94);
  }

  .intro .checkGrid li::after {
    left: 3.25rem;
    width: 2.35rem;
    height: 1.35rem;
    border-left: .35rem solid #4b4b4b;
    border-bottom: .35rem solid #4b4b4b;
  }

  .intro .checkGrid li span {
    color: #fff36d;
    font-weight: 600;
  }

  .intro .messageBlock {
    position: relative;
    display: block;
    width: 71.2rem%;
    max-width: none;
    margin: 6.1rem auto 0;
    padding: 4.9rem 2.5rem 5.1rem;
    background: rgba(255,255,255,.5);
    text-align: left;
  }

  .intro .messageBlock::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 2.5rem;
    left: 2.5rem;
    right: 2.5rem;
    bottom: 2.5rem;
    background: #fff;
  }

  .intro .messageText {
    position: relative;
    z-index: 1;
    width: auto;
    height: auto;
    padding: 2rem;
    background: transparent;
    color: #4a3820;
    font-family: var(--gothic);
    font-size: 2.8rem;
    line-height: 1.8;
  }

  .intro .messageText p {
    position: relative;
    margin: 0;
  }

  .intro .messageText p:nth-of-type(-n+3) {
    padding: 0 0 3.5rem 5.4rem;
    border-bottom: 1px dashed rgba(86,71,48,.45);
  }

  .intro .messageText p:nth-of-type(2),
  .intro .messageText p:nth-of-type(3) {
    margin-top: 3.1rem;
  }

  .intro .messageText p:nth-of-type(-n+3)::before {
    content: "";
    position: absolute;
    top: 1.35rem;
    left: 1.5rem;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 50%;
    background: #dfcfaa;
  }

  .intro .messageText p span {
    color: #b98735;
    font-weight: 700;
  }

  .intro .messageText strong {
    display: block;
    margin: 4.2rem 0 0;
    color: #4a3820;
    font-family: var(--gothic);
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.45;
  }

  .intro .messageText strong + p {
    margin: 2.1rem 0 0;
    padding: 0;
    border-bottom: 0;
    text-align: center;
    font-size: 2.95rem;
    line-height: 1.85;
  }

  .intro .messageBlock img {
    position: relative;
    z-index: 1;
    display: block;
    width: 63.8rem;
    height: 55.8rem;
    margin: 2.7rem auto 0;
    object-fit: cover;
    object-position: center top;
    clip-path: polygon(11.5% 0, 100% 0, 100% 100%, 0 100%);
  }

  .consultCard div {
    margin-left: 0;
  }

  .consultCard img,
  .choicePanel img,
  .medicalItem img,
  .finalCtaInner > img,
  .twoColumn img {
    height: 42rem;
  }

  .ctaBar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }

  .webCta,
  .telCta {
    min-width: 0;
    width: 100%;
    min-height: 9rem;
  }

  .consult {
    padding: 8.2rem 0 0;
    background: #fff;
  }

  .consult .inner {
    width: 100%;
    max-width: none;
  }

  .consult .iconTitle {
    margin: 0 0 3.4rem;
    color: #25b9b3;
    font-size: 0;
    line-height: 1;
    background: none;
  }

  .consult .iconTitle::before {
    content: "まずは、";
    display: block;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 400;
    line-height: 1.35;
  }

  .consult .iconTitle span {
    display: block;
    margin: .4rem 0 .7rem;
    font-size: 6.2rem;
    line-height: 1.15;
  }

  .consult .iconTitle span::before {
    content: "縲・;
  }

  .consult .iconTitle::after {
    content: "から";
    display: block;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 400;
    line-height: 1.35;
  }

  .consult .iconTitle span::after {
    content: "縲・;
  }

  .consultCard {
    position: relative;
    display: block;
    min-height: 0;
    background: #fff;
  }

  .consultCard::before {
    content: "";
    display: block;
    width: 100%;
    height: 29.6rem;
    background: url("../img/top/consult_bg_photo01-sp.jpg") center top / cover no-repeat;
  }

  .consultCard > img {
    display: none;
  }

  .consultCard > div {
    position: relative;
    margin: 0;
    padding: 5.4rem 1.3rem 0;
    background: #fbfaf8;
    text-align: center;
  }

  .consultCard h2 {
    margin: 0 0 3.4rem;
    color: #4a3820;
    font-family: var(--mincho);
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.78;
  }

  .consultCard ul {
    position: relative;
    width: 72.4rem;
    max-width: none;
    margin: 0 auto;
    padding: 2.4rem 2rem 2rem;
    background: #5a3717;
    color: #fff;
    text-align: left;
  }

  .consultCard ul::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -2.5rem;
    width: 0;
    height: 0;
    border-left: 2.5rem solid transparent;
    border-right: 2.5rem solid transparent;
    border-top: 2.5rem solid #5a3717;
    transform: translateX(-50%);
  }

  .consultCard li {
    position: relative;
    min-height: 5.2rem;
    padding: .3rem 0 0 5.6rem;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.35;
  }

  .consultCard li + li {
    margin-top: 1.1rem;
  }

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

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

  .consultCard .consultLead {
    margin: 3.7rem 0 0;
    color: #b0823a;
    font-family: var(--gothic);
    font-size: 3.3rem;
    font-weight: 700;
    line-height: 1.9;
  }

  .consultCard .consultNote {
    display: block;
    width: 70.8rem;
    margin: 1.7rem auto 0;
    padding-top: 2.2rem;
    border-top: 1px solid rgba(182,131,52,.8);
    color: #543b1d;
    font-size: 3.2rem;
      font-weight: 600;
    line-height: 1.8;
  }


  .consultCard > div::after {
    content: "";
    display: block;
    width: 100vw;
    height: 48.5rem;
    margin: 5.5rem 0 0 calc(50% - 50vw);
    background: url("../img/top/consult_bg_photo02-sp.jpg") center top / cover no-repeat;
  }

  .consult .ctaBar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4.1rem;
    margin: 0;
    padding: 4.1rem 12.4rem 4.7rem;
    background: #b68334;
  }

  .consult .webCta,
  .consult .telCta {
    width: 50.4rem;
    min-height: 0;
    height: 15.6rem;
    padding: 0;
    margin: 0 auto;
  }

  .consult .webCta {
    position: relative;
    flex-direction: row;
    gap: 2rem;
    background: #25b9b3;
    color: #fff;
    font-family: var(--mincho);
    font-size: 5.3rem;
    font-weight: 400;
  }

  .consult .webCta::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;
  }

  .consult .webCta span {
    display: inline;
    font-family: var(--mincho);
    font-size: 3.2rem;
    font-weight: 400;
  }

  .consult .telCta {
    position: relative;
    flex-direction: column;
    background: #fff;
    color: #4a3820;
    font-family: var(--mincho);
    font-size: 5rem;
    font-weight: 600;
  }

  .consult .telCta::before {
    content: "";
    position: absolute;
    left: 3.9rem;
    bottom: 3.1rem;
    width: 4.4rem;
    height: 4.4rem;
    background: url("../img/top/icon_tel.png") center / contain no-repeat;
    filter: brightness(.45);
  }

  .consult .telCta b {
    display: block;
    font-family: var(--mincho);
    font-size: 5.7rem;
    font-weight: 600;
    line-height: 1.1;
    padding-left: 1.5rem;
  }

  .consult .telCta span {
    display: block;
    margin: 0 0 1.6rem;
    color: #4a3820;
    font-family: var(--gothic);
    font-size: 2.7rem;
    font-weight: 700;
  }

  .choice {
    position: relative;
    padding: 8.6rem 0 34rem;
    background: #fff;
    overflow: hidden;
  }

  .choice::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 29rem;
    bottom: 0;
    background: url("../img/top/choice_bg.jpg") center top / auto 100% no-repeat;
  }

  .choice .inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
  }

  .choice .softTitle {
    margin: 0 0 2.3em;
    color: #4a3820;
    font-family: var(--mincho);
    font-size: 6rem;
    font-weight: 400;
    line-height: 1.42;
  }

  .choice .spChoiceBreak {
    display: block;
  }

  .choice .choiceTitleLarge {
    font-size: 6.8rem;
  }

  .choice .softTitle::before,
  .choice .softTitle::after {
    content: none;
  }
    .choicePanelWrap{
        position: relative;
        width: 100%;
        height: 180rem;
    }
    .choicePanelWrap:before{
        content: "";
        position: absolute;
        top: -6rem;
        left: 0;
        background: rgba(255,255,255,0.5);
        padding: 5rem 2.5rem;
        width: 100%;
        height: 206rem;
        display: block;
    }
    
  .choicePanel {
    position: relative;
    z-index: 0;
    display: flex;
    flex-direction: column;
    width: 69.6rem;
    max-width: none;
    margin: 16rem auto 0;
    padding: 5.4rem 2.4rem 3rem;
    background: rgba(255,255,255,1);
    border: .4rem solid rgba(185,162,106,.72);
  }
/*
  .choicePanel::before {
    content: "";
    position: absolute;
    left: 1.4rem;
    right: -1.4rem;
    top: 1.4rem;
    bottom: -1.4rem;
    z-index: -1;
    background: rgba(255,255,255,.5);
  }*/
    

  .choicePanel::after {
    content: "";
    position: absolute;
    right: -2.9rem;
    top: -10.3rem;
    z-index: 3;
    width: 17.9rem;
    height: 17.9rem;
    background: url("../img/top/choice_icon.png") center / contain no-repeat;
  }

  .choicePanel > img {
    content: url("../img/top/choice_photo.jpg");
    order: 2;
    display: block;
    width: 62.6rem;
    height: 44.9rem;
    margin: 3.1rem auto 0;
    object-fit: cover;
    object-position: center top;
  }

  .choicePanel > div {
    display: contents;
  }

  .choicePanel > div > br {
    display: none;
  }

  .choicePanel h3 {
    order: 1;
    margin: 0;
    padding: 0 0 3.2rem;
    border-bottom: 1px solid rgba(157,123,47,.72);
    color: #b68334;
    font-family: var(--gothic);
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.7;
  }

  .choicePanel h3 .spChoiceH3Break {
    display: block;
  }

  .choicePanel p {
    order: 3;
    margin: 5.8rem 2.4rem 0;
    color: #4a3820;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 2.05;
    text-align: left;
  }

  .choicePanel p + p {
    margin-top: 3.3rem;
  }

  .choicePanel p strong {
    display: block;
    margin-top: 2.3rem;
    font-weight: 700;
    line-height: 1.9;
    text-align: center;
  }

  .choicePanel p::after {
    content: none;
  }

  .choice .miniLinks {
    order: 4;
    display: grid;
    grid-template-columns: 1fr;
    gap: 3.8rem;
    width: 48.8rem;
    margin: 4.4rem auto -29rem;
    transform: translateY(5.6rem);
  }

  .choice .miniLinks a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48.8rem;
    min-width: 0;
    height: 9.1rem;
    padding: 0 6rem 0 2rem;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1;
  }

  .choice .miniLinks a:first-child {
    background: #b68334;
    font-size: 0;
  }

  .choice .miniLinks a:first-child::before {
    content: "修復治療サイト";
    font-size: 3.2rem;
  }

  .choice .miniLinks a:nth-child(2) {
    background: #262626;
  }

  .choice .miniLinks a:nth-child(3) {
    background: #6a321f;
  }

  .choice .miniLinks a::after {
    content: "→";
    position: absolute;
    right: 2.5rem;
    top: 50%;
    font-size: 3.2rem;
    font-weight: 400;
    transform: translateY(-53%);
  }

  .medicalItem.reverse img {
    order: 0;
  }

  .medicalItem h3 {
    font-size: 3.3rem;
  }

  .medical {
    padding: 8.8rem 0 0;
    background: linear-gradient(#fff 0 29rem, #efebe4 29rem 100%);
  }

  .medical .inner {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
  }

  .medical .enHeading {
    margin: 0 0 6.2rem;
    color: #6f604f;
    /* font-weight: 400; */
  }

  .medical .enHeading span {
    position: relative;
    display: inline-block;
    font-size: 8.4rem;
    line-height: 1;
    font-weight: 300;
    letter-spacing: 1rem;
  }

  .medical .enHeading span::first-letter {
    color: #efbd85;
  }

  .medical .enHeading span::before,
  .medical .enHeading span::after {
    content: "";
    position: absolute;
    top: 53%;
    width: 100vw;
    height: .1rem;
    background: #c5beb3;
  }

  .medical .enHeading span::before {
    right: calc(100% + 2.7rem);
  }

  .medical .enHeading span::after {
    left: calc(100% + 2.7rem);
  }

  .medical .enHeading small {
    margin-top: 1.4rem;
    color: #4b3a28;
    font-size: 3.7rem;
    line-height: 1;
    font-weight: 600;
  }

  .medicalList {
    display: block;
    width: 100vw;
  }

  .medicalItem,
  .medicalItem.reverse {
    display: grid;
    grid-template-columns: 1fr;
    width: 100vw;
    padding: 5rem 0 7.4rem;
    background: #f1f0ed;
    border-top: .6rem solid #fff;
  }

  .medicalItem.reverse {
    background: #eee6d8;
  }

  .medicalItem:first-child {
    border-top: 0;
  }

  .medicalItem + .medicalItem {
    margin-top: 0;
  }

  .medicalItem > div {
    display: contents;
    padding: 0;
  }

  .medicalItem > div::before {
    content: none;
  }

  .medicalItem .medicalHead {
    order: 1;
    padding: 0;
    background: #6b5a3d;
    clip-path: polygon(0 0, 88% 0, 100% 100%, 0 100%);
  }

  .medicalItem:nth-child(even) .medicalHead {
    background: #98762b;
    clip-path: polygon(8% 0, 100% 0, 100% 100%, 0 100%);
  }

  .medicalItem h3 {
    margin: 0;
    padding: 1rem 4.1rem 1rem;
    background: transparent;
    clip-path: none;
    color: #fff;
    font-family: var(--mincho);
    font-size: 5.5rem;
    font-weight: 400;
    line-height: 1.2;
  }

  .medicalItem:nth-child(even) h3 {
    background: transparent;
    clip-path: none;
    padding-left: 1rem;
  }

  .medicalItem h3 small {
    margin-left: .8rem;
    font-size: 2.4rem;
  }

  .medicalItem p {
    margin: 0;
    padding: 1rem 4.1rem 0.5rem;
    background: transparent;
    color: #fff;
    border-top: .1rem solid rgba(255, 255, 255, .35);
    font-family: var(--mincho);
    font-size: 3.5rem;
    font-weight: 400;
    line-height: 1.55;
  }

  .medicalItem:nth-child(even) p {
    padding-left: 1rem;
    background: transparent;
      letter-spacing: -0.2rem;
  }

  .medicalItem img,
  .medicalItem.reverse img {
    order: 2;
    width: calc(100% - 5.6rem);
    height: auto;
    margin: 2.8rem auto 0;
    object-fit: contain;
  }

  .medicalItem .medicalBody {
    order: 3;
    display: block;
    margin: 0;
    color: #4a4036;
    font-family: var(--gothic);
    font-size: 2.45rem;
    font-weight: 400;
    line-height: 2.08;
  }

  .medicalItem a {
    order: 4;
    display: block;
    width: fit-content;
    min-width: 31rem;
    margin: 0 auto 0;
    padding: 1.5rem 3.5rem;
    color: #7b663e;
    border: .1rem solid #b9ab8b;
    background: transparent;
    font-size: 3.2rem;
    font-weight: 700;
    text-align: center;
  }

  .medicalItem a::after {
    content: "竊・;
    margin-left: 1.8rem;
  }

  .featureGrid article {
    display: flex;
    flex-direction: column;
    grid-template-columns: 1fr;
    margin-top: 0;
  }

  .feature {
    padding: 10.6rem 0 8.8rem;
    background: #fbfcfc;
  }

  .feature .inner {
    width: 67.2rem;
    max-width: calc(100% - 5rem);
  }

  .feature .enHeading {
    position: relative;
    margin-bottom: 6.5rem;
  }

  .feature .enHeading::before,
  .feature .enHeading::after {
    content: "";
    position: absolute;
    top: 2.5rem;
    width: 11.5rem;
    height: .1rem;
    background: #9b8f7d;
  }

  .feature .enHeading::before {
    left: -2.4rem;
  }

  .feature .enHeading::after {
    right: -2.4rem;
  }

  .feature .enHeading span {
    color: #8a6e4f;
    font-size: 8.4rem;
    line-height: 1;
    font-weight: 300;
  }

  .feature .enHeading span::first-letter {
    color: #e7b67f;
  }

  .feature .enHeading small {
    margin-top: 1.4rem;
    color: var(--ink);
    font-size: 3.7rem;
    font-weight: 700;
    line-height: 1;
  }

  .featureText {
    display: contents;
  }

  .featureHead {
    display: block;
  }

  .featureHead {
    display: flex;
    align-items: flex-start;
    order: 1;
    width: 100%;
    padding-bottom: 1.3rem;
    border-bottom: 0.4rem solid #22b8b3;
    align-items: center;
  }

  .featureGrid article + article {
    margin-top: 6.3rem;
  }

  .featureGrid article:nth-child(2) {
    margin-top: 6.5rem;
  }

  .featureGrid article:nth-child(3) {
    margin-top: 7.1rem;
  }

  .featureGrid article:nth-child(4) {
    margin-top: 6.9rem;
  }

  .featureGrid span {
    flex: 0 0 auto;
    color: #25b9b3;
    font-family: var(--mincho);
    font-size: 10rem;
    line-height: .9;
  }

  .featureGrid h3 {
    margin: .6rem 0 0 2.2rem;
    padding: 0;
    border-bottom: 0;
    color: var(--turquoise-dark);
    font-family: var(--mincho);
    font-size: 4.3rem;
    font-weight: 700;
    line-height: 1.18;
  }

  .featureGrid img {
    display: block;
    order: 2;
    width: 57.7rem;
    height: auto;
    margin: 3.7rem auto 0;
    object-fit: contain;
  }

  .featureGrid p {
    order: 3;
    margin: 3.1rem 0 0;
    color: var(--ink);
    font-size: 2.95rem;
    font-weight: 400;
    line-height: 2.08;
  }

  .featureGrid p b {
    display: block;
    margin-bottom: 1.1rem;
    color: #2f2924;
    font-size: 3rem;
    font-weight: 700;
    line-height: 1.55;
  }

  .featureGrid article:nth-child(2) img {
    margin-top: 3.9rem;
  }

  .featureGrid article:nth-child(3) img,
  .featureGrid article:nth-child(4) img {
    margin-top: 3.5rem;
  }

  .commitment {
    overflow: hidden;
    padding: 0 0 7.8rem;
    background: #f3f3f3;
  }

  .commitment .inner {
    position: relative;
    width: 100%;
    max-width: none;
  }

  .commitment picture,
  .commitmentBg {
    display: block;
  }

  .commitmentBg {
    width: 100%;
    height: 80.6rem;
    object-fit: cover;
    object-position: center top;
  }

  .commitment .verticalHeading {
    position: absolute;
    z-index: 2;
    top: 4.7rem;
    left: 50%;
    /* width: 21.4rem; */
    /* height: 52.5rem; */
    margin: 0;
    padding: 3rem 3rem;
    transform: translateX(-50%);
    background: rgba(255,255,255,.9);
    color: #a78822;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--mincho);
    font-size: 5.1rem;
    font-weight: 600;
    line-height: 1;
    writing-mode: vertical-rl;
    text-align: center;
    white-space: nowrap;
    /* vertical-align: middle; */
  }

  .commitmentWatermark {
    display: block;
    position: absolute;
    z-index: 1;
    top: 38.7rem;
    left: -2.2rem;
    color: rgba(173, 132, 45, .2);
    font-family: var(--mincho);
    font-size: 15.7rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
    pointer-events: none;
  }

  .commitment .commitGrid:not(.commitGridPc) {
    display: none;
  }

  .commitGridPc {
    position: relative;
    z-index: 3;
    display: block;
    width: 71.6rem;
    margin: -28rem auto 0;
  }

  .commitGridPc .commitCard {
    position: relative;
    display: block;
    margin: 0 0 6.5rem;
    padding: 3.5rem 3rem 4.8rem;
    background: #fff;
    border: 0;
    text-align: center;
  }

  .commitGridPc .commitCard::before,
  .commitGridPc .commitCard::after {
    content: "";
    position: absolute;
    top: 1rem;
    width: 8.6rem;
    height: 9.4rem;
    border-top: .1rem solid #86817a;
    pointer-events: none;
  }

  .commitGridPc .commitCard::before {
    left: 1rem;
    border-left: .1rem solid #86817a;
  }

  .commitGridPc .commitCard::after {
    right: 1rem;
    border-right: .1rem solid #86817a;
  }

  .commitGridPc span::before,
  .commitGridPc span::after {
    content: "";
    position: absolute;
    bottom: 1rem;
    width: 8.6rem;
    height: 9.4rem;
    border-bottom: .1rem solid #86817a;
    pointer-events: none;
  }

  .commitGridPc span::before {
    left: 1rem;
    border-left: .1rem solid #86817a;
  }

  .commitGridPc span::after {
    right: 1rem;
    border-right: .1rem solid #86817a;
  }

  .commitGridPc span {
    display: block;
    color: #7c6247;
    font-family: var(--mincho);
    font-size: 7.7rem;
    font-weight: 400;
    line-height: 1;
  }

  .commitGridPc h3 {
    margin: 2.1rem 0 2.3rem;
    color: var(--ink);
    font-family: var(--mincho);
    font-size: 5rem;
    CORNER-SHAPE: SUPERELLIPSE(0.5);
    line-height: 1.45;
  }

  .commitGridPc b {
    display: block;
    margin: 0;
    padding: 1.35rem 1rem 1.55rem;
    background: #806346;
    color: #fff;
    font-family: var(--gothic);
    font-size: 3.35rem;
    font-weight: 400;
    line-height: 1.25;
  }

  .commitment .commitGridPc img {
    display: block;
    width: 65.6rem;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
  }

  .commitGridPc p {
    margin: 3.2rem 1.2rem 0;
    color: #51483f;
    text-align: left;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 2.05;
  }

  .commitGridPc p + p {
    margin-top: 4.7rem;
  }

  .commitGrid img,
  .clinicPhotos img {
    height: 32rem;
  }

  .menuSection {
    padding: 8.4rem 0 9.8rem;
    background: url("../img/top/menu_bg-sp.jpg") center top / 100% auto no-repeat;
  }

  .menuSection .inner {
    width: 100%;
    max-width: none;
    padding: 0 2.4rem;
  }

  .menuSection .enHeading {
    margin: 0 0 4.3rem;
    color: #4a321c;
    text-align: center;
    font-family: var(--mincho);
    font-weight: 400;
  }

  .menuSection .enHeading span {
    display: block;
    color: #4a321c;
    font-size: 7rem;
    font-weight: 400;
    line-height: 1.18;
  }

  .menuSection .enHeading small {
    display: block;
    width: 62rem;
    margin: 3.2rem auto 0;
    color: #4a321c;
    font-size: 4.5rem;
    font-weight: 400;
    line-height: 1.5;
  }

  .menuPc {
    display: block;
  }

  .menuSection > .inner > .menuGroup {
    display: none;
  }

  .menuPcHeading {
    margin: 0 0 3.2rem;
    color: #2e302f;
    font-family: var(--gothic);
    font-size: 3.5rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .menuPcHeadingSymptoms {
    margin-top: 7.6rem;
  }

  .menuPcGrid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5.1rem 4.2rem;
  }

  .menuPcGrid a {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 19.1rem;
    padding: 1.7rem 1rem 1.8rem;
    border: .5rem solid #25b7b2;
    background: #25b7b2;
    color: #fff;
    text-align: center;
    text-decoration: none;
    font-family: var(--gothic);
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.22;
  }

  .menuPcGrid a::before {
    content: "";
    position: absolute;
    inset: .5rem;
    border: .1rem solid rgba(255,255,255,.55);
    pointer-events: none;
  }

  .menuPcGrid a::after {
    content: "";
    position: absolute;
    right: .7rem;
    bottom: .7rem;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 0 2.1rem 2.1rem;
    border-color: transparent transparent #fff transparent;
    pointer-events: none;
  }

  .menuPcGridTreatment a {
    border-color: #25b7b2;
    background: #25b7b2;
  }

  .menuPcGridSymptoms a {
    height: 21.2rem;
    padding-top: 2.9rem;
    border-color: #b18d67;
    background: #b18d67;
    font-size: 2.9rem;
    line-height: 1.35;
  }

  .menuPcGrid img {
    display: block;
    width: 11rem;
    height: 10rem;
    margin: 0 auto .8rem;
    object-fit: contain;
  }

  .menuPcGrid span {
    display: block;
  }

  .greeting {
    padding: 4.5rem 0 0;
    background: #fff;
    overflow: hidden;
  }

  .greeting > .greetingInner {
    display: none;
  }

  .greetingPc {
    display: block;
  }

  .greetingPcHeading {
    position: relative;
    width: fit-content;
    margin: 0 auto 5rem;
    color: #7c6247;
    text-align: center;
    font-family: var(--mincho);
    font-weight: 400;
  }

  .greetingPcHeading::before,
  .greetingPcHeading::after {
    content: "";
    position: absolute;
    top: 2.9rem;
    width: 50vw;
    height: .1rem;
    background: #b9b2a6;
  }

  .greetingPcHeading::before {
    right: calc(100% + 1.6rem);
  }

  .greetingPcHeading::after {
    left: calc(100% + 1.6rem);
  }

  .greetingPcHeading span {
    display: block;
    background: linear-gradient(90deg, #e6b272 0 16%, #7c6247 16% 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-size: 8.3rem;
    font-weight: 300;
    line-height: 1;
    letter-spacing: 0.5rem;
  }

  .greetingPcHeading small {
    display: block;
    margin-top: 1.2rem;
    color: #3d2a22;
    font-size: 3.8rem;
    font-weight: 600;
    line-height: 1.2;
  }

  .greetingPcMain {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .greetingPcCatch {
    order: 1;
    margin: 0;
    padding: 4.2rem 1rem 3.5rem;
    background: #8d7937;
    color: #fff;
    text-align: center;
    font-family: var(--mincho);
    font-size: 6rem;
    font-weight: 600;
    line-height: 1.2;
  }

  .greetingPcDoctor {
    order: 2;
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
  }

  .greetingPcDoctor img {
    display: block;
    width: 95%;
    height: auto;
    object-fit: contain;
    margin: 5% 0 0 auto;
  }

  .greetingPcName {
    position: absolute;
    left: 0;
    bottom: 2.1rem;
    width: 42.1rem;
    padding: 2.1rem 2.2rem 2.3rem 2.4rem;
    background: rgba(82, 73, 65, .9);
    color: #fff;
    font-family: var(--mincho);
  }

  .greetingPcName small {
    display: block;
    margin-bottom: 1.5rem;
    font-size: 3.2rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingPcName span {
    display: flex;
    align-items: center;
    gap: 1.8rem;
  }

  .greetingPcName em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 9.3rem;
    height: 6rem;
    background: #b28753;
    font-style: normal;
    font-size: 3.2rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingPcName b {
    display: block;
    font-size: 4.4rem;
    font-weight: 400;
    line-height: 1;
  }

  .greetingPcBody {
    order: 3;
    padding: 4rem 3.6rem 4.9rem;
    color: #4d4742;
    font-family: var(--gothic);
    font-size: 3rem;
    font-weight: 400;
    line-height: 2;
  }

  .greetingPcBody p {
    margin: 0;
  }

  .greetingPcBody p + p {
    margin-top: 3.9rem;
  }

  .greetingPcCareer,
  .greetingPcInfo {
    background: #f4f4f4;
    color: #4d4742;
    font-family: var(--gothic);
  }

  .greetingPcCareer {
    order: 4;
    position: static;
    width: auto;
    padding: 3.1rem 2.3rem 3.5rem;
  }

  .greetingPcCareer h3,
  .greetingPcInfo h3 {
    margin: 0;
    padding: 1rem 2.2rem 1.2rem;
    background: #806346;
    color: #fff;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.2;
  }

  .greetingPcCareer dl {
    margin: 2rem 0 0 1.3rem;
    font-size: 2.8rem;
    line-height: 1.75;
  }

  .greetingPcCareer dl div {
    display: block;
  }

  .greetingPcCareer dl div + div {
    margin-top: 2.5rem;
  }

  .greetingPcCareer dt,
  .greetingPcCareer dd {
    margin: 0;
    font-weight: 400;
  }

  .greetingPcInfo {
    padding: 3.2rem 2.3rem 6.3rem;
  }

  .greetingPcInfoInner {
    display: block;
    width: auto;
    margin: 0;
  }

  .greetingPcInfoInner section + section {
    margin-top: 5.3rem;
  }

  .greetingPcInfo ul {
    margin: 1.8rem 0 0 1.3rem;
    padding: 0;
    list-style: none;
    color: #4d4742;
    font-family: var(--gothic);
    font-size: 2.8rem;
    font-weight: 400;
    line-height: 1.75;
  }

  .menuGroup,
  .footerLinks,
  .flowList,
  .problemGrid {
    grid-template-columns: repeat(2, 1fr);
  }

  .menuGroup a {
    min-height: 9.8rem;
    font-size: 2.4rem;
  }

  .greetingText h3 {
    padding: 2.5rem 3rem;
    font-size: 3.7rem;
  }

  .doctorCard div {
    position: static;
  }

  .clinicPhotos {
    grid-template-columns: 1fr;
  }

  .accessGrid iframe {
    height: 50rem;
  }

  .access {
    padding: 9.8rem 0 13.2rem;
    background: #fff;
  }

  .accessPc {
    display: block;
  }

  .accessLegacy {
    display: none;
  }

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

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

  .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: 25.8rem;
    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: var(--turquoise);

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

  .accessPcSchedule th {
    background: var(--turquoise);
    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: var(--turquoise);
    font-size: 2.5rem;
    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: var(--turquoise);

    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: 72rem;
    max-width: calc(100% - 3rem);
    margin: 5.4rem auto 0;
  }

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

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

  .footerMain ul {
    columns: 1;
  }

  .lpHero {
    min-height: 98rem;
    padding-top: 22rem;
  }

  .lpHero h1,
  .lpHero p {
    width: 100%;
  }

  .lpHero h1 {
    font-size: 4.6rem;
  }

  .spFixedCta {
    position: fixed;
    z-index: 30;
    bottom: 0;
    left: 0;
    right: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    height: 8.8rem;
    background: #fff;
  }

  .spFixedCta a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    color: #513927;
    font-family: var(--gothic);
    font-size: 2.9rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
  }
  .spFixedCta a.spFixedCtaWeb {
    background: #00b7b7;
    color: #fff;
  }

  .spFixedCtaWebIcon {
    position: relative;
    flex: 0 0 auto;
    width: 3.3rem;
    height: 2.5rem;
    margin: 0 1.8rem 0 0;
    border: .5rem solid #fff;
    border-radius: .1rem;
  }

  .spFixedCtaWebIcon::after {
    content: "";
    position: absolute;
    left: -1rem;
    right: -1rem;
    bottom: -1.25rem;
    height: .4rem;
    background: #fff;
  }

  .spFixedCtaMain {
    font-size: 3.5rem;
  }

  .spFixedCtaSub {
    margin: .2rem 0 0 1.7rem;
    font-size: 2.1rem;
  }

  .spFixedCtaTel {
    gap: 1.2rem;
    background: #fff;
  }

  .spFixedCtaTel img {
    width: 3.5rem;
    height: auto;
  }
}

@media screen and (max-width: 768px) {
  .siteFooter {
    background: #e9ded2;
  }

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

  .footerInfo {
    text-align: center;
  }

  .footerMain .footerLogoPc {
    display: block;
    width: 34.4rem;
    margin: 0 auto;
  }

  .footerLogoSp,
  .footerNavSp {
    display: none;
  }

  .footerInfo p {
    margin: 3rem 0 0;
    color: #2f2b28;
    font-family: var(--gothic);
    font-size: 2.55rem;
    font-weight: 700;
    line-height: 1.35;
    white-space: nowrap;
  }

  .footerInfo p br {
    display: none;
  }

  .footerNavPc {
    display: block;
    width: 63rem;
    max-width: calc(100% - 12rem);
    margin: 5.1rem auto 0;
  }

  .footerNavGroup .nav-title {
    margin: 0 0 3.5rem;
    color: #2f2b28;
    font-family: var(--gothic);
    font-size: 2.7rem;
    font-weight: 700;
    line-height: 1;
  }

  .footerNavGroup ul {
    margin: 0;
    padding: 0;
    list-style: none;
    columns: auto;
  }

  .footerNavGroup li {
    margin: 0;
    color: #2f2b28;
    font-family: var(--gothic);
    font-size: 2.5rem;
    font-weight: 400;
    line-height: 1.35;
  }

  .footerNavGroup a {
    display: inline;
    margin: 0;
    font-size: inherit;
  }

  .footerNavGroup:not(.footerNavMedical) ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(3, auto);
    grid-auto-flow: column;
    gap: 4rem 1em;
  }

  .footerNavMedical {
    margin-top: 7.2rem;
  }

  .footerNavColumns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem 8.6rem;
  }

  .footerNavColumns ul {
    display: grid;
    align-content: start;
    align-self: start;
    grid-auto-rows: max-content;
    gap: 4rem;
  }

  .footerNavColumns ul:nth-child(1),
  .footerNavColumns ul:nth-child(2) {
    grid-column: 1;
  }

  .footerNavColumns ul:nth-child(3) {
    grid-column: 2;
    grid-row: 1 / span 2;
  }

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

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

  .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;
  }

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

  .finalCta {
    padding: 0;
    background: #fbfaf8;
  }

  .finalCtaPc {
    display: none;
  }

  .finalCtaInner {
    display: block;
    width: 100%;
    max-width: none;
    padding: 0;
    background: #fff;
  }

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

  .finalCtaSpPanel {
    padding: 4.9rem 0 7.4rem;
    background: rgba(255,255,255,.95);
    text-align: center;
  }

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

  .finalCtaSpPanel h2 img {
    width: 10.8rem;
    margin: 0 0 2.4rem;
  }

  .finalCtaSpPanel h2 span:first-of-type {
    font-size: 5.7rem;
  }

  .finalCtaSpPanel h2 span:last-of-type {
    font-size: 5.5rem;
  }

  p.finalCtaSpCatch {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(100% + 8rem);
    height: 11.6rem;
    margin: 4.2rem -4rem 0;
    background: #b0823a;
    clip-path: polygon(4.4rem 0, 100% 0, calc(100% - 4.4rem) 100%, 0 100%);
    color: #fff;
    font-family: var(--mincho);
    font-size: 4.8rem;
    font-weight: 400;
    line-height: 1;
  }

  .finalCtaSpCatch span {
    display: block;
  }

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

  .finalCtaSpButtons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4.4rem;
    width: 59rem;
    max-width: calc(100% - 7rem);
    margin: 4.5rem auto 0;
    padding: 0;
    background: transparent;
  }

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

  .webCta.finalCtaSpWeb,
  .finalCtaSpWeb {
    position: relative;
    display: flex;
    align-items: center;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 2.6rem;
    background: #25b9b3;
    color: #fff;
    font-family: var(--mincho);
    font-size: 5.6rem;
    font-weight: 400;
    line-height: 1;
    white-space: nowrap;
  }

  .finalCtaSpWeb::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;
  }

  .webCta.finalCtaSpWeb span,
  .finalCtaSpWeb span {
    display: inline-block;
    flex: 0 0 auto;
    font-family: var(--mincho);
    font-size: 3.2rem;
    font-weight: 400;
    line-height: 1;
  }

  .finalCtaSpTel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: .3rem solid #7b5a32;
    background: #fff;
    color: #4a3820;
  }

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

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

  .finalCtaSpTel img {
    width: 4.4rem;
    flex: 0 0 auto;
  }
}





