@charset 'UTF-8';

#hero>div h2 img{
  width: 2.8rem;
}
@media screen and (min-width: 768px){
  #hero>div h2 img{
    width: 4.1rem;
  }
}

article>.wrapper>section{
  padding: 4.6rem 0;
}
article>.wrapper>section:nth-of-type(2n){
  position: relative;
}
article>.wrapper>section:nth-of-type(2n)::before{
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  z-index: -10;
  margin: auto;
  width: 100vw;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}
article>.wrapper>section:not(:last-of-type):nth-of-type(2n)::before{
  background-image:
    url(/images/bg_section.svg),
    url(/images/bg_section.svg);
  background-repeat: repeat-x, repeat-x;
  background-position: 0 0, 0 100%;
}
article>.wrapper>section:last-of-type:nth-of-type(2n)::before{
  background-image:url(/images/bg_section.svg);
  background-repeat: repeat-x;
  background-position: 0 0;
}
article>.wrapper>section:nth-of-type(4n-2)::before{
  background-color: rgb(252, 250, 244);
}
article>.wrapper>section:nth-of-type(4n)::before{
  background-color: rgb(246, 253, 239);
}
article>.wrapper>section h3{
  padding: 0;
}
article>.wrapper>section h4,
article>.wrapper>section h5,
article>.wrapper>section h6{
  margin: 0;
}
article>.wrapper>section h3+.lead{
  padding: 3.0rem 0;
}
article>.wrapper>section h3+.container{
  padding: 3.0rem 0;
}
article>.wrapper>section .image.radius img{
  border-radius: 16px;
}
article>.wrapper>section ul{
  padding: 0;
  margin: 0;
  list-style: none;
}
article>.wrapper>section ol{
  padding: 0 0 0 1.2em;
  margin: 0;
}
article>.wrapper>section li{
  font-size: 1.4rem;
  line-height: 1.88;
  letter-spacing: calc(0.8 / 16 * 1em);
}
@media screen and (min-width: 768px){
  article>.wrapper>section{
    padding: 9.1rem 0;
  }
  article>.wrapper>section:nth-of-type(2n)::before{
    width: calc(100vw - 19.0rem);
  }
  article>.wrapper>section h3{
    padding: 0 0 2.5rem 0;
  }
  article>.wrapper>section h3+.lead{
    padding: 0 0 4.5rem 0;
    text-align: center;
  }
  article>.wrapper>section h3+.lead p{
    text-align: center;
  }
  article>.wrapper>section h3+.container{
    padding: 2.0rem 0;
  }
  article>.wrapper>section .image.radius img{
    border-radius: 20px;
  }
  article>.wrapper>section ol{
    padding: 0 3.4rem 0 1.7em;
  }
  article>.wrapper>section li{
    font-size: 1.6rem;
  }
}

/*  caries  */
#caries .container{
  padding-top: 1.5rem;
}
#caries .container .image{
  padding-top: 2.5rem;
  padding-bottom: 1.0rem;
}
#caries .button{
  margin: 2.0rem auto 0 auto;
  max-width: 33.1rem;
  font-size: 1.4rem;
}
@media screen and (min-width: 768px){
  #caries .container{
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
    padding-top: 3.0rem;
  }
  #caries .container .text{
    flex-basis: calc(490 / 1100 * 100%);
    padding-bottom: 8.8em;
  }
  #caries .container .image{
    padding-top: 0;
    padding-bottom: 0;
    flex-basis: calc(551 / 1100 * 100%);
  }
  #caries .button{
    margin: 0;
    margin-top: -8.8em;
    font-size: 1.6rem;
  }
  #caries .button+.button{
    margin-top: 2.0rem;
  }
  #caries .container .text p span{
    display: inline-block;
    vertical-align: middle;
    padding-bottom: 0.1em;
    width: 1.05em;
    line-height: 1;
    overflow: hidden;
    white-space: nowrap;
  }
  #caries .container .text p span::before{
    content: '右';
    display: inline-block;
    width: 100%;
    text-align: center;
  }
}

