@charset "utf-8";
.l-pgTtl {
  background-image: url("../image/pgttl.jpg?d=0905");
}
.implant .l-pgTtl {
  background-image: url("../image/implant/pgttl.jpg?d=0905");
}
.oral_surgery .l-pgTtl {
  background-image: url("../image//oral_surgery/pgttl.jpg?d=0905");
}
.orthodontia .l-pgTtl {
  background-image: url("../image//orthodontia/pgttl.jpg?d=0905");
}

.esthetic .l-pgTtl {
  background-image: url("../image//esthetic/pgttl.jpg?d=0905");
}

/*----------------------------------------------------------------------------------------------------

  当院の治療
  
----------------------------------------------------------------------------------------------------*/
.sec-msg {
  padding: var(--block-space-2l) var(--side-space) var(--block-space-max) var(--side-space);
}
.msg {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  display: grid;
}
.msg_hd {
  font-weight: 300;
  font-size: var(--fs-5l);
  line-height: var(--line-height-m);
  padding-bottom: var(--block-space-2s);
  position: relative;
}
.msg_hd:before {
  content: "";
  width: 2em;
  height: 1em;
  position: absolute;
  left: 0;
  bottom: -2rem;
  margin-top: 1px;
  border-bottom: 1px solid #364157;
}
.msg_body p:not(:first-of-type) {
  padding-top: 1.5em;
}
@media print, screen and (min-width:1201px) {
  .msg_body {
    padding-left: 12rem;
  }
}
@media print, screen and (max-width:1200px) {
  .msg_body {
    padding-left: 11rem;
  }
}
@media print, screen and (min-width:801px) {
  .msg {
    grid-template-columns: repeat(2, 1fr); 
    grid-template-rows: auto 1fr;
  }
  .msg_hd { grid-area:  1 / 1 / 2 / 2; }
  .msg_body { grid-area:  2 / 1 / 3 / 2; }
  .msg_photo { grid-area: 1 / 2 / 3 / 3; }
  .msg_body {
  }
  .msg_photo {
    padding-left: var(--block-space-l);
  }
  .msg_photo img {
    width: 100%;
    max-width: 400px;
  }
}
@media print, screen and (max-width:800px) {
  .msg_body {
    padding-bottom: var(--block-space-s);
  }
  .msg_photo {
    padding-left: 11rem;
  }
  .msg_photo img {
    width: 100%;
    height: clamp(120px, calc(280 / 800 * 100vw), 280px);
    object-fit: cover;
    object-position: bottom;
  }
  .msg_photo.phototop img {
    object-position: 30%;
  }
}

/*----------------------------------------------------------------------------------------------------

  天然組織の保存
  
----------------------------------------------------------------------------------------------------*/
.sec-conservative {
  position: relative;
  padding: 0 var(--side-space);
}
.sec-conservative:before {
  content: "";
  width: 100%;
  height: calc(100% - var(--block-space-l));
  display: block;
  position: absolute;
  left: 0;
  top: var(--block-space-l);
  background-color: #E3E4E6;
  z-index: -1;
}
.conservative-photo,
.conservative {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
}
.conservative {
  text-align: left;
  display: grid;
  padding-bottom: var(--block-space-max);
}
.conservative_hd {
  font-weight: 300;
  font-size: var(--fs-5l);
}
.conservative_body {
  padding-top: var(--block-space-m);
}
.conservative_body p:not(:first-of-type) {
  padding-top: 2em;
}
@media print, screen and (max-width:1200px) {
  .conservative-photo img {
    width: 100%;
    height: clamp(180px, calc(320 / 640 * 100vw), 360px);
    object-fit: cover;
  }
}
@media print, screen and (min-width:1001px) {
  .conservative {
    grid-template-columns: auto 1fr;
  }
  .conservative-photo {
    padding-bottom: var(--block-space-2l);
  }
  .conservative_hd {
    padding-right: var(--block-space-2l);
    line-height: 1;
  }
  .conservative_body {
    border-top: 1px solid #364157;
  }
}
@media print, screen and (max-width:1000px) {
  .conservative-photo {
    padding-bottom: var(--block-space-l);
  }
  .conservative_hd {
    line-height: var(--line-height-m);
    position: relative;
    padding-bottom: 3rem;
  }
  .conservative_hd:after {
    content: "";
    width: 2em;
    height: 1px;
    border-bottom: 1px solid #364157;
    position: absolute;
    left: 0;
    bottom: 0;
  }
}

