@charset "UTF-8";
/* ----------------------------------------------------------------------------------------------------
*  基本情報
* --------------------------------------------------------------------------------------------------*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200;300;400;500;600&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap");
html, body {
  height: 100%; }

html {
  font-size: 62.5%;
  overflow-y: scroll; }

body, h1, h2, h3, h4, h5, h6, p, address, ul, ol, li, dl, dt, dd, table, th, td, img, form, figure {
  margin: 0;
  padding: 0;
  border: none;
  font-size: 2.4rem;
  line-height: 1.6;
  list-style-type: none;
  font-style: normal;
  font-weight: normal;
  font-family: "メイリオ",Meiryo,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック",Arial,Verdana,sans-serif;
  text-align: left;
  color: #333; }

div, h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ol, ul, li, form, input, textarea, button, table, tr, th, td, article, aside, footer, header, hgroup, nav, section, a, span, img {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box; }

body {
  min-width: 1000px; }

a {
  color: #000;
  text-decoration: none; }
  a:hover {
    opacity: .7; }
  a img {
    transition: opacity 0.3s ease-out; }
  a:hover img {
    opacity: 0.7; }

figure {
  text-align: center;
  line-height: 0;
  margin: 0;
  padding: 0; }

p {
  font-size: 2.4rem;
  line-height: 1.55; }
  p.nrw {
    letter-spacing: -.02em; }

.sp {
  display: none; }

.wrap {
  width: 100%;
  max-width: 760px;
  margin: auto; }

/* ------------------------------
    text/font
------------------------------ */
.ta_c {
  text-align: center; }

.fwb {
  font-weight: bold; }

