@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');
:root {
  --color-primary: #ffd1d1;  /* 薄いピンク */
  --color-accent:  #ed4545;  /* 濃いピンク */
}
.ttlWrap h1 {
  padding-top: 100px;
}
.sec {
  padding-top: 100px;
  padding-bottom: 100px;
}
.text-en {
  font-family: Bahnschrift, "Roboto", "Noto Sans JP", sans-serif;
}
.contents-main {
  padding: 70px 0 0;
}
.contents-inner {
  width: 100%;
  max-width: 900px;
  margin: auto;
}
@media print, screen and (min-width: 768px) {
  .container-horizontal {
    display: flex;
    flex-flow: wrap;
    justify-content: space-between;
  }
  .container-horizontal.column-3> * {
    width: 31%;
  }
}

@media screen and (max-width: 767px) {
  .contents-main { padding: 0;}
  .sec {
    padding-top: 50px;
    padding-bottom: 50px;
  }
  /*.interview_content.sec{
        padding-top: 6%;
    }*/
  /*.sec > * {
        width: 90.4%;
        margin-left: auto;
        margin-right: auto;
    }*/
  .contents-inner {
    width: 93.26%;
    margin-left: auto;
    margin-right: auto;
  }
  .anchor {
    position: absolute;
    margin-top: -30px;
  }
}
/*-----------------------------------------------------
  KV
-----------------------------------------------------*/
.contents-kv {
  background-image: url(../img/special/learn01/head_bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
  /*padding-bottom: 33px;*/
  z-index: 1;
  position: relative;
  height: 340px;
}
.contents-logo {
  max-width: 250px;
  width: 15%;
}
.contents-title {
  max-width: 1150px;
  width: 71.8%;
  margin: 30px auto auto;
  display: flex;
  justify-content: center;
  align-items: center;
}
.kv-inner {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}
@media print, screen and (min-width: 768px) {}
@media screen and (max-width: 767px) {
  /* KV */
  .contents-kv {
    height: auto;
    background: none;
  }
  .contents-kv .kv-inner {
    width: 100%;
    height: 76.28vw;
    background: url("../img/special/learn01/head_bg_sp.jpg") no-repeat center bottom/contain;
  }
  .contents-logo {
    position: relative;
    margin: 0 auto;
    top: -3.49vw;
    width: 41.86%;
  }
  .contents-title {
    margin: -3.49vw auto 0;
    width: 87.21vw;
    display: block;
  }
  .contents-title img {
    width: 100%;
  }
}
/*-----------------------------------------------------
  index
-----------------------------------------------------*/
.index { }
.index .sec_ttl {
  font-size: 3.6rem;
  letter-spacing: .1em;
  color: var(--color-accent);
  font-weight: 500;
}
.index_list {
  max-width: 900px;
  margin: auto;
  margin-top: 3em;
  background-color: #fff;
  border: 4px solid var(--color-primary);
  border-radius: 15px;
}
.index_list> li+ li {
  border-top: 1px solid var(--color-primary);
}
.index_list a {
  display: flex;
  align-items: center;
  border-bottom: 3px dotted #d3d3d3;
  font-size: 24px;
  font-weight: 500;
  padding: 18px 35px;
  position: relative;
}
.index_list a::after {
  content: '';
  width: 36px;
  height: 36px;
  background: url(../img/special/learn01/arrow_icon.png) center / 100% no-repeat;
  position: absolute;
  top: calc(50% - 18px);
  right: 25px;
}
.index_list a:last-child {
  border-bottom: none;
}
.index_list .index_num {
  font-size: 28px;
  color: var(--color-accent);
  font-family: Bahnschrift, "Roboto", sans-serif;
  font-weight: 600;
  text-align: center;
  min-width: 1.2em;
  margin-right: 20px;
  padding-top: 2px;
}
/*--- PC ---*/
@media print, screen and (min-width: 768px) {
}
/*--- SP ---*/
@media screen and (max-width: 767px) {
  .index .sec_ttl {
    font-size: 8.37vmin;
    padding-top: 50px;
  }
  .index_list { border-width: 0.93vmin}
  .index_list a{
    border-bottom: 2px dotted #d3d3d3;
    font-size: 16px;
    padding: 10px 55px 10px 15px;
    line-height: 1.5;
  }
  .index_list a span {
      margin-right: 10px;
  }
  .index_list a::after {
    width: 26px;
    height: 26px;
    top: calc(50% - 13px);
    right: 15px;
  }
}


/*-----------------------------------------------------
  info
-----------------------------------------------------*/
#info {
  position: relative;
  width: 100%;
  margin-top: 100px;
  padding: 60px 0;
  background: url(../img/special/learn01/ptn_01.gif) repeat;
}
#info::after {
  content: "";
  position: absolute;
  top: -25px;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  aspect-ratio: 1/1;
  background: url(../img/special/learn01/icon-info.svg) no-repeat center/contain;
}
.info-ttl {
  font-size: 2.8rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.08em;
}
.info-inner {
  display: flex;
  justify-content: space-between;
  margin-top: 6.0rem;
}
.figure-wrap {
  width: 23.3333%
}
.figure-wrap> figure {
  width: 100%;
  max-width: 180px;
  aspect-ratio: 1/1;
}
.figure-wrap> figure img {
  width: 100%;
}
.info-name {
  margin-top: 1em;
  color: var(--color-accent);
  font-size: 2.4rem;
  font-weight: 700;
}
.info-post {
  margin-top: 1.42em;
  font-size: 1.4rem;
  color: var(--color-accent);
  line-height: 1.7;
  letter-spacing: normal;
}
.info-text {
  width: 71.3333%;
  font-size: 15px;
  line-height: 2;
  text-align: justify;
  letter-spacing: normal;
}
/*--- PC ---*/
@media print, screen and (min-width: 768px) {}
/*--- SP ---*/
@media screen and (max-width: 767px) {
  #info::after { width: 12.09vmin;}
  #info .contents-inner { width: 88%;}
  .info-ttl { font-size: 6.51vmin}
  .info-inner {
    flex-flow: column;
    margin-top: 10.47vmin;
  }
  .info-inner> * { width: 100%; }
  .figure-wrap {
    display: block;
    min-height: auto;
    margin-bottom: 1em;
  }
  .figure-wrap> figure {
    width: 100%;
    margin: auto;
  }
  .figure-wrap> .text-wrap {
    width: 100%;
    margin: 1em 0 0;
    text-align: center;
  }
  .info-name {font-size: 5.58vmin}
  .info-post {font-size: 3.26vmin}
  .info-text {font-size: 3.49vmin}
}