/*----------------------------------------------------------------------------------------------------

  診療内容
  
----------------------------------------------------------------------------------------------------*/
.sec-treatment {
  padding: var(--block-space-2l) var(--side-space) var(--block-space-max) var(--side-space);
}
.treatment-hd {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  font-weight: 300;
  font-size: var(--fs-5l);
  line-height: var(--line-height-m);
  padding-bottom: var(--block-space-s);
}
.treatment {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.treatment-list {
  width: 100%;
  display: grid;
  grid-row-gap: var(--block-space-l);
  padding-bottom: var(--block-space-l);
}
.treatment-list_item {
  border-top: 1px solid #364157;
}
.treatment-list_item .ttl {
  font-weight: 400;
  font-size: var(--fs-l);
  line-height: var(--line-height-s);
  padding: 1.75em 0 1em 0;
}
.treatment-list_item ul:not(.child) {
  list-style-type: circle;
  margin-left: 1.25em;
  line-height: var(--line-height-s);
}
.treatment-list_item ul:not(.child) > li:not(:first-of-type) {
  padding-top: 0.5em;
}
.treatment-list_item ul.child {
  line-height: var(--line-height-s);
  list-style: none;
  padding: 0.5em 0 1em 0;
  font-size: var(--fs-s);
}
.treatment-list_item ul.child li {
  padding-top: 0.25em;
  padding-left: 3.3em;
  position: relative;
}
.treatment-list_item ul.child li:before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  position: absolute;
  left: 1.2em;
  top: 0.35em;
  border-bottom: 1px solid rgba(54,65,87,0.3);
}
@media print, screen and (min-width:1001px) {
  .treatment-list {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media print, screen and (min-width:641px) {
  .treatment-list {
    grid-column-gap: clamp(30px, calc(60 / 1200 * 100vw), 60px);
  }
}
@media print, screen and (max-width:1000px) {
  .treatment-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width:640px) {
  .treatment-list {
    grid-template-columns: 100%;
  }
}

.toggle {
	display: none;
	font-size: 16px !important;
}

@media screen and (max-width:640px) {
	.toggle {
		font-size: 16px !important;
	}
}

/*----------------------------------------------------------------------------------------------------

  歯科矯正
  
----------------------------------------------------------------------------------------------------*/
.sec-intro {
  padding: 0 var(--side-space) var(--block-space-max) var(--side-space);
}
.intro {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.intro:not(:first-of-type) {
  padding-top:  var(--block-space-2l);
}
.intro_body {
  padding-top: var(--block-space-3s);
  padding-left: 2rem;
  padding-right: 2rem;
}
.intro_body p:not(:first-of-type) {
  padding-top: 1.5em;
}
.intro_photos {
  padding-top: var(--block-space-s);
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(12px, calc(24 / 1200 * 100vw), 24px);
}
@media print, screen and (min-width:801px) {
  .intro_photos {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
@media print, screen and (max-width:800px) {
  .intro_photos {
    gap: clamp(6px, calc(12 / 640 * 100vw), 12px);
  }
}


/* 対応しているメニュー */
.sec-applicable {
  padding: var(--block-space-min) 2rem var(--block-space-max);
}
.applicable-hd {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  font-weight: 400;
  font-size: var(--fs-2l);
  line-height: var(--line-height-m);
  padding-bottom: var(--block-space-min);
}
.applicable {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}
.applicable-list {
  width: 100%;
  display: grid;
  grid-row-gap: var(--block-space-l);
  padding-bottom: var(--block-space-l);
}
.applicable-list_item {
  border-top: 1px solid #364157;
}
.applicable-list_item .ttl {
  font-weight: 400;
  font-size: var(--fs-l);
  line-height: var(--line-height-s);
  padding: 1.75em 0 1em 0;
}



.applicable-list_item .ttl small{
  font-size: var(--fs-3s);
  display: block;
  text-indent: -0.25em;
}

.applicable-list_item .no{
  color:#40a9e0;
  font-weight: 200;
  font-size: var(--fs-2s);
  display: inline-block;
  position: relative;
  margin-bottom: 5p;
}

/* .applicable-list_item .no::after{
  content: "";
  position: absolute;
  width: 10px;
  height: 1px;
  display: block;
  background-color:#40a9e0;
  top: 50%;
  left: 0;
} */

.applicable-list_item ul:not(.child) {
  list-style-type: circle;
  margin-left: 1.25em;
  line-height: var(--line-height-s);
}
.applicable-list_item ul:not(.child) > li:not(:first-of-type) {
  padding-top: 0.5em;
}
.applicable-list_item ul.child {
  line-height: var(--line-height-s);
  list-style: none;
  padding: 0.5em 0 1em 0;
  font-size: var(--fs-s);
}
.applicable-list_item ul.child li {
  padding-top: 0.25em;
  padding-left: 3.3em;
  position: relative;
}
.applicable-list_item ul.child li:before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  position: absolute;
  left: 1.2em;
  top: 0.35em;
  border-bottom: 1px solid rgba(54,65,87,0.3);
}
@media print, screen and (min-width:1001px) {
  .applicable-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media print, screen and (min-width:641px) {
  .applicable-list {
    grid-column-gap: clamp(30px, calc(60 / 1200 * 100vw), 60px);
  }
}
@media print, screen and (max-width:1000px) {
  .applicable-list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width:700px) {
  .applicable-list {
    grid-template-columns: 100%;
  }
}

/* 治療の流れ*/
.sec-flow {
  position: relative;
  padding: 0 var(--side-space);
}
.sec-flow:before {
  content: "";
  width: 100%;
  height: calc(100% - var(--block-space-l));
  display: block;
  position: absolute;
  left: 0;
  top: var(--block-space-l);
  background-color: #E3E4E6;
  z-index: -1;
}
.flow {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
}
.flow {
  text-align: left;
  display: grid;

  padding-bottom: var(--block-space-l);
}

.flow_hd {

  font-weight: 300;
  font-size: var(--fs-5l);
}
.flow_body {
  padding-top: var(--block-space-m);
}
.flow_body p:not(:first-of-type) {
  padding-top: 2em;
}
@media print, screen and (max-width:1200px) {
}
@media print, screen and (min-width:1001px) {
  .flow {
      align-items: flex-start;
    grid-template-columns: auto 1fr;
  }
  .flow_hd {
      position: sticky;
  top: 120px;
    padding-right: var(--block-space-2l);
    line-height: 1;
  }
  .flow_body {
    border-top: 1px solid #364157;
  }
}
@media print, screen and (max-width:1000px) {
  .flow_hd {
    line-height: var(--line-height-m);
    position: relative;
    padding-bottom: 3rem;
  }
  .flow_hd:after {
    content: "";
    width: 2em;
    height: 1px;
    border-bottom: 1px solid #364157;
    position: absolute;
    left: 0;
    bottom: 0;
  }
}

.flow-list{
  list-style: none;
 position: relative;
}

.flow-list::before{
  content: "";
  display: block;
  position: absolute;
  left: 23px;
  /* top: 50%;
  transform: translateY(-50%); */
  background-color:#828DA0;
  width: 1px;
  height: 100%;
}

.flow-list li{
  position: relative;
  /* padding-left: var(--block-space-s); */
  padding-left: 60px;
}

.flow-list li::before{
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 100%;
  background-color:#828DA0;
  position: absolute;
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
}

.flow-list li:not(:last-child){
  margin-bottom: var(--box-space-min);
}

.flow-list .flow_item_hd{
  line-height: var(--line-height-s);
  margin-bottom: 4px;
}

.flow-list .flow_item_hd .ttl{
  font-size: var(--fs-m);
}
.flow-list .flow_item_hd .ttl small{
  font-size: var(--fs-2s);
}

.flow-list .flow_item_hd .no{
  color: #828DA0;
}

/* @media print, screen and (min-width:801px) {

} */
@media print, screen and (max-width:800px) {
.flow-list::before{
  left: 12px;
}

.flow-list li{
  padding-left: 30px;
}

.flow-list li::before{
  left: 9px;
}
}


/* QA  */
.sec-faq {
  padding: var(--block-space-2l) 2rem var(--block-space-max);
}
.faq-hd {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  font-weight: 400;
  font-size: var(--fs-2l);
  line-height: var(--line-height-m);
  margin-bottom: var(--block-space-min);
}
.faq {
  max-width: var(--base-width);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.faq_body {
margin-bottom: var(--block-space-min);
}

.accordion {
  width: 100%;
}

/* inputのチェックボックスを非表示 */
.accordion-hidden {
  display: none;
}

/* 見出しボタン部分 */
.accordion-open {
  display: block;
  padding: 10px 80px 10px 10px;
  border: 1px solid #828DA0;
  /* border: 1px solid #2A303F; */
  cursor: pointer;
  margin: 5px 0;
  position: relative;
}

/* ＋アイコン */
.accordion-open::before,
.accordion-open::after {
  content: '';
  width: 20px;
  height: 2px;
  background: #2A303F;
  position: absolute;
  top: 50%;
  right: 5%;
  transform: translateY(-50%);
}

/* アイコンのー */
.accordion-open::after {
  transform: translateY(-50%) rotate(90deg);
  transition: .5s;
}

/* アコーディオンが開いたらーに */
.accordion-hidden:checked+.accordion-open:after {
  transform: translateY(-50%) rotate(0);
}

/* アコーディオン中身部分 */
.accordion-inner {
  display: block;
  height: 0;
  overflow: hidden;
  padding: 0;
  opacity: 0;
  transition: 0.5s;
  /* 表示速度の設定 */
  cursor: pointer;
    font-weight: 400;
}

/* チェックボックスにチェックが入ったら中身部分を表示する */
.accordion-hidden:checked+.accordion-open+.accordion-inner {
  height: auto;
  opacity: 1;
  padding: 10px;
}
/* ↑ここまで共通 */


/* Q&A追加 */
.accordion_qa .Q,
.accordion_qa .A {
  position: relative;
  font-weight: 400;
}

.accordion_qa .Q::before,
.accordion_qa .A::before {
  display: block;
  position: absolute;
  top: 49%;
  transform: translateY(-50%);
  left: -1.3em;
}

.accordion_qa .Q::before {
  content: 'Q.';
}

.accordion_qa .A::before {
  content: 'A.';
}

.accordion_qa .accordion-open {
  padding-left: 2.5em;
}

.accordion_qa .accordion-hidden:checked+.accordion-open+.accordion-inner {
  height: auto;
  opacity: 1;
  padding: 10px 10px 10px 2.5em;
}
/* Q&A追加ここまで */

@media print, screen and (max-width:800px) {
.accordion-open {
  padding: 10px 40px 10px 10px;
}

/* ＋アイコン */
.accordion-open::before,
.accordion-open::after {
  content: '';
  width: 10px;
}

}

.oral_surgery .sec-intro{
  padding-bottom: var(--block-space-l);
}

.intro-list{
  list-style-type: circle;
  /* margin-left: 1.25em; */
  line-height: var(--line-height-s);
  margin: 30px auto;
  display: grid;
  grid-template-columns: repeat(2,1fr);
  border: 1px solid #2A303F;
  /* border-right: 1px solid #2A303F; */
  padding: var(--block-space-min) var(--block-space-m);
  /* max-width: 1000px; */
}

@media print, screen and (max-width:960px) {
  .intro-list{
  grid-template-columns: repeat(1,1fr);
}
}

.intro-list li{
  margin-bottom: 1rem;
}

.chkmrk{
    /* border: 1px solid #999; */
    padding: 10px 5px;
}
.chkmrk::before{
    content: "";
    display: inline-block;
    height: 6px;
    width: 12px;
    border-bottom: 1px solid #40a9e0;
    border-left: 1px solid #40a9e0;
    transform: rotate(-45deg);
    margin-bottom: 6px;
}

@media print, screen and (min-width:700px)and (max-width:950px) {
.chkmrk{
display: block;
}
}

@media print, screen and (max-width:700px) {
.chkmrk{
    /* border: 1px solid #999; */
    padding: 10px 1px;
}

.chkmrk::before{
    margin-bottom: 4px;
}

}


.esthetic .applicable-list_item p:not(:last-of-type){
  margin-bottom: 10px;
}

.esthetic .applicable-list_item.merit p{
line-height: var(--line-height-s);
}

.esthetic .applicable-list_item table{
  width: 100%;
  font-size: var(--fs-s);
  text-align: center;
  margin-bottom: 30px;
}
.esthetic .applicable-list_item table thead{
  border-bottom: #d9dbdd 1px solid;
}

.esthetic .applicable-list_item table tbody tr:nth-child(1){
  border-bottom: #d9dbdd 1px solid;
}

.esthetic .applicable-list_item table th{
  padding: 15px 5px;
    vertical-align: middle;
}

.esthetic .applicable-list_item table td{
  padding: 15px 5px;
  vertical-align: middle;
}

.esthetic .applicable-list_item table small{
  font-size: var(--fs-3s);
}


@media print, screen and (max-width:700px) {

.esthetic .applicable-list_item table{
  font-size: var(--fs-2s);
}

.esthetic .applicable-list_item table th{
  padding: 15px 0px;
}

.esthetic .applicable-list_item table td{
  padding: 15px 0px;
}
}