@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300..700;1,300..700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Yusei+Magic&display=swap");
/****** Elad Shechter's RESET *******/
/*** box sizing border-box for all elements ***/
*,
*::before,
*::after {
  box-sizing: border-box;
}

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

button {
  background-color: transparent;
  color: inherit;
  border-width: 0;
  padding: 0;
  cursor: pointer;
}

figure {
  margin: 0;
}

input::-moz-focus-inner {
  border: 0;
  padding: 0;
  margin: 0;
}

ul, ol, dl, dd {
  margin: 0;
  padding: 0;
  list-style: none;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
}

p {
  margin: 0;
}

cite {
  font-style: normal;
}

fieldset {
  border-width: 0;
  padding: 0;
  margin: 0;
}

/* ------------------------------------
// base
------------------------------------ */
html {
  font-size: 62.5%;
  /*
  	*/
}
@media screen and (max-width: 767px) {
  html {
    font-size: 2.6666666667vw;
  }
}

body {
  color: #696969;
  font-family: "Zen Kaku Gothic New", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-size: 1.6rem;
  font-size: clamp(1.6rem, 1.428vw, 1.8rem);
  font-weight: 400;
  line-height: 1.6;
  margin: 0;
}

a:link {
  text-decoration: none;
}
a:visited {
  text-decoration: none;
}
a:hover {
  text-decoration: none;
}
a:active {
  text-decoration: none;
}

a {
  transition: 0.3s;
}

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

@media (min-width: 1023px) {
  a[href^="tel:"] {
    cursor: default;
    pointer-events: none;
  }
}
@media screen and (max-width: 768px) {
  body {
    min-width: 0;
  }
}
/* // screen
----------------------------------- */
.pc {
  display: block;
}

.md {
  display: none;
}

.sp {
  display: none;
}

@media screen and (max-width: 1024px) {
  .pc {
    display: block;
  }
  .md {
    display: block;
  }
  .sp {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .pc {
    display: none;
  }
  .md {
    display: block;
  }
  .sp {
    display: block;
  }
}
/* header
------------------------------------ */
#header {
  padding: 1rem 2rem 1rem;
  max-width: calc(1200px + 4rem);
  margin: 0 auto;
  display: grid;
  align-items: center;
  grid-template-columns: 1fr 1fr max-content;
  grid-template-areas: "lead lead homelink" "logo address link";
  gap: 1rem 2rem;
  color: #473F3F;
}
#header .lead {
  grid-area: lead;
  font-size: clamp(1.2rem, 1.1vw, 1.6rem);
  width: 100%;
}
#header .homelink {
  grid-area: homelink;
  font-size: clamp(1.2rem, 1.1vw, 1.6rem);
}
#header .homelink a {
  box-shadow: 0 0 5px #CCC;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  background: #F7C0BA;
  width: fit-content;
  padding: 0.25rem 2rem;
  color: #666;
  font-weight: 500;
  border-radius: 50vh;
  margin: 0 0 0 auto;
}
#header .homelink a:before {
  content: "";
  width: clamp(1.2rem, 1.1vw, 1.6rem);
  aspect-ratio: 1.4/2;
  display: block;
  mask: url(/implant/lib/img/icon_back.svg) no-repeat 0 center/contain;
  background: #666;
}
#header .address {
  grid-area: address;
  gap: 0.5rem;
  color: #000;
  position: relative;
  padding-left: clamp(2.4rem, 1.7vw, 2.4rem);
  font-size: clamp(1.2rem, 1.1vw, 1.6rem);
  display: flex;
  flex-wrap: wrap;
  gap: 0 1em;
}
#header .address span {
  display: inline-block;
}
#header .address::before {
  display: block;
  content: "";
  width: clamp(2.4rem, 1.7vw, 2.4rem);
  aspect-ratio: 24/19;
  background: url(/implant/lib/img/icon_mappoint.webp) no-repeat center/contain;
  position: absolute;
  left: 0;
  top: 3px;
}
#header .logo {
  max-width: 305px;
  grid-area: logo;
}
#header .link {
  grid-area: link;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
#header .link dl dt {
  font-size: clamp(1.4rem, 1vw, 1.4rem);
  font-weight: bold;
  display: flex;
  gap: 3px;
  align-items: center;
}
#header .link dl dt:before {
  content: "";
  width: 4px;
  border-radius: 50vh;
  aspect-ratio: 1;
  background: #473F3F;
}
#header .link dl dd {
  display: flex;
  align-items: center;
  gap: 10px;
}
#header .link dl dd::before {
  content: "";
  width: 25px;
  aspect-ratio: 1;
}
#header .link li.call dl dd {
  font-family: "Roboto", sans-serif;
  font-size: clamp(2rem, 1.9vw, 2.8rem);
  font-weight: 700;
}
#header .link li.call dl dd:before {
  background: url(/implant/lib/img/icon_call.webp) no-repeat center/contain;
}
#header .link li.reserve {
  padding-left: 2rem;
  border-left: 1px solid #D9D9D9;
}
#header .link li.reserve dl dd {
  font-size: clamp(2rem, 1.9vw, 2.8rem);
  font-weight: 700;
}
#header .link li.reserve dl dd:before {
  background: url(/implant/lib/img/icon_line.webp) no-repeat center/contain;
}
#header .link li.backhome {
  display: none;
}
@media screen and (max-width: 1024px) {
  #header {
    grid-template-columns: 1fr max-content;
    grid-template-areas: "lead address" "lead homelink" "logo link";
  }
  #header .address {
    margin: 0 0 0 auto;
  }
}
@media screen and (max-width: 768px) {
  #header {
    display: block;
  }
  #header .logo {
    max-width: calc(100% - 70px);
  }
  #header .address, #header .homelink {
    display: none;
  }
  #header .link {
    display: none;
  }
  #header .lead {
    display: none;
  }
}

/* overlayMenuBtn
------------------------------------------------------*/
#btn_menu {
  display: none;
}

#menu {
  display: none;
}

@media screen and (max-width: 768px) {
  #btn_menu {
    position: fixed;
    display: block;
    right: 1rem;
    top: 2rem;
    z-index: 100;
    width: 50px;
    height: 50px;
    aspect-ratio: 1/1;
    border: 1px solid #315774;
    border-radius: 10px;
    padding: 10px 9px 10px 9px;
    background: #FFF;
  }
  #btn_menu > div {
    position: relative;
    height: 100%;
  }
  #btn_menu > div span {
    transition: 0.3s;
    display: block;
    height: 4px;
    border-radius: 50vh;
    position: absolute;
    right: 0;
  }
  #btn_menu > div span:nth-child(1) {
    background: #315774;
    width: 100%;
    top: 0;
  }
  #btn_menu > div span:nth-child(2) {
    background: #315774;
    width: 75%;
    top: 50%;
    right: 1px;
    transform: translateY(-50%);
  }
  #btn_menu > div span:nth-child(3) {
    background: #315774;
    width: 100%;
    bottom: 0;
  }
  .js-menuOpen #btn_menu > div span:nth-child(1) {
    top: 50%;
    transform: translateY(-50%) rotate(225deg);
    width: 100%;
  }
  .js-menuOpen #btn_menu > div span:nth-child(2) {
    transform: translateY(-50%) rotate(-225deg);
    opacity: 0;
  }
  .js-menuOpen #btn_menu > div span:nth-child(3) {
    bottom: auto;
    top: 50%;
    transform: translateY(-50%) rotate(-225deg);
  }
  #menu {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 90;
    transform: translateX(-100%);
    opacity: 0;
    transition: opacity 0.3s 0s, transform 0s 0.3s;
    overflow: scroll;
    background: #FFF;
  }
  .js-menuOpen #menu {
    transform: translateX(0);
    opacity: 1;
    transition: opacity 0.3s, transform 0s;
  }
}
/* menu
------------------------------------ */
#menu {
  background: #FFF;
  padding: 1rem 2rem 20px;
}
#menu h2 {
  max-width: calc(100% - 70px);
  margin: 0 auto 3rem 0;
}
#menu ul {
  border-top: 1px dashed #D9D9D9;
}
#menu ul li {
  border-bottom: 1px dashed #D9D9D9;
}
#menu ul li a {
  display: block;
  padding: 1.5rem 2rem 1.5rem 0;
  position: relative;
}
#menu ul li a::after {
  content: "";
  width: 1rem;
  aspect-ratio: 1;
  border-top: 1px solid #434343;
  border-right: 1px solid #434343;
  position: absolute;
  right: 0.5rem;
  top: calc(50% - 0.5rem);
  transform: rotate(45deg);
}
#menu h3 {
  margin: 3rem 0 1rem;
  font-family: "Cormorant", sans-serif;
  font-weight: 400;
  color: #7B96AB;
  text-align: center;
  font-size: clamp(3.2rem, 6.3vw, 9rem);
  line-height: 1;
  letter-spacing: 0.01em;
  text-indent: 0.01em;
}
#menu .link {
  margin: 2rem 0 2rem;
}
#menu .link a {
  display: flex;
  gap: 0.25rem;
  justify-content: space-between;
  align-items: center;
  background: #FFF;
  padding: 5px 10px;
  width: 100%;
  box-shadow: 0 0 5px #CCC;
  border-radius: 5px;
}
#menu .link a::after {
  content: "";
  width: 1.7rem;
  aspect-ratio: 1;
  background: url(/implant/lib/img/icon_link_01.webp) no-repeat center/contain;
  display: block;
}
#menu .link a:hover {
  background: #315774;
  color: #FFF;
}
#menu .link a span {
  font-size: 80%;
  display: inline-block;
}
#menu .backhome {
  border: 1px solid #000;
  padding: 0.5rem 2rem;
  border-radius: 5px;
  background: linear-gradient(180deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 36%, rgb(241, 242, 247) 71%, rgb(242, 242, 248) 100%);
}