/*-----------------------------------------------------
  program_contents
-----------------------------------------------------*/
.program_contents {
  padding: 9.0rem 0 11.5rem;
  background: var(--color-primary) url("../img/special/learn01/ptn_02.png")repeat;
}
.program-box {
  position: relative;
  max-width: 900px;
  margin: auto;
  padding: 50px 40px 80px;
  background-color: #fff;
  border-radius: 60px;
  box-shadow: 0 0 18px 10px rgba(255,172,172,.5);
}
.program-box:nth-of-type(n + 2) {
  margin-top: 80px;
}
.doctorImg {
  content: "";
  position: absolute;
  bottom: 0;
  display: block;
  width: 118px;
  aspect-ratio: 59/71;
  background: url("../img/special/learn01/img-doctor.svg") no-repeat center bottom -2px /100% auto;
  overflow: hidden;
}
hr.dotted {
  border-bottom: dotted 6px var(--color-primary);
  max-width: none;
  margin: 50px 0;
}
.program-num {
  position: absolute;
  width: 1.6666em;
  aspect-ratio: 1/1;
  top: -.5em;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-size: 3.0rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .02em;
  display: flex;
  justify-content: center;
  align-items: center;
}
.program-num::before {
  content: "";
  position: absolute;
  width: 100%;
  aspect-ratio: 1/1;
  top: -.02em;
  left: 0;
  background: var(--color-accent);
  border-radius: 100%;
  z-index: -1;
}
.program_contents .sec_ttl {
  margin-bottom: 2em;
  color: var(--color-accent);
  font-size: 3.6rem;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: .02em;
}
.program_contents .h3-ttl {
  margin-bottom: 1.5em;
  color: var(--color-accent);
  font-size: 2.4rem;
  text-align: center;
  font-weight: 700;
  line-height: 1.44;
  letter-spacing: .08em;
}
.program-text {
  text-align: center;
  font-size: 1.8rem;
  line-height: 2.2777;
  letter-spacing: 0.025em;
}
.program-text + .program-text {
  margin-top: 2em;
}
.program-text b {
  color: var(--color-accent);
  font-weight: 700;
}
.program-annotations {
  margin-top: 4.0rem;
  font-size: 1.3rem;
  line-height: 1.54;
}
.image-wrap {
  display: block;
  text-align: center;
}
.image-wrap + p {
  margin-top: 5.0rem;
}
p + .image-wrap {
  margin-top: 6.0rem;
}
/*.program01*/
#program01.anchor {
  margin-top: -150px;
}
.program01 .doctorImg {
  right: 60px;
}
/* .program02 */
.program02 { padding-bottom: 45px; }
.program02 .doctorImg {
  left: 60px;
}
.program-card { margin-top: 5.0rem;}
.program-card__figure {
  padding: 0 16%;
  text-align: center
}
.program-card__image {}
.program-card__title {
  margin-bottom: .9em;
  font-size: 2.2rem;
  color: var(--color-accent);
  font-weight: 500;
  letter-spacing: .02em;
  text-align: center;
}
.program-card__copy {
  font-size: 1.45rem;
  line-height: 1.66;
  text-align: justify;
  letter-spacing: normal;
}
.program-card__copy b {
  color: var(--color-accent);
}
.reference {
  margin-top: 2.4rem;
}
.reference__copy {
  text-align: right;
  font-size: 1.2rem;
  line-height: 2;
  letter-spacing: normal;
  word-break: break-all;
}
/* .program03 */
.program03 { padding-bottom: 60px;}
.program03 .program-annotations {
  margin-top: -1rem;
  margin-bottom: 4.4rem;
}
.program03 .h3-ttl-sub {
  margin-top: -3rem;
}
.imageLV {
  max-width: 755px;
  margin: 4.0rem auto 5.0rem;
}
.imageLV__list {
  display: flex;
  justify-content: space-between;
}
.imageLV__image {
  width: 22.65%;
  font-weight: 500;
  text-align: center;
}
.imageLV__title{
  display: inline-block;
  margin-top: .9em;
  font-size: 1.6rem;
  color: var(--color-accent);
}
.question {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 2.58em;
  margin-bottom: 3.0rem;
  background-color: var(--color-primary);
  border-radius: 100vh;
  font-size: 2.8rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.7;
}
.question::before, .question::after {
  position: absolute;
  left: 50%;
  transform: translateX(-50%)
}
.question::before {
  content: "";
  top: -36px;
  width: 49px;
  aspect-ratio: 1/1;
  border-radius: 100%;
  background-color: var(--color-accent);
}
.question::after {
  content: "Q";
  top: -27px;
  font-family: Bahnschrift, "Roboto", sans-serif;
  font-size: 3.547rem;
  color: #ffffff;
  font-weight: 500;
  line-height: 1;
}
.question small {
  font-size: 0.5714em;
}
.comment {
  position: relative;
  max-width: 788px;
  margin: auto;
  margin-top: 5.0rem;
  padding: 40px;
  border: 5px solid var(--color-primary);
  border-radius: 36px;
}
.comment__title {
  margin-bottom: 1em;
  font-size: 2.0rem;
  color: var(--color-accent);
  font-weight: 700;
  letter-spacing: .08em;
}
.comment .doctorImg {
  right: 28px;
}
.comment__copy {
  font-size: 1.5rem;
  line-height: 2;
}
.comment__copy + .comment__copy {
  margin-top: 2em;
}
.program03 .comment__copy {
  margin-bottom: 2em;
}
/* .program04 */
.program04 { padding-bottom: 60px; }

