/*--------------------
	SUBJECT
--------------------*/
#subject .lower-ttl {
  writing-mode: horizontal-tb;
  color: var(--main_font_color);
  font-size: 2rem;
  font-weight: normal;
  letter-spacing: .2em;
  margin: 60px 0 60px 15%; }
  @media screen and (max-width: 767px) {
    #subject .lower-ttl {
      font-size: 1.6rem;
      margin: 60px 0 60px 5%; } }
  #subject .lower-ttl span {
    color: #ccc;
    font-size: 1.2rem;
    letter-spacing: .05em; }
    @media screen and (max-width: 767px) {
      #subject .lower-ttl span {
        font-size: 1rem; } }
#subject #lower-lst {
  margin-bottom: 120px; }
  @media screen and (max-width: 767px) {
    #subject #lower-lst {
      margin: 0; } }
  #subject #lower-lst ul {
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 45px; }
    @media screen and (max-width: 767px) {
      #subject #lower-lst ul {
        grid-template-columns: 1fr;
        gap: 15px; } }
    #subject #lower-lst ul li {
      background: #fff;
      line-height: 6rem;
      border-radius: 5px;
      position: relative; }
      @media screen and (max-width: 767px) {
        #subject #lower-lst ul li {
          line-height: 4rem; } }
      #subject #lower-lst ul li a {
        text-decoration: none;
        display: block;
        padding-left: 30px; }
        #subject #lower-lst ul li a:hover {
          text-decoration: underline; }
        @media screen and (max-width: 767px) {
          #subject #lower-lst ul li a {
            text-decoration: none;
            display: block;
            padding-left: 30px; } }
        #subject #lower-lst ul li a i {
          font-size: 1.6rem;
          position: absolute;
          top: 35px;
          right: 15px; }
          @media screen and (max-width: 767px) {
            #subject #lower-lst ul li a i {
              top: 20px; } }
#subject .mv {
  width: 1200px;
  margin: 60px auto; }
  @media screen and (max-width: 767px) {
    #subject .mv {
      width: auto;
      padding-bottom: 65px;
      margin: 30px 0 45px;
      position: relative; } }
  #subject .mv .txt {
    display: grid;
    grid-template-columns: 100px 1fr;
    column-gap: 100px; }
    @media screen and (max-width: 767px) {
      #subject .mv .txt {
        grid-template-columns: 1fr; } }
    #subject .mv .txt h2 {
      writing-mode: vertical-rl;
      color: var(--main_font_color);
      font-size: 2rem;
      font-weight: normal;
      letter-spacing: .2em; }
      @media screen and (max-width: 767px) {
        #subject .mv .txt h2 {
          writing-mode: horizontal-tb;
          font-size: 1.6rem;
          letter-spacing: .05em;
          position: absolute;
          bottom: 0;
          left: 5%; } }
      #subject .mv .txt h2 span {
        color: #ccc;
        font-size: 1.2rem;
        letter-spacing: .05em; }
#subject section {
  margin-bottom: 120px; }
  @media screen and (max-width: 767px) {
    #subject section {
      margin-bottom: 60px; } }
#subject h3 {
  display: inline-block;
  min-width: 50%;
  background-color: var(--main_color_yellow);
  font-size: 1.6rem;
  font-weight: normal;
  letter-spacing: .2em;
  padding: 30px 5% 30px 20%;
  margin-bottom: 30px; }
  @media screen and (max-width: 767px) {
    #subject h3 {
      font-size: 1.4rem;
      padding: 30px 5%;
      letter-spacing: 0; } }
@media screen and (max-width: 767px) {
  #subject .inner {
    width: 96%;
    margin: 0 auto; } }
#subject .box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 60px;
  margin-bottom: 90px;
  position: relative; }
  @media screen and (max-width: 767px) {
    #subject .box {
      grid-template-columns: 1fr;
      margin-bottom: 30px; } }
#subject .about-footer {
  background-color: var(--main_color_yellow);
  padding: 45px 0;
  margin: 90px 0 0 0; }
  #subject .about-footer ul {
    list-style: none;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 45px; }
    @media screen and (max-width: 767px) {
      #subject .about-footer ul {
        grid-template-columns: 1fr;
        gap: 15px; } }
    #subject .about-footer ul li {
      background: #fff;
      line-height: 6rem;
      border-radius: 5px;
      position: relative; }
      @media screen and (max-width: 767px) {
        #subject .about-footer ul li {
          line-height: 4rem; } }
      #subject .about-footer ul li a {
        text-decoration: none;
        display: block;
        padding-left: 30px; }
        #subject .about-footer ul li a:hover {
          text-decoration: underline; }
        #subject .about-footer ul li a i {
          font-size: 1.6rem;
          position: absolute;
          top: 35px;
          right: 15px; }
          @media screen and (max-width: 767px) {
            #subject .about-footer ul li a i {
              top: 20px; } }