/*  rootcanal  */
#rootcanal .container{
  padding: 0;
}
#rootcanal .container .text{
  padding: 1.6rem 0;
}
#rootcanal .container .image{
  margin: .9rem 0;
}
@media screen and (min-width: 768px){
  #rootcanal h3{
    padding-bottom: 5.8rem;
  }
  #rootcanal .container{
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
    flex-direction: row-reverse;
  }
  #rootcanal .container .text{
    padding: 0;
    flex-basis: calc(490 / 1100 * 100%);
  }
  #rootcanal .container .image{
    margin: 0;
    flex-basis: calc(551 / 1100 * 100%);
  }
}

/*  periodontics  */
#periodontics>.container{
  display: -ms-grid;
  display: grid;
  -ms-grid-rows: auto 3.2rem auto 3.2rem auto 3.2rem auto;
  grid-template-rows: auto auto auto auto;
  -ms-grid-columns: 176fr calc(21 / 375 * 100vw) 139fr;
  grid-template-columns: 176fr 139fr;
  grid-row-gap: 3.2rem;
  grid-column-gap: calc(21 / 375 * 100vw);
}
#periodontics>.container>.sect{
  display: -webkit-box;
  display: flex;
  background-color: rgb(247, 247, 246);
  padding: 1.0rem 0;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  justify-content: space-around;
  border-radius: 16px;
  -ms-grid-row: 1;
  -ms-grid-row-span: 1;
  grid-row: 1/2;
  -ms-grid-column: 1;
  -ms-grid-column-span: 1;
  grid-column: 1/2;
}
@media screen and (-ms-high-contrast:none){
  #periodontics>.container>.sect{
    display: block;
  }
  #periodontics>.container>.sect .image{
    margin: 1.6rem 0;
    width: 100%;
  }
}
#periodontics>.container>.prog{
  -ms-grid-row: 1;
  -ms-grid-row-span: 1;
  grid-row: 1/2;
  -ms-grid-column: 3;
  -ms-grid-column-span: 1;
  grid-column: 2/3;
}
#periodontics>.container>ul{
  display: -webkit-box;
  display: flex;
  flex-wrap: wrap;
  -webkit-box-pack: justify;
  justify-content: space-between;
  position: relative;
  left: 50%;
  width: 100vw;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
  -ms-grid-row: 5;
  -ms-grid-row-span: 1;
  grid-row: 3/4;
  -ms-grid-column: 1;
  -ms-grid-column-span: 3;
  grid-column: 1/3;
}
#periodontics .container>ul li{
  flex-basis: calc(183 / 375 * 100vw);
}
#periodontics .container>ul li .image{
  text-align: center;
}
#periodontics .container>ul li span{
  margin: 0 auto;
  display: block;
  max-width: calc(9.5em + 2.3rem);
  white-space: nowrap;
  -webkit-font-feature-settings: 'palt';
  font-feature-settings: 'palt';
}
#periodontics .container>ul li:nth-of-type(2n+1) span{
  padding-left: 1em;
}
#periodontics .container>ul li span::before{
  content: '';
  display: inline-block;
  vertical-align: middle;
  margin-bottom: .3rem;
  margin-right: .8rem;
  width: 1.5rem;
  height: 1.5rem;
  background: url(../images/bg_caption.png) no-repeat 50% 50%;
  border-radius: 50%;
}
#periodontics>.container>.text{
  -ms-grid-row: 3;
  -ms-grid-row-span: 1;
  grid-row: 2/3;
  -ms-grid-column: 1;
  -ms-grid-column-span: 3;
  grid-column: 1/3;
}
#periodontics>.container>.text p:not(:last-of-type){
  padding-bottom: 1.88em;
}
#periodontics .container>section{
  border-radius: 16px;
  border: solid 1px rgb(0, 104, 61);
  background-color: rgb(255, 255, 255);
  -ms-grid-row: 7;
  -ms-grid-row-span: 1;
  grid-row: 4/5;
  -ms-grid-column: 1;
  -ms-grid-column-span: 3;
  grid-column: 1/3;
}
#periodontics .container>section h4{
  font-weight: normal;
  letter-spacing: calc(1.1 / 22 * 1em);
  text-align: center;
  background-color: rgb(246, 253, 239);
  padding: 1.3rem;
  font-size: 1.8rem;
  line-height: 1.67;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
  border-bottom: solid 1px rgb(0, 104, 61);
}
#periodontics .container>section .text{
  padding: 2.3rem 2.4rem 2.6rem 2.4rem;
}
#periodontics .container>section .text p span{
  font-weight: 500;
  color: rgb(86, 182, 0);
}
@media screen and (min-width: 768px){
  #periodontics>.container{
    -ms-grid-rows: auto 6.0rem auto 6.0rem 1fr;
    grid-template-rows: auto auto 1fr;
    -ms-grid-columns: 390fr calc(94 / 1100 * 100%) 240fr calc(94 / 1100 * 100%) 282fr;
    grid-template-columns: 390fr 240fr 282fr;
    grid-row-gap: 6.0rem;
    grid-column-gap: calc(94 / 1100 * 100%);
  }
  #periodontics>.container>.sect{
    padding: 3.7rem 0 2.7rem 0;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    -webkit-box-pack: center;
    justify-content: center;
    border-radius: 20px;
    -ms-grid-row: 1;
    -ms-grid-row-span: 1;
    grid-row: 1/2;
    -ms-grid-column: 1;
    -ms-grid-column-span: 3;
    grid-column: 1/3;
  }
  #periodontics>.container>.prog{
    -ms-grid-row: 3;
    -ms-grid-row-span: 1;
    grid-row: 2/3;
    -ms-grid-column: 3;
    -ms-grid-column-span: 1;
    grid-column: 2/3;
  }
  #periodontics>.container>ul{
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
    flex-wrap: nowrap;
    position: static;
    left: auto;
    width: auto;
    -webkit-transform: none;
    transform: none;
    -ms-grid-row: 1;
    -ms-grid-row-span: 3;
    grid-row: 1/3;
    -ms-grid-column: 5;
    -ms-grid-column-span: 1;
    grid-column: 3/4;
  }
  #periodontics .container>ul li{
    flex-basis: auto;
  }
  #periodontics .container>ul li span{
    padding-top: 1.1rem;
    margin: 0;
    max-width: none;
    white-space: wrap;
  }
  #periodontics .container>ul li:nth-of-type(2n+1) span{
    padding-left: 0;
  }
  #periodontics>.container>.text{
    -ms-grid-row: 3;
    -ms-grid-row-span: 3;
    grid-row: 2/4;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
    grid-column: 1/2;
  }
  #periodontics .container>section{
    border-radius: 20px;
    align-self: flex-start;
    -ms-grid-row: 5;
    -ms-grid-row-span: 1;
    grid-row: 3/4;
    -ms-grid-column: 3;
    -ms-grid-column-span: 3;
    grid-column: 2/4;
  }
  #periodontics .container>section h4{
    padding: .9rem;
    font-size: 2.2rem;
    line-height: 1.36;
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
  }
  #periodontics .container>section .text{
    padding: 2.6rem 3.9rem 3.4rem 3.9rem;
  }
}
@media screen and (min-width: 768px) and (-ms-high-contrast:none){
  #periodontics>.container>.sect{
    display: -webkit-box;
    display: flex;
  }
  #periodontics>.container>.sect .image{
    margin: 0;
  }
}