/* vi
------------------------------------ */
#vi {
  max-width: 1440px;
  margin: 0 auto;
  position: relative;
}
#vi .text {
  position: absolute;
  left: min(10rem, max(2rem, 50vw - 600px));
  top: min(20rem, 13.9vw);
}
#vi h1 {
  color: #A84906;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(2rem, 3.3vw, 4.8rem);
  line-height: 1.4;
  margin-bottom: 2rem;
}
#vi .lead {
  color: #A84906;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(1.4rem, 1.4vw, 2rem);
  line-height: 1.4;
  font-weight: 600;
  margin-bottom: 4rem;
}
#vi .pick li {
  font-size: clamp(1.4rem, 1.7vw, 2.4rem);
  width: fit-content;
  padding: 5px 10px;
  background: #A84906;
  color: #FFF;
}
#vi .pick li + li {
  margin-top: 1rem;
}
@media screen and (max-width: 768px) {
  #vi .text {
    top: min(8rem, 12vw);
    left: 1rem;
  }
  #vi h1 {
    font-size: clamp(1.8rem, 5.3vw, 2rem);
    font-weight: 700;
  }
  #vi .lead {
    width: 60%;
    font-size: clamp(1.2rem, 3.7vw, 1.4rem);
    margin-bottom: 2rem;
  }
  #vi .pick li {
    font-size: clamp(1.4rem, 4vw, 1.5rem);
    padding: 0.25rem 1rem;
  }
  #vi .pick li + li {
    margin-top: 0.25rem;
  }
}

/* contents
------------------------------------ */
#contents {
  margin: 0 auto;
}
#contents .stbgblue01 {
  background: #315774;
  color: #FFF;
  padding: 0 3px;
  font-weight: 600;
}
#contents .stbgblue02 {
  background: #7B96AB;
  color: #FFF;
  padding: 0 3px;
  font-weight: 600;
}
#contents .stbgbrwn01 {
  background: #7B96AB;
  color: #FFF;
  padding: 0 3px;
  font-weight: 600;
}
#contents hgroup.htype01 {
  border-bottom: 10px solid #7B96AB;
  padding: 2rem 2rem;
  background: rgba(123, 150, 171, 0.15);
  text-align: center;
  font-size: clamp(2.2rem, 2.8vw, 4rem);
  font-weight: 600;
  font-family: "Zen Old Mincho", serif;
  letter-spacing: 0.09em;
  text-indent: 0.09em;
}
#contents hgroup.htype01 .title {
  color: #527491;
  font-weight: 800;
  font-size: clamp(3rem, 4.4vw, 6.4rem);
}
#contents hgroup.htype02 {
  border-bottom: 10px solid #7B96AB;
  padding: 2rem 2rem;
  background: rgba(123, 150, 171, 0.15);
  text-align: center;
  font-size: clamp(3rem, 2.8vw, 4rem);
  font-weight: 600;
  font-family: "Zen Old Mincho", serif;
  line-height: 1.3;
  margin: 0 -2rem 5rem -2rem;
  letter-spacing: 0.09em;
  text-indent: 0.09em;
}
#contents hgroup.htype02 .title strong {
  color: #527491;
  font-weight: 800;
  font-size: clamp(3rem, 4.4vw, 6.4rem);
}
#contents .case_header {
  margin-bottom: 5rem;
}
#contents .case_header p {
  max-width: 750px;
  margin: 0 auto;
}
#contents .case_header p + p {
  margin-top: 2rem;
}
#contents .case_header p strong.st01 {
  color: #DC0741;
  font-weight: bold;
  background: linear-gradient(transparent 70%, #FFD8D8 70%);
  font-size: clamp(2.4rem, 1.7vw, 2.4rem);
  display: inline;
  padding: 0 0.5rem;
}
#contents .case_header p.lead {
  margin-bottom: 4rem;
  font-family: "Zen Old Mincho", serif;
  max-width: 1200px;
  text-align: center;
  color: #A84906;
  font-size: clamp(2.4rem, 1.7vw, 2.4rem);
  line-height: 1.4;
}
#contents .case_header p.lead strong {
  font-size: clamp(3.2rem, 2.2vw, 3.2rem);
}
@media screen and (max-width: 768px) {
  #contents .case_header {
    margin-bottom: 5rem;
  }
  #contents .case_header p {
    max-width: 750px;
    margin: 0 auto;
  }
  #contents .case_header p + p {
    margin-top: 2rem;
  }
  #contents .case_header p strong.st01 {
    font-size: clamp(2rem, 1.4vw, 2rem);
  }
  #contents .case_header p.lead {
    font-weight: 600;
    font-size: clamp(2rem, 1.4vw, 2rem);
    text-align: justify;
  }
  #contents .case_header p.lead strong {
    font-size: clamp(2.6rem, 1.8vw, 2.6rem);
  }
}
#contents .case_study {
  max-width: 1200px;
  margin: 0 auto;
  padding: 5rem 2rem;
  border: 1px solid #99B2CE;
  border-radius: 15px;
  background: #FFFEF0;
  position: relative;
}
#contents .case_study hgroup {
  font-family: "Zen Old Mincho", serif;
  margin-bottom: 3rem;
}
#contents .case_study hgroup p {
  position: absolute;
  top: 0;
  padding: 2px 2rem 5px;
  line-height: 1;
  background: #315774;
  color: #FFF;
  font-weight: 500;
  font-size: clamp(2rem, 1.7vw, 2.4rem);
  border-radius: 50vh;
  text-align: center;
  text-transform: uppercase;
  left: 50%;
  transform: translate(-50%, -50%);
}
#contents .case_study hgroup h3 {
  text-align: center;
  color: #434343;
  font-size: clamp(2.4rem, 2.2vw, 3.2rem);
  letter-spacing: 0.09em;
  text-indent: 0.09em;
}
#contents .case_goal {
  margin: 3rem auto 5rem auto;
  background: #DFF2F3;
  padding: 1rem 2rem 1rem 2rem;
  display: grid;
  place-content: center;
  align-content: center;
}
#contents .case_goal p {
  font-size: clamp(2rem, 1.4vw, 2rem);
  text-align: center;
}
#contents .case_goal .board {
  width: fit-content;
  display: grid;
  grid-template-columns: clamp(12rem, 11.6vw, 16.7rem) auto;
  place-content: center;
  align-content: center;
  align-self: center;
  position: relative;
}
#contents .case_goal .board::before {
  content: "";
  width: clamp(14rem, 13vw, 18.7rem);
  aspect-ratio: 167/257;
  display: block;
  background: url(/implant/lib/img/case_goal.webp) no-repeat center/contain;
  z-index: 2;
  align-self: end;
}
#contents .case_goal .board p {
  align-self: center;
  border: 10px solid #00989A;
  min-height: 5em;
  display: grid;
  align-content: center;
  background: #FFF;
  padding: 2rem 2rem;
  text-align: left;
  font-size: clamp(2.2rem, 2.4vw, 3.4rem);
  font-weight: 700;
  margin-bottom: 0;
  line-height: 1.4;
  color: #315774;
}
@media screen and (max-width: 768px) {
  #contents .case_goal {
    margin: 3rem 0 5rem 0;
    background: #DFF2F3;
    padding: 1rem;
    display: grid;
    grid-template-columns: 1fr;
  }
  #contents .case_goal p {
    text-align: left;
    margin-bottom: 2rem;
  }
  #contents .case_goal .board {
    width: 100%;
    max-width: 100%;
    display: grid;
    grid-template-columns: 1fr;
  }
  #contents .case_goal .board::before {
    width: 8rem;
    aspect-ratio: 165/141;
    background: url(/implant/lib/img/case_goal_sp.webp) no-repeat center/contain;
    order: 2;
    margin: -4rem 0 0 auto;
    order: 2;
  }
  #contents .case_goal .board p {
    order: 1;
    border: 5px solid #00989A;
    padding: 1rem 1rem;
    font-size: clamp(2.2rem, 1.7vw, 2.4rem);
  }
}
@media screen and (max-width: 768px) {
  #contents > section {
    margin-bottom: 3rem;
  }
}