/* .program05 */
.program05 { padding-bottom: 50px; }
/*--- PC ---*/
@media print, screen and (min-width: 768px) {
}
/*--- SP ---*/
@media screen and (max-width: 767px) {
  .doctorImg { width: 27.44vmin; }
  .program_contents {
    width: 100%;
    margin: 6.98vmin auto 0;
    padding: 7.44vmin 0 15.81vmin;
    background-image: none;
  }
  .program_contents .h3-ttl { font-size: 6.51vmin; margin-bottom: 0.7857em;}
  hr.dotted { border-width: 1.4vmin}
  .program-box {border-radius: 13.95vmin; padding: 11.63vmin 5.81vmin 38.14vmin; }
  .program-box:nth-of-type(n + 2) { margin-top: 13.95vmin; }
  .program-num { font-size: 6.98vmin}
  .program_contents .sec_ttl { font-size: 8.37vmin; margin-bottom: 1em;}
  .program-text {
    font-size: 4.19vmin;
    font-feature-settings: "palt";
    /*letter-spacing: .05em;*/
    line-height: 1.88;
  }
  #program01.anchor { margin-top: -20vw; }
  .program01 .doctorImg { right: 12.79vmin }
  .program-card { margin-top: 9.3vmin }
  .program-card__image { width: 36.05vmin}
  .program-card__title { font-size: 5.12vmin}
  .program-card__copy {font-size: 3.37vmin}
  .reference__copy {font-size: 2.79vmin}
  .program02 .doctorImg {left: 13.02vmin}
  .program03 .program-annotations { 
    width: calc(100% + 2em);
    margin-left: -1em;
    font-size: 2.79vmin; 
    font-feature-settings: "palt";
    line-height: 1.66;
  }
  .program03 .h3-ttl {
    font-size: 5.58vmin;
    font-feature-settings: "palt";
  }
  .program03 .h3-ttl-sub {
    margin-top: 0;
    line-height: 1.7;
  }
  .imageLV {margin-top: 4.65vmin}
  .imageLV__list {flex-flow: wrap;}
  .imageLV__image { width: 38.84vmin; }
  .imageLV__image:nth-of-type(n + 3) { margin-top: 5.81vmin }
  .imageLV__title { font-size: 3.72vmin}
  .question::after {
    font-size: 8.25vmin;
    top: -5.35vmin;
  }
  .question::before {
    width: 11.4vmin;
    top: -7.21vmin;
  }
  .question {
    margin-top: 2.82em;
    padding: .8em 0;
    border-radius: 8.37vmin;
    font-size: 5.92vmin;
    font-feature-settings: "palt";
    line-height: 1.36;
    letter-spacing: .05em;
  }
  .question small {display: block; line-height: 1.8;}
  .image-wrap + p { margin-top: 6.98vmin}
  .comment {
    margin-top: 8.37vmin;
    padding: 6.98vmin 5.12vmin 37.21vmin;
    border-width: 1.16vmin;
  }
  .comment__title {
    font-size: 4.65vmin;
    font-feature-settings: "palt";
    letter-spacing: normal;
    text-align: center;
  }
  .comment__copy {
    font-size: 3.49vmin;
    font-feature-settings: "palt";
    text-align: justify;
  }
  .program03 {padding-bottom: 7.44vmin }
  .program04 {padding-bottom: 9.3vmin }
  .program04 .h3-ttl { letter-spacing: .04em}
  .program-annotations { font-size: 2.79vmin; font-feature-settings: "palt"; }
  .program05 {padding-bottom: 6.98vmin }
  .program05  .sec_ttl {
    font-size: 8.09vmin;
    font-feature-settings: "palt";
  }
}

/*-----------------------------------------------------
  bnr
-----------------------------------------------------*/
#bnr {
  padding: 80px 0 50px 0;
}
#bnr .h3-ttl {
  margin-bottom: 1.5em;
  color: var(--color-accent);
  font-size: 2.4rem;
  text-align: center;
  font-weight: 700;
  line-height: 1.44;
  letter-spacing: .08em;
}
.bnr-wrap {
  text-align: center;
}
@media screen and (max-width: 767px) {
  #bnr {
    padding: 12vw 0;
  }
  #bnr .h3-ttl {
    font-size: 6.51vmin;
    margin-bottom: 0.7857em;
  }
}