/*  preventive  */
#preventive>.container{
  position: relative;
  padding-top: 6.4rem;
}
#preventive h4{
  position: absolute;
  margin-top: -2.0rem;
  box-sizing: border-box;
  font-weight: normal;
  letter-spacing: calc(1.05 / 21 * 1em);
  text-align: center;
  border: solid 1px rgb(86, 182, 0);
  padding: .4rem;
  min-width: 11.8rem;
  font-size: 1.6rem;
  line-height: 1.88;
  color: rgb(255, 255, 255);
  border-radius: 7px;
  background-color: rgb(86, 182, 0);
}
#prevent .text{
  padding-top: 3.2rem;
  padding-bottom: 3.2rem;
}
#prevent .text p:not(:last-of-type){
  padding-bottom: 1.88em;
}
#prevent li{
  padding: 2.4rem 0;
  border-bottom: solid 1px rgb(0, 104, 61);
}
#prevent li:first-of-type{
  border-top: solid 1px rgb(0, 104, 61);
}
#prevent li>span{
  display: block;
  padding-bottom: 1.3rem;
  font-size: 1.8rem;
  line-height: 1.67;
  letter-spacing: calc(1 / 20 * 1em);
  color: rgb(86, 182, 0);
}
#prevent li span::before{
  content: '';
  display: inline-block;
  vertical-align: middle;
  margin-bottom: .3rem;
  margin-right: .8rem;
  width: 1.5rem;
  height: 1.5rem;
  background: url(../images/bg_caption.png) no-repeat 50% 50%;
  border-radius: 50%;
}
#prevent li p{
  margin: 0;
}
#prevent li .image{
  margin: 1.3rem auto 0 auto;
  text-align: center;
  max-width: 29.2rem;
}
#preventive #checkup{
  padding-top: 2.8rem;
}
#checkup>section h5{
  padding: 2.6rem 0 .8rem 0;
  font-size: 1.8rem;
  font-weight: normal;
  line-height: 1.67;
  letter-spacing: calc(1 / 20 * 1em);
}
#checkup>section ul{
  padding-top: 1em;
  list-style: disc;
  list-style-position: inside;
}
@media screen and (min-width: 768px){
  #preventive h4{
    padding: .5rem;
    min-width: 14.6rem;
    font-size: 2.1rem;
    line-height: 1.43;
    color: rgb(86, 182, 0);
    border-radius: 26px;
    background-color: rgb(255, 255, 255);
  }
  #preventive>.container{
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
  }
  #prevent>div{
    flex-basis: calc(712 / 1100 * 100%);
  }
  #prevent .text{
    padding-bottom: 0;
  }
  #prevent>ul{
    flex-basis: calc(320 / 1100 * 100%);
  }
  #prevent li>span{
    font-size: 2.0rem;
    line-height: 1.5;
  }
  #prevent li .image{
    max-width: none;
  }
  #preventive #checkup{
    padding-top: 4.4rem;
  }
  #preventive #checkup>div{
    flex-basis: calc(550 / 1100 * 100%);
  }
  #preventive #checkup>section{
    flex-basis: calc(490 / 1100 * 100%);
  }
  #checkup>section h5{
    padding: 0 0 1.7rem 0;
    font-size: 2.2rem;
    line-height: 1.5;
  }
}