/* container
------------------------------------ */
#container {
  position: relative;
}
#container #fixedNavi {
  display: block;
  position: sticky;
  top: 0;
  left: 0;
  z-index: 3;
}
@media screen and (max-width: 768px) {
  #container #fixedNavi {
    position: relative;
  }
}

/* basicConcept
------------------------------------ */
#basicConcept {
  margin: 10rem auto;
  max-width: calc(1200px + 4rem);
  position: relative;
  padding: calc(2.9166666667% + 2rem) 2rem;
}
#basicConcept:before, #basicConcept::after {
  content: "";
  width: 100%;
  aspect-ratio: 1200/35;
  display: block;
  position: absolute;
  left: 0;
}
#basicConcept::before {
  background: url(/implant/lib/img/kazarikei2.webp) no-repeat top/contain;
  top: 0;
}
#basicConcept::after {
  background: url(/implant/lib/img/kazarikei.webp) no-repeat top/contain;
  bottom: 0;
}
#basicConcept h2 {
  color: #315774;
  font-size: clamp(2.4rem, 2.5vw, 3.6rem);
  margin-bottom: 3rem;
  font-family: "Zen Old Mincho", serif;
  text-align: center;
  font-weight: 500;
  position: relative;
}
#basicConcept p {
  max-width: 700px;
  margin: 0 auto;
}
#basicConcept p.lead {
  width: fit-content;
  padding: 2rem;
  color: #FFF;
  font-size: clamp(2rem, 2.2vw, 3.2rem);
  margin-bottom: 3rem;
  font-family: "Zen Old Mincho", serif;
  text-align: center;
  font-weight: 500;
  position: relative;
  background: #7B96AB;
}
#basicConcept .movie {
  max-width: 650px;
  margin: 3rem auto;
}
#basicConcept .movie video {
  width: 100%;
}
#basicConcept .readtext h3 {
  text-align: center;
}
#basicConcept .readtext .textbox {
  max-width: 900px;
  padding: 2rem 1rem;
  margin: 0 auto 2rem;
  background: rgba(123, 150, 171, 0.15);
  border-radius: 5px;
}
#basicConcept .readtext .textbox .scrollbox {
  overflow-y: scroll;
  height: 12em;
  padding: 0 1rem;
  scrollbar-width: 16px;
  scrollbar-color: #315774 #FFFFFF;
  scrollbar-width: thin;
}
#basicConcept .readtext .textbox .scrollbox p {
  line-height: 1.7;
}
#basicConcept .readtext .textbox .scrollbox p + p {
  margin-top: 1.5em;
}
@media screen and (max-width: 768px) {
  #basicConcept {
    padding: calc(6.7924528302% + 1rem) 2rem;
    margin: 5rem auto 2rem;
  }
  #basicConcept:before, #basicConcept::after {
    aspect-ratio: 530/36;
  }
  #basicConcept::before {
    background: url(/implant/lib/img/kazarikei2_sp.webp) no-repeat top/contain;
    top: 0;
  }
  #basicConcept::after {
    background: url(/implant/lib/img/kazarikei_sp.webp) no-repeat top/contain;
    bottom: 0;
  }
}

/* profile
------------------------------------ */
#profile {
  max-width: calc(1200px + 4rem);
  padding: 0 2rem;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 38% 1fr;
  gap: 2rem 2rem;
  color: #473F3F;
}
#profile .photo {
  grid-row: 1/3;
  align-self: end;
}
#profile hgroup h2 {
  font-size: clamp(2rem, 2.2vw, 3.2rem);
  margin-bottom: 2rem;
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  position: relative;
  line-height: 1.2;
}
#profile hgroup h2 span {
  font-size: clamp(2.4rem, 2.5vw, 3.6rem);
}
#profile hgroup .en {
  color: rgba(123, 150, 171, 0.5);
  font-size: clamp(3.5rem, 4.4vw, 6.4rem);
  font-family: "Cormorant", sans-serif;
  font-weight: 500;
  line-height: 1;
  position: relative;
}
#profile .data .history li {
  font-size: clamp(1.6rem, 1.4vw, 2rem);
  margin-bottom: 0.5rem;
  font-family: "Zen Old Mincho", serif;
  padding-left: 2rem;
  text-indent: -2rem;
}
#profile .data .history li:before {
  content: "— ";
}
#profile .data .important {
  margin-top: 5rem;
}
#profile .data .important dt {
  font-size: clamp(1.8rem, 2.1vw, 3rem);
  margin-bottom: 2rem;
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  position: relative;
  line-height: 1.2;
}
#profile .data .important dd ul li {
  background: #7B96AB;
  color: #FFF;
  width: fit-content;
  font-size: clamp(1.8rem, 1.5vw, 2.2rem);
  margin-bottom: 1rem;
  padding: 2px 0 2px 2rem;
  text-indent: -2rem;
  line-height: 1.4;
}
#profile .data .important dd ul li:before {
  content: "— ";
}
#profile .data .link {
  margin: 2rem 0 2rem;
}
#profile .data .link a {
  display: flex;
  gap: 0.25rem;
  align-items: center;
  background: #FFF;
  padding: 5px 10px;
  width: fit-content;
  box-shadow: 0 0 5px #CCC;
  border-radius: 5px;
}
#profile .data .link a::after {
  content: "";
  width: 1.7rem;
  aspect-ratio: 1;
  background: url(/implant/lib/img/icon_link_01.webp) no-repeat center/contain;
  display: block;
}
#profile .data .link a:hover {
  background: #315774;
  color: #FFF;
}
#profile .data .link a span {
  font-size: 80%;
  display: inline-block;
}
@media screen and (max-width: 768px) {
  #profile {
    display: grid;
    grid-template-columns: 1fr;
  }
  #profile .photo {
    padding-right: 40%;
    border-bottom: 1px solid #315774;
  }
}

