/* リセットCSS */
* {
    margin: 0;
    padding: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }
  
  body {
    font-family: "Inter", "Roboto", sans-serif;
    background-color: #eaecf6;
    color: #424449;
    line-height: 1.5;
  }
  
  a {
    text-decoration: none;
    color: inherit;
  }
  
  ol,
  ul {
    list-style: none;
    list-style-type: none;
  }
  
  html {
    scroll-behavior: smooth;
  }
  
  /* 共通セクションスタイル */
  section {
    position: relative;
    padding: 120px 5% 80px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    width: 100%;
    margin: 0 auto;
    overflow: hidden;
  }
  
  section .orange,
  section .pink,
  section .pink-2 {
    position: absolute;
    z-index: -1;
  }
  
  section .orange {
    width: 324px;
    height: 325px;
  }
  
  section .pink {
    width: 428px;
    height: 428px;
  }
  
  .fv .orange {
    top: 0;
    left: 0;
  }
  
  .fv .pink {
    bottom: -250px;
    margin: auto;
    left: 0;
    right: 0;
  }
  
  .reason .orange {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
    right: 0;
  }
  
  .reason .pink {
    top: -200px;
  }
  
  .curriculum .orange {
    right: 0;
    bottom: 400px;
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
  
  .curriculum .pink {
    left: -40px;
  }
  
  .voice .orange {
    top: 0;
    right: 300px;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  
  .voice .pink {
    left: -30px;
    top: -120px;
  }
  
  .teacher .orange {
    left: 0;
    bottom: 0;
  }
  
  .teacher .pink {
    right: -250px;
    top: 0;
  }
  
  .media .orange {
    left: 0;
  }
  
  .support .orange {
    right: 0;
    bottom: 300px;
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
  }
  
  .question .orange {
    left: 0;
    top: 400px;
  }
  
  img {
    display: block;
    width: 100%;
  }
  
  a {
    color: #3397db;
  }
  
  .text-link {
    position: relative;
  }
  
  .text-link::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 2px;
    width: 100%;
    height: 1px;
    transform: scale(0, 1);
    transform-origin: left top;
    transition: transform 0.2s;
    background: #3397db;
  }
  
  .text-link:hover::after {
    transform: scale(1, 1);
  }
  
  .bold {
    font-weight: 700;
  }
  
  /* ヘッダー */
  .header {
    background-color: #eaecf6;
    height: 80px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.2);
    z-index: 1000;
  }
  
  .header .content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    width: 1440px;
    padding: 0 24px;
  }
  
  .header .content .nav-wrapper {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 20px;
  }
  
  .logo a img {
    width: 140px;
  }
  
  .pc-only-flex {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
  }
  
  .tab-only,
  .tab-wrap,
  .sp-only {
    display: none !important;
  }
  
  .zdo_drawer_menu {
    position: relative;
    display: none;
  }
  
  .zdo_drawer_menu .zdo_drawer_button span,
  .zdo_drawer_menu .zdo_drawer_button span:before,
  .zdo_drawer_menu .zdo_drawer_button span:after {
    content: "";
    display: block;
    height: 2px;
    height: 2px;
    width: 50px;
    border-radius: 3px;
    background-color: #424449;
    position: absolute;
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
  }
  
  .zdo_drawer_menu .zdo_drawer_button span:before {
    bottom: 15px;
  }
  
  .zdo_drawer_menu .zdo_drawer_button span:after {
    top: 15px;
  }
  
  .zdo_drawer_menu.open {
    z-index: 1001;
  }
  
  .zdo_drawer_menu.open .zdo_drawer_button {
    z-index: 1001;
  }
  
  .zdo_drawer_menu.open .zdo_drawer_button span {
    background-color: rgba(255, 255, 255, 0);
    /*メニューオープン時は真ん中の線を透明にする*/
  }
  
  .zdo_drawer_menu.open .zdo_drawer_button span::before {
    bottom: 0;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  
  .zdo_drawer_menu.open .zdo_drawer_button span::after {
    top: 0;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  
  .zdo_drawer_button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0;
    width: 100%;
    height: 100%;
    position: relative;
    background: none;
    border: none;
    text-align: center;
    letter-spacing: 0.1em;
    cursor: pointer;
  }
  
  .zdo_drawer_button .zdo_drawer_bar {
    display: block;
    width: 40px;
    height: 2px;
    -webkit-transition: all 0.2s;
    transition: all 0.2s;
    -webkit-transform-origin: 0% 0%;
    transform-origin: 0% 0%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    position: absolute;
    left: 0;
  }
  
  .zdo_drawer_button .zdo_drawer_button {
    color: #ffffff;
  }
  
  .zdo_drawer_button .zdo_drawer_button .zdo_drawer_bar {
    background-color: #ffffff;
  }
  
  .zdo_drawer_button.active .zdo_drawer_menu_text {
    display: none;
  }
  
  .zdo_drawer_button.active .zdo_drawer_close {
    display: block;
  }
  
  .zdo_drawer_text {
    width: 100%;
    position: absolute;
    bottom: -20px;
    left: 0;
    text-align: center;
    font-size: 10px;
  }
  
  .zdo_drawer_close {
    letter-spacing: 0.08em;
    display: none;
  }
  
  .zdo_drawer_button {
    color: #ffffff;
  }
  
  .zdo_drawer_button .zdo_drawer_bar {
    background-color: #ffffff;
  }
  
  .zdo_drawer_menu {
    height: 80px;
    width: 80px;
    -webkit-transition: all 0.2s;
    transition: all 0.2s;
  }
  
  .zdo_drawer_nav_wrapper {
    position: fixed;
    visibility: hidden;
    height: 100%;
    width: 450px;
    top: 80px;
    right: 0;
    background: #ffffff;
    -webkit-transition: all 0.2s;
    transition: all 0.2s;
    -webkit-transform: translate(100%);
    transform: translate(100%);
    z-index: 1000;
    padding-top: 20px;
  }
  
  .zdo_drawer_nav_wrapper .log {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding-top: 56px;
    padding-bottom: 40px;
    width: 180px;
    margin: 0 auto;
  }
  
  .zdo_drawer_nav_wrapper .contact-btn {
    display: block;
    width: 270px;
    padding: 16px 0;
    text-align: center;
    margin: 0 auto 160px;
  }
  
  .zdo_drawer_nav_wrapper.open {
    visibility: visible;
    right: 0px;
    -webkit-box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);
    box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.2);
  }
  
  @media screen and (max-width: 1200px) {
    .zdo_drawer_nav_wrapper.open {
      right: 450px;
    }
  }
  
  .zdo_drawer_nav_wrapper .zdo_drawer_nav {
    width: 90%;
    margin: 0 auto;
    margin-bottom: 56px;
  }
  
  .zdo_drawer_nav_wrapper .zdo_drawer_nav .drawer_nav_item {
    border-bottom: 1px solid #e3e3e3;
  }
  
  .zdo_drawer_nav_wrapper .zdo_drawer_nav .drawer_nav_item a {
    position: relative;
    font-size: 16px;
    display: block;
    padding: 24px 0;
    display: block;
    width: 100%;
    font-size: 16px;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    text-align: center;
    font-weight: bold;
  }
  
  .zdo_drawer_nav_wrapper .zdo_drawer_nav .drawer_nav_item .menu-item-link {
    color: #333333;
  }
  
  .zdo_drawer_nav_wrapper .zdo_drawer_nav .drawer_nav_item.entry-content {
    padding-top: 16px;
  }
  
  .zdo_drawer_nav_wrapper .zdo_drawer_nav .drawer_nav_item.entry-content .entry-title {
    font-size: 18px;
  }
  
  .text-blue {
    background: -webkit-gradient(linear, left top, right top, from(#3397db), to(#6abff8));
    background: linear-gradient(90deg, #3397db 0%, #6abff8 100%);
    color: transparent;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-fill-color: transparent;
  }
  
  .text-center {
    text-align: center !important;
  }
  
  .navigation ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 20px;
  }
  
  .navigation ul li a {
    color: #7f839c;
    font-weight: 700;
    font-size: 14px;
    -webkit-transition: color 0.3s;
    transition: color 0.3s;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  
  .navigation ul li a:hover {
    color: #1982ca;
  }
  
  .navigation ul li a::after {
    display: block;
    content: "";
    width: 4px;
    height: 4px;
    border-top: solid 2px #424449;
    border-right: solid 2px #424449;
    -webkit-transform: rotate(135deg);
    transform: rotate(135deg);
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
    margin-left: 10px;
  }
  
  .contact-btn {
    background: -webkit-gradient(linear, left top, right top, from(#ff8c00), to(#fdbe01));
    background: linear-gradient(to right, #ff8c00, #fdbe01);
    color: #ffffff;
    font-weight: 700;
    padding: 10px 20px;
    border-radius: 30px;
    font-size: 16px;
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  
  .contact-btn:hover {
    opacity: 0.8;
  }
  
  #overlay {
    display: none;
    background-color: rgba(0, 0, 0, .5);
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 5000;
  }
  
  /* ファーストビュー */
  .fv {
    position: relative;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    padding: 0 24px;
    height: 600px;
    max-width: 1200px;
  }
  
  .fv-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    position: relative;
    z-index: 1;
  }
  
  .fv-images {
    height: 100%;
  }
  
  .main-title {
    font-size: 64px;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 20px;
    background: -webkit-gradient(linear, left top, right top, from(#1982ca), to(#6abff8));
    background: linear-gradient(to right, #1982ca, #6abff8);
    -webkit-background-clip: text;
    color: transparent;
  }
  
  .main-image {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  
  .main-image img {
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: 0px -18px;
    object-position: 0px -18px;
    max-height: 600px;
  }
  
  .sub-title {
    font-size: 32px;
    font-weight: 700;
    color: #424449;
  }
  
  .sub-image {
    background-color: #ccc;
    /* 実際には画像に置き換え */
    height: 50%;
    margin: 5px;
  }
  
  .feature {
    font-size: 24px;
  }
  
  .feature-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 8px;
  
    span {
      font-weight: 700;
    }
  }
  
  .feature-tag {
    border: 1px solid #424449;
    padding: 4px 16px;
    font-weight: 700;
  }
  
  .feature-multiply {
    font-weight: 200;
    font-size: 28px;
  }
  
  .feature-images {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 50%;
    height: 100%;
  }
  
  .feature p {
    font-weight: 700;
  }
  
  .cta-button {
    display: block;
    background: -webkit-gradient(linear, left top, right top, from(#ff8c00), to(#ffca1e));
    background: linear-gradient(to right, #ff8c00, #ffca1e);
    color: #ffffff;
    font-weight: 700;
    padding: 16px 24px;
    border-radius: 50px;
    width: 320px;
    text-align: center;
    font-size: 18px;
    -webkit-box-shadow: 0 5px 15px rgba(255, 140, 0, 0.3);
    box-shadow: 0 5px 15px rgba(255, 140, 0, 0.3);
    -webkit-transition: -webkit-transform 0.3s;
    transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    transition: transform 0.3s, -webkit-transform 0.3s;
  }
  
  .cta-button:hover {
    -webkit-transform: translateY(-3px);
    transform: translateY(-3px);
  }
  
  .change-life {
    position: absolute;
    right: 19%;
    bottom: 60px;
    width: 480px;
    height: 193px;
  }
  
  .section-label {
    position: absolute;
    top: 40px;
    font-size: 154px;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.4);
    line-height: 1.2;
    z-index: -1;
  }
  
  .section-title {
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
    margin-bottom: 24px;
    background: -webkit-gradient(linear, left top, right top, from(#1982ca), to(#6abff8));
    background: linear-gradient(to right, #1982ca, #6abff8);
    -webkit-background-clip: text;
    color: transparent;
  }
  
  .section-title .title-small {
    font-size: 24px;
  }
  
  .section-title .title-big {
    font-size: 64px;
  }
  
  .section-description {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    font-size: 16px;
    color: #555a64;
    line-height: 1.75;
    margin-bottom: 40px;
  }
  
  .section-description p {
    text-align: left;
  }
  
  /* Reason セクション */
  .reason-card {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 40px;
  }
  
  .reason .card-image {
    width: 100%;
  }
  
  .reason .card-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 16px;
  }
  
  .reason .card-title {
    font-size: 20px;
    font-weight: 700;
    text-align: center;
    color: #424449;
  }
  
  .reason .card-description {
    font-size: 16px;
    color: #424449;
  }
  
  /* Curriculum セクション */
  .curriculum {
    position: relative;
  }
  
  .course-tabs {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 8px;
    margin-bottom: 40px;
    width: 512px;
    height: 72px;
    border-radius: 60px;
    background-color: #fbfcff;
    border: 1px solid #004f9e;
    -webkit-box-shadow: inset 0px 2px 4px rgba(70, 85, 123, 0.4);
    box-shadow: inset 0px 2px 4px rgba(70, 85, 123, 0.4);
  }
  
  .course-tab {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 8px;
    padding: 8px;
    width: 244px;
    height: 58px;
    background-color: #fbfcff;
    border-radius: 60px;
    cursor: pointer;
  }
  
  .course-tab.active {
    background-color: #004f9e;
    color: #ffffff;
  }
  
  .course-name {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 24px;
    margin-right: 8px;
  }
  
  .course-icon {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  
  .course-details {
    display: none;
    gap: 40px;
    max-width: 1080px;
    margin: 0 auto;
    width: 80%;
  }
  
  .course-details.active {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
  
  .course-image {
    width: 100%;
  }
  
  .details-left {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 40px;
  }
  
  .details-section {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 24px;
  }
  
  .details-title {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 24px;
    padding: 8px 16px;
    color: #004f9e;
    border: 1px solid #004f9e;
  }
  
  .details-description {
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    color: #000000;
    line-height: 1.5;
  }
  
  .details-description .description-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 20px;
  }
  
  .details-right {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 40px;
  }
  
  .details-right .text-area {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  
  .price {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 24px;
    text-align: center;
    margin-bottom: 16px;
    color: #000000;
  }
  
  .price .tax {
    font-size: 14px;
    font-weight: normal;
  }
  
  .company-info {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    width: 80%;
    gap: 56px;
    padding: 40px;
    background-color: rgba(251, 252, 255, 0.5);
    border: 1px solid #ffffff;
    border-radius: 16px;
    margin-top: 60px;
  }
  
  .company-details {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 16px;
  }
  
  .company-name {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 24px;
    color: #505050;
  }
  
  .company-address,
  .company-phone {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 16px;
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    color: #505050;
  }
  
  .company-address::before,
  .company-phone::before {
    content: "";
    display: block;
    width: 24px;
    height: 24px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }
  
  .company-address::before {
    background-image: url(../images/icon-address.svg);
  }
  
  .company-phone::before {
    background-image: url(../images/icon-tel.svg);
  }
  
  .company-image {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    height: 228px;
    background-color: #ddd;
    /* 実際には画像に置き換え */
  }
  
  /* Teacher セクション */
  .teachers {
    width: 80%;
    max-width: 1080px;
    margin: 0 auto;
  }
  
  .slick-slide {
    box-sizing: border-box;
  }
  
  .slick-prev {
    left: -45px !important;
  }
  
  .slick-prev:before,
  .slick-next:before {
    font-size: 40px !important;
    color: #7f839c !important;
  }
  
  .each-teacher {
    padding-left: 20px;
    padding-right: 20px;
  }
  
  /* レスポンシブ対応 */
  @media (max-width: 768px) {
    .header {
      height: 60px;
  
      .logo a img {
        width: 128px;
      }
  
      .zdo_drawer_menu {
        height: 60px;
        width: 60px;
      }
  
      .zdo_drawer_nav_wrapper {
        top: 59px;
      }
  
      .zdo_drawer_menu .zdo_drawer_button span,
      .zdo_drawer_menu .zdo_drawer_button span:before,
      .zdo_drawer_menu .zdo_drawer_button span:after {
        width: 32px;
      }
  
      .zdo_drawer_menu .zdo_drawer_button span:before {
        bottom: 12px;
      }
  
      .zdo_drawer_menu .zdo_drawer_button span:after {
        top: 12px;
      }
  
      .zdo_drawer_menu .zdo_drawer_button.active span:before {
        bottom: 0;
      }
  
      .zdo_drawer_menu .zdo_drawer_button.active span:after {
        top: 0;
      }
    }
  
    .each-teacher {
      padding-left: 0;
      padding-right: 0;
    }
  
    .slick-list {
      margin: 0 -20px;
    }
  
    .company-info {
      padding: 24px;
  
      .company-name {
        font-size: 20px;
      }
    }
  }
  
  .slick-prev,
  .slick-next,
  .slick-dots {
    z-index: 1;
  }
  
  .slick-list {
    margin-bottom: 20px !important;
  }
  
  .slick-dots li {
    width: 50px !important;
  }
  
  .slick-dots li button:before {
    font-size: 20px !important;
    left: 15px !important;
  }
  
  .teacher-card {
    width: 100%;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    background-color: rgba(251, 252, 255, 0.5);
    border: 1px solid #ffffff;
    border-radius: 16px;
  }
  
  .teacher-header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: end;
    padding: 28px 35px;
    height: 307px;
    background-color: #d4dee8;
    border-radius: 16px 16px 0 0;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
  }
  
  .teacher-image {
    width: 200px;
    height: 200px;
    background-color: #ddd;
    margin-bottom: 30px;
  }
  
  .teacher-info {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 16px;
  }
  
  .teacher-info .teacher-experience,
  .teacher-info .teacher-name {
    color: #fbfcff;
  }
  
  .teacher-experience {
    display: inline-block;
    padding: 4px 8px;
    font-size: 16px;
    color: #fbfcff;
    border: 3px solid #fbfcff;
    width: 120px;
    font-weight: 600;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    color: #000000;
    text-shadow: 0px 0px 20px #096222;
  }
  
  .teacher-name {
    font-size: 40px;
    font-weight: 700;
    color: #424449;
    line-height: 1.1;
    color: #000000;
    text-shadow: 0px 0px 20px #096222;
  }
  
  .teacher-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 24px;
    padding: 40px;
  }
  
  .teacher-section {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 8px;
  }
  
  .teacher-section-title {
    font-size: 18px;
    font-weight: 700;
    color: #424449;
  }
  
  .teacher-section-text {
    font-size: 16px;
    color: #424449;
  }
  
  .teacher-skills {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 8px;
  }
  
  .skill-tag {
    padding: 4px 24px;
    background-color: #c4dbf2;
    border-radius: 30px;
    font-size: 16px;
    color: #424449;
  }
  
  /* Media セクション */
  .media-features {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 40px;
    max-width: 1080px;
    width: 80%;
    margin: 0 auto;
  }
  
  .media-feature {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 30px;
    width: 50%;
  }
  
  .media-feature .media-image {
    width: 100%;
  }
  
  .media-feature .media-image img {
    width: 100%;
    height: auto;
    -o-object-fit: contain;
    object-fit: contain;
  }
  
  .media-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 16px;
  }
  
  .media-title {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: #000000;
    text-align: left;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
  }
  
  .media-title .title:first-child {
    min-width: 70px;
  }
  
  .media-description {
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    color: #000000;
    text-align: left;
  }
  
  /* Support セクション */
  .support-steps {
    max-width: 1080px;
    margin: 0 auto;
  }
  
  .support-step {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 40px;
  }
  
  .step-image {
    width: 100%;
  }
  
  .step-image img {
    width: 100%;
  }
  
  .step-content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 24px;
  }
  
  .step-title {
    font-size: 20px;
    font-weight: 700;
    color: #424449;
  }
  
  .step-description {
    font-size: 16px;
    color: #424449;
  }
  
  /* Question セクション */
  .faq-list {
    width: 720px;
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 24px;
  }
  
  .faq-item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 24px;
  }
  
  .faq-question {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 12px;
    padding: 4px 20px 4px 4px;
    background-color: #fbfcff;
    border-radius: 6px;
    -webkit-box-shadow: 4px 4px 16px rgba(24, 74, 149, 0.2), -4px -4px 16px white;
    box-shadow: 4px 4px 16px rgba(24, 74, 149, 0.2), -4px -4px 16px white;
    position: relative;
    padding-right: 45px;
  }
  
  .faq-question::after {
    content: "";
    width: 10px;
    height: 10px;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%) rotate(135deg);
    -webkit-transform: translateY(-50%) rotate(135deg);
    border-top: solid 4px #004f9e;
    border-right: solid 4px #004f9e;
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
  }
  
  .faq-question.active::after {
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-transition: 0.5s all;
    transition: 0.5s all;
  }
  
  .faq-answer {
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    color: #000000;
    line-height: 1.5;
    padding-left: 80px;
  }
  
  .question-label {
    padding: 0 20px;
    background-color: #e7f3ff;
    font-weight: 700;
    font-size: 16px;
    color: #004f9e;
    line-height: 48px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
  }
  
  .question-text {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 16px;
    color: #004f9e;
    padding: 12px 0;
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
  }
  
  .question-toggle {
    width: 24px;
    height: 24px;
    border: 2px solid #004f9e;
    position: relative;
    cursor: pointer;
  }
  
  .question-toggle::before,
  .question-toggle::after {
    content: "";
    position: absolute;
    background-color: #004f9e;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
  }
  
  .question-toggle::before {
    width: 12px;
    height: 2px;
  }
  
  .question-toggle::after {
    width: 2px;
    height: 12px;
  }
  
  /* Closing セクション */
  .closing {
    width: 100%;
  }
  
  .closing-background {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 10px;
  }
  
  .closing-message {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    width: 60%;
    white-space: nowrap;
    gap: 10px;
  }
  
  .closing-message .main-title {
    min-width: 665px;
    color: #ffffff;
    background: none;
    text-shadow: 0px 0px 54px #01284f;
  }
  
  .closing-message .sub-title {
    color: #ffffff;
    text-shadow: 0px 0px 54px #01284f;
  }
  
  .contact-form {
    width: 40%;
    background-color: rgba(255, 255, 255, 0.93);
    padding: 56px;
    border-radius: 16px;
  }
  
  .form-title {
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    font-size: 32px;
    margin-bottom: 16px;
    background: -webkit-gradient(linear, left top, right top, from(#3397db), to(#6abff8));
    background: linear-gradient(to right, #3397db, #6abff8);
    -webkit-background-clip: text;
    color: transparent;
  }
  
  .form-description {
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    color: #505050;
    margin-bottom: 24px;
  }
  
  .form-group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 16px;
  }
  
  .form-label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 8px;
  }
  
  .form-label label {
    font-family: "Roboto", sans-serif;
    font-size: 16px;
    color: #505050;
  }
  
  .form-agreement {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
  }
  
  .form-agreement label {
    font-family: "Inter", sans-serif;
    font-size: 13px;
    color: #5f5f5f;
  }
  
  .required {
    font-family: "Roboto", sans-serif;
    font-size: 12px;
    color: #cf1b1b;
    padding: 2px 8px;
    border: 1px solid #cf1b1b;
    border-radius: 4px;
    white-space: nowrap;
  }
  
  input,
  textarea {
    padding: 18px 16px;
    border: 1px solid #c5ccd9;
    border-radius: 4px;
    font-family: "Inter", sans-serif;
    font-size: 13px;
    resize: none;
  }
  
  input::-webkit-input-placeholder,
  textarea::-webkit-input-placeholder {
    color: #b7b7b7;
  }
  
  input:-ms-input-placeholder,
  textarea:-ms-input-placeholder {
    color: #b7b7b7;
  }
  
  input::-ms-input-placeholder,
  textarea::-ms-input-placeholder {
    color: #b7b7b7;
  }
  
  input::placeholder,
  textarea::placeholder {
    color: #b7b7b7;
  }
  
  textarea {
    height: 120px;
  }
  
  .submit-button {
    width: 100%;
    padding: 18px 0;
    background: -webkit-gradient(linear, left top, right top, from(#ff8c00), to(#ffca1e));
    background: linear-gradient(to right, #ff8c00, #ffca1e);
    color: #ffffff;
    border: none;
    border-radius: 4px;
    font-family: "Inter", sans-serif;
    font-weight: 700;
    font-size: 16px;
    cursor: pointer;
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
  }
  
  .submit-button:hover {
    opacity: 0.8;
  }
  
  /* Footer */
  .footer {
    padding: 24px 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    gap: 16px;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    background: -webkit-gradient(linear, left top, right top, from(#3397db), to(#6abff8));
    background: linear-gradient(to right, #3397db, #6abff8);
    color: #ffffff;
  }
  
  .footer .wrap {
    display: flex;
    gap: 16px 8px;
    justify-content: space-between;
    width: 1080px;
    margin: 0 auto;
  }
  
  .footer-links {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    font-size: 12px;
  }
  
  .footer-link {
    font-size: 12px;
    -webkit-transition: opacity 0.3s;
    transition: opacity 0.3s;
    color: #fff;
  }
  
  .footer-link::after {
    background: #fff;
  }
  
  .copyright {
    font-size: 12px;
  }
  
  .swal2-popup.responsive-modal {
    width: 50% !important;
  }
  
  /**************** スマホ向けcss *****************/
  @media screen and (max-width:1200px) {
    section {
      padding: 100px 2% 60px;
    }
  
    .fv {
      height: 572px;
      padding: 0 0 0 60px;
    }
  
    .section-label {
      font-size: 120px;
    }
  
    .teacher-content {
      padding: 24px;
    }
  
    .teacher-header {
      height: auto;
      aspect-ratio: 512 / 308;
    }
  
    .footer {
      padding: 24px;
    }
  }
  
  @media screen and (max-width:992px) {
    section {
      padding: 80px 2% 40px;
      overflow: hidden;
    }
  
    .fv {
      flex-direction: column;
      width: 100%;
      height: auto;
      padding: 0;
  
      .fv-content {
        width: auto;
        padding: 60px 0;
      }
  
      .fv-images {
        width: 100%;
  
        .main-image {
          background-size: cover;
          background-position: center;
          height: auto;
          aspect-ratio: 846 / 360;
        }
      }
    }
  
    .section-label {
      font-size: 80px;
    }
  
    .teachers .teacher-card {
      width: 100%;
    }
  
    .teacher-header {
      padding: 20px;
    }
  
    .closing-background {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      width: 80%;
    }
  }
  
  @media screen and (max-width:768px) {
    .header .content {
      padding: 0 6px 0 20px;
    }
  
    .fv {
      -webkit-box-orient: vertical;
      -webkit-box-direction: reverse;
      -ms-flex-direction: column;
      flex-direction: column;
  
      .fv-content {
        width: calc(100% - 40px);
        padding-top: 60px;
      }
    }
  
    .course-tabs .course-tab .course-name {
      font-size: 18px;
    }
  
    .each-teacher {
      margin: 0 12px;
    }
  }
  
  @media screen and (max-width:767px) {
    .section-label {
      font-size: 60px;
    }
  
    .slick-prev,
    .slick-next {
      display: none !important;
    }
  
    .faq-list {
      width: 100%;
    }
  
    .closing-background {
      width: calc(100% - 40px);
    }
  
    .contact-form {
      padding: 24px;
    }
  
    .footer .wrap {
      flex-direction: column;
    }
  }
  
  @media screen and (max-width: 480px) {
    .zdo_drawer_nav_wrapper {
      width: 100%;
  
      &.open {
        right: 100%;
        overflow-y: auto;
      }
    }
  
    .fv-content .fv-text {
      width: 100%;
      margin: 0 auto;
    }
  
    .course-tabs {
      width: 100%;
  
      .course-tab {
        width: 47%;
      }
    }
  
    .each-teacher {
      margin: 0;
    }
  
    .section-description {
      align-items: flex-start;
    }
  }
  
  @media screen and (max-width: 413px) {
    .xxs-none {
      display: none;
    }
  
    .section-title .title-small {
      font-size: 20px;
    }
  }
  
  /********************
    loading effects
    ********************/
  .loadingAnim {
    position: fixed;
    z-index: 300;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    text-align: center;
  }
  
  .loadingAnim:before,
  .loadingAnim:after {
    line-height: 1;
    position: fixed;
    z-index: 99;
    right: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 50%;
    margin-right: auto;
    margin-left: auto;
    content: ' ';
    transition: all .4s cubic-bezier(.785, .135, .15, .86) 0s;
    transition-delay: .4s;
    background-color: #F1F1F1;
  
  }
  
  .loadingAnim:before {
    top: 0;
  }
  
  .loadingAnim:after {
    bottom: 0;
  }
  
  .loaded .loadingAnim:before {
    height: 0;
    -webkit-transform: translateY(-1%);
    -ms-transform: translateY(-1%);
    transform: translateY(-1%);
  }
  
  .loaded .loadingAnim:after {
    height: 0;
    -webkit-transform: translateY(1%);
    -ms-transform: translateY(1%);
    transform: translateY(1%);
  }
  
  .svg_image {
    line-height: 1;
    position: fixed;
    z-index: 100;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: inline-block;
    overflow: hidden;
    width: 100px;
    height: 100px;
    margin: auto;
    transition: all .3s cubic-bezier(.785, .135, .15, .86) 0s;
    transition-delay: .3s;
    text-align: center;
  }
  
  .loaded .svg_image {
    overflow: hidden;
    opacity: 0;
  }
  
  .loaded .svg_image:after,
  .loaded .svg_image:before {
    -webkit-animation: none;
    animation: none;
  }
  
  /********************
    animation setting
    ********************/
  @-webkit-keyframes loadingAnim {
    0% {
      width: 0;
    }
  
    100% {
      width: 100%;
      -webkit-transform: translate(100%);
      transform: translate(100%);
    }
  }
  
  @keyframes loadingAnim {
    0% {
      width: 0;
    }
  
    100% {
      width: 100%;
      -webkit-transform: translate(100%);
      transform: translate(100%);
    }
  }
  
  @-webkit-keyframes loadingAnim_text {
    0% {
      opacity: 1;
      color: #2AACE3;
    }
  
    50% {
      color: #2AACE3;
  
    }
  
    100% {
      opacity: .5;
      color: #F1F1F1;
    }
  }
  
  @keyframes loadingAnim_text {
    0% {
      opacity: 1;
      color: #2AACE3;
    }
  
    50% {
      color: #2AACE3;
    }
  
    100% {
      opacity: .5;
      color: #F1F1F1;
    }
  }
  
  .main-content {
    padding-top: 40px;
  }
  
  .main-content>h2 {
    margin: 0;
    color: var(--color-01);
    text-align: center;
    font-size: 32px;
    font-weight: 400;
    line-height: 1.4;
    position: relative;
  }
  
  .main-content>h2::before {
    content: '';
    width: 59px;
    height: 3px;
    background: var(--color-01);
    position: absolute;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    bottom: -10px;
  }
  
  .main-content>h2.error::before {
    background: #FF0000;
  }
  
  .error-message-area {
    text-align: center;
    margin: 40px 0 0 0;
    font-size: 16px;
    line-height: 1.6;
    white-space: pre-wrap;
  }
  
  .error-message-area pre {
    text-align: left;
    word-break: break-all;
    white-space: pre-wrap;
    width: 80%;
    margin: 2em auto 2em;
    padding: 10px;
    border: 1px solid #b10000;
    border-radius: 10px;
    background-color: #fff5f5;
    color: #ff0000;
    font-size: 12px;
  }
  
  .is-invalid {
    color: #ff0000;
    font-size: 12px;
  }
  
  .main-content_inner {
    display: none;
  }
  
  .operation-success-message {
    margin-bottom: 24px;
    font-size: 14px;
    background-color: #d9f9fb;
    border-radius: 5px;
    padding: 10px;
  }
  
  .operation-success-message span {
    color: #0000ff;
  }
  
  .operation-error-message {
    margin-bottom: 24px;
    font-size: 14px;
    background-color: #fff2f2;
    border-radius: 5px;
    padding: 10px;
  }
  
  .operation-error-message span {
    color: #ff0000;
  }