/*  orthodontics  */
#orthodontics .container>ol{
  padding: 0;
  list-style: none;
  counter-reset: item 0;
  box-sizing: border-box;
}
#orthodontics .container>ol>li{
  padding-bottom: 3.6rem;
}
#orthodontics .container>ol+ol{
  counter-reset: item 3;
}
#orthodontics .container>ol>li>span{
  padding-bottom: 1.2rem;
  font-size: 1.8rem;
  display: inline-block;
  line-height: 1.5;
  letter-spacing: calc(1 / 20 * 1em);
  color: rgb(86, 182, 0);
}
#orthodontics .container>ol:last-of-type>li:last-of-type>span{
  padding-bottom: 0;
}
#orthodontics .container>ol>li ul{
  padding-top: 1em;
}
#orthodontics .container>ol>li li span{
  color: rgb(86, 182, 0);
}
#orthodontics .container>ol>li::before{
  content: counter(item);
  counter-increment: item;
  display: inline-block;
  margin-right: .8rem;
  width: 2.6rem;
  height: 2.6rem;
  font-family: 'Josefin Sans';
  font-size: 2.0rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  color: rgb(255, 255, 255);
  background: url(../images/bg_caption.png) no-repeat 50% 50%;
  border-radius: 50%;
}
#orthodontics .container li p{
  margin: 0;
}
#orthodontics>section{
  margin-top: 4.0rem;
  border-top: solid 1px rgb(0, 104, 61);
}
#orthodontics>section h4{
  padding: .6rem;
  margin: 3.0rem 0 0 0;
  max-width: 17.4rem;
  font-size: 1.8rem;
  font-weight: normal;
  line-height: 1.67;
  letter-spacing: calc(0.9 / 18 * 1em);
  text-align: center;
  color: rgb(255, 255, 255);
  box-sizing: border-box;
  border-radius: 8px;
  background-color: rgb(86, 182, 0);
}
#orthodontics>section .container{
  padding: 3.5rem 0;
}
#orthodontics>section .photo{
  margin: 0 auto;
  display: -webkit-box;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  flex-direction: column;
  max-width: 24.0rem;
}
#orthodontics>section .photo:not(:last-of-type){
  padding-bottom: 4.3rem;
}
#orthodontics>section .photo .to{
  background: url(../images/ico_to.svg) no-repeat 50% 50%;
  background-size: contain;
  margin: 1.1rem auto;
  width: calc(11 / 240 * 100%);
  padding-top: calc(17 / 240 * 100%);
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
}
#orthodontics>section .photo p{
  padding-top: 1.3rem;
  margin: 0;
  line-height: 1.88;
  letter-spacing: calc(0.8 / 16 * 1em);
  flex-basis: 100%;
  font-size: 1.4rem;
}
#orthodontics>.button{
  margin: 0 auto 1.5rem auto;
  max-width: 33.1rem;
}
@media screen and (min-width: 768px){
  #orthodontics .container{
    display: -webkit-box;
    display: flex;
    padding: 5.8rem 0;
  }
  #orthodontics .container>ol{
    flex-basis: 50%;
  }
  #orthodontics .container>ol:first-of-type{
    padding-right: calc(64 / 1100 * 100%);
  }
  #orthodontics .container>ol:last-of-type{
    padding-left: calc(64 / 1100 * 100%);
  }
  #orthodontics .container>ol:not(:last-of-type){
    border-right: solid 1px rgb(0, 104, 61);
  }
  #orthodontics .container>ol>li:last-of-type{
    padding-bottom: 0;
  }
  #orthodontics .container>ol>li::before{
    width: 3.4rem;
    height: 3.4rem;
    font-size: 2.3rem;
    line-height: 1.7;
  }
  #orthodontics .container>ol>li>span{
    padding-bottom: 1.7rem;
    font-size: 2.0rem;
  }
  #orthodontics .container>ol>li li span{
    font-weight: 500;
  }
  #orthodontics>section{
    margin-top: 0;
  }
  #orthodontics>section h4{
    display: none;
  }
  #orthodontics>section .container{
    padding: 5.0rem 0 4.3rem 0;
  }
  #orthodontics>section .container{
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
  }
  #orthodontics>section .photo{
    flex-basis: calc(523 / 1100 * 100%);
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-direction: row;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    justify-content: space-between;
    margin: 0;
    max-width: none;
  }
  #orthodontics>section .photo:not(:last-of-type){
    padding-bottom: 0;
  }
  #orthodontics>section .photo .image{
    flex-basis: calc(240 / 513 * 100%);
  }
  #orthodontics>section .photo .to{
    flex-basis: calc(11 / 513 * 100%);
    margin: 0;
    width: auto;
    padding-top: 0;
    -webkit-transform: none;
    transform: none;
  }
  #orthodontics>section .photo p{
    padding-top: 1.9rem;
    font-size: 1.6rem;
  }
  #orthodontics>.button{
    margin: 0 auto;
  }
}