/* keypoint
------------------------------------ */
#keypoint {
  margin-bottom: 10rem;
}
#keypoint .blk_header {
  background: #7B96AB;
  padding: 3rem 2rem;
  margin-bottom: 5rem;
}
#keypoint .blk_header h2 {
  margin-bottom: 1rem;
  font-size: clamp(2.4rem, 2.5vw, 3.6rem);
  font-family: "Zen Old Mincho", serif;
  color: #FFF;
  text-align: center;
  font-weight: 500;
  position: relative;
}
#keypoint .blk_header h2 span {
  font-size: clamp(3.6rem, 4.4vw, 6.4rem);
}
#keypoint .blk_header p {
  text-align: center;
  color: #FFF;
}
#keypoint h3 {
  border-bottom: 1px solid #7B96AB;
  padding: 0 max(2rem, 50vw - 600px) 5px;
  font-size: clamp(2.4rem, 2.5vw, 3.6rem);
  font-family: "Zen Old Mincho", serif;
  display: flex;
  align-items: center;
  gap: 1rem;
}
#keypoint h3:before {
  content: "";
  width: 3rem;
  height: 5px;
  background: #473F3F;
}
#keypoint .clm_1st {
  display: grid;
  grid-template-columns: 1fr 42%;
  gap: 3rem;
}
#keypoint .clm_1st .text {
  padding: 0 2rem 0 max(2rem, 50vw - 600px);
}
#keypoint .clm_2nd {
  display: grid;
  grid-template-columns: 42% 1fr;
  gap: 3rem;
}
#keypoint .clm_2nd .text {
  order: 2;
  padding: 0 max(2rem, 50vw - 600px) 0 2rem;
}
#keypoint .clm_2nd .photo {
  order: 1;
}
#keypoint .reasonclm {
  margin: 3rem 0;
}
#keypoint .reasonclm .text {
  align-self: center;
}
#keypoint .reasonclm .text .lead {
  font-size: clamp(2.2rem, 1.7vw, 2.4rem);
  font-family: "Zen Old Mincho", serif;
  color: #A84906;
  margin-bottom: 2rem;
}
@media screen and (max-width: 768px) {
  #keypoint h3 {
    gap: 0.5rem;
    font-weight: 600;
  }
  #keypoint h3:before {
    width: 2rem;
    height: 3px;
  }
  #keypoint .clm_1st {
    display: grid;
    grid-template-columns: 1fr;
  }
  #keypoint .clm_2nd {
    display: grid;
    grid-template-columns: 1fr;
  }
  #keypoint .clm_2nd .text {
    order: 1;
  }
  #keypoint .clm_2nd .photo {
    order: 2;
  }
}

/* fixedNavi
------------------------------------ */
#fixedNavi {
  background: #7B96AB;
  padding: 1.5rem 2rem;
  margin-bottom: 5rem;
}
#fixedNavi h2 {
  display: grid;
  grid-template-columns: 1fr max-content 1fr;
  align-items: center;
  color: #FFF;
  font-size: clamp(1.8rem, 1.7vw, 2.4rem);
  gap: 2rem;
  letter-spacing: 0.09em;
  text-indent: 0.09em;
}
#fixedNavi h2::before, #fixedNavi h2::after {
  content: "";
  width: 100%;
  height: 1px;
  background: #FFF;
}
#fixedNavi ul {
  margin-top: 0.5rem;
  display: flex;
  justify-content: center;
  gap: 1rem;
}
#fixedNavi ul li {
  position: relative;
}
#fixedNavi ul li:not(:last-child) {
  padding-right: 1rem;
}
#fixedNavi ul li:not(:last-child):after {
  content: "";
  width: 1px;
  height: 90%;
  background: #FFF;
  display: block;
  position: absolute;
  right: 0;
  top: 10%;
}
#fixedNavi ul li a {
  display: block;
  color: #FFF;
}
#fixedNavi ul li a:hover {
  background: #D1DFEF;
}
@media screen and (max-width: 768px) {
  #fixedNavi {
    margin: 0 2rem 5rem;
  }
  #fixedNavi h2 {
    display: block;
    text-align: center;
  }
  #fixedNavi h2::before, #fixedNavi h2::after {
    display: none;
  }
  #fixedNavi ul {
    margin-top: 2rem;
    display: block;
    gap: 1rem;
    border-top: 1px dotted #FFF;
  }
  #fixedNavi ul li {
    border-bottom: 1px dotted #FFF;
    position: relative;
  }
  #fixedNavi ul li:not(:last-child) {
    padding-right: 0;
  }
  #fixedNavi ul li:not(:last-child):after {
    display: none;
  }
  #fixedNavi ul li a {
    padding: 1rem 0 1rem 2rem;
    position: relative;
  }
  #fixedNavi ul li a::after {
    content: "";
    width: 6px;
    aspect-ratio: 1;
    border-right: 2px solid #FFF;
    border-top: 2px solid #FFF;
    display: block;
    transform: rotate(45deg);
    position: absolute;
    left: 0rem;
    top: calc(50% - 3px);
  }
}

/* diagnostic
------------------------------------ */
#diagnostic {
  padding: 0 2rem;
  margin-bottom: 10rem;
}
#diagnostic .case_container {
  max-width: 980px;
  margin: 0 auto;
}
#diagnostic .case_container .sec_01 {
  max-width: 870px;
  margin: 0 auto 3rem;
}
#diagnostic .case_container .sec_01 .image {
  margin-top: 3rem;
}
#diagnostic .case_container .previousopinion {
  display: grid;
  grid-template-columns: 183px auto;
  place-content: center;
  place-items: center;
  gap: 2rem;
  margin: 5rem 0;
}
#diagnostic .case_container .previousopinion p {
  align-self: center;
  padding: 2rem;
  background: #763B12;
  border-radius: 10px;
  color: #FFF;
  font-family: "Yusei Magic", sans-serif;
  font-size: clamp(2.4rem, 2.2vw, 3.2rem);
  letter-spacing: 0.09em;
  text-indent: 0.09em;
}
#diagnostic .case_container .sasakiopinion {
  display: grid;
  grid-template-columns: 20% 1fr;
  grid-template-areas: "photo detail" "goal goal";
}
#diagnostic .case_container .sasakiopinion .finaly {
  color: #315774;
}
#diagnostic .case_container .sasakiopinion .detail {
  grid-area: detail;
  align-self: center;
}
#diagnostic .case_container .sasakiopinion .detail p + p {
  margin-top: 2rem;
}
#diagnostic .case_container .sasakiopinion .goal {
  grid-area: goal;
  background: #315774;
  border-radius: 5px;
  padding: 1.5rem;
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(2.4rem, 2.1vw, 3rem);
  font-weight: 600;
  color: #FFF;
}
#diagnostic .case_container .sasakiopinion .goal strong {
  font-size: clamp(3rem, 2.5vw, 3.6rem);
}
@media screen and (max-width: 768px) {
  #diagnostic {
    margin-bottom: 5rem;
  }
  #diagnostic .case_container .previousopinion {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin: 3rem 0;
  }
  #diagnostic .case_container .previousopinion .icon {
    max-width: 50%;
    margin: 0 auto;
  }
  #diagnostic .case_container .previousopinion p {
    padding: 1rem;
    border-radius: 10px;
    font-size: clamp(2rem, 2.2vw, 3.2rem);
  }
  #diagnostic .case_container .sasakiopinion {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "detail" "photo" "goal";
  }
  #diagnostic .case_container .sasakiopinion .photo {
    max-width: 50%;
    margin: 0 auto;
  }
  #diagnostic .case_container .sasakiopinion .goal {
    font-size: 1.6rem;
  }
  #diagnostic .case_container .sasakiopinion .goal strong {
    font-size: 1.8rem;
  }
}