/*--------------------
	PT
--------------------*/
.blu {
  background: #68a2d8;
  position: relative; }
  @media screen and (min-width: 768px) {
    .blu .sub-img {
      width: 48%;
      height: 600px;
      background: url("../img/subject/pt/sub_img.webp") no-repeat center center/cover;
      position: absolute;
      top: 90px;
      right: 0; } }
  .blu h2 {
    color: #fff;
    font-size: 4rem;
    font-weight: normal;
    line-height: 1.2;
    letter-spacing: .2em;
    margin: 120px 0 0 0; }
    @media screen and (max-width: 767px) {
      .blu h2 {
        font-size: 2.8rem;
        margin: 30px 0 0 0; } }
    .blu h2 span {
      font-family: "Noto Serif JP", serif;
      font-size: 1.2rem;
      letter-spacing: .05em; }
  .blu .boxes {
    display: grid;
    grid-template-columns: 1fr 350px;
    column-gap: 15px;
    margin: 60px 0 90px; }
    @media screen and (max-width: 767px) {
      .blu .boxes {
        grid-template-columns: 40% 60%;
        gap: 5px;
        margin: 30px 0; } }
    .blu .boxes ul {
      list-style: none; }
      .blu .boxes ul li {
        color: #fff;
        font-size: 1.2rem;
        line-height: 1.3;
        border: 1px solid #fff; }
        @media screen and (max-width: 767px) {
          .blu .boxes ul li {
            font-size: .8rem; } }
    .blu .boxes .cube {
      display: grid;
      grid-template-columns: 1fr 1fr;
      column-gap: 15px; }
      @media screen and (max-width: 767px) {
        .blu .boxes .cube {
          gap: 5px; } }
      .blu .boxes .cube li {
        text-align: center;
        padding: 18px 0; }
        @media screen and (max-width: 767px) {
          .blu .boxes .cube li {
            padding: 13px 0; } }
    .blu .boxes .rectangle li {
      padding: 5px 10px; }
      @media screen and (max-width: 767px) {
        .blu .boxes .rectangle li {
          text-align: center; } }
      .blu .boxes .rectangle li:first-child {
        margin-bottom: 15px; }
        @media screen and (max-width: 767px) {
          .blu .boxes .rectangle li:first-child {
            margin-bottom: 5px; } }
  @media screen and (max-width: 767px) {
    .blu .sub-img {
      width: 100%;
      height: 50vh;
      min-height: 350px;
      background: url("../img/subject/pt/sub_img.webp") no-repeat center center/cover; } }
  .blu h3 {
    background: none !important;
    color: #fff;
    padding: 0 !important; }
    @media screen and (max-width: 767px) {
      .blu h3 {
        font-size: 1.2rem;
        margin: 15px 0; } }
  .blu p {
    color: #fff; }
  .blu img {
    margin: 90px 0 120px; }
    @media screen and (max-width: 767px) {
      .blu img {
        margin: 30px 0; } }
  .blu .percent {
    margin: 800px 0 90px 30px; }
    @media screen and (max-width: 767px) {
      .blu .percent {
        margin: 0 0 60px; } }

#pt .sec01 h3 {
  padding: 30px 5% 30px 0;
  margin: 0 0 60px 50%; }
  @media screen and (max-width: 767px) {
    #pt .sec01 h3 {
      margin: 0 0 30px 0; } }
  #pt .sec01 h3 span {
    display: inline-block;
    margin-left: -190px; }
    @media screen and (max-width: 767px) {
      #pt .sec01 h3 span {
        margin: 0; } }
#pt .sec01 .inner {
  position: relative; }
  #pt .sec01 .inner img {
    width: 330px;
    position: absolute;
    bottom: -60px; }
    @media screen and (max-width: 767px) {
      #pt .sec01 .inner img {
        position: relative;
        bottom: auto;
        display: block;
        width: 150px;
        margin: -60px auto 15px; } }
  #pt .sec01 .inner p {
    margin: 0 0 0 410px; }
    @media screen and (max-width: 767px) {
      #pt .sec01 .inner p {
        margin: 0; } }
#pt .sec02 .inner {
  position: relative; }
  @media screen and (max-width: 767px) {
    #pt .sec02 .inner {
      padding-bottom: 5px; } }
  #pt .sec02 .inner:before {
    content: '';
    width: 5px;
    height: 700px;
    border-left: 5px dotted #68a2d8;
    position: absolute;
    top: 0;
    left: 48px; }
    @media screen and (max-width: 767px) {
      #pt .sec02 .inner:before {
        border: none; } }
  #pt .sec02 .inner .box {
    grid-template-columns: 100px 450px 1fr; }
    @media screen and (max-width: 767px) {
      #pt .sec02 .inner .box {
        grid-template-columns: 1fr; } }
    #pt .sec02 .inner .box .year {
      width: 100px;
      margin: 0 auto;
      position: relative;
      z-index: 1; }
    #pt .sec02 .inner .box .atmo {
      margin: -20px auto 0; }
    #pt .sec02 .inner .box h3 {
      background: none;
      padding: 0;
      margin: 60px 0 30px; }
      @media screen and (max-width: 767px) {
        #pt .sec02 .inner .box h3 {
          margin: 15px 0; } }