/*  pedodontics  */
#pedodontics>.container li:not(:last-of-type){
  padding-bottom: 1.2rem;
}
#pedodontics>.container ul span{
  display: inline-block;
  padding: 1.1rem 0;
  font-size: 1.8rem;
  line-height: 1.67;
  letter-spacing: calc(1 / 20 * 1em);
  color: rgb(86, 182, 0);
}
#pedodontics>.container ul span::before{
  content: '';
  display: inline-block;
  vertical-align: middle;
  margin-bottom: .3rem;
  margin-right: .8rem;
  width: 1.5rem;
  height: 1.5rem;
  background: url(../images/bg_caption.png) no-repeat 50% 50%;
  border-radius: 50%;
}
#pedodontics>.container ul p{
  margin: 0;
}
#pedodontics>.container .container .photo{
  padding-top: 3.0rem;
  padding-bottom: 1.6rem;
}
@media screen and (min-width: 768px){
  #pedodontics>.container{
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
  }
  #pedodontics>.container .container{
    flex-basis: calc(515 / 1100 * 100%);
    display: -webkit-box;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    flex-direction: column;
  }
  #pedodontics>.container .container .text{
    -webkit-box-ordinal-group: 2;
    order: 1;
    padding-top: calc(88 / 515 * 100%);
  }
  #pedodontics>.container .container .photo{
    padding-top: 0;
    padding-bottom: 0;
  }
  #pedodontics>.container ul{
    flex-basis: calc(513 / 1100 * 100%);
  }
  #pedodontics>.container ul span{
    padding: 1.3rem 0;
    font-size: 2.0rem;
    line-height: 1.5;
  }
}
@media screen and (min-width: 768px) and (-ms-high-contrast:none){
  #pedodontics>.container .container .photo{
    max-height: 48.0rem;
  }
}