/* reason
------------------------------------ */
#reason {
  padding: 0 2rem;
  margin-bottom: 10rem;
}
#reason .case_container {
  max-width: 980px;
  margin: 0 auto;
}
#reason .case_container .sec_01 {
  max-width: 870px;
  margin: 0 auto 3rem;
}
#reason .case_container .sec_01 .image {
  margin-bottom: 3rem;
}
#reason .case_container .previousopinion {
  display: grid;
  grid-template-columns: 183px auto;
  place-content: center;
  place-items: center;
  gap: 2rem;
  margin: 5rem 0 3rem;
}
#reason .case_container .previousopinion p {
  align-self: center;
  padding: 2rem;
  background: #4C4C4C;
  border-radius: 10px;
  color: #FFF;
  font-family: "Yusei Magic", sans-serif;
  font-size: clamp(2rem, 1.5vw, 2.2rem);
  letter-spacing: 0.09em;
  text-indent: 0.09em;
}
#reason .case_container .sec_02 {
  margin-bottom: 5rem;
}
#reason .case_container .sec_02 .right {
  text-align: right;
}
#reason .case_container .sec_02 .firstphoto {
  max-width: 500px;
  margin: 2rem auto 0;
  padding: 1.5rem;
  border: 4px solid #DC0741;
}
#reason .case_container .sec_02 .onlyphoto {
  color: #DC0741;
  text-align: center;
  margin: 2rem auto;
  font-weight: 600;
  font-size: clamp(2rem, 2.2vw, 3.2rem);
}
#reason .case_container .sec_02 .imagine {
  padding: 1.5rem;
  border: 4px solid #DC0741;
  position: relative;
}
#reason .case_container .sec_02 .imagine:before {
  content: "";
  display: block;
  width: 8%;
  aspect-ratio: 1/0.8660254038;
  clip-path: polygon(50% 100%, 100% 0, 0 0);
  background: #DC0741;
  position: absolute;
  top: -2rem;
  left: 46%;
}
#reason .case_container .sec_02 .secondphoto {
  max-width: 760px;
  margin: 0 auto 2rem;
}
#reason .case_container .sec_02 .important {
  text-align: center;
}
#reason .case_container .sec_02 .important span {
  color: #DC0741;
  font-weight: 600;
  font-size: clamp(2rem, 1.9vw, 2.8rem);
  background: linear-gradient(transparent 70%, #FFD8D8 70%);
}
#reason .case_container .sasakiopinion {
  display: grid;
  grid-template-columns: 24% 1fr;
  grid-template-areas: "photo detail" "goal goal";
  margin-bottom: 5rem;
}
#reason .case_container .sasakiopinion .finaly {
  color: #315774;
}
#reason .case_container .sasakiopinion .photo {
  align-self: end;
}
#reason .case_container .sasakiopinion .detail {
  grid-area: detail;
  align-self: center;
  padding-bottom: 3rem;
}
#reason .case_container .sasakiopinion .detail p + p {
  margin-top: 2rem;
}
#reason .case_container .sasakiopinion .goal {
  grid-area: goal;
  background: #315774;
  border-radius: 5px;
  padding: 1.5rem;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(2.2rem, 1.7vw, 2.4rem);
  font-weight: 600;
  color: #FFF;
}
#reason .case_container .sasakiopinion .goal strong {
  font-size: clamp(3rem, 3.3vw, 4.8rem);
}
#reason .case_container .sasakiopinion_02 {
  display: grid;
  grid-template-columns: 1fr 24%;
  grid-template-areas: "ba ba" "detail photo" "goal goal";
}
#reason .case_container .sasakiopinion_02 .beforeafter {
  grid-area: ba;
  max-width: 900px;
  margin: 0 auto 5rem;
}
#reason .case_container .sasakiopinion_02 .finaly {
  color: #315774;
}
#reason .case_container .sasakiopinion_02 .photo {
  grid-area: photo;
  align-self: end;
}
#reason .case_container .sasakiopinion_02 .detail {
  grid-area: detail;
  align-self: center;
  padding-bottom: 3rem;
}
#reason .case_container .sasakiopinion_02 .detail p + p {
  margin-top: 2rem;
}
#reason .case_container .sasakiopinion_02 .goal {
  grid-area: goal;
  background: #315774;
  border-radius: 5px;
  padding: 1.5rem;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(2.2rem, 1.7vw, 2.4rem);
  font-weight: 600;
  color: #FFF;
}
#reason .case_container .sasakiopinion_02 .goal strong {
  font-size: clamp(3rem, 3.3vw, 4.8rem);
}
@media screen and (max-width: 768px) {
  #reason {
    margin-bottom: 5rem;
  }
  #reason .case_container .previousopinion {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin: 3rem 0;
  }
  #reason .case_container .previousopinion .icon {
    max-width: 50%;
    margin: 0 auto;
  }
  #reason .case_container .previousopinion p {
    padding: 1rem;
    border-radius: 10px;
    font-size: clamp(2rem, 2.2vw, 3.2rem);
  }
  #reason .case_container .sec_02 {
    margin-bottom: 3rem;
  }
  #reason .case_container .sec_02 .imagine:before {
    width: 14%;
    top: -1.5rem;
    left: 43%;
  }
  #reason .case_container .sec_02 .important {
    text-align: left;
  }
  #reason .case_container .sasakiopinion {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "detail" "photo" "goal";
  }
  #reason .case_container .sasakiopinion .photo {
    max-width: 50%;
    margin: 0 auto;
  }
  #reason .case_container .sasakiopinion .goal {
    font-size: 1.6rem;
  }
  #reason .case_container .sasakiopinion .goal strong {
    font-size: 1.8rem;
  }
  #reason .case_container .sasakiopinion_02 {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "ba" "detail" "photo" "goal";
  }
  #reason .case_container .sasakiopinion_02 .photo {
    max-width: 50%;
    margin: 0 auto;
  }
  #reason .case_container .sasakiopinion_02 .goal {
    font-size: 1.6rem;
  }
  #reason .case_container .sasakiopinion_02 .goal strong {
    font-size: 1.8rem;
  }
}

/* technique
------------------------------------ */
#technique {
  padding: 0 2rem;
}
#technique .case_container {
  max-width: 980px;
  margin: 0 auto;
}
#technique .case_container .sasakiopinion {
  display: grid;
  grid-template-columns: 24% 1fr;
  grid-template-areas: "photo detail" "goal goal";
}
#technique .case_container .sasakiopinion .photo {
  align-self: end;
  grid-area: photo;
}
#technique .case_container .sasakiopinion .detail {
  grid-area: detail;
  align-self: center;
}
#technique .case_container .sasakiopinion .detail .image {
  max-width: 350px;
  margin: 1rem auto 2rem;
}
#technique .case_container .sasakiopinion .detail p {
  text-align: center;
}
#technique .case_container .sasakiopinion .goal {
  grid-area: goal;
  background: #315774;
  border-radius: 5px;
  padding: 1.5rem;
  text-align: center;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(2rem, 1.7vw, 2.4rem);
  font-weight: 600;
  color: #FFF;
}
#technique .case_container .sasakiopinion .goal strong {
  font-size: clamp(3rem, 3.3vw, 4.8rem);
}
#technique .case_container .sec_01 {
  margin: 5rem 0 0;
}
#technique .case_container .sec_01 .photo03 {
  max-width: 700px;
  margin: 0 auto;
}
#technique .case_container .sec_01 .photo03_text {
  margin: 3rem auto;
  text-align: center;
}
#technique .case_container .sec_01 .photo04_box {
  display: flex;
  justify-content: center;
  gap: 2rem;
  margin: 3rem auto;
}
#technique .case_container .sec_01 .photo04_box .photo04 {
  max-width: 240px;
}
#technique .case_container .sec_01 .photo04_box .photo04_text {
  align-self: center;
}
#technique .case_container .sec_01 .photo05 {
  max-width: 700px;
  margin: 0 auto;
}
#technique .case_container .sec_01 .photo05_text {
  margin: 3rem auto;
}
#technique .case_container .sec_01 .photo06 {
  max-width: 700px;
  margin: 0 auto;
}
#technique .case_container .sec_01 .photo06_text {
  margin: 3rem auto;
}
#technique .case_container .sec_02 {
  margin-top: 3rem;
}
#technique .case_container .sec_02 p + p {
  margin-top: 2rem;
}
#technique .case_container .sec_02 p strong {
  color: #315774;
}
#technique .tech_guide {
  margin: 5rem 0;
}
#technique .tech_guide .lead {
  font-family: "Zen Old Mincho", serif;
  color: #315774;
  font-size: clamp(2rem, 2.2vw, 3.2rem);
  text-align: center;
  font-weight: 600;
}
#technique .tech_guide ul {
  background: #7B96AB;
  padding: 1rem;
  width: fit-content;
  margin: 3rem auto;
}
#technique .tech_guide ul li {
  color: #FFF;
  padding-left: 1em;
  text-indent: -1em;
}
#technique .tech_guide ul li:before {
  content: "・";
}
#technique .tech_guide .photo {
  max-width: 828px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  #technique .case_container .sasakiopinion {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas: "detail" "photo" "goal";
  }
  #technique .case_container .sasakiopinion .photo {
    max-width: 50%;
    margin: 0 auto;
  }
  #technique .case_container .sasakiopinion .goal {
    text-align: left;
    font-size: 1.6rem;
  }
  #technique .case_container .sasakiopinion .goal strong {
    font-size: 1.8rem;
  }
  #technique .case_container .sec_01 .photo03_text {
    text-align: left;
  }
  #technique .case_container .sec_01 .photo04_box .photo04 {
    max-width: 40%;
  }
}

/* option
------------------------------------ */
#option .option_guide {
  background: rgba(123, 150, 171, 0.15);
  margin-bottom: 8rem;
  padding: 3rem max(2rem, 50vw - 450px);
}
#option .option_guide .photo {
  margin: 2rem auto 4rem;
}
#option > section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
}
#option h3 {
  color: #315774;
  font-size: clamp(2rem, 2.2vw, 3.2rem);
  margin-bottom: 5rem;
  font-family: "Zen Old Mincho", serif;
  text-align: center;
  font-weight: 500;
  padding-top: calc(2.9166666667% + 1rem);
  position: relative;
}
#option h3:before {
  content: "";
  width: 100%;
  aspect-ratio: 1200/35;
  display: block;
  background: url(/implant/lib/img/kazarikei2.webp) no-repeat top/contain;
  position: absolute;
  top: 0;
  left: 0;
}
#option p.lead {
  max-width: 900px;
  margin: 0 auto;
  text-align: justify;
}
#option .treatmentlist {
  max-width: 980px;
  margin: 5rem auto;
}
#option .treatmentlist h4 {
  background: #E6DE72;
  width: fit-content;
  font-size: clamp(1.6rem, 1.4vw, 2rem);
  border-radius: 0 50vh 50vh 0;
  padding: 0.5rem 1.5rem 0.5rem 1rem;
  margin-bottom: 2rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
#option .treatmentlist h4:before {
  content: "";
  width: 10px;
  aspect-ratio: 1;
  background: url(/implant/lib/img/icon_square_01.webp) no-repeat center/contain;
}
#option .treatmentlist > .treatment {
  margin-bottom: 0.5rem;
}
#option .treatmentlist > .treatment .treatmentlist_head {
  background: #D1DFEF;
  border-radius: 5px;
  padding: 1rem 2rem;
  position: relative;
  display: block;
  grid-template-columns: 1fr 48px;
  gap: 10px 5px;
  padding-right: 55px;
  cursor: pointer;
  min-height: 60px;
}
#option .treatmentlist > .treatment .treatmentlist_head .title {
  font-size: clamp(1.8rem, 1.7vw, 2.4rem);
  color: #315774;
  font-weight: 500;
  grid-column: 1/3;
  line-height: 1.2;
  text-align: justify;
  margin-bottom: 5px;
}
#option .treatmentlist > .treatment .treatmentlist_head .status {
  margin: 0;
  width: fit-content;
  padding: 3px 1.2rem 5px;
  background: #315774;
  color: #FFF;
  border-radius: 50vh;
  font-size: clamp(1.4rem, 1.1vw, 1.6rem);
  line-height: 1.2;
}
#option .treatmentlist > .treatment .treatmentlist_head .status.none {
  padding: 0;
  background: none;
}
#option .treatmentlist > .treatment .treatmentlist_head:after {
  content: "";
  width: 48px;
  aspect-ratio: 48/52;
  display: block;
  background: url(/implant/lib/img/icon_show.webp) no-repeat center/contain;
  align-self: self-end;
  transition: 0.3s;
  position: absolute;
  right: 2rem;
  bottom: calc(50% - 25px);
}
#option .treatmentlist > .treatment .treatmentlist_head.open:after {
  background: url(/implant/lib/img/icon_close.webp) no-repeat center/contain;
}
#option .treatmentlist > .treatment .detail {
  display: none;
  padding: 2rem 0 5rem;
}
#option .treatmentlist > .treatment .detail.treatmentfirst {
  display: block;
}
#option .treatmentlist > .treatment .detail p {
  text-align: justify;
}
#option #option_multiple {
  margin-top: 10rem;
}
#option #option_multiple h3 {
  color: #A84906;
}
#option #option_multiple h3:before {
  mask: url(/implant/lib/img/kazarikei2.webp) no-repeat top/contain;
  position: absolute;
  background: #A84906;
}
#option #option_multiple .treatmentlist > .treatment {
  margin-bottom: 0.5rem;
}
#option #option_multiple .treatmentlist > .treatment .treatmentlist_head {
  background: #EDE2DA;
}
#option #option_multiple .treatmentlist > .treatment .treatmentlist_head .title {
  color: #A84906;
}
#option #option_multiple .treatmentlist > .treatment .treatmentlist_head .status {
  background: #A84906;
}
#option #option_multiple .treatmentlist > .treatment .treatmentlist_head:after {
  mask: url(/implant/lib/img/icon_show.webp) no-repeat center/contain;
  background: #A84906;
}
#option #option_multiple .treatmentlist > .treatment .treatmentlist_head.open:after {
  mask: url(/implant/lib/img/icon_close.webp) no-repeat center/contain;
}
@media screen and (max-width: 768px) {
  #option > section {
    padding: 0 1rem;
  }
  #option h3 {
    margin-bottom: 3rem;
    font-weight: bold;
    padding-top: calc(6.8052930057% + 1rem);
  }
  #option h3:before {
    aspect-ratio: 529/36;
    background: url(/implant/lib/img/kazarikei2_sp.webp) no-repeat top/contain;
  }
  #option .treatmentlist {
    max-width: 980px;
    margin: 3rem auto;
  }
  #option .treatmentlist h4 {
    margin-bottom: 1rem;
  }
  #option .treatmentlist > .treatment {
    margin-bottom: 0.5rem;
  }
  #option .treatmentlist > .treatment .treatmentlist_head {
    padding: 0 0 0 1rem;
    display: grid;
    grid-template-columns: 1fr 20px;
    gap: 10px 10px;
  }
  #option .treatmentlist > .treatment .treatmentlist_head .title {
    padding: 1rem 0 0 0;
    grid-column: 1/2;
    grid-row: 1/2;
    order: 1;
  }
  #option .treatmentlist > .treatment .treatmentlist_head .status {
    padding: 0 1rem 0 1rem;
    order: 3;
    grid-column: 1/2;
    text-align: center;
    grid-row: 2/3;
    margin-bottom: 1rem;
  }
  #option .treatmentlist > .treatment .treatmentlist_head:after {
    order: 2;
    grid-column: 2/3;
    grid-row: 1/3;
    content: "";
    width: 20px;
    aspect-ratio: 33/15;
    display: block;
    background: rgba(49, 87, 116, 0.9);
    align-self: stretch;
    margin-bottom: 0;
    transition: 0.3s;
    border-radius: 0 5px 5px 0;
    position: relative;
    bottom: auto;
    right: auto;
  }
  #option .treatmentlist > .treatment .treatmentlist_head:before {
    position: absolute;
    right: 5px;
    top: 50%;
    content: "";
    width: 10px;
    aspect-ratio: 33/15;
    display: block;
    mask: url(/implant/lib/img/icon_allow_tani.webp) no-repeat center/contain;
    background: #FFF;
    z-index: 2;
  }
  #option .treatmentlist > .treatment .treatmentlist_head.open:after {
    order: 2;
    grid-column: 2/3;
    grid-row: 1/3;
    content: "";
    width: 20px;
    aspect-ratio: 33/15;
    display: block;
    background: rgba(49, 87, 116, 0.9);
    align-self: stretch;
    margin-bottom: 0;
    transition: 0.3s;
    border-radius: 0 5px 5px 0;
  }
  #option .treatmentlist > .treatment .treatmentlist_head.open:before {
    mask: url(/implant/lib/img/icon_allow_yama.webp) no-repeat center/contain;
  }
  #option .treatmentlist > .treatment .detail {
    padding: 2rem 0;
  }
  #option .treatmentlist > .treatment .detail p {
    text-align: justify;
  }
  #option #option_multiple {
    margin-top: 5rem;
  }
  #option #option_multiple h3:before {
    aspect-ratio: 529/36;
    mask: url(/implant/lib/img/kazarikei2_sp.webp) no-repeat top/contain;
  }
  #option #option_multiple .treatmentlist > .treatment .treatmentlist_head:after {
    mask: none;
    background: rgba(168, 73, 6, 0.9);
  }
  #option #option_multiple .treatmentlist > .treatment .treatmentlist_head.open:after {
    mask: none;
  }
}