#pt .sec03 .box {
  column-gap: 120px;
  grid-row-gap: 90px;
  margin-top: 30px; }
  @media screen and (max-width: 767px) {
    #pt .sec03 .box {
      grid-row-gap: 60px; } }
  @media screen and (max-width: 767px) {
    #pt .sec03 .box figuare img {
      display: block;
      width: 100%;
      max-width: 500px;
      margin: 0 auto; } }
  #pt .sec03 .box figuare h4 {
    font-size: 1.6rem;
    font-weight: normal;
    letter-spacing: .1em;
    margin: 30px 0; }
    @media screen and (max-width: 767px) {
      #pt .sec03 .box figuare h4 {
        font: 1.2rem;
        margin: 15px 0; } }
#pt .sec03 a {
  text-decoration: none;
  display: block;
  width: 300px;
  background: #333;
  text-align: center;
  color: #fff;
  font-size: 1.1rem;
  padding: 20px 0;
  border-radius: 10px;
  margin: 0 auto;
  position: relative; }
  #pt .sec03 a:hover {
    text-decoration: underline; }
  #pt .sec03 a i {
    font-size: 1.8rem;
    position: absolute;
    right: 15px; }
#pt .sec04 dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 30px;
  margin-top: 60px; }
  @media screen and (max-width: 767px) {
    #pt .sec04 dl {
      grid-template-columns: 1fr; } }
  #pt .sec04 dl dt {
    font-size: 1.6rem;
    letter-spacing: .2em; }
    @media screen and (max-width: 767px) {
      #pt .sec04 dl dt {
        font-size: 1.2rem; } }
    #pt .sec04 dl dt span {
      display: inline-block;
      width: 100%;
      border-bottom: 1px solid #333; }
      @media screen and (max-width: 767px) {
        #pt .sec04 dl dt span {
          padding-bottom: 5px;
          margin-bottom: 5px; } }
  #pt .sec04 dl dd {
    line-height: 2; }
#pt .sec05 .box {
  grid-template-columns: 1fr 1fr 1fr; }
  @media screen and (max-width: 767px) {
    #pt .sec05 .box {
      grid-template-columns: 1fr; } }
  #pt .sec05 .box ul {
    list-style: none;
    margin-top: 60px; }
    @media screen and (max-width: 767px) {
      #pt .sec05 .box ul {
        margin: 0; } }
    #pt .sec05 .box ul li {
      line-height: 2; }
#pt .sec06 p {
  margin-top: 60px; }
  @media screen and (max-width: 767px) {
    #pt .sec06 p {
      margin: 0; } }
#pt .sec06 img {
	width: 250px;
  margin: -80px 0 0 30px; }
  @media screen and (max-width: 767px) {
    #pt .sec06 img {
      margin: 30px auto 0; } }
#pt .sec07 {
  background: #e9eef8;
  margin-top: 150px; }
  #pt .sec07 h3 {
    margin-top: -60px; }
  #pt .sec07 .inner {
    width: 800px;
    padding: 60px 0 120px; }
    @media screen and (max-width: 767px) {
      #pt .sec07 .inner {
        width: 96%;
        padding: 0;
        margin: 0 auto; } }