/*  denture  */
#denture .photo{
  margin: 3.0rem auto 4.0rem auto;
  max-width: 26.0rem;
}
#denture .button{
  margin: 0 auto;
  max-width: 33.1rem;
}
@media screen and (min-width: 768px){
  #denture .container{
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  #denture .text{
    flex-basis: calc(781 / 1100 * 100%);
    padding-bottom: 5.0rem;
  }
  #denture .photo{
    flex-basis: calc(260 / 1100 * 100%);
    margin: 0;
    max-width: none;
  }
  #denture .button{
    flex-basis: 100%;
    margin: -5.0rem 0 0 0;
  }
}

/*  implant  */
#implant .container .container{
  padding-top: 3.6rem;
}
#implant .container .container .photo{
  margin: 2.6rem auto 0 auto;
  max-width: 26.6rem;
}
#implant>.container>div>.text{
  padding-top: 3.4rem;
}
#implant>.container>div>.text ul{
  padding-bottom: 1.88em;
}
#implant>.container>section{
  padding-top: 2.5rem;
  margin-top: 3.0rem;
  border-top: solid 1px rgb(0, 104, 61);
}
#implant>.container>section h4{
  font-size: 2.0rem;
  line-height: 1.5;
  font-weight: normal;
  letter-spacing: calc(1.2 / 24 * 1em);
  text-align: center;
}
#implant>.container>section ol{
  padding: 0;
  list-style: none;
  counter-reset: item 0;
  box-sizing: border-box;
}
#implant>.container>section li:not(:last-of-type){
  padding-bottom: 1.9rem;
}
#implant>.container>section li span{
  display: inline-block;
  padding: 1.5rem 0;
  font-size: 1.8rem;
  line-height: 1.67;
  letter-spacing: calc(1 / 20 * 1em);
  color: rgb(86, 182, 0);
}
#implant>.container>section li span::before{
  content: counter(item);
  counter-increment: item;
  display: inline-block;
  margin-right: 1.5rem;
  width: 3.4rem;
  height: 3.4rem;
  font-family: 'Josefin Sans';
  font-size: 2.3rem;
  font-weight: 500;
  text-align: center;
  color: rgb(255, 255, 255);
  background: url(../images/bg_caption.png) no-repeat 50% 50%;
  border-radius: 50%;
}
#implant>.container>section li span::before{
  content: counter(item);
  counter-increment: item;
  display: inline-block;
  margin-right: .8rem;
  width: 2.6rem;
  height: 2.6rem;
  font-family: 'Josefin Sans';
  font-size: 2.0rem;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  color: rgb(255, 255, 255);
  background: url(../images/bg_caption.png) no-repeat 50% 50%;
  border-radius: 50%;
}
#implant>.container>section li p{
  margin: 0;
}
#implant>.container>.button{
  max-width: 33.1rem;
  margin: 4.0rem auto 0 auto;
}
@media screen and (min-width: 768px){
  #implant>.container{
    display: -webkit-box;
    display: flex;
    flex-wrap: wrap;
  }
  #implant>.container>div:first-of-type{
    flex-basis: calc(666 / 1100 * 100%);
    padding-bottom: 5.0rem;
    padding-right: calc(54 / 1100 * 100%);
    border-right: solid 1px rgb(0, 104, 61);
    box-sizing: border-box;

    max-width: calc(666 / 1100 * 100%);
  }
  #implant .container .container{
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
  }
  #implant .container .container .text{
    flex-basis: calc(303 / 612 * 100%);
  }
  #implant .container .container .photo{
    flex-basis: calc(266 / 612 * 100%);
    margin: 0;
    max-width: none;
  }
  #implant>.container>section{
    flex-basis: calc(434 / 1100 * 100%);
    padding-left: calc(43 / 1100 * 100%);
    padding-top: 0;
    margin-top: 0;
    border-top: none;
    box-sizing: border-box;
    max-width: calc(434 / 1100 * 100%);
  }
  #implant>.container>section h4{
    font-size: 2.4rem;
    line-height: 1.25;
    text-align: left;
  }
  #implant>.container>section li span{
    font-size: 2.0rem;
    line-height: 1.5;
  }
  #implant>.container>.button{
    flex-basis: 100%;
    margin: -5.0rem 0 0 0;
  }
}