/* feature
------------------------------------ */
#feature {
  position: relative;
  padding: 5rem 0;
}
#feature:before {
  content: "";
  width: 100vw;
  height: 100vh;
  background: url(/implant/lib/img/feature_bg.webp) no-repeat top center/cover;
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 0;
}
#feature.bg-fixed:before {
  position: fixed;
  left: 0;
  top: 0;
  bottom: auto;
  z-index: 0;
}
#feature h2 {
  position: relative;
  text-align: center;
  margin-bottom: 8rem;
  font-family: "Zen Old Mincho", serif;
  font-size: clamp(2rem, 2.4vw, 3.4rem);
  color: #473F3F;
  line-height: 1.4;
}
#feature h2 span {
  color: #315774;
  font-size: clamp(2.4rem, 2.8vw, 4rem);
  font-weight: 600;
  background: rgba(123, 150, 171, 0.15);
}
#feature .reasonContainer {
  position: relative;
  z-index: 2;
  padding: 0 max(2rem, 50vw - 540px) 5rem;
  color: #434343;
  font-weight: 600;
}
#feature .reasonContainer > section {
  display: flex;
  justify-content: space-between;
  gap: clamp(2rem, 3.5vw, 5rem);
  margin-top: 8rem;
}
#feature .reasonContainer > section > * {
  width: calc(50% - clamp(2rem, 3.5vw, 5rem) / 2);
}
#feature .reasonContainer > section:nth-child(2n-1) {
  flex-direction: row-reverse;
}
#feature .reasonContainer > section .photo img {
  max-width: calc(100% - 30px);
  box-shadow: 30px 30px 0 rgba(123, 150, 171, 0.3);
}
#feature .reasonContainer > section .detail {
  font-family: "Zen Old Mincho", serif;
}
#feature .reasonContainer > section .detail hgroup {
  margin-bottom: 3rem;
}
#feature .reasonContainer > section .detail hgroup .en {
  font-family: "Cormorant", sans-serif;
  color: #527491;
  font-size: clamp(3rem, 2.5vw, 3.6rem);
  border-bottom: 1px solid #527491;
  line-height: 0.7;
  margin-bottom: 2rem;
}
#feature .reasonContainer > section .detail hgroup .en span {
  font-size: clamp(3.4rem, 4.2vw, 6rem);
  font-weight: 300;
  padding-left: 0.5rem;
}
#feature .reasonContainer > section .detail hgroup h3 {
  font-size: clamp(2.4rem, 2.5vw, 3.6rem);
  font-weight: 500;
  line-height: 1.3;
}
@media screen and (max-width: 768px) {
  #feature h2 {
    margin-bottom: 4rem;
    font-size: clamp(2.4rem, 2.4vw, 3.4rem);
  }
  #feature h2 span {
    font-size: clamp(2.8rem, 2.8vw, 4rem);
  }
  #feature .reasonContainer {
    padding: 0 max(2rem, 50vw - 540px) 5rem;
  }
  #feature .reasonContainer > section {
    display: block;
    margin-top: 8rem;
  }
  #feature .reasonContainer > section > * {
    width: 100%;
  }
  #feature .reasonContainer > section:nth-child(2n-1) {
    flex-direction: row-reverse;
  }
  #feature .reasonContainer > section .photo {
    margin-top: 2rem;
  }
  #feature .reasonContainer > section .photo img {
    max-width: calc(100% - 15px);
    box-shadow: 15px 15px 0 rgba(123, 150, 171, 0.3);
  }
  #feature .reasonContainer > section .detail hgroup .en span {
    font-size: clamp(6rem, 4.2vw, 6rem);
  }
}

/* price
------------------------------------ */
#price {
  background: url(/implant/lib/img/price_bg_01.webp) no-repeat right/cover;
  padding: 10rem 0 10rem 0;
  position: relative;
}
#price .box {
  background: rgba(255, 255, 255, 0.8);
  padding: 5rem 5rem 5rem max(2rem, 50vw - 600px);
  width: fit-content;
}
#price .box hgroup {
  text-align: center;
  margin-bottom: 3rem;
}
#price .box hgroup .en {
  font-family: "Cormorant", sans-serif;
  font-size: clamp(3.2rem, 4.4vw, 6.4rem);
  font-weight: 500;
  color: #7B96AB;
  line-height: 1;
}
#price .box hgroup h2 {
  font-size: clamp(2.4rem, 2.2vw, 3.2rem);
  font-family: "Zen Old Mincho", serif;
}
#price .box table {
  border: 1px solid #7B96AB;
  padding: 1rem;
  border-radius: 5px;
  border-collapse: separate;
  border-spacing: 6px;
}
#price .box table thead th {
  background: #7B96AB;
  color: #FFF;
  padding: 5px 10px;
  font-weight: normal;
}
#price .box table tbody th, #price .box table tbody td {
  padding: 5px 10px;
  text-align: left;
  font-weight: normal;
  background: #D1DFEF;
}
#price .box table tbody td {
  text-align: center;
}
@media screen and (max-width: 768px) {
  #price {
    padding: 5rem 2rem;
  }
  #price .box {
    padding: 2rem;
  }
  #price .box hgroup {
    margin-bottom: 2rem;
  }
  #price .box table {
    width: 100%;
    padding: 4px;
    border-radius: 5px;
    border-collapse: separate;
    border-spacing: 3px;
  }
}