/*--------------------
	OT
--------------------*/
.pnk {
  background: #ec6da6;
  position: relative; }
  @media screen and (min-width: 768px) {
    .pnk .sub-img {
      width: 48%;
      height: 600px;
      background: url("../img/subject/ot/sub_img.webp") no-repeat center center/cover;
      position: absolute;
      top: 90px;
      right: 0; } }
  .pnk h2 {
    color: #fff;
    font-size: 4rem;
    font-weight: normal;
    line-height: 1.2;
    letter-spacing: .2em;
    margin: 120px 0 0 0; }
    @media screen and (max-width: 767px) {
      .pnk h2 {
        margin: 60px 0 0 0; } }
    .pnk h2 span {
      font-family: "Noto Serif JP", serif;
      font-size: 1.2rem;
      letter-spacing: .05em; }
  .pnk .boxes {
    display: grid;
    grid-template-columns: 1fr 350px;
    column-gap: 15px;
    margin: 60px 0 90px; }
    @media screen and (max-width: 767px) {
      .pnk .boxes {
        grid-template-columns: 40% 60%;
        gap: 5px;
        margin: 30px 0; } }
    .pnk .boxes ul {
      list-style: none; }
      .pnk .boxes ul li {
        color: #fff;
        font-size: 1.2rem;
        line-height: 1.3;
        border: 1px solid #fff; }
        @media screen and (max-width: 767px) {
          .pnk .boxes ul li {
            font-size: .8rem; } }
    .pnk .boxes .cube {
      display: grid;
      grid-template-columns: 1fr 1fr;
      column-gap: 15px; }
      @media screen and (max-width: 767px) {
        .pnk .boxes .cube {
          gap: 5px; } }
      .pnk .boxes .cube li {
        text-align: center;
        padding: 18px 0; }
        @media screen and (max-width: 767px) {
          .pnk .boxes .cube li {
            padding: 13px 0; } }
    .pnk .boxes .rectangle li {
      padding: 5px 10px; }
      @media screen and (max-width: 767px) {
        .pnk .boxes .rectangle li {
          text-align: center; } }
      .pnk .boxes .rectangle li:first-child {
        margin-bottom: 15px; }
        @media screen and (max-width: 767px) {
          .pnk .boxes .rectangle li:first-child {
            margin-bottom: 5px; } }
  @media screen and (max-width: 767px) {
    .pnk .sub-img {
      width: 100%;
      height: 50vh;
      min-height: 350px;
      background: url("../img/subject/ot/sub_img.webp") no-repeat center center/cover; } }
  .pnk h3 {
    background: none !important;
    color: #fff;
    padding: 0 !important; }
    @media screen and (max-width: 767px) {
      .pnk h3 {
        font-size: 1.2rem;
        margin: 15px 0; } }
  .pnk p {
    color: #fff; }
  .pnk img {
    margin: 90px 0 120px; }
    @media screen and (max-width: 767px) {
      .pnk img {
        margin: 30px 0; } }
  .pnk .percent {
    margin: 800px 0 90px 30px; }
    @media screen and (max-width: 767px) {
      .pnk .percent {
        margin: 0 0 60px; } }

#ot .sec01 h3 {
  padding: 30px 5% 30px 0;
  margin: 0 0 60px 50%; }
  @media screen and (max-width: 767px) {
    #ot .sec01 h3 {
      margin: 0 0 30px 0; } }
  #ot .sec01 h3 span {
    display: inline-block;
    margin-left: -190px; }
    @media screen and (max-width: 767px) {
      #ot .sec01 h3 span {
        margin: 0; } }
#ot .sec01 .inner {
  position: relative; }
  #ot .sec01 .inner img {
    width: 330px;
    position: absolute;
    bottom: -60px; }
    @media screen and (max-width: 767px) {
      #ot .sec01 .inner img {
        position: relative;
        bottom: auto;
        display: block;
        width: 150px;
        margin: -60px auto 15px; } }
  #ot .sec01 .inner p {
    margin: 0 0 0 410px; }
    @media screen and (max-width: 767px) {
      #ot .sec01 .inner p {
        margin: 0; } }
#ot .sec02 .inner {
  position: relative; }
  @media screen and (max-width: 767px) {
    #ot .sec02 .inner {
      padding-bottom: 5px; } }
  #ot .sec02 .inner:before {
    content: '';
    width: 5px;
    height: 700px;
    border-left: 5px dotted #ec6da6;
    position: absolute;
    top: 0;
    left: 48px; }
    @media screen and (max-width: 767px) {
      #ot .sec02 .inner:before {
        border: none; } }
  #ot .sec02 .inner .box {
    grid-template-columns: 100px 450px 1fr; }
    @media screen and (max-width: 767px) {
      #ot .sec02 .inner .box {
        grid-template-columns: 1fr; } }
    #ot .sec02 .inner .box .year {
      width: 100px;
      margin: 0 auto;
      position: relative;
      z-index: 1; }
    #ot .sec02 .inner .box .atmo {
      margin: -20px auto 0; }
    #ot .sec02 .inner .box h3 {
      background: none;
      padding: 0;
      margin: 60px 0 30px; }
      @media screen and (max-width: 767px) {
        #ot .sec02 .inner .box h3 {
          margin: 15px 0; } }
#ot .sec03 .box {
  column-gap: 120px;
  grid-row-gap: 90px;
  margin-top: 30px; }
  @media screen and (max-width: 767px) {
    #ot .sec03 .box {
      grid-row-gap: 60px; } }
  @media screen and (max-width: 767px) {
    #ot .sec03 .box figuare img {
      display: block;
      width: 100%;
      max-width: 500px;
      margin: 0 auto; } }
  #ot .sec03 .box figuare h4 {
    font-size: 1.6rem;
    font-weight: normal;
    letter-spacing: .1em;
    margin: 30px 0; }
    @media screen and (max-width: 767px) {
      #ot .sec03 .box figuare h4 {
        font: 1.2rem;
        margin: 15px 0; } }