/*  cleaning  */
#cleaning .container .photo{
  padding: 3.0rem 0 4.0rem 0;
  margin: 0 auto;
  max-width: 22.6rem;
}
#cleaning .container .button{
  max-width: 33.1rem;
  margin: 0 auto;
}
@media screen and (min-width: 768px){
  #cleaning .container{
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
    -webkit-box-align: end;
    align-items: flex-end;
  }
  #cleaning .container .text{
    flex-basis: calc(427 / 1100 * 100%);
  }
  #cleaning .container .photo{
    flex-basis: calc(226 / 1100 * 100%);
    padding: 0;
    margin: 0;
    max-width: none;
  }
  #cleaning .container .button{
    max-width: none;
    min-width: 33.1rem;
    margin: 0;
  }
}

/*  whitening  */
#whitening h4{
  padding-bottom: 1.5rem;
  font-size: 1.8rem;
  line-height: 1.67;
  font-weight: normal;
  letter-spacing: calc(1 / 20 * 1em);
}
#whitening h4::before{
  content: '';
  display: inline-block;
  vertical-align: middle;
  margin-bottom: .3rem;
  margin-right: .8rem;
  width: 1.5rem;
  height: 1.5rem;
  background: url(../images/bg_caption.png) no-repeat 50% 50%;
  border-radius: 50%;
}
#whitening>.container section:nth-of-type(-n+2){
  margin-bottom: 3.5rem;
  box-sizing: border-box;
  padding-top: 3.0rem;
  border-top: solid 1px rgb(0, 104, 61);
}
#whitening>.container section:nth-of-type(-n+2) .photo{
  margin: 2.5rem auto 0 auto;
  max-width: 22.6rem;
}
#whitening>.container section:nth-of-type(3){
  padding-top: 3.0rem;
  border-top: solid 1px rgb(0, 104, 61);
  box-sizing: border-box;
}
#whitening>.container .button{
  margin: 4.0rem auto 0 auto;
  max-width: 33.1rem;
}
@media screen and (min-width: 768px){
  #whitening h4{
    font-size: 2.0rem;
    line-height: 1.5;
  }
  #whitening>.container{
    display: -webkit-box;
    display: flex;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    justify-content: space-between;
  }
  #whitening>.container section:nth-of-type(-n+2){
    flex-basis: 50%;
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
    padding-top: 0;
    border-top: none;

    max-width: 50%;
  }
  #whitening>.container section:nth-of-type(-n+2) .text{
    flex-basis: calc(257 / 514 * 100%);
  }
  #whitening>.container section:nth-of-type(-n+2) .photo{
    flex-basis: calc(226 / 514 * 100%);
    margin: 0;
    max-width: none;
  }
  #whitening>.container section:nth-of-type(1){
    padding-right: calc(36 / 1100 * 100%);
    border-right: solid 1px rgb(0, 104, 61);
  }
  #whitening>.container section:nth-of-type(2){
    padding-left: calc(36 / 1100 * 100%);
  }
  #whitening>.container section:nth-of-type(3){
    flex-basis: 100%;
    padding-right: 33.1rem;
    padding-top: 2.5rem;
  }
  #whitening>.container section:nth-of-type(3) .text{
    width: calc(638 / (1100 - 331) * 100%);
  }
  #whitening>.container .button{
    margin: -5.0rem 0 0 auto;
    min-width: 33.1rem;
    max-width: none;
  }
}