.color_red {
  color: #cc0000 !important; }

.color_pink {
  color: #c70056 !important; }

.highlight {
  background: linear-gradient(transparent 43%, #fdf1af 44%, #fdf1af 88%, transparent 89%); }

.udl {
  background: linear-gradient(transparent 87%, #333 88%, #333 90%, transparent 90%); }

.udl_red {
  background: linear-gradient(transparent 87%, #c52312 88%, #c52312 92%, transparent 92%);
  color: #c52312; }

.mac .udl {
  border-bottom: 1px solid #333;
  padding-bottom: .1em;
  background: none; }
.mac .udl_red {
  border-bottom: 1px solid #c52312;
  padding-bottom: .1em;
  background: none; }

.font_serif {
  font-family: 'Noto Serif JP', serif; }

.font_sans {
  font-family: 'Noto Sans JP', sans-serif; }

.font_gos {
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", 'Noto Sans JP', "メイリオ", "Meiryo", sans-serif; }

.font-bebas {
  font-family: 'Bebas Neue', cursive; }

@media screen and (max-width: 767px) {
  body {
    min-width: inherit; }

  figure {
    width: 100%;
    text-align: center; }

  img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    height: auto; }

  p {
    font-size: 3.8vw; }

  .wrap {
    width: 96%; }

  .sp {
    display: block; }

  .pc {
    display: none; }

  .txt {
    font-size: 1.4rem; }

  .udl {
    background: linear-gradient(transparent 85%, #333 88%, transparent 95%);
    display: inline;
    padding: 0 0 0; }

  .udl_red {
    background: linear-gradient(transparent 85%, #c52312 88%, transparent 95%);
    display: inline;
    padding: 0 0 0; }

  .nowrap {
    white-space: normal; } }
/* ------------------------------
    flex
------------------------------ */
.flex {
  display: flex;
  display: -webkit-flex;
  display: -ms-flex; }

.justifycontent_spacebetween {
  -webkit-justify-content: space-between;
  justify-content: space-between; }

.justifycontent_center {
  -webkit-justify-content: center;
  justify-content: center; }

.alignitems_center {
  -webkit-align-items: center;
  align-items: center; }

.order1 {
  order: 1; }

.order2 {
  order: 2; }

/* ------------------------------
    float
------------------------------ */
.f_left {
  float: left; }

.f_right {
  float: right; }

/* ------------------------------
    clearfix
------------------------------ */
.cf {
  display: inline-block; }
  .cf:after {
    content: ".";
    display: block;
    height: 0;
    font-size: 0;
    clear: both;
    visibility: hidden; }

/* Hides from IE Mac */
* html .cf {
  height: 1%; }

.cf {
  display: block; }

/* End Hack */
.clear {
  clear: both; }

/* ------------------------------
*  form
------------------------------ */
input[type="text"], input[type="tel"] {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: "メイリオ",Meiryo,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック",Arial,Verdana,sans-serif; }

textarea, select {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: "メイリオ",Meiryo,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック",Arial,Verdana,sans-serif; }

input[type=button], input[type=submit] {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: "メイリオ",Meiryo,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック",Arial,Verdana,sans-serif; }

button[type=submit], input[type=reset] {
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: "メイリオ",Meiryo,"Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック",Arial,Verdana,sans-serif; }

select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  color: #999999; }
  select::-ms-expand {
    display: none; }

input[type="text"], input[type="tel"] {
  width: 100%;
  max-width: 100%; }

textarea {
  width: 100%;
  max-width: 100%;
  resize: vertical;
  overflow: auto; }

input[type=button], input[type=submit] {
  color: #fff;
  border-style: none; }

select::-ms-expand {
  display: none; }

::placeholder {
  color: #999999;
  font-size: 2.5rem; }

@media screen and (max-width: 767px) {
  input[type="text"], input[type="tel"] {
    width: 100%;
    font-size: 1.6rem !important; }

  textarea {
    width: 100%;
    font-size: 1.6rem !important; }

  ::placeholder {
    font-size: 3.6vw; } }
/* ------------------------------
*  header
------------------------------ */
header .header-bg {
  position: relative;
  background: url("../img/fv_bg.jpg") repeat top center; }
header .header-wrap {
  position: relative;
  max-width: 100%;
  height: auto;
  margin: auto; }
  header .header-wrap .main-title {
    max-width: 100%;
    line-height: 0; }
  header .header-wrap img {
    margin: 0 auto;
    display: block; }

@media screen and (max-width: 767px) {
  header .header-bg {
    border-top: 4px solid #389ea9; }
  header .header-wrap {
    padding: 3% 0 0; }
    header .header-wrap .main-title img {
      display: block;
      width: 100%; } }
@media screen and (min-width: 768px) {
  header .header-bg {
    border-top: 7px solid #389ea9; }
  header .header-wrap {
    width: 826px;
    padding: 20px 0 0; } }
/* ------------------------------
*  footer
------------------------------ */
.footer {
  text-align: center; }
  .footer * {
    font-weight: 300;
    line-height: 1;
    color: #000; }
  .footer p.copy {
    text-align: center; }
  .footer ul {
    text-align: center; }
    .footer ul li {
      border-left: 1px solid #000;
      display: inline-block; }
      .footer ul li:first-child {
        border-left: none; }

@media screen and (max-width: 767px) {
  .footer {
    margin-top: 5vw; }

  .sec07 + .cta_wrap .footer {
    margin-top: 4.6vw; }

  .footer * {
    font-size: 3.2vw; }
  .footer ul {
    margin: 0 auto 1.6vw; } }
@media screen and (min-width: 768px) {
  .footer {
    margin-top: 40px; }

  .sec07 + .cta_wrap .footer {
    margin-top: 33px; }

  .footer * {
    font-size: 2.4rem; }
  .footer ul {
    margin: 0 auto 8px; } }
/* ------------------------------
*  main
------------------------------ */
.contents_wrap {
  width: 100%;
  margin: auto;
  box-shadow: 0 0 4px 2px rgba(153, 153, 153, 0.3);
  background-color: #fff; }

.content_ttl.bg_turquoise {
  background: url("../img/bg_turquoise_canvas.png") repeat; }
.content_ttl.bg_green {
  background: url("../img/bg_green_canvas.png") repeat; }
.content_ttl .ttl {
  color: #fff;
  font-weight: 600;
  line-height: 1.2; }
  .content_ttl .ttl span {
    display: inline-block;
    font-weight: 500; }

figure.overlap {
  position: relative;
  margin: 0 auto; }
  figure.overlap img {
    position: relative;
    width: 100%;
    z-index: 1; }
  figure.overlap::after {
    position: absolute;
    content: ""; }

@media screen and (max-width: 767px) {
  .content_ttl .ttl {
    font-size: 8vw; }
    .content_ttl .ttl span {
      font-size: 4.8vw;
      margin-bottom: 1.2%; } }
@media screen and (min-width: 768px) {
  .contents_wrap {
    max-width: 720px; }

  .content_ttl .ttl {
    font-size: 6rem; }
    .content_ttl .ttl span {
      font-size: 3.6rem;
      margin-bottom: 12px; } }
/* ------------------------------
*  btn
------------------------------ */
.btn {
  transition: 0.5s; }
  .btn:hover {
    opacity: 0.7; }

/* ------------------------------
*  cta
------------------------------ */
.cta_wrap {
  background: url("../img/bg_turquoise_canvas.png") repeat; }
  .cta_wrap * {
    color: #ffffff;
    line-height: 1; }

.cta_btn * {
  color: #ffffff;
  line-height: 1; }

.cta_wrap .mds {
  letter-spacing: -.02em; }

.cta_btn a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  border-radius: 100px;
  text-align: center;
  margin: auto;
  background: #e83b8b;
  transition: opacity 0.3s ease-out; }
.cta_btn p:nth-of-type(2) {
  font-weight: 600; }

.obi {
  line-height: 0;
  background: url("../img/obi.jpg") repeat-x center center;
  background-size: auto 100%;
  width: 100%; }
  .obi img {
    display: none; }

@media screen and (max-width: 767px) {
  .cta_wrap {
    padding: 4.8vw 0 2.4vw; }

  .sec07 + .cta_wrap {
    padding-bottom: 5.333vw; }

  .cta_wrap .mds {
    font-size: 6.3vw;
    margin-bottom: 3.733vw; }

  .cta_btn a {
    width: 91.733vw;
    height: 14.933vw;
    padding: 2.133vw 0 3.2vw; }
  .cta_btn p:nth-of-type(1) {
    font-size: 3.4vw;
    margin-bottom: 1.2%; }
  .cta_btn p:nth-of-type(2) {
    font-size: 5.8vw; }

  .obi {
    height: 34.133vw; } }
@media screen and (min-width: 768px) {
  .cta_wrap {
    padding: 38px 0 16px; }

  .sec07 + .cta_wrap {
    padding-bottom: 60px; }

  .cta_wrap .mds {
    font-size: 4.8rem;
    margin-bottom: 22px; }

  .cta_btn a {
    width: 692px;
    height: 112px;
    padding: 10px 0 16px; }
  .cta_btn p:nth-of-type(1) {
    font-size: 2.4rem; }
  .cta_btn p:nth-of-type(2) {
    font-size: 4.2rem; }

  .obi {
    height: 239px; } }
/* ------------------------------
*  sec01
------------------------------ */
.sec01 {
  background: url("../img/bg_check.png") repeat; }
  .sec01 .sec_contents .list li {
    position: relative;
    color: #411010;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 300;
    line-height: 1.3;
    letter-spacing: -.06em; }
    .sec01 .sec_contents .list li::after {
      position: absolute;
      content: "";
      background: #c70056;
      border-radius: 50px;
      text-align: center;
      left: 0; }
    .sec01 .sec_contents .list li::before {
      position: absolute;
      content: "";
      z-index: 1;
      -webkit-transform: rotate(-45deg);
      transform: rotate(-45deg); }
  .sec01 .sec_contents .inner p {
    letter-spacing: -.01em; }
  .sec01 .mds {
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: .08em !important; }
  .sec01 .movie_wrap {
    background: #fff6f9; }
  .sec01 .movie_inn {
    width: 100%;
    margin: auto;
    line-height: 0;
    text-align: center; }
    .sec01 .movie_inn iframe {
      border: none;
      margin: auto; }

@media screen and (max-width: 767px) {
  .sec01 .sec_contents {
    padding: 7.2vw 0 8.533vw; }
    .sec01 .sec_contents .list {
      margin-bottom: 5.333vw; }
      .sec01 .sec_contents .list li {
        font-size: 4vw;
        padding-left: 1.6em; }
        .sec01 .sec_contents .list li::after {
          width: 4.8vw;
          height: 4.8vw;
          line-height: 4.8vw;
          top: .1em; }
        .sec01 .sec_contents .list li::before {
          border-left: 0.533vw solid #fff;
          border-bottom: 0.533vw solid #fff;
          top: .5em;
          left: .35em;
          width: 1.867vw;
          height: 0.8vw; }
        .sec01 .sec_contents .list li + li {
          margin-top: 5vw; }
    .sec01 .sec_contents .inner {
      padding: 0 1.6%; }
      .sec01 .sec_contents .inner p + p {
        margin-top: 5vw; }
  .sec01 .mds {
    font-size: 6.8vw;
    margin-bottom: 6vw; }
  .sec01 .sec_contents .inner:nth-of-type(1), .sec01 .sec_contents .inner:nth-of-type(2) {
    margin-bottom: 8.5vw; }
  .sec01 .sec_contents .inner:nth-of-type(1) figure {
    padding: 0 0 5vw; }
    .sec01 .sec_contents .inner:nth-of-type(1) figure img {
      width: 52vw;
      margin: auto; }
  .sec01 .sec_contents .inner:nth-of-type(1) > p:nth-of-type(1) {
    padding-top: 0; }
  .sec01 .sec_contents .inner:nth-of-type(2) figure:nth-of-type(1) {
    padding: 0 0 5vw; }
  .sec01 .sec_contents .inner:nth-of-type(2) figure:nth-of-type(2) {
    padding: 5vw 0 6.2vw; }
  .sec01 .sec_contents .inner:nth-of-type(3) figure {
    padding: 5vw 0 6.2vw; }
  .sec01 .sec_contents .inner:nth-of-type(2) figure:nth-of-type(2) img, .sec01 .sec_contents .inner:nth-of-type(3) figure img {
    width: 80vw; }
  .sec01 .movie_wrap {
    padding: 7.2vw 0; }
  .sec01 .movie_inn {
    position: relative;
    padding-top: 56.323%;
    margin: 0 auto; }
    .sec01 .movie_inn iframe {
      width: 100% !important;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0; } }
@media screen and (min-width: 768px) {
  .sec01 .sec_contents {
    padding: 59px 0 68px; }
    .sec01 .sec_contents .list {
      margin-bottom: 62px; }
      .sec01 .sec_contents .list li {
        font-size: 3rem;
        padding-left: 1.32em;
        white-space: nowrap; }
        .sec01 .sec_contents .list li::after {
          width: 34px;
          height: 34px;
          line-height: 34px;
          top: .1em; }
        .sec01 .sec_contents .list li::before {
          border-left: 3px solid #fff;
          border-bottom: 3px solid #fff;
          top: .4em;
          left: .3em;
          width: 14px;
          height: 8px; }
        .sec01 .sec_contents .list li + li {
          margin-top: 40px; }
    .sec01 .sec_contents .inner {
      padding: 0 22px; }
      .sec01 .sec_contents .inner p + p {
        margin-top: 35px; }
  .sec01 .mds {
    font-size: 4.8rem;
    margin-bottom: 58px;
    white-space: nowrap; }
  .sec01 .sec_contents .inner:nth-of-type(2) .mds {
    margin-bottom: 58px; }
  .sec01 .sec_contents .inner:nth-of-type(3) .mds, .sec01 .sec_contents .inner:nth-of-type(1), .sec01 .sec_contents .inner:nth-of-type(2) {
    margin-bottom: 75px; }
  .sec01 .sec_contents .inner:nth-of-type(1) figure {
    padding: 0 4px 0 22px; }
  .sec01 .sec_contents .inner:nth-of-type(1) > p:nth-of-type(1) {
    padding-top: 10px; }
  .sec01 .sec_contents .inner:nth-of-type(2) figure:nth-of-type(1) {
    padding: 23px 0 33px; }
  .sec01 .sec_contents .inner:nth-of-type(2) figure:nth-of-type(2) {
    padding: 26px 0 50px; }
  .sec01 .sec_contents .inner:nth-of-type(3) figure {
    padding: 50px 0 45px; }
  .sec01 .movie_wrap {
    padding: 50px 0; } }
/* ------------------------------
*  sec02
------------------------------ */
.sec02 {
  background: #fff6f9; }
  .sec02 .tbl_wrap table {
    width: 100%;
    margin: auto;
    border-collapse: collapse;
    border: 2px solid #292929; }
  .sec02 .tbl_wrap * {
    font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", 'Noto Sans JP', "メイリオ", "Meiryo", sans-serif;
    text-align: center; }
  .sec02 .tbl_wrap thead th {
    color: #ffffff;
    font-weight: 500;
    line-height: 1;
    width: 50%; }
    .sec02 .tbl_wrap thead th:nth-of-type(1) {
      background: #333333; }
    .sec02 .tbl_wrap thead th:nth-of-type(2) {
      background: #c70056; }
  .sec02 .tbl_wrap tbody td {
    border: 1px solid #292929;
    vertical-align: middle; }
    .sec02 .tbl_wrap tbody td:nth-of-type(2) {
      color: #c70056; }
  .sec02 .course_wrap .cls_inn {
    position: relative;
    width: 100%;
    margin: auto; }
    .sec02 .course_wrap .cls_inn::before {
      position: absolute;
      color: #fff;
      text-align: center;
      font-weight: 600;
      font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", 'Noto Sans JP', "メイリオ", "Meiryo", sans-serif;
      left: 50%;
      transform: translateX(-50%); }
  .sec02 .course_wrap .beginner::before {
    content: "初級編";
    background: url("../img/sec02_label_blue.png") no-repeat top center/cover; }
  .sec02 .course_wrap .intermediate::before {
    content: "中級編";
    background: url("../img/sec02_label_pink.png") no-repeat top center/cover; }
  .sec02 .course_wrap .beginner {
    background: #e1edf8; }
  .sec02 .course_wrap .intermediate {
    background: #fae7ef; }
  .sec02 .course_wrap .wh_wrap {
    width: 100%;
    margin: auto;
    background: #ffffff; }
    .sec02 .course_wrap .wh_wrap > p {
      line-height: 1.5; }
  .sec02 .course_wrap .cls_ttl {
    font-weight: 600;
    color: #391a1b;
    line-height: 1.2;
    border-bottom: 2px dashed #898989; }
  .sec02 .course_wrap figure img {
    box-shadow: 0px 0px 9px 5px rgba(139, 139, 139, 0.9); }
  .sec02 .course_wrap .step li {
    display: flex;
    justify-content: flex-start;
    align-items: center; }
    .sec02 .course_wrap .step li .num {
      position: relative;
      border-radius: 50px;
      color: #ffffff;
      display: flex;
      flex-wrap: wrap;
      flex-direction: row;
      justify-content: center;
      line-height: 0; }
  .sec02 .course_wrap .beginner .step li .num {
    background: #009af4; }
  .sec02 .course_wrap .intermediate .step li .num {
    background: #c70056; }
  .sec02 .course_wrap .step li .num span {
    display: inline-block;
    text-align: center;
    font-family: 'Bebas Neue', cursive;
    width: 100%;
    line-height: 1; }
    .sec02 .course_wrap .step li .num span:nth-of-type(1) {
      letter-spacing: .1em; }
  .sec02 .course_wrap .step li .txt {
    color: #391a1b;
    font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", 'Noto Sans JP', "メイリオ", "Meiryo", sans-serif;
    letter-spacing: .12em; }

@media screen and (max-width: 767px) {
  .sec02 {
    padding: 1.867vw 0 6vw; }
    .sec02 .contents_wrap {
      padding: 7.467vw 0 5vw; }
    .sec02 .ttl {
      margin: 0 auto 3.2vw; }
    .sec02 .tbl_wrap {
      padding: 0 1.333vw;
      margin-bottom: 9.6vw; }
      .sec02 .tbl_wrap thead th {
        font-size: 4vw;
        padding: 1.867vw 0 2.4vw; }
      .sec02 .tbl_wrap tbody td {
        font-size: 3.8vw;
        height: 12.8vw;
        line-height: 1.4;
        padding: 0 1.2%; }
        .sec02 .tbl_wrap tbody td.fz3 {
          font-size: 4.2vw; }
    .sec02 .course_wrap {
      padding: 0 1.6vw; }
      .sec02 .course_wrap > p {
        padding: 0 1.333vw;
        margin-bottom: 8vw; }
      .sec02 .course_wrap .cls_inn {
        padding: 4.8vw 1.6vw 1.867vw; }
        .sec02 .course_wrap .cls_inn::before {
          font-size: 6.2vw;
          line-height: 15.467vw;
          width: 26.667vw;
          height: 13.6vw;
          top: -10.133vw; }
        .sec02 .course_wrap .cls_inn + .cls_inn {
          margin-top: 18.667vw; }
      .sec02 .course_wrap .beginner {
        margin-top: 21.333vw; }
      .sec02 .course_wrap .wh_wrap {
        padding: 5.333vw 2.133vw 4.8vw; }
        .sec02 .course_wrap .wh_wrap > p + p {
          padding-top: 5vw; }
      .sec02 .course_wrap .cls_ttl {
        font-size: 5.8vw;
        padding-bottom: 4.8vw;
        margin-bottom: 5.333vw; }
      .sec02 .course_wrap figure {
        margin-bottom: 4.8vw; }
        .sec02 .course_wrap figure img {
          width: 68vw; }
      .sec02 .course_wrap .step {
        padding-left: 2.4vw; }
      .sec02 .course_wrap .beginner .step, .sec02 .course_wrap .intermediate .step {
        margin-bottom: 5.333vw; }
      .sec02 .course_wrap .step li + li {
        margin-top: 2.667vw; }
      .sec02 .course_wrap .step li .num {
        width: 10.667vw;
        height: 10.667vw;
        padding: 2.133vw 0; }
        .sec02 .course_wrap .step li .num span:nth-of-type(1) {
          font-size: 3.6vw; }
        .sec02 .course_wrap .step li .num span:nth-of-type(2) {
          font-size: 4.2vw; }
      .sec02 .course_wrap .step li .txt {
        font-size: 5.6vw;
        padding-left: 2.667vw; } }
@media screen and (min-width: 768px) {
  .sec02 {
    padding: 10px 0 43px; }
    .sec02 .contents_wrap {
      padding: 58px 0 38px; }
    .sec02 .ttl {
      margin: 0 auto 23px; }
    .sec02 .tbl_wrap {
      padding: 0 10px;
      margin-bottom: 70px; }
      .sec02 .tbl_wrap thead th {
        font-size: 2.8rem;
        padding: 7px 0 9px; }
      .sec02 .tbl_wrap tbody td {
        font-size: 2.4rem;
        height: 72px; }
        .sec02 .tbl_wrap tbody td.fz3 {
          font-size: 3rem; }
    .sec02 .course_wrap {
      padding: 0 10px; }
      .sec02 .course_wrap > p {
        padding: 0 10px;
        margin-bottom: 120px; }
      .sec02 .course_wrap .cls_inn {
        padding: 43px 12px 15px; }
        .sec02 .course_wrap .cls_inn::before {
          font-size: 4.8rem;
          line-height: 118px;
          width: 197px;
          height: 101px;
          top: -63px; }
        .sec02 .course_wrap .cls_inn + .cls_inn {
          margin-top: 123px; }
      .sec02 .course_wrap .beginner {
        margin-top: 165px; }
      .sec02 .course_wrap .wh_wrap {
        padding: 32px 8px 40px; }
        .sec02 .course_wrap .wh_wrap > p + p {
          padding-top: 35px; }
      .sec02 .course_wrap .cls_ttl {
        font-size: 4rem;
        padding-bottom: 30px;
        margin-bottom: 34px; }
      .sec02 .course_wrap .beginner figure {
        margin-bottom: 30px; }
      .sec02 .course_wrap .intermediate figure {
        margin-bottom: 42px; }
      .sec02 .course_wrap .step {
        padding-left: 18px; }
      .sec02 .course_wrap .beginner .step {
        margin-bottom: 40px; }
      .sec02 .course_wrap .intermediate .step {
        margin-bottom: 58px; }
      .sec02 .course_wrap .step li + li {
        margin-top: 17px; }
      .sec02 .course_wrap .step li .num {
        width: 68px;
        height: 68px;
        padding: 14px 0; }
        .sec02 .course_wrap .step li .num span:nth-of-type(1) {
          font-size: 1.8rem; }
        .sec02 .course_wrap .step li .num span:nth-of-type(2) {
          font-size: 3rem; }
      .sec02 .course_wrap .step li .txt {
        font-size: 3.4rem;
        padding-left: 21px; } }
/* ------------------------------
*  sec03
------------------------------ */
.sec03 {
  background: url("../img/fv_bg.jpg") repeat top center; }
  .sec03 .sec_contents .ttl {
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1; }
  .sec03 .sec_contents .name p {
    color: #111;
    letter-spacing: .05em; }
    .sec03 .sec_contents .name p:nth-of-type(2) {
      font-weight: 600; }
  .sec03 .overlap::after {
    background: #fae7ef; }

@media screen and (max-width: 767px) {
  .sec03 {
    padding: 5.333vw 0 6.667vw; }
    .sec03 .sec_contents {
      padding: 0 1.6%; }
      .sec03 .sec_contents .txt_wrap p + p {
        margin-top: 5vw; }
      .sec03 .sec_contents .ttl {
        font-size: 6.3vw;
        margin-bottom: 1.6vw; }
      .sec03 .sec_contents .name p:nth-of-type(1) {
        font-size: 4.1vw;
        line-height: 1.2;
        white-space: nowrap; }
      .sec03 .sec_contents .name p:nth-of-type(2) {
        font-size: 6vw;
        margin-bottom: 2.133vw; }
    .sec03 .overlap {
      width: 79.2vw;
      height: 52.8vw;
      margin-bottom: 6vw; }
      .sec03 .overlap::after {
        width: 79.2vw;
        height: 52.8vw;
        top: 1.6vw;
        left: 1.6vw; } }
@media screen and (min-width: 768px) {
  .sec03 {
    padding: 36px 0 48px; }
    .sec03 .sec_contents {
      padding: 0 20px; }
      .sec03 .sec_contents .txt_wrap p + p {
        margin-top: 35px; }
      .sec03 .sec_contents .ttl {
        font-size: 4.8rem;
        margin-bottom: 23px; }
      .sec03 .sec_contents .name p:nth-of-type(1) {
        font-size: 2.4rem; }
      .sec03 .sec_contents .name p:nth-of-type(2) {
        font-size: 4rem;
        margin-bottom: 10px; }
    .sec03 .overlap {
      width: 597px;
      height: 398px;
      margin-bottom: 62px; }
      .sec03 .overlap::after {
        width: 597px;
        height: 398px;
        top: 12px;
        left: 12px; } }
/* ------------------------------
*  sec04
------------------------------ */
.sec04 {
  background: #fff6f9; }
  .sec04 .inner .sub_ttl_wrap {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    border-bottom: 1px solid #4e4443; }
    .sec04 .inner .sub_ttl_wrap::before, .sec04 .inner .sub_ttl_wrap::after {
      position: absolute;
      content: "";
      top: 100%;
      left: 50%;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
    .sec04 .inner .sub_ttl_wrap p {
      position: relative;
      border-radius: 50px;
      color: #ffffff;
      display: flex;
      flex-wrap: wrap;
      flex-direction: row;
      justify-content: center;
      line-height: 0;
      background: #2bb1cf;
      flex-shrink: 0; }
      .sec04 .inner .sub_ttl_wrap p span {
        display: inline-block;
        text-align: center;
        width: 100%;
        line-height: 1; }
        .sec04 .inner .sub_ttl_wrap p span:nth-of-type(1) {
          letter-spacing: .1em;
          font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", 'Noto Sans JP', "メイリオ", "Meiryo", sans-serif; }
        .sec04 .inner .sub_ttl_wrap p span:nth-of-type(2) {
          font-family: 'Bebas Neue', cursive; }
    .sec04 .inner .sub_ttl_wrap .sub_ttl {
      color: #391a1b;
      font-weight: 600;
      font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", 'Noto Sans JP', "メイリオ", "Meiryo", sans-serif; }
  .sec04 .inner:nth-of-type(5) .sub_ttl_wrap .sub_ttl {
    letter-spacing: -.05em; }
  .sec04 .overlap::after {
    background: #d7f6ff; }

@media screen and (max-width: 767px) {
  .sec04 {
    padding-bottom: 5.6vw; }
    .sec04 .content_ttl {
      height: 26.667vw;
      padding-top: 2.133vw;
      margin-bottom: 4.8vw; }
    .sec04 .contents_wrap {
      padding: 5.333vw 1.333vw 6.4vw; }
    .sec04 .inner {
      padding: 0 1.333vw; }
      .sec04 .inner + .inner {
        margin-top: 5.8vw; }
      .sec04 .inner .sub_ttl_wrap {
        margin-bottom: 8.533vw;
        padding-bottom: 2.667vw;
        padding-left: 1.067vw; }
        .sec04 .inner .sub_ttl_wrap::before, .sec04 .inner .sub_ttl_wrap::after {
          border: solid 4.267vw transparent; }
        .sec04 .inner .sub_ttl_wrap::before {
          border-top: solid 4.267vw #4e4443; }
        .sec04 .inner .sub_ttl_wrap::after {
          border-top: solid 4.267vw #fff;
          margin-top: -1px; }
        .sec04 .inner .sub_ttl_wrap p {
          width: 10.667vw;
          height: 10.667vw;
          padding: 2.133vw 0; }
          .sec04 .inner .sub_ttl_wrap p span:nth-of-type(1) {
            font-size: 3.2vw;
            margin-bottom: 0.533vw; }
          .sec04 .inner .sub_ttl_wrap p span:nth-of-type(2) {
            font-size: 4.2vw; }
        .sec04 .inner .sub_ttl_wrap .sub_ttl {
          font-size: 5.6vw;
          padding-left: 2.8vw; }
      .sec04 .inner:nth-of-type(5) .sub_ttl_wrap .sub_ttl {
        font-size: 4.4vw;
        white-space: nowrap; }
    .sec04 .overlap {
      width: 62.933vw;
      height: 36.267vw;
      margin-bottom: 6.133vw; }
      .sec04 .overlap::after {
        width: 62.933vw;
        height: 36.267vw;
        top: 1.333vw;
        left: 1.333vw; } }
@media screen and (min-width: 768px) {
  .sec04 {
    padding-bottom: 42px; }
    .sec04 .content_ttl {
      height: 201px;
      padding-top: 12px;
      margin-bottom: 35px; }
    .sec04 .contents_wrap {
      padding: 40px 11px 60px; }
    .sec04 .inner {
      padding: 0 12px; }
      .sec04 .inner + .inner {
        margin-top: 55px; }
      .sec04 .inner .sub_ttl_wrap {
        margin-bottom: 60px;
        padding-bottom: 20px;
        padding-left: 12px; }
        .sec04 .inner .sub_ttl_wrap::before, .sec04 .inner .sub_ttl_wrap::after {
          border: solid 32px transparent; }
        .sec04 .inner .sub_ttl_wrap::before {
          border-top: solid 32px #4e4443; }
        .sec04 .inner .sub_ttl_wrap::after {
          border-top: solid 32px #fff;
          margin-top: -1px; }
        .sec04 .inner .sub_ttl_wrap p {
          width: 68px;
          height: 68px;
          padding: 12px 0; }
          .sec04 .inner .sub_ttl_wrap p span:nth-of-type(1) {
            font-size: 1.8rem;
            margin-bottom: 3px; }
          .sec04 .inner .sub_ttl_wrap p span:nth-of-type(2) {
            font-size: 3rem; }
        .sec04 .inner .sub_ttl_wrap .sub_ttl {
          font-size: 3.8rem;
          padding-left: 21px; }
      .sec04 .inner:nth-of-type(5) .sub_ttl_wrap .sub_ttl {
        font-size: 3.3rem;
        white-space: nowrap; }
    .sec04 .overlap {
      width: 473px;
      height: 272px;
      margin-bottom: 43px; }
      .sec04 .overlap::after {
        width: 473px;
        height: 272px;
        top: 10px;
        left: 10px; } }
/* ------------------------------
*  sec05
------------------------------ */
.sec05 {
  background: #d7f6ff; }
  .sec05 .content_ttl {
    display: flex;
    align-items: center;
    justify-content: center; }
    .sec05 .content_ttl .ttl {
      font-weight: 600; }
  .sec05 .inner p {
    letter-spacing: .02em; }
  .sec05 .sub_ttl {
    background: url("../img/sec05_fukidashi.png") no-repeat top center;
    font-weight: 600;
    text-align: left;
    letter-spacing: -.05em;
    line-height: 1.32; }
  .sec05 .age {
    font-weight: 600;
    line-height: calc(34/30); }

@media screen and (max-width: 767px) {
  .sec05 {
    padding-bottom: 3.733vw; }
    .sec05 .content_ttl {
      height: 21.333vw;
      margin-bottom: 4.8vw; }
      .sec05 .content_ttl .ttl {
        font-size: 9.6vw; }
    .sec05 .contents_wrap {
      padding: 3vw 1.333vw 5vw; }
      .sec05 .contents_wrap + .contents_wrap {
        margin-top: 6.2vw; }
    .sec05 .inner p {
      font-size: 3.8vw;
      padding: 0 1.333vw; }
      .sec05 .inner p + p {
        margin-top: 5vw; }
    .sec05 .inner figure {
      margin-bottom: 4.267vw; }
      .sec05 .inner figure img {
        width: 74.667vw;
        margin: auto; }
    .sec05 .sub_ttl {
      background-size: cover;
      width: 93.333vw;
      height: 20.8vw;
      font-size: 5.6vw;
      padding: 1.6vw 0 0 2.667vw;
      margin-bottom: 1.6vw; }
    .sec05 .contents_wrap:nth-of-type(1) .sub_ttl {
      font-size: 5.3vw;
      padding: 1.8vw 0 0 2.667vw; }
    .sec05 .contents_wrap:nth-of-type(5) .sub_ttl {
      font-size: 4.4vw;
      padding: 3.2vw 0 0 2.667vw; }
    .sec05 .contents_wrap:nth-of-type(6) .sub_ttl {
      font-size: 4.4vw;
      padding: 3.2vw 0 0 2.667vw; }
    .sec05 .age {
      font-size: 4vw !important; } }
@media screen and (min-width: 768px) {
  .sec05 {
    padding-bottom: 55px; }
    .sec05 .content_ttl {
      height: 163px;
      margin-bottom: 35px; }
      .sec05 .content_ttl .ttl {
        font-size: 7.2rem; }
    .sec05 .contents_wrap {
      padding: 20px 7px 48px; }
      .sec05 .contents_wrap + .contents_wrap {
        margin-top: 37px; }
    .sec05 .inner p {
      font-size: 2.6rem;
      padding: 0 10px; }
      .sec05 .inner p + p {
        margin-top: 35px; }
    .sec05 .inner figure {
      margin-bottom: 32px; }
    .sec05 .sub_ttl {
      background-size: auto;
      width: 704px;
      height: 157px;
      font-size: 4.2rem;
      padding: 12px 0 0 24px;
      margin-bottom: 14px; }
    .sec05 .contents_wrap:nth-of-type(1) .sub_ttl {
      font-size: 4rem;
      padding: 16px 0 0 22px; }
    .sec05 .contents_wrap:nth-of-type(5) .sub_ttl {
      font-size: 3.33rem;
      padding: 23px 0 0 22px; }
    .sec05 .contents_wrap:nth-of-type(6) .sub_ttl {
      font-size: 3.33rem;
      padding: 23px 0 0 22px; }
    .sec05 .age {
      font-size: 3rem !important; } }
/* ------------------------------
*  sec06
------------------------------ */
.sec06 {
  background: #fff6f9; }
  .sec06 .board_wrap {
    background: url("../img/bg_orange_canvas.png") repeat;
    width: 100%; }
    .sec06 .board_wrap .wh_wrap {
      position: relative;
      width: 100%;
      background: #ffffff;
      box-shadow: 0 0 4px 2px rgba(153, 153, 153, 0.3); }
      .sec06 .board_wrap .wh_wrap::before {
        position: absolute;
        content: "";
        background: url("../img/sec06_board_clip.png") no-repeat top center/cover;
        left: 50%;
        transform: translateX(-50%); }
    .sec06 .board_wrap .sub_ttl {
      font-weight: 600; }
    .sec06 .board_wrap li {
      position: relative;
      font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", 'Noto Sans JP', "メイリオ", "Meiryo", sans-serif;
      color: #411010;
      letter-spacing: -.05em;
      line-height: 1;
      white-space: nowrap; }
      .sec06 .board_wrap li.nrw {
        letter-spacing: -.08em !important; }
      .sec06 .board_wrap li::after {
        position: absolute;
        content: "";
        background: #c70056;
        border-radius: 50px;
        text-align: center;
        left: 0; }
      .sec06 .board_wrap li::before {
        position: absolute;
        content: "";
        z-index: 1;
        -webkit-transform: rotate(-45deg);
        transform: rotate(-45deg); }
  .sec06 .inner p {
    letter-spacing: -.05em; }
  .sec06 .inner .mds {
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
    color: #1f1f1f;
    font-weight: 600;
    letter-spacing: .01em;
    border-top: 1px solid #1f1f1f;
    border-bottom: 1px solid #1f1f1f; }
  .sec06 .inner .date {
    font-weight: 600;
    letter-spacing: .01em; }
  .sec06 .inner .tbl table {
    width: 100%;
    border-collapse: collapse;
    border: 2px solid #222222; }
  .sec06 .inner .tbl tr {
    border: 1px solid #222222; }
    .sec06 .inner .tbl tr th, .sec06 .inner .tbl tr td {
      line-height: 1; }
  .sec06 .inner .tbl th {
    width: 45%; }
  .sec06 .inner .tbl td {
    width: 55%; }

@media screen and (max-width: 767px) {
  .sec06 {
    padding: 2.4vw 0 11.2vw; }
    .sec06 .contents_wrap {
      padding: 7.467vw 0 11.2vw; }
    .sec06 .ttl {
      margin: 0 auto 2.4vw; }
    .sec06 .board_wrap {
      width: 96%;
      padding: 2.667vw 2.4vw 2.4vw;
      margin: 0 auto 60px; }
      .sec06 .board_wrap .wh_wrap {
        padding: 7.467vw 1.867vw 6.133vw; }
        .sec06 .board_wrap .wh_wrap::before {
          width: 29.867vw;
          height: 8.8vw;
          top: -2.133vw; }
      .sec06 .board_wrap .sub_ttl {
        font-size: 6.4vw;
        margin-bottom: 3.733vw; }
      .sec06 .board_wrap li {
        font-size: 3.9vw;
        padding-left: 1.5em; }
        .sec06 .board_wrap li::after {
          width: 4.8vw;
          height: 4.8vw;
          line-height: 4.8vw;
          top: -.1em; }
        .sec06 .board_wrap li::before {
          border-left: 0.533vw solid #fff;
          border-bottom: 0.533vw solid #fff;
          top: .3em;
          left: .35em;
          width: 1.867vw;
          height: 0.8vw; }
        .sec06 .board_wrap li + li {
          margin-top: 3.65vw; }
    .sec06 .inner {
      padding: 0 1.333vw; }
      .sec06 .inner + .inner {
        margin-top: 12.8vw; }
      .sec06 .inner p {
        padding: 0 1.333vw; }
        .sec06 .inner p + p {
          margin-top: 5vw; }
      .sec06 .inner .mds {
        height: 13.333vw; }
      .sec06 .inner:nth-of-type(2) .mds {
        font-size: 6.4vw;
        margin-bottom: 6.667vw; }
      .sec06 .inner:nth-of-type(3) .mds {
        font-size: 6vw;
        margin-bottom: 6.133vw; }
        .sec06 .inner:nth-of-type(3) .mds + figure {
          margin-bottom: 3.2vw; }
          .sec06 .inner:nth-of-type(3) .mds + figure img {
            width: 85.333vw; }
      .sec06 .inner .date {
        font-size: 6vw;
        margin: 9.067vw auto 8.533vw; }
      .sec06 .inner .tbl {
        margin: 6.133vw auto 5.6vw; }
        .sec06 .inner .tbl tr th, .sec06 .inner .tbl tr td {
          padding: 2.133vw 0 2.667vw 4vw;
          font-size: 4.2vw; }
    .sec06 .cta_btn {
      margin-top: 4.8vw; } }
@media screen and (min-width: 768px) {
  .sec06 {
    padding: 14px 0 89px; }
    .sec06 .contents_wrap {
      padding: 42px 0 86px; }
    .sec06 .ttl {
      margin: 0 auto 26px; }
    .sec06 .board_wrap {
      max-width: 692px;
      padding: 18px 17px 17px;
      margin: 0 auto 122px; }
      .sec06 .board_wrap .wh_wrap {
        padding: 66px 16px 42px; }
        .sec06 .board_wrap .wh_wrap::before {
          width: 230px;
          height: 67px;
          top: -16px; }
      .sec06 .board_wrap .sub_ttl {
        font-size: 4.8rem;
        margin-bottom: 20px; }
      .sec06 .board_wrap li {
        font-size: 3rem;
        padding-left: 1.4em; }
        .sec06 .board_wrap li::after {
          width: 34px;
          height: 34px;
          line-height: 34px;
          top: -.1em; }
        .sec06 .board_wrap li::before {
          border-left: 3px solid #fff;
          border-bottom: 3px solid #fff;
          top: .2em;
          left: .3em;
          width: 14px;
          height: 8px; }
        .sec06 .board_wrap li + li {
          margin-top: 26px; }
    .sec06 .inner {
      padding: 0 14px; }
      .sec06 .inner + .inner {
        margin-top: 104px; }
      .sec06 .inner p {
        padding: 0 3px; }
        .sec06 .inner p + p {
          margin-top: 35px; }
      .sec06 .inner .mds {
        height: 100px; }
      .sec06 .inner:nth-of-type(2) .mds {
        font-size: 4.8rem;
        margin-bottom: 56px; }
      .sec06 .inner:nth-of-type(3) .mds {
        font-size: 4.2rem;
        margin-bottom: 48px; }
        .sec06 .inner:nth-of-type(3) .mds + figure {
          margin-bottom: 30px; }
      .sec06 .inner .date {
        font-size: 4.5rem;
        margin: 68px auto 62px;
        white-space: nowrap; }
      .sec06 .inner .tbl {
        margin: 46px auto; }
        .sec06 .inner .tbl tr th, .sec06 .inner .tbl tr td {
          padding: 13px 0 15px 32px;
          font-size: 3rem; }
    .sec06 .cta_btn {
      margin-top: 38px; } }
/* ------------------------------
*  sec07
------------------------------ */
.sec07 {
  background: url("../img/fv_bg.jpg") repeat top center; }
  .sec07 .ttl {
    font-weight: 600;
    letter-spacing: .07em; }
  .sec07 .overlap::after {
    background: #fae7ef; }
  .sec07 .txt_wrap li {
    position: relative;
    padding-left: 1.38em;
    letter-spacing: -.03em;
    line-height: 1; }
    .sec07 .txt_wrap li::before {
      position: absolute;
      content: "●";
      color: #c70056;
      top: 0;
      left: 0; }

@media screen and (max-width: 767px) {
  .sec07 {
    padding: 6.4vw 0 12vw; }
    .sec07 .sec_contents {
      padding: 0 1.6%; }
      .sec07 .sec_contents p + p {
        margin-top: 5vw; }
    .sec07 .ttl {
      font-size: 6.8vw;
      margin-bottom: 4vw; }
    .sec07 .overlap {
      width: 79.2vw;
      height: 52.8vw;
      margin-bottom: 8vw; }
      .sec07 .overlap::after {
        width: 79.2vw;
        height: 52.8vw;
        top: 1.6vw;
        left: 1.6vw; }
    .sec07 .txt_wrap ul {
      margin: 5vw 0; }
    .sec07 .txt_wrap li {
      font-size: 3.8vw; }
      .sec07 .txt_wrap li + li {
        margin-top: 1.6vw; } }
@media screen and (min-width: 768px) {
  .sec07 {
    padding: 50px 0 90px; }
    .sec07 .sec_contents {
      padding: 0 20px; }
      .sec07 .sec_contents p + p {
        margin-top: 35px; }
    .sec07 .ttl {
      font-size: 4.8rem;
      margin-bottom: 32px; }
    .sec07 .overlap {
      width: 597px;
      height: 398px;
      margin-bottom: 70px; }
      .sec07 .overlap::after {
        width: 597px;
        height: 398px;
        top: 12px;
        left: 12px; }
    .sec07 .txt_wrap ul {
      margin: 40px 0; }
    .sec07 .txt_wrap li + li {
      margin-top: 12px; } }
/* ------------------------------
*  contact_form
------------------------------ */
.contact_form {
  background: #fff6f9; }
  .contact_form .contents_wrap .inner p {
    line-height: 1.45;
    letter-spacing: -.05em; }
  .contact_form .form_wrap th, .contact_form .form_wrap td {
    position: relative;
    display: block;
    line-height: 1;
    vertical-align: middle; }
  .contact_form .form_wrap tr:last-of-type td {
    margin-bottom: 0; }
  .contact_form .form_wrap input[type="text"], .contact_form .form_wrap select, .contact_form .form_wrap textarea {
    border: 1px solid #cccccc;
    background: #f6f6f6;
    width: 100% !important; }
  .contact_form .form_wrap input[type="text"] {
    padding: .5em .8em; }
  .contact_form .form_wrap select {
    padding: .6em 1.2em .5em; }
  .contact_form .form_wrap .select_element {
    position: relative; }
    .contact_form .form_wrap .select_element::before {
      position: absolute;
      content: "";
      width: 0;
      height: 0;
      border-style: solid;
      border-color: #111111 transparent transparent transparent;
      top: 50%;
      transform: translateY(-50%);
      z-index: 100; }
  .contact_form .form_wrap th .required {
    display: inline-block;
    background: #222222;
    color: #fff;
    font-weight: 600;
    text-align: center;
    line-height: 1;
    position: relative; }
  .contact_form .form_wrap textarea {
    padding: .5em .8em; }
  .contact_form .form_wrap ::placeholder {
    padding: .5em .5em; }

#OF_form1 input.OF_submit_btn1 {
  display: block;
  background: url("../img/btn_submit.png") no-repeat top center/cover;
  font-size: 0;
  line-height: 0;
  cursor: pointer;
  transition: opacity 0.3s ease-out; }
  #OF_form1 input.OF_submit_btn1:hover {
    opacity: .7; }

@media screen and (max-width: 767px) {
  .contact_form {
    padding-bottom: 6.933vw; }
    .contact_form .content_ttl {
      height: 26.667vw;
      padding-top: 2.133vw;
      margin-bottom: 4.8vw; }
    .contact_form .contents_wrap {
      padding: 4.533vw 2.667vw 5.867vw; }
      .contact_form .contents_wrap .inner {
        margin-bottom: 8.533vw; }
        .contact_form .contents_wrap .inner p + p {
          margin-top: 5vw; }
    .contact_form .form_wrap th {
      margin-bottom: 1.333vw;
      font-size: 4vw; }
    .contact_form .form_wrap td {
      margin-bottom: 5.333vw;
      font-size: 4vw; }
    .contact_form .form_wrap input[type="text"], .contact_form .form_wrap select, .contact_form .form_wrap textarea {
      height: 10.667vw;
      font-size: 3.6vw; }
    .contact_form .form_wrap .select_element::before {
      border-width: 1.867vw 1.067vw 0 1.067vw;
      right: 2.667vw; }
    .contact_form .form_wrap th .required {
      font-size: 3vw;
      padding: 0.8vw 2.133vw;
      top: -0.533vw;
      left: 1.333vw;
      margin-right: 2.667vw; }
    .contact_form .form_wrap th .sm {
      font-size: 3.2vw; }
    .contact_form .form_wrap textarea {
      height: 26.667vw; }
    .contact_form .form_wrap input[type="checkbox"] {
      width: 4.267vw;
      height: 4.267vw;
      margin-right: 2.133vw; }
    .contact_form .form_wrap .radio0 {
      line-height: 1.4; }

  #OF_form1 input.OF_submit_btn1 {
    margin: 20px auto 22px;
    width: 90.667vw;
    height: 14.667vw; } }
@media screen and (min-width: 768px) {
  .contact_form {
    padding-bottom: 32px; }
    .contact_form .content_ttl {
      height: 201px;
      padding-top: 12px;
      margin-bottom: 35px; }
    .contact_form .contents_wrap {
      padding: 33px 16px 48px; }
      .contact_form .contents_wrap .inner {
        margin-bottom: 50px; }
        .contact_form .contents_wrap .inner p + p {
          margin-top: 32px; }
    .contact_form .form_wrap th {
      margin-bottom: 11px;
      font-size: 2.5rem; }
    .contact_form .form_wrap td {
      margin-bottom: 30px;
      font-size: 2.5rem; }
    .contact_form .form_wrap input[type="text"], .contact_form .form_wrap select, .contact_form .form_wrap textarea {
      height: 77px;
      font-size: 2.4rem; }
    .contact_form .form_wrap .select_element::before {
      border-width: 10px 6px 0 6px;
      right: 18px; }
    .contact_form .form_wrap th .required {
      font-size: 1.2rem;
      padding: 4px 12px;
      top: -3px;
      left: 10px;
      margin-right: 20px; }
    .contact_form .form_wrap th .sm {
      font-size: 1.6rem; }
    .contact_form .form_wrap textarea {
      height: 160px; }
    .contact_form .form_wrap input[type="checkbox"] {
      width: 20px;
      height: 20px;
      margin-right: 10px; }

  #OF_form1 input.OF_submit_btn1 {
    margin: 40px auto 46px;
    width: 690px;
    height: 112px; } }
/* ------------------------------
*  privacy
------------------------------ */
.privacy {
  max-width: 686px;
  width: 100%;
  height: 150px;
  padding: 2% 2% 2% 1%;
  margin: 0 auto 9px;
  overflow: hidden;
  overflow-y: scroll;
  background: #fff;
  border: 1px solid #ccc; }
  .privacy p, .privacy a, .privacy dt, .privacy dd, .privacy li {
    font-size: 1.6rem !important;
    line-height: 1.4; }
  .privacy dl {
    margin-top: 12px; }
  .privacy dt {
    font-weight: bold;
    margin-bottom: 3px; }

@media screen and (max-width: 767px) {
  .privacy {
    width: 100%;
    height: 20vw;
    margin-bottom: 5vw; }
    .privacy p, .privacy a, .privacy dt, .privacy dd, .privacy li {
      font-size: 3.2vw !important; } }
/* ------------------------------
*  fixbtn
------------------------------ */
.fixbtn {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  text-align: center;
  padding: 10px 0;
  max-width: 100%;
  z-index: 10; }
  .fixbtn img {
    max-width: 100%;
    margin: 0 auto; }

@media screen and (max-width: 768px) {
  .fixbtn {
    padding: 3% 0 0; }
    .fixbtn img {
      max-width: 92%; } }
/* ------------------------------
*  media
------------------------------ */
.media {
  padding: 43px 0 60px;
  margin: 0 auto; }
  .media.media02 {
    padding: 5px 0 68px; }
  .media .wrap {
    max-width: 694px; }
  .media .ttl {
    position: relative;
    width: 100%;
    margin: 0 auto 50px;
    border-top: 1px solid #1f1f1f;
    border-bottom: 1px solid #1f1f1f;
    height: 78px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center; }
    .media .ttl::before, .media .ttl::after {
      position: absolute;
      content: "";
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 0;
      content: '';
      border-width: 3.2rem 3.4rem 0 3.4rem;
      border-style: solid; }
    .media .ttl::before {
      bottom: -3.2rem;
      border-color: #1f1f1f transparent transparent transparent; }
    .media .ttl::after {
      bottom: -3.1rem;
      border-color: #fff transparent transparent transparent; }
    .media .ttl span {
      font-size: 3.6rem;
      font-weight: 700; }
  .media .inner + .inner {
    margin-top: 50px; }
  .media .inner.flex {
    justify-content: center; }
    .media .inner.flex.flex01 {
      gap: 0 40px; }
    .media .inner.flex.flex02 {
      gap: 0 60px; }
  .media .inner .item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px 0;
    width: 50%; }
    .media .inner .item.item01 .img, .media .inner .item.item02 .img {
      min-height: 388px;
      align-items: flex-end; }
    .media .inner .item.item03 {
      width: 100%; }
  .media .inner .img {
    display: flex;
    align-items: center;
    justify-content: center; }
  .media .inner .txt {
    font-size: 2.4rem;
    line-height: calc(36/24);
    color: #1f1f1f;
    text-align: center; }

@media screen and (max-width: 767px) {
  .media {
    padding: 8% 0 8%; }
    .media.media02 {
      padding: 3% 0 8%; }
    .media .wrap {
      max-width: inherit; }
    .media .ttl {
      margin: 0 auto 12%;
      height: auto;
      padding: 1.8% 0; }
      .media .ttl::before, .media .ttl::after {
        border-width: 1.8rem 2rem 0 2rem; }
      .media .ttl::before {
        bottom: -1.8rem; }
      .media .ttl::after {
        bottom: -1.7rem; }
      .media .ttl span {
        font-size: 6.2vw; }
    .media .inner + .inner {
      margin-top: 10%; }
    .media .inner.flex {
      flex-direction: column; }
      .media .inner.flex.flex01 {
        gap: 0; }
      .media .inner.flex.flex02 {
        gap: 0; }
    .media .inner .item {
      gap: 3vw 0;
      width: 100%; }
      .media .inner .item.item01 .img, .media .inner .item.item02 .img {
        min-height: inherit;
        align-items: flex-start; }
      .media .inner .item + .item {
        margin-top: 10%; }
      .media .inner .item.item02 img {
        width: 70%; }
      .media .inner .item.item03 img {
        width: 72%; }
    .media .inner img {
      width: 64%; }
    .media .inner .txt {
      font-size: 4vw; } }