#ot .sec03 a {
  text-decoration: none;
  display: block;
  width: 300px;
  background: #333;
  text-align: center;
  color: #fff;
  font-size: 1.1rem;
  padding: 20px 0;
  border-radius: 10px;
  margin: 0 auto;
  position: relative; }
  #ot .sec03 a:hover {
    text-decoration: underline; }
  #ot .sec03 a i {
    font-size: 1.8rem;
    position: absolute;
    right: 15px; }
#ot .sec04 dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 30px;
  margin-top: 60px; }
  @media screen and (max-width: 767px) {
    #ot .sec04 dl {
      grid-template-columns: 1fr; } }
  #ot .sec04 dl dt {
    font-size: 1.6rem;
    letter-spacing: .2em; }
    @media screen and (max-width: 767px) {
      #ot .sec04 dl dt {
        font-size: 1.2rem; } }
    #ot .sec04 dl dt span {
      display: inline-block;
      width: 100%;
      border-bottom: 1px solid #333; }
      @media screen and (max-width: 767px) {
        #ot .sec04 dl dt span {
          padding-bottom: 5px;
          margin-bottom: 5px; } }
  #ot .sec04 dl dd {
    line-height: 2; }
#ot .sec05 .box {
  grid-template-columns: 1fr 1fr 1fr; }
  @media screen and (max-width: 767px) {
    #ot .sec05 .box {
      grid-template-columns: 1fr; } }
  #ot .sec05 .box ul {
    list-style: none;
    margin-top: 60px; }
    @media screen and (max-width: 767px) {
      #ot .sec05 .box ul {
        margin: 0; } }
    #ot .sec05 .box ul li {
      line-height: 2; }
#ot .sec06 p {
  margin-top: 60px; }
  @media screen and (max-width: 767px) {
    #ot .sec06 p {
      margin: 0; } }
#ot .sec06 img {
  width: 250px;
  margin: -80px 0 0 30px; }
  @media screen and (max-width: 767px) {
    #ot .sec06 img {
      margin: 30px auto 0; } }
#ot .sec07 {
  background: #fcefee;
  margin-top: 150px; }
  #ot .sec07 h3 {
    margin-top: -60px; }
  #ot .sec07 .inner {
    width: 800px;
    padding: 60px 0 120px; }
    @media screen and (max-width: 767px) {
      #ot .sec07 .inner {
        width: 96%;
        padding: 0;
        margin: 0 auto; } }

/*--------------------
	STRENGTHS
--------------------*/
#strengths .sec01 h3 {
  width: 100%;
  background: none;
  font-family: "Noto Serif JP", serif;
  text-align: center;
  font-size: 7rem;
  font-weight: 500;
  padding: 0; }
  @media screen and (max-width: 767px) {
    #strengths .sec01 h3 {
      font-size: 2.4rem; } }
#strengths .sec01 p {
  text-align: center;
  font-size: 1.1rem;
  line-height: 2;
  letter-spacing: .05em; }
  @media screen and (max-width: 767px) {
    #strengths .sec01 p {
      font-size: 1rem;
      letter-spacing: 0; } }
#strengths .sec01 ul {
  width: 1000px;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  column-gap: 60px;
  margin: 60px auto 0; }
  @media screen and (max-width: 767px) {
    #strengths .sec01 ul {
      width: 90%;
      max-width: 200px;
      grid-template-columns: 1fr;
      gap: 30px;
      margin: 30px auto 0; } }
#strengths .sec02 .inner {
  border-bottom: 1px solid #333; }
  #strengths .sec02 .inner h3 {
    width: 100%;
    background: none;
    font-family: "Noto Serif JP", serif;
    padding: 0;
    position: relative; }
    #strengths .sec02 .inner h3 img {
      display: block;
      width: 600px;
      margin: 0 auto; }
      @media screen and (max-width: 767px) {
        #strengths .sec02 .inner h3 img {
          width: 90%;
          max-width: 400px; } }
    #strengths .sec02 .inner h3 span {
      font-size: 2.3rem;
      font-weight: 600;
      position: absolute;
      bottom: 0;
      left: 0; }
      @media screen and (max-width: 767px) {
        #strengths .sec02 .inner h3 span {
          position: relative;
          bottom: auto;
          left: auto;
          text-align: center;
          font-size: 1.6rem;
          margin: 30px auto 0;
          display: block; } }
  #strengths .sec02 .inner .box {
    margin-top: 60px; }
    @media screen and (max-width: 767px) {
      #strengths .sec02 .inner .box {
        margin-top: 0; } }
    #strengths .sec02 .inner .box h4 {
      background: #333;
      color: #fff;
      font-size: 1.8rem;
      font-weight: normal;
      letter-spacing: .1em;
      padding: 15px 30px; }
      @media screen and (max-width: 767px) {
        #strengths .sec02 .inner .box h4 {
          font-size: 1.2rem;
          margin-top: 30px; } }
    #strengths .sec02 .inner .box h5 {
      font-size: 1.2rem;
      font-weight: 500;
      letter-spacing: .1em;
      margin: 30px 0; }
      @media screen and (max-width: 767px) {
        #strengths .sec02 .inner .box h5 {
          margin: 15px 0; } }
    @media screen and (max-width: 767px) {
      #strengths .sec02 .inner .box img {
        display: block;
        width: 100%;
        max-width: 500px;
        margin: 15px auto 0; } }
#strengths .sec03 .inner {
  border-bottom: 1px solid #333; }
  #strengths .sec03 .inner h3 {
    width: 100%;
    background: none;
    font-family: "Noto Serif JP", serif;
    padding: 0;
    position: relative; }
    #strengths .sec03 .inner h3 img {
      display: block;
      width: 600px;
      margin: 0 auto; }
      @media screen and (max-width: 767px) {
        #strengths .sec03 .inner h3 img {
          width: 90%;
          max-width: 400px; } }
    #strengths .sec03 .inner h3 span {
      font-size: 2.3rem;
      font-weight: 600;
      position: absolute;
      bottom: 0;
      left: 0; }
      @media screen and (max-width: 767px) {
        #strengths .sec03 .inner h3 span {
          position: relative;
          bottom: auto;
          left: auto;
          text-align: center;
          font-size: 1.6rem;
          margin: 30px auto 0;
          display: block; } }
  #strengths .sec03 .inner .box {
    margin-top: 60px; }
    @media screen and (max-width: 767px) {
      #strengths .sec03 .inner .box {
        margin-top: 0; } }
    #strengths .sec03 .inner .box h4 {
      background: #333;
      color: #fff;
      font-size: 1.8rem;
      font-weight: normal;
      letter-spacing: .1em;
      padding: 15px 30px;
      margin-bottom: 30px; }
      @media screen and (max-width: 767px) {
        #strengths .sec03 .inner .box h4 {
          font-size: 1.2rem;
          margin-top: 30px; } }
    @media screen and (max-width: 767px) {
      #strengths .sec03 .inner .box img {
        display: block;
        width: 100%;
        max-width: 500px;
        margin: 15px auto 0; } }
#strengths .sec04 .inner h3 {
  width: 100%;
  background: none;
  font-family: "Noto Serif JP", serif;
  padding: 0;
  position: relative; }
  #strengths .sec04 .inner h3 img {
    display: block;
    width: 600px;
    margin: 0 auto; }
    @media screen and (max-width: 767px) {
      #strengths .sec04 .inner h3 img {
        width: 90%;
        max-width: 400px; } }
  #strengths .sec04 .inner h3 span {
    font-size: 2.3rem;
    font-weight: 600;
    position: absolute;
    bottom: 0;
    left: 0; }
    @media screen and (max-width: 767px) {
      #strengths .sec04 .inner h3 span {
        position: relative;
        bottom: auto;
        left: auto;
        text-align: center;
        font-size: 1.6rem;
        margin: 30px auto 0;
        display: block; } }
#strengths .sec04 .inner .box {
  margin-top: 60px; }
  @media screen and (max-width: 767px) {
    #strengths .sec04 .inner .box {
      margin-top: 0; } }
  #strengths .sec04 .inner .box h4 {
    background: #333;
    color: #fff;
    font-size: 1.8rem;
    font-weight: normal;
    letter-spacing: .1em;
    padding: 15px 30px;
    margin-bottom: 30px; }
    @media screen and (max-width: 767px) {
      #strengths .sec04 .inner .box h4 {
        font-size: 1.2rem;
        margin-top: 30px; } }
  @media screen and (max-width: 767px) {
    #strengths .sec04 .inner .box img {
      display: block;
      width: 100%;
      max-width: 500px;
      margin: 0 auto; } }
  #strengths .sec04 .inner .box dl {
    margin-top: 60px; }
    @media screen and (max-width: 767px) {
      #strengths .sec04 .inner .box dl {
        max-width: 500px;
        margin: 30px auto; } }
    #strengths .sec04 .inner .box dl a {
      text-decoration: none;
      display: block;
      background: #fff;
      padding: 15px 15px 30px 15px;
      border: 1px solid #999;
      border-radius: 5px;
      font-size: 1rem; }
      #strengths .sec04 .inner .box dl a:hover {
        text-decoration: underline; }
      #strengths .sec04 .inner .box dl a dt {
        margin-bottom: 30px; }
      #strengths .sec04 .inner .box dl a dd {
        text-align: right; }
        #strengths .sec04 .inner .box dl a dd i {
          font-size: 2rem;
          vertical-align: bottom; }

/*--------------------
	CURRICULUM
--------------------*/
#curriculum {
  margin-top: 90px; }
  @media screen and (max-width: 767px) {
    #curriculum {
      margin-top: 30px; } }
  #curriculum .sec01 h3 {
    background: #77abda;
    color: #fff;
    margin: 0; }
    @media screen and (max-width: 767px) {
      #curriculum .sec01 h3 {
        font-size: 1.4rem;
        margin-bottom: 15px; } }
  @media screen and (max-width: 767px) {
    #curriculum .sec01 img {
      display: block;
      width: 100%;
      max-width: 400px;
      margin: 15px auto 0; } }
  #curriculum .sec01 h4 {
    font-size: 1.6rem;
    font-weight: normal;
    border-bottom: 1PX solid #999;
    position: relative;
    margin: 60px 0 15px 0; }
    @media screen and (max-width: 767px) {
      #curriculum .sec01 h4 {
        font-size: 1.2rem;
        margin: 30px 0 15px; } }
    #curriculum .sec01 h4 i {
      position: absolute;
      right: 0; }
    #curriculum .sec01 h4 .cls {
      opacity: 1; }
    #curriculum .sec01 h4 .opn {
      opacity: 0; }
  #curriculum .sec01 .open .cls {
    opacity: 0; }
  #curriculum .sec01 .open .opn {
    opacity: 1; }
  @media screen and (max-width: 767px) {
    #curriculum .sec01 .content {
      overflow-x: scroll; } }
  #curriculum .sec01 table {
    width: 100%;
    box-sizing: border-box; }
    @media screen and (max-width: 767px) {
      #curriculum .sec01 table {
        min-width: 750px; } }
    #curriculum .sec01 table thead {
      background: #77abda;
      color: #fff; }
      #curriculum .sec01 table thead th {
        font-weight: normal;
        padding: 15px 0;
        border: 1px solid #999; }
    #curriculum .sec01 table tbody {
      background: #fff; }
      #curriculum .sec01 table tbody td {
        text-indent: 1em;
        vertical-align: middle;
        padding: 15px 0;
        border: 1px solid #999; }
  #curriculum .sec02 h3 {
    background: #ed7baf;
    color: #fff;
    margin: 0; }
  #curriculum .sec02 h4 {
    font-size: 1.6rem;
    font-weight: normal;
    border-bottom: 1PX solid #999;
    position: relative;
    margin: 60px 0 15px 0; }
    @media screen and (max-width: 767px) {
      #curriculum .sec02 h4 {
        margin: 30px 0 15px;
        font-size: 1.2rem; } }
    #curriculum .sec02 h4 i {
      position: absolute;
      right: 0; }
    #curriculum .sec02 h4 .cls {
      opacity: 1; }
    #curriculum .sec02 h4 .opn {
      opacity: 0; }
  #curriculum .sec02 .open .cls {
    opacity: 0; }
  #curriculum .sec02 .open .opn {
    opacity: 1; }
  @media screen and (max-width: 767px) {
    #curriculum .sec02 .content {
      overflow-x: scroll; } }
  #curriculum .sec02 table {
    width: 100%;
    box-sizing: border-box; }
    @media screen and (max-width: 767px) {
      #curriculum .sec02 table {
        min-width: 750px; } }
    #curriculum .sec02 table thead {
      background: #ed7baf;
      color: #fff; }
      #curriculum .sec02 table thead th {
        font-weight: normal;
        padding: 15px 0;
        border: 1px solid #999; }
    #curriculum .sec02 table tbody {
      background: #fff; }
      #curriculum .sec02 table tbody td {
        text-indent: 1em;
        vertical-align: middle;
        padding: 15px 0;
        border: 1px solid #999; }
  #curriculum .sec03 h3 {
    margin: 0; }
  #curriculum .sec03 h4 {
    font-size: 1.6rem;
    font-weight: normal;
    margin: 60px 0 15px 0; }
    @media screen and (max-width: 767px) {
      #curriculum .sec03 h4 {
        font-size: 1.2rem;
        margin: 30px 0 15px; } }
  #curriculum .sec03 ul {
    list-style: none;
    display: grid;
    column-gap: 60px;
    row-gap: 30px;
    margin: 0; }
    #curriculum .sec03 ul li {
      background: #fff;
      border: 1px solid #ddd;
      position: relative; }
      #curriculum .sec03 ul li a {
        display: block;
        padding: 28px 30px;
        text-decoration: none; }
        #curriculum .sec03 ul li a:hover {
          text-decoration: underline; }
        #curriculum .sec03 ul li a i {
          font-size: 2rem;
          position: absolute;
          top: 25px;
          right: 30px; }
  #curriculum .sec03 .tpl {
    width: 80%;
    grid-template-columns: 1fr 1fr 1fr; }
    @media screen and (max-width: 767px) {
      #curriculum .sec03 .tpl {
        grid-template-columns: 1fr; } }
  #curriculum .sec03 .dbl {
    grid-template-columns: 1fr 1fr;
    padding-top: 60px;
    border-top: 1px solid #333;
    margin-top: 60px; }
    @media screen and (max-width: 767px) {
      #curriculum .sec03 .dbl {
        grid-template-columns: 1fr; } }

/*--------------------
	PRACTICE
--------------------*/
#practice {
  margin-top: 90px; }
  @media screen and (max-width: 767px) {
    #practice {
      margin-top: 30px; } }
  #practice .sec01 .box {
    column-gap: 15px; }
    #practice .sec01 .box h3 {
      background: none;
      font-family: "Noto Serif JP", serif;
      font-size: 2.4rem;
      font-weight: 600;
      letter-spacing: .1em;
      padding: 0;
      margin: 0 0 60px 0; }
      @media screen and (max-width: 767px) {
        #practice .sec01 .box h3 {
          font-size: 1.4rem;
          margin-bottom: 30px; } }
    @media screen and (max-width: 767px) {
      #practice .sec01 .box img {
        display: block;
        width: 100%;
        max-width: 400px;
        margin: 15px auto 0; } }
  @media screen and (max-width: 767px) {
    #practice .sec02 h3 {
      margin-bottom: 15px; } }
  #practice .sec02 .box {
    margin-top: 30px; }
    @media screen and (max-width: 767px) {
      #practice .sec02 .box img {
        display: block;
        width: 100%;
        max-width: 400px;
        margin: 0 auto 15px; } }
  @media screen and (max-width: 767px) {
    #practice .sec03 h3 {
      margin-bottom: 15px; } }
  #practice .sec03 .inner h4 {
    font-size: 1.6rem;
    font-weight: normal;
    margin: 60px 0 15px 0; }
    @media screen and (max-width: 767px) {
      #practice .sec03 .inner h4 {
        font-size: 1.2rem;
        margin: 30px 0 15px; } }
  #practice .sec03 .inner div {
    background: #fff;
    padding: 30px;
    border-left: 10px solid var(--main_color_yellow); }
    @media screen and (max-width: 767px) {
      #practice .sec03 .inner div {
        padding: 30px 5%; } }
    #practice .sec03 .inner div dl {
      display: grid;
      grid-template-columns: 200px 1fr; }
      @media screen and (max-width: 767px) {
        #practice .sec03 .inner div dl {
          grid-template-columns: 1fr; } }
      #practice .sec03 .inner div dl dt {
        font-weight: 500;
        border-right: 1px solid #ccc;
        padding-top: 30px; }
        @media screen and (max-width: 767px) {
          #practice .sec03 .inner div dl dt {
            border-right: none;
            border-bottom: 1px solid #ccc;
            padding: 0 0 15px 0; } }
      #practice .sec03 .inner div dl dd {
        padding-left: 30px; }
        @media screen and (max-width: 767px) {
          #practice .sec03 .inner div dl dd {
            padding: 15px 0 0 0; } }
        #practice .sec03 .inner div dl dd span {
          display: inline-block;
          font-weight: 500;
          margin-bottom: 5px; }
    #practice .sec03 .inner div .undr-l {
      padding-bottom: 15px;
      border-bottom: 1px solid #ccc;
      margin-bottom: 15px; }
      @media screen and (max-width: 767px) {
        #practice .sec03 .inner div .undr-l {
          border: none; } }
  @media screen and (max-width: 767px) {
    #practice .sec04 h3 {
      margin-bottom: 15px; } }
  #practice .sec04 .box {
    margin-top: 30px; }
    @media screen and (max-width: 767px) {
      #practice .sec04 .box img {
        display: block;
        width: 100%;
        max-width: 400px;
        margin: 0 auto 15px; } }

/*--------------------
	TRAINIG
--------------------*/
#training {
  margin-top: 90px; }
  @media screen and (max-width: 767px) {
    #training {
      margin-top: 30px; } }
  #training .sec01 h3 {
    background: none;
    font-family: "Noto Serif JP", serif;
    font-size: 2.4rem;
    font-weight: 600;
    letter-spacing: .1em;
    padding: 0;
    margin: 0 0 60px 0; }
    @media screen and (max-width: 767px) {
      #training .sec01 h3 {
        font-size: 1.4rem;
        margin-bottom: 30px; } }
  @media screen and (max-width: 767px) {
    #training .sec01 img {
      display: block;
      width: 100%;
      max-width: 400px;
      margin: 15px auto; } }
  #training .sec02 h3 {
    padding: 120px 5% 120px 20%; }
    @media screen and (max-width: 767px) {
      #training .sec02 h3 {
        padding: 30px 5% 60px 20%; } }
  #training .sec02 .box {
    column-gap: 150px;
    margin-top: -100px; }
    @media screen and (max-width: 767px) {
      #training .sec02 .box {
        margin-top: -60px; } }
    @media screen and (max-width: 767px) {
      #training .sec02 .box img {
        display: block;
        width: 100%;
        max-width: 400px;
        margin: 0 auto 15px; } }