/*  mouthguard  */
#mouthguard .photo{
  margin: 3.0rem auto 4.0rem auto;
  max-width: 22.6rem;
}
#mouthguard .button{
  margin: 0 auto;
  max-width: 36.9rem;
  border-radius: 38px;
}
@media screen and (min-width: 768px){
  #mouthguard .container{
    display: -webkit-box;
    display: flex;
    flex-wrap: wrap;
  }
  #mouthguard .text{
    flex-basis: calc(874 / 1100 * 100%);
    padding-right: calc(64 / 874 * 100%);
    padding-bottom: 5.0rem;
    box-sizing: border-box;
    max-width: calc(874 / 1100 * 100%);
  }
  #mouthguard .photo{
    flex-basis: calc(226 / 1100 * 100%);
    margin: 0 auto;
    max-width: calc(226 / 1100 * 100%);
  }
  #mouthguard .button{
    margin: -5.0rem auto 0 0;
    min-width: 36.9rem;
    max-width: none;
    border-radius: 24px;
  }
}

/*  pmd  */
#pmd h3{
  padding-bottom: .5rem;
  font-size: 2.0rem;
  font-weight: normal;
}
#pmd p, #pmd li{
  padding: 0;
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.86;
  letter-spacing: calc(0.7 / 14 * 1em);
  color: rgb(0, 104, 61);
}
#pmd>p{
  padding: 1.5rem 0;
  text-align: center;
}
#pmd ol{
  padding-left: 1.25em;
}
#pmd ol>li{
  margin-bottom: 1.86em;
}
#pmd section:nth-of-type(2){
  padding: 1.4rem 0;
}
#pmd section:nth-of-type(1) p{
  padding: 2.0rem 0;
  border-top: solid 1px rgb(0, 104, 61);
  border-bottom: solid 1px rgb(0, 104, 61);
}
#pmd section h4{
  font-size: 1.6rem;
  font-weight: normal;
  line-height: 1.63;
  letter-spacing: calc(0.8 / 16 * 1em);
  text-align: center;
}
#pmd section:nth-of-type(1) h4{
  padding: 2.0rem 0;
  color: rgb(0, 104, 61);
}
#pmd section:nth-of-type(2) h4{
  padding: 2.2rem 0;
}
@media screen and (min-width: 768px){
  #pmd h3{
    font-size: 3.0rem;
    line-height: 1.07;
  }
  #pmd p, #pmd li{
    font-size: 1.6rem;
    line-height: 1.88;
  }
  #pmd>p{
    margin-bottom: 1.6rem;
  }
  #pmd section:nth-of-type(2){
    padding: 2.3rem 0;
  }
  #pmd section h4{
    font-size: 2.4rem;
    line-height: 1.5;
    text-align: justify;
  }
  #pmd section:nth-of-type(2) h4{
    padding: 3.7rem 0;
  }
}