/* footer
------------------------------------ */
footer {
  padding: 10rem max(2rem, 50vw - 600px);
  background: rgba(123, 150, 171, 0.15);
  color: #434343;
}
footer h2 {
  font-family: "Cormorant", sans-serif;
  font-weight: 400;
  color: #7B96AB;
  text-align: center;
  font-size: clamp(3.2rem, 6.3vw, 9rem);
  line-height: 1;
  letter-spacing: 0.01em;
  text-indent: 0.01em;
}
footer .lead {
  text-align: center;
  margin-bottom: 2rem;
}
footer .instalink {
  margin-bottom: 8rem;
  display: flex;
  justify-content: center;
  gap: 2rem;
}
footer .instalink li a {
  font-size: clamp(1.4rem, 1.1vw, 1.6rem);
  padding: 1rem 2rem;
  border-radius: 50vh;
  background: #FFF;
  box-shadow: 0 0 5px #CCC;
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
footer .instalink li a::before {
  content: "";
  width: 2rem;
  aspect-ratio: 1;
  background: url(/implant/lib/img/icon_instagram.webp) no-repeat center/contain;
  display: block;
}
footer .instalink li a:hover {
  background: #315774;
  color: #FFF;
}
@media screen and (max-width: 768px) {
  footer {
    padding: 5rem max(2rem, 50vw - 600px);
  }
  footer h2 {
    margin-bottom: 1rem;
  }
  footer .lead {
    text-align: justify;
    margin-bottom: 3rem;
  }
  footer .instalink {
    margin-bottom: 3rem;
    display: block;
  }
  footer .instalink li {
    margin-bottom: 1rem;
  }
}

#footer {
  margin-top: 5rem;
  display: grid;
  grid-template-columns: 40% 55%;
  gap: 1rem 5%;
  grid-template-areas: "data map" "data timetable";
  /* clinicdata */
  /* map */
  /* timetable */
}
#footer .clinicdata {
  grid-area: data;
}
#footer .clinicdata .link {
  margin: 2rem 0 2rem;
}
#footer .clinicdata .link a {
  display: flex;
  gap: 0.25rem;
  align-items: center;
  background: #FFF;
  padding: 5px 10px;
  width: fit-content;
  box-shadow: 0 0 5px #CCC;
  border-radius: 5px;
}
#footer .clinicdata .link a::after {
  content: "";
  width: 1.7rem;
  aspect-ratio: 1;
  background: url(/implant/lib/img/icon_link_01.webp) no-repeat center/contain;
  display: block;
}
#footer .clinicdata .link a:hover {
  background: #315774;
  color: #FFF;
}
#footer .clinicdata .link a span {
  font-size: 80%;
  display: inline-block;
}
#footer .clinicdata .call {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  font-weight: bold;
}
#footer .clinicdata .call dd {
  font-size: clamp(2.4rem, 2.5vw, 3.6rem);
}
#footer .clinicdata .reserve {
  margin-top: 2rem;
}
#footer .clinicdata .reserve a {
  padding: 1.5rem 1rem 1.5rem 2rem;
  background: #7B96AB;
  color: #FFF;
  font-weight: bold;
  line-height: 1.3;
  display: grid;
  grid-template-columns: 5rem 1fr;
  gap: 0 1rem;
  font-size: clamp(2rem, 1.7vw, 2.4rem);
  position: relative;
}
#footer .clinicdata .reserve a span {
  font-size: 75%;
}
#footer .clinicdata .reserve a:hover {
  background: #315774;
}
#footer .clinicdata .reserve a::before {
  content: "";
  width: 5rem;
  aspect-ratio: 1;
  background: url(/implant/lib/img/icon_line.webp) no-repeat center/contain;
  grid-row: 1/3;
  align-self: center;
}
#footer .clinicdata .reserve a:after {
  content: "";
  width: 12px;
  aspect-ratio: 1;
  border-top: 2px solid #FFF;
  border-right: 2px solid #FFF;
  display: block;
  position: absolute;
  right: 1rem;
  top: calc(50% - 6px);
  transform: rotate(45deg);
}
#footer .clinicdata .photo {
  max-width: 80%;
  margin: 1rem 0;
}
#footer .map {
  grid-area: map;
}
#footer .map iframe {
  width: 100%;
  aspect-ratio: 3/2;
}
#footer .timetable {
  grid-area: timetable;
}
#footer .timetable table {
  width: 100%;
  border-collapse: separate;
  margin-bottom: 0.5rem;
}
#footer .timetable table th, #footer .timetable table td {
  padding: 0.5rem 0.5rem;
  background: #FFF;
  text-align: center;
  line-height: 1.2;
}
@media screen and (max-width: 1024px) {
  #footer {
    grid-template-columns: 50% calc(50% - 2rem);
    gap: 1rem 2rem;
  }
  #footer .clinicdata .reserve a {
    padding: 1.5rem 1rem 1.5rem 1rem;
  }
  #footer .map iframe {
    height: 100%;
  }
  #footer .timetable {
    align-self: end;
  }
}
@media screen and (max-width: 768px) {
  #footer {
    grid-template-columns: 1fr;
    gap: 1rem 5%;
    grid-template-areas: "data" "timetable" "map";
  }
  #footer .clinicdata {
    padding-top: 1rem;
    border-top: dotted 3px #FFF;
  }
  #footer .clinicdata .reserve a {
    grid-template-columns: 4rem 1fr;
    gap: 0 0.5rem;
  }
  #footer .clinicdata .reserve a:before {
    width: 4rem;
  }
  #footer .clinicdata .reserve a span {
    font-size: 1.3rem;
  }
}

/* footer
------------------------------------ */
#footerfixed {
  background: #FFF;
  background: rgba(123, 150, 171, 0.1);
  background: #D1DFEF;
  padding: 0.5rem 1rem;
  border-top: 3px solid #FFF;
  border-left: 3px solid #FFF;
  z-index: 100;
  position: fixed;
  bottom: 0;
  right: 0;
  width: fit-content;
  box-shadow: -3px -3px 5px #CCC;
}
#footerfixed .link {
  grid-area: link;
  display: grid;
  grid-template-columns: auto 1fr 1fr;
  gap: 1rem;
}
#footerfixed .link dl dt {
  font-size: clamp(1.4rem, 1vw, 1.4rem);
  font-weight: bold;
  display: flex;
  gap: 3px;
  align-items: center;
}
#footerfixed .link dl dt:before {
  content: "";
  width: 4px;
  border-radius: 50vh;
  aspect-ratio: 1;
  background: #473F3F;
}
#footerfixed .link dl dd {
  display: flex;
  align-items: center;
  gap: 5px;
  line-height: 1.3;
}
#footerfixed .link dl dd::before {
  content: "";
  width: 20px;
  aspect-ratio: 1;
}
#footerfixed .link li.backhome a {
  display: block;
  max-width: 200px;
}
#footerfixed .link li.call {
  padding-left: 2rem;
  border-left: 1px solid #FFF;
}
#footerfixed .link li.call dl dd {
  font-family: "Roboto", sans-serif;
  font-size: clamp(2rem, 1.9vw, 2.8rem);
  font-weight: 700;
}
#footerfixed .link li.call dl dd:before {
  background: url(/implant/lib/img/icon_call.webp) no-repeat center/contain;
}
#footerfixed .link li.reserve {
  padding-left: 2rem;
  border-left: 1px solid #FFF;
}
#footerfixed .link li.reserve dl dd {
  font-size: clamp(1.8rem, 1.7vw, 2.4rem);
  font-weight: 700;
}
#footerfixed .link li.reserve dl dd:before {
  background: url(/implant/lib/img/icon_line.webp) no-repeat center/contain;
}
@media screen and (max-width: 768px) {
  #footerfixed {
    background: #FFF;
    padding: 1rem 1rem;
    border-top: 1px solid #D9D9D9;
    border-left: none;
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    box-shadow: none;
  }
  #footerfixed .link {
    grid-area: link;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
  #footerfixed .link dl dt {
    font-size: clamp(1.4rem, 1vw, 1.4rem);
    font-weight: bold;
    display: flex;
    gap: 3px;
    align-items: center;
  }
  #footerfixed .link dl dt:before {
    content: "";
    width: 4px;
    border-radius: 50vh;
    aspect-ratio: 1;
    background: #473F3F;
  }
  #footerfixed .link dl dd {
    display: flex;
    align-items: center;
    gap: 5px;
    line-height: 1.5;
  }
  #footerfixed .link dl dd::before {
    content: "";
    width: 20px;
    aspect-ratio: 1;
  }
  #footerfixed .link li.backhome {
    display: none;
  }
  #footerfixed .link li.call {
    padding-left: 0;
  }
  #footerfixed .link li.call dl dd {
    font-family: "Roboto", sans-serif;
    font-size: clamp(2rem, 1.9vw, 2.8rem);
    font-weight: 700;
  }
  #footerfixed .link li.call dl dd:before {
    background: url(/implant/lib/img/icon_call.webp) no-repeat center/contain;
  }
  #footerfixed .link li.reserve {
    padding-left: 2rem;
    border-left: 1px solid #D9D9D9;
  }
  #footerfixed .link li.reserve dl dd {
    font-size: clamp(1.8rem, 1.7vw, 2.4rem);
    font-weight: 700;
  }
  #footerfixed .link li.reserve dl dd:before {
    background: url(/implant/lib/img/icon_line.webp) no-repeat center/contain;
  }
}

/* copy
------------------------------------ */
#copy {
  text-align: center;
  padding: 2rem 2rem;
  letter-spacing: 0.1rem;
}
#copy p {
  font-size: 1.4rem;
}
#copy .backhome {
  margin-top: 1rem;
  border: 1px solid #000;
  padding: 0.5rem 4rem;
  border-radius: 5px;
  background: linear-gradient(180deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 36%, rgb(241, 242, 247) 71%, rgb(242, 242, 248) 100%);
  max-width: 400px;
  margin: 1rem auto;
}