/*== ベース ==*/
@-webkit-keyframes fade-in {
  0% {
    display: none;
    opacity: 0;
    filter: alpha(opacity=0)
  }
  1% {
    display: block;
    opacity: 0;
    filter: alpha(opacity=0)
  }
  100% {
    display: block;
    opacity: 1;
    filter: alpha(opacity=100)
  }
}

@keyframes fade-in {
  0% {
    display: none;
    opacity: 0;
    filter: alpha(opacity=0)
  }
  1% {
    display: block;
    opacity: 0;
    filter: alpha(opacity=0)
  }
  100% {
    display: block;
    opacity: 1;
    filter: alpha(opacity=100)
  }
}
html,body {
	letter-spacing: .1em;
	line-height: 1.8em;
	color: #333;
  scroll-padding-top: 80px;
}
body, h1, h2, h3, h4, h5, h6 {
	font-family: "游ゴシック体", "Yu Gothic", YuGothic,"ヒラギノ角ゴ ProN","Hiragino Kaku Gothic ProN","メイリオ","Meiryo",sans-serif;
}

/*== ヘッダー ==*/
#site-header {
  position:sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,0.85);
  &.is-fixed {
    padding-top: 4px;
    position:fixed;
    width: 100%;
  }
  .header-copy {
    color: #9e9e9e;
    font-size: 11px;
    padding: 10px 15px 0;
    overflow: hidden;
    @media(min-width:1024px) {
      padding:0;
    }
  }
  .header-copy__wrap {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.3s ease-out;
    max-width: 1045px;
    margin: 0 auto;
  }
  &.is-fixed .header-copy__wrap {
    grid-template-rows: 0fr;
  }
  .logo img {
    height: 50px;
    width: auto;
    padding: 3px;
  }
}

/*== ヘッダー - メニュー ==*/
.site-header-ui {
	display: flex;
	justify-content: space-between;
  max-width: 1075px;
  margin: 0 auto;
	.menu_btn_wrapper {
		background-color: #03a9f4;
    border: 1px solid #03a9f4;
    padding: 5px 9px 5px 10px;
    border-radius: 5px;
    margin: 8px 15px 8px 0;
    cursor: pointer;
    @media(min-width:1024px) {
      display: none;
    }
	}
	.menu_btn_wrapper:hover {
		background-color: #2ebcfc;
    border-color: #2ebcfc;
	}
	.icon-bar-menu {
		font-size: 12px;
    font-weight: 700;
    color: #fff;
    letter-spacing: .2em;
	}
}

.global-menu__wrapper {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s ease-out;
}
#global-menu {
	width: 100%;
  overflow: hidden;
	li {
	}
	a {
		padding: 15px;
		color: #444;
		line-height: 20px;
		display: block;
    font-weight: 700;
    font-size: 14px;
    border-bottom: 1px solid #ededed;
	}
  > .menu-item-has-children > a {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  > .menu-item-has-children > a:after {
    content: '';
    width:0;
    height: 0;
    border: transparent 4px solid;
    border-top: #000 4px solid;
    translate: 0 2px;
    cursor: pointer;
  }
  > .menu-item-has-children .sub-menu{
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out;
    margin: 0;
    padding: 0;
  }
  .current .sub-menu {
    max-height: 1000px;
  }
  .sub-menu a{
    padding-left: 30px;
    font-weight: 400;
  }
  .sub-menu .sub-meuu a{
    padding-left: 45px;
  }
  .sub-menu .menu-item-has-children {
    border:none;
  }
  .menu-item-has-children a + .sub-menu .sub-menu {
    a {
      color: #428bca;
    }
    a:hover {
      color: #428bca;
      text-decoration: underline;
      background: none;
    }
  }
}

@media(max-width:1023px) {
  .open {
    .global-menu__wrapper {
      grid-template-rows: 1fr;
    }
    #global-menu {
      overflow-y: scroll;
      max-height: 100vh;
      max-height: 100dvh;
      -webkit-overflow-scrolling: touch;
      padding-bottom: 80px;
    }
  }
}


@media(min-width:1024px) {
  .global-menu__wrapper,
  .open .global-menu__wrapper {
    display: block;
  }
  #global-menu,
  .open #global-menu {
    overflow: visible;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    li {
      display: block;
      position: relative;
      border: none;
    }
    > li > a {
      border: none;
    }
    > .menu-item-has-children {
      display: flex;
      align-items: center;
      margin-right: 15px;
    }
    > .menu-item-has-children > a{
      padding-right: 8px;
    }
    > li > a:hover,
    > .menu-item-has-children:hover > a {
      color: #03a9f4;
    }
    > .menu-item-has-children:hover a:after {
      border-color: #03a9f4 transparent transparent transparent;
    }
    > .menu-item-has-children .sub-menu{
      max-height: 10000px;
    }
    > li > .sub-menu {
      display: flex;
      flex-direction: column;
      position: absolute;
      top: 100%;
      left: 50%;
      z-index: 100;
      background: #fff;
      min-width: 200px;
      translate:-50% 0;
      opacity: 0;
      pointer-events: none; 
      transition: opacity 0.5s ease;
    }
    > li > .sub-menu a:hover {
      color: #fff;
      background: #03a9f4;
    }
    .sub-menu a {
      padding: 8px 12px;
    }
    .sub-menu .sub-menu a {
      padding-left: 24px;
    }
    .menu-item-has-children:hover a + .sub-menu {
      opacity: 1;
      pointer-events: auto;     
      box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
    }
    .menu-item-has-children:hover a + .sub-menu .sub-menu {
      box-shadow: none;
    }
    .nolink > a{
      pointer-events: none;
    }
  }
}

/*== フッター ==*/
.site-footer {
  border-top: 1px solid #ededed;
  padding-top: 15px;
  .site-footer__copyright {
    background: #03a9f4cc;
    color: #fff;
    text-align: center;
    padding: 15px;
    font-size: 12px;
  }
  .site-footer__section {
    max-width: 1045px;
    margin: 0 auto 25px;
    padding: 15px;
  }
  .site-footer__utl {
    ul {
      display: flex;
      flex-wrap: wrap;
      position: relative;
      justify-content: center;
    }
    li {
      padding: 0 15px;
      position: relative;
    }
    li:first-child:before,
    li:after {
      content: "";
      position: absolute;
      width: 1px;
      height: 50%;
      background: #9e9e9e;
      margin: auto;
      top: 0;
      bottom: 0;
      right: 0;
      rotate: 20deg;
    }
    li:first-child:before {
      right: auto;
      left: 0;
    }
    a {
      font-size: 15px;
      color:#9e9e9e;
    }
    a:hover {
      text-decoration: underline;
    }
  }
  .site-footer__sns {
    ul {
      display: flex;
      flex-wrap: wrap;
      position: relative;
      justify-content: center;
      align-items: center;
    }
    img {
      width: 72px;
    }
  }
  .site-footer__relation {
    @media(min-width:768px) {
      margin-bottom: 100px;
    }
    ul {
      display: flex;
      flex-wrap: wrap;
      position: relative;
      justify-content: center;
      gap: 24px;
    }
    p {
      text-align: center;
      font-size: 10px;
      line-height: 1.4;
      padding-top: 8px;
    }
  }
  .site-footer__banners {
    ul {
      display: grid;
      grid-template-columns: repeat(2,1fr);
      justify-content: center;
      gap: 15px;
      @media(min-width:768px) {
        grid-template-columns: repeat(3,1fr);
      }
      @media(min-width:1024px) {
        grid-template-columns: repeat(4,1fr);
      }
    }
    li {
      text-align: center;
    }
  }
}

/*== フォーム ==*/
form {
  .form-group {
    margin-bottom: 20px;
    @media(min-width:1024px) {
      display: grid;
      grid-template-columns: 240px 1fr;
      gap: 30px;
    }
  }
  .form-label {
    font-size: 14px;
    font-weight: 700;
    @media(min-width:1024px) {
      text-align: right;
    }
  }
  .label__required {
    color: #a94442;
  }
  .form-note {
    color: #737373;
    font-size: 14px;
  }
  input,textarea,select{
    display: block;
    width: 100%;
    height: 34px;
    padding: 6px 12px;
    font-size: 14px;
    color: #555;
    border: 1px solid #ccc;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    &:focus {
      border-color: #66afe9;
      outline: 0;
      -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
      box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
    }
  }
  textarea {
    min-height: 200px;
  }
  .form-input__grid2{
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 15px;
    @media(min-width:1024px) {
      max-width: 400px;
    }
  }
  .submit-area {
    text-align: center;
    margin: 30px 0;
  }
  input[type="date"]{
    max-width: 400px;
  }
  input[type="submit"]{
    margin: 0 auto 15px;
    width: auto;
    background-color: #3bafda;
    border: 1px solid #3bafda;
    letter-spacing: .09em;
    border-radius: 5px;
    color: #fff;
    cursor: pointer;
  }
  input[type="submit"]:focus{
    box-shadow: none;
  }
  input[type="submit"]:hover{
    background-color: #6bc9eb;
    border: 1px solid #6bc9eb;
  }
  
  /*==== チェックボックス・ラジオボタン ====*/
  input[type='checkbox'], input[type='radio'] {
      display: none;
  }
  .form-parts-checkbox,
  .form-parts-radio {
    input {
      vertical-align: text-bottom;
      margin:0 16px 8px 0;
    }
    label span {
      vertical-align: text-bottom;
      position: relative;
      display: grid;
      grid-template-columns: 22px 1fr;
      align-items: center;
      line-height: 1.4;
      font-size: 14px;
    }
  }
  .form-parts-checkbox{
    label span::before{
      content: "";
      border: 1px solid #ccc;
      width: 14px;
      height: 14px;
      background: #fff;
    }
    label input[type="checkbox"]:checked + span:after{
      content: "";
      width: 8px;
      height: 12px;
      border-right: #6bc9eb 4px solid;
      border-bottom: #6bc9eb 4px solid;
      position: absolute;
      left: 5px;
      top: 0;
      bottom: 0;
      rotate:45deg;
      translate:0 1px;
    }
  }
  .form-parts-radio {
    label span::before {
      content: "";
      border: 1px solid #ccc;
      width: 14px;
      height: 14px;
      border-radius: 9999px;
      background: #fff;
    }
    label input[type="radio"]:checked + span::after {
      content: "";
      width: 8px;
      height: 8px;
      border-radius: 7px;
      background: #6bc9eb;
      position: absolute;
      left: 4px;
    }
  }

  /*==== セレクトボックス ====*/
  .form-parts-select {
    position: relative;
    width: 100%;
    select {
      width: 100%;
      padding-right: 24px;
    }
    &::after {
      content: "";
      width: 0;
      height: 0;
      border: transparent solid 6px;
      border-top: 6px solid #000;
      position: absolute;
      margin: auto;
      top: 0;
      bottom: 0;
      right: 12px;
      translate:0 4px;
    }
  }

}

/*== ページ内容 ==*/
.page-header {
  border: none;
}
#main {
  margin-bottom: 80px;
  @media(min-width:767px) {
    margin-bottom: 120px;
  }
}
.site-body,.page-body {
  .section__inner {
    padding: 0 15px;
    margin: 0 auto;
    max-width: 1045px;
  }
  .pagetop-anchor {
    padding-top: 15px;
  }
  h1 {
    font-size: 32px
  }

  h2 {
    font-size: 25px
  }

  h3 {
    font-size: 21px
  }

  h4 {
    font-size: 18px
  }

  @media(max-width:767px) {
    h1 {
      font-size: 26px
    }
    h2 {
      font-size: 22px
    }
    h3 {
      font-size: 20px
    }
    h4 {
      font-size: 18px
    }
  }

  h1 {
    margin: 30px 0 25px
  }

  h2 {
    margin: 30px 0 25px
  }

  h3 {
    margin: 20px 0 15px
  }

  h4 {
    margin: 15px 0 10px
  }

  h1, h2, h3, h4, h5 {
    line-height: 1.7em;
    font-weight: 400;
    letter-spacing: .1em
  }

  @media(max-width:767px) {
    h1, h2, h3, h4, h5 {
      letter-spacing: .05em
    }
  }

  p,li,input {
    font-size: 15px;
  }

  p {
    margin-bottom: 30px;
  }

  @media(max-width:767px) {
    p {
      margin-bottom: 25px
    }
  }

  img,iframe {
    max-width: 100%;
  }

  img {
    height: auto;
  }

  a {
    color: #428bca;
    text-decoration: none;
    cursor: pointer;
  }
  a:hover, a:focus {
    color: #2a6496;
    text-decoration: underline;
  }

  .page-title,h2 {
    color: #03a9f4;
    border: 1px solid #ddd;
    border-left: 5px solid #03a9f4;
    padding: 5px 15px;
    font-size: 25px;
    @media(max-width:767px) {
      font-size: 22px;
    }
  }
  h3 {
    color: #333;
    border-bottom: 2px solid #ededed;
  }

  .hero img{
    width: 100%;
  }
  .hero .swiper-wrapper {
    transition-timing-function: ease;
  }
  
  .section__contents:not(:first-of-type) {
    padding-top: 80px;
    @media(min-width:767px) {
      padding-top: 120px;
    }
  }

  .list-style-disc,
  .list-style-disc li{
    list-style-type: disc;
  }

  .list-style-mark {
  }
  .list-style-mark li:before{
    content: "※";
  }

  .list-style-decimal {
    padding-left: 24px;
    margin-bottom: 30px;
  }
  .list-style-decimal li{
    list-style-type: decimal;
  }

  .txt_underline {
    text-decoration: underline;
  }

  .txt_red {
    color:#f44336;
  }

  .txt_darkred {
    color: #CD384B;
  }

  .txt_orange {
    color:#FE642E;
  }

  .txt_blue {
    color:#03a9f4;
  }

  .txt_darkblue {
    color:#0174DF;
  }

  .txt_left {
    text-align: left;
  }

  .txt_right {
    text-align: right;
  }

  .txt_center {
    text-align: center;
  }

  .txt_mini,
  .txt_11px {
    font-size: 11px;
  }

  .txt_small,
  .txt_12px {
    font-size: 12px;
  }

  .txt_14px {
    font-size: 14px;
  }

  .txt_middle,
  .txt_16px {
    font-size: 16px;
  }

  .txt_large,
  .txt_18px {
    font-size: 18px;
  }

  .txt_19px {
    font-size: 19px;
  }

  .txt_xl,
  .txt_20px {
    font-size: 20px;
  }

  .txt_xxl,
  .txt_22px {
    font-size: 22px;
  }

  .txt_24px {
    font-size: 24px;
  }

  .txt_26px {
    font-size: 26px;
  }

  .txt_28px {
    font-size: 28px;
  }

  .txt_30px {
    font-size: 30px;
  }

  .txt_32px {
    font-size: 32px;
  }

  .txt_34px {
    font-size: 34px;
  }

  .txt_48px {
    font-size: 48px;
  }

  .txt_lh2 {
    line-height: 2;
  }

  .txt_bgline {
    background-color: #fffacc;
  }

  .vt_middle{
    vertical-align: middle;
  }

  hr {
    border-top: 1px solid #eee;
    padding-bottom: 10px;
  }

  table {
    max-width: 100%;
    width: 100%;
    margin-bottom: 20px;
  }

  th {
    font-weight: normal;
    text-align: center;
  }

  .table__border th,
  .table__border td{
    font-size: 14px;
    border: 1px solid #ddd;
    padding: 8px;
    line-height: 1.5;
    vertical-align: top;
    background-color: #fff;
  }

  .dlbtn {
		background-color: #03a9f4;
    border: 1px solid #03a9f4;
    padding:12px 15px;
    border-radius: 5px;
    color: #fff;
    &:hover {
      background-color: #2ebcfc;
      border-color: #2ebcfc;
      color: #fff;
      text-decoration: none;
    }
  }
}

/*== 共通のコンテンツ ==*/
.page-body {
  .btn-green {
    background-color: #dff0d8;
    border-color: #d6e9c6;
    padding: 15px;
    margin-bottom: 20px;
    border: 1px solid transparent;
    border-radius: 4px;
    width: 100%;
  }
  @media (min-width: 768px) {
    .btn-green {
      width: 45%;
    }
  }

  .border-section {
    padding: 15px;
    border-radius:4px ;
    border: 1px solid #eee;
    margin-bottom: 20px;
    p:last-child {
      margin-bottom: 0;
    }
  }
  
  .border-darkblue {
    border-color: #428bca;
  }

  /*= ニュース =*/
  .news-list {
    p {
      margin-bottom: 0;
      display: inline-block;
    }
    a:hover {
      text-decoration: none;
    }
    a:hover .articles__text {
      text-decoration: underline;
    }
    .articles__date {
      padding-right: 8px;
      color: #000;
    }
  }

  /*== 1日の流れ ==*/
  .timeline__flex,.timeline {
    margin-bottom: 50px;
  }
  .timestamp {
    font-size: 20px;
  }
  @media(min-width:768px) {
    .timeline__flex {
      display: flex;
      gap: 1rem;
    }
    .timeline__flex .section__txt {
      flex: 1;
    }
  }

  .section__newlayout {
    h3 {
      border-bottom: none;
      margin:0 0 30px;
      font-size: 20px;
    }
    .section__subtitle {
      font-size: 13px;
    }
    .section__body {
      padding-top: ;
    }
    hr {
      padding: 0;
      margin: 20px 0;
    }
    ol,ul {
      padding-left: 40px;
    }
  }
}

@media(min-width:768px) {
  .hikidas-schedule .timeline__flex .section__img{
    width: 320px;
  }
  .maiko-schedule .timeline__flex .section__img{
    width: 210px;
  }
}

/*== ご注意 ==*/
.caution .page-body {
  .section__body {
    margin-bottom: 60px;
  }
  .caution-list li {
    line-height: 1.6;
    margin-bottom: 14px;
  }
}


/*== ヒキダスkids TOP ==*/
.hikidas-en .page-body,
.hikidas .page-body{
  #section-announce {
    margin:60px 0;
  }
  .announce {
    padding: 15px;
    font-size: 19px;
    font-weight: 700;
    border: 1px solid #ebccd1;
    border-radius: 4px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
    text-align: center;
  }
  .flow-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  .contact-list {
    display: flex;
    flex-wrap: wrap;
    margin-top: 50px;
    justify-content: center;
    gap: 10px;
    .contact-item {
      @media(min-width:767px) {
        justify-content: space-between;
        text-align: center;
        width: calc(50% - 10px);
      }
    }
  }
  #section-whats {
    .section__txt {
      margin-bottom: 30px;
    }
    .section__img {
      text-align: center;
    }
    @media(min-width:1024px) {
      .section__body {
        display: flex;
      }
      .section__txt {
        width: calc(100% - 400px);
      }
      .section__img {
        text-align: right;
        width: 400px;
      }
    }
  }
  #levelmap {
    .medal {
      margin-top: 50px;
    }
    .medal .section__img{
      margin-bottom: 30px;
    }
    .level-list li{
      margin-bottom: 50px;
    }
    .level-name {
      font-weight: 700;
      margin-bottom: 15px;
    }
  }
  #kids-pnote {
    background-color: #f2dede;
    border-color: #ebccd1;
    color: #a94442;
    padding: 15px;
    border: 1px solid transparent;
    border-radius: 4px;
    p {
      margin-bottom: 0;
    }
  }
}

/*== ヒキダスkids 料金 ==*/
.hikidas-fee .page-body {
  #rental {
    margin-bottom:15px;
    @media(min-width:1024px) {
      margin-bottom: 30px;
    }
  }
  #lesson-info .section__body {
    margin-bottom: 30px;
    @media(min-width:1024px) {
      margin-bottom: 45px;
    }
  }
}

/*== ヒキダスkids Q&A ==*/
.hikidas-faq .page-body {
  li p{
    margin-bottom: 0;
  }
  li {
    margin-bottom: 30px;
  }
}

/*== ヒキダスKidsとは？ ==*/
.hikidas-about .page-body{
  .attention-note {
    margin-bottom: 20px;
    background-color: #fff;
    border: 1px solid transparent;
    border: 1px solid #f2dede;
    border-radius: 4px;
    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
    .attention-note__title {
      margin: 0;
      color: #a94442;
      background-color: #f2dede;
      font-size: 18px;
      padding: 15px;
    }
    .attention-note__body {
      padding: 15px;
    }
    .attention-note__body p{
      margin: 0;
    }
  }
  .aboutpage__flex {
    padding-bottom: 8px;
  }
  @media(min-width:768px) {
    .aboutpage__flex {
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
    }
    .aboutpage__flex .section__img{
      flex-basis: fit-content;
    }
    .aboutpage__flex .section__txt {
      flex: 1;
    }
  }
  #reservation .section__body {
    margin-bottom: 60px;
  }
}

/*== ヒキダスKidsご予約手順 ==*/
.how-to-book .page-body {
  h3.step-name {
    font-size: 18px;
    color: #03a9f4;
    border: none;
  }
  .reserve-note {
    border: 1px solid #ebccd1;
    border-radius: 4px;
    h4 {
      margin: 0;
      background-color: #f2dede;
      color: #a94442;
      padding: 15px;
    }
    p {
      padding: 15px;
      margin-bottom: 0;
    }
  }
}

/*== 利用規約 ==*/
.caution .page-body {
  hr {
    margin-bottom: 18px;
  }
}


/*== プライバシーポリシー ==*/œ
.policy .page-body {
  h3 {
    border: none;
    font-size: 15px;
  }
}

/*== 求人 ==*/
.recruit-schoolstaff .page-body,
.recruit-parkstaff .page-body {
  .hero-flex {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
  }
  .hero-flex__item {
    width: calc(50% - .5rem);
    margin-bottom: 0;
  }
}

.recruit-coach .page-body{
  .section__body:not(:first-of-type) {
    border-top: 1px solid #eee;
    padding-top: 30px;
  }
  .body-title img{
    width: 22px;
    vertical-align: sub;
  }
  .desc-item {
    padding: 15px;
    margin-bottom: 20px;
    border: 1px solid #428bca;
    border-radius: 4px;
  }
  .desc-item p:last-child{
    margin: 0;
  }
  .desc-item img {
    vertical-align: sub;
  }
}

/*= Step7 トップ =*/
.school .page-body{
  .swiper-slide {
    background: #eee;
    text-align: center;
  }
  @media (min-width: 768px) {
    .swiper-slide img{
      max-width: 80%;
      height: 100%;
      aspect-ratio: 3 / 1;
      object-fit: cover;
    }
  }
}

/*= 舞子校トップ =*/
.maiko-en .page-body,
.maiko .page-body{
  #section-announce {
    margin:60px 0;
  }
  .announce {
    padding: 15px;
    font-size: 19px;
    font-weight: 700;
    border: 1px solid #ebccd1;
    border-radius: 4px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
    text-align: center;
  }
  .special-title {
    font-size:  15px;
    margin-bottom: 30px;
  }
  .special-img {
    margin-bottom: 15px;
    img {
      width: 100%;
    }
  }
  .special-video {
    margin: 50px 0;
  }
  .lesson-item {
    border:1px solid #ebccd1;
    margin-bottom: 20px;
    p {
      line-height: 1.7;
    }
    p:last-of-type {
      margin-bottom: 0;
    }
    .lesson-title {
      font-size: 18px;
      color: #a94442;
      background-color: #f2dede;
      border-bottom:1px solid #ebccd1;
      padding: 10px 15px;
      border-bottom: 1px solid transparent;
      border-top-right-radius: 3px;
      border-top-left-radius: 3px;
    }
    .lesson-body {
      padding: 15px;
    }
    .lesson-footer {
      margin-top:30px ;
    }
  }
  .reserve-btn {
    margin-top: 50px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 15px;
  }
  .lesson_fee {
    h4 {
      color:#03a9f4 ;
      font-weight: 700;
    }
    .section-body {
      margin-bottom: 70px;
    }
  }
  @media (min-width: 768px) {
    .special {
      display: grid;
      grid-template-columns: repeat(3,1fr);
      gap: 30px;
    }
    .requested {
      display: flex;
      gap: 30px;
    }
    .requested > * {
      width: calc(50% - 15px);
    }
    .lesson-body__flex {
      display: flex;
      gap: 15px;
      flex-wrap: wrap;
    }
    .lesson-body__flex .lesson-img {
      width: 35%;
    }
    .lesson-body__flex .lesson-img img{
      width: 100%;
    }
    .lesson-body__flex .lesson-desc {
      width: calc(65% - 15px);
    }
    #maikocounseling .lesson-img ,
    #fantastic .lesson-img {
      width: 55%;
    }
    #maikocounseling .lesson-body__flex .lesson-desc,
    #fantastic .lesson-body__flex .lesson-desc {
      width: calc(45% - 15px);
    }
    .reserve-btn {
      flex-direction: row;
      justify-content: space-around;
    }
  }
}
.maiko-en .page-body .lesson_fee h4{
  color: #000;
}


/*= 舞子校 ご予約 =*/
.maiko-booking .page-body {
  .section__contents img {
    width: 175px;
  }
}

/*= カテゴリーレッスン 共通
・成り立ちと特徴
・カテゴリーとライセンス
・レッスンメニュー
・受講の流れ
・キャンセルについて =*/
.school-about .page-body,
.school-license .page-body,
.school-menu .page-body,
.school-flow .page-body,
.school-cancel .page-body,
.school-schedule .page-body {
  h3 {
    border: none;
  }
  h3 img {
    margin-right: 1rem;
    vertical-align: text-bottom;
  }
  .feature {
    border:1px solid #428bca;
    border-radius: 4px;
    padding: 15px;
  }
  .feature .section__body{
    padding-bottom: 15px;
  }
  .feature h4 {
    margin-top: 0;
  }
  .feature .section__body {
    margin-bottom: 20px;
  }
  @media (min-width: 768px) {
    .curriculum .section__flex {
      display: grid;
      grid-template-columns: 1fr 400px;
    }
    .feature__flex {
      display: flex;
      gap: 15px;
    }
    p {
      flex: 1 ;
    }
    .section__img {
      display: block;
      flex: 286px 0;
      text-align: center;
    }
    .feature .section__body:nth-child(even) .feature__flex{
      flex-direction: row-reverse;
    }
  }
}

/*= キャンセル =*/
.school-cancel .page-body {
  #pledge:before{
    content: "";
    display: block;
    height: 120px;
    margin-top: -120px;
    visibility: hidden;
    pointer-events: none;
  }
  .section__body {
    border-bottom: 1px solid #eee;
    padding: 40px 0;
  }
}

.school-license .page-body,
.school-menu .page-body,
.school-flow .page-body {
  .feature {
    margin-bottom: 20px;
  }
  .feature img {
    vertical-align: text-bottom;
  }
  .feature h3 {
    margin-top: 0;
  }
  .feature p:last-child {
    margin-bottom: 0;
  }
  .section__body {
    padding-bottom: 30px;
  }
}

/*= 受講の流れ =*/
.school-flow .page-body {
  .feature h3 {
    margin: 0;
  }
  .section__body {
    padding-bottom: 15px;
  }
}

/*= 目的別受講ガイド =*/
.school-guide .page-body{
  .section__body h3 {
    border: none;
    font-size: 18px;
    margin-bottom: 4px;
  }
  .section__body h3 b{
    padding-left: 8px;
  }
  .section__body h3 img{
    vertical-align: text-bottom;
  }
  ol {
    padding-left: 24px;
    margin-bottom: 30px;
  }
  ol li {
    list-style-type: decimal;
  }
}

/*= 受講者の声 =*/
.school-voice .page-body{
  .voice-item {
    margin-bottom: 60px;
  }
  .voice-txt {
    background: #fcf8e3;
    border:1px solid #faebcc;
    color: #8a6d3b;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
  }

  .voice-txt p:last-child{
    margin-bottom: 0;
  }
}

/*=
  ・カテゴリーレッスン
  ・カスタマイズレッスン
  ・冬季常設スクール =*/
.school-category .page-body,
.school-custom .page-body,
.school-season .page-body{
  h3 {
    border: none;
    color: #0174DF;
  }
  h3 img,
  .openschool img {
    vertical-align: text-bottom;
    margin-right: 8px;
  }
  .announce {
    background: #f2dede;
    border:1px solid #ebccd1;
    color: #a94442;
    padding: 15px;
    margin-bottom: 20px;
  }
  .announce h4 {
    text-align: center;
    margin: 0 0 30px;
  }
  .announce p:last-child{
    margin-bottom: 0;
  }
}

/*= レッスン一覧 =*/
.school-schedule {
  .section__body {
    padding-bottom: 30px;
  }
  .lessons-list {
    margin-left: 4px;
  }
  .lessons-list a {
    font-weight: 700;
  }
}

/*= FAQ =*/
.school-faq .page-body {
  .faq__q {
    background-color: #d9edf7;
    border:1px solid #bce8f1;
    color: #000080;
    font-size: 18px;
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
  }
  .faq__a img {
    vertical-align: middle;
  }
}

/*= 教育機関 =*/
.pro-research .page-body {
  h3 {
    font-size: 19px;
    margin: 20px 0 15px;
  }
  .section__body {
    margin-bottom: 60px;
  }
}

/*== コーチ紹介（アスリート・教育プログラム共通） ==*/
.athlete-coach .page-body,
.pro-coach .page-body{
  .page-body__inner {
    background: #f4f6f8;
    padding: 15px;
    @media(min-width:960px) {
      padding: 30px;
    }
  }
  h2 {
    background: none;
    text-align: center;
    border: none;
    color: #000;
  }
  .section__subheader {
    font-size:13px ;
  }
  hr {
    margin-bottom: 15px;
  }
  ul,ol {
    padding-left: 20px;
  }
  ol li{
    list-style-type: decimal;
  }
  .coach-header {
    p {
      margin-bottom: 0;
    }
    h2 img {
      display: inline-block;
      margin-bottom: 30px;
    }
  }
  .coach-lead {
    text-align: center;
    h2 {
      font-size: 16px;
    }
    .section__catch {
      font-size: 30px;
      line-height: 2;
    }
    .feature{
      color:#CD384B ;
    }
  }
  .coach__footer {
    text-align: center;
    .txt_xxl {
      line-height: 2;
    }
    .point {
      color:#5CB7D0;
      font-size: 20px;
      padding-top: 30px;
    }
  }
  #yabe {
    .career {
      display: flex;
      flex-direction: column;
      gap: 30px;
    }
  }
  #fushimi {
    .career .section__body{
      .section__img {
        text-align: center;
        @media(min-width:800px) {
          width: 230px;
        }
      }
      .section__txt {
        p {
          margin: 0;
          font-size: 12px;
        }
        ul {
          padding: 0;
          font-size: 12px;
        }
      }
      @media(min-width:800px) {
        display: flex;
        flex-direction: row-reverse;
        gap: 15px;
      }
    }
  }
}

.athlete-coach .page-body{
  .section__inner {
    max-width: 800px;
    padding: 20px;
    @media(min-width:960px) {
      padding: 40px;
    }
    background: #fff;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border-radius: 8px;
  }
}

/*= コーチ派遣:教育機関向けプログラム =*/
.pro .page-body{
  .section__body {
    margin-bottom: 60px;
  }
  .school-list {
    .list-item {
      margin-bottom: 60px;
    }
    .img-photo img{
      width: 100%;
      height: auto;
    }
    h3 {
      font-size: 19px;
      border: none;
    }
    li {
      margin-bottom: ;
    }
    @media(min-width:1024px) {
      display: grid;
      grid-template-columns: repeat(3,1fr);
      gap: 30px;
    }
  }
}

/*= ・ヒキダスアイテム
・コーチ認定 =*/
.pro-hikidas-item,
.pro-cert {
  form {
    input, textarea, select {
      height: auto;
    }
  }
  .hds-card-desc {
    font-size:0.88rem;
  }
  @media (min-width: 1024px) {
    .hds-wrapper,
    .hds-cert-wrapper {
      max-width: 75%;
    }
  }
}

/*= アスリートニュース =*/
.athlete-news #body-wrapper {
  max-width: 1045px;
  margin-left: auto;
  margin-right: auto;
}
.athlete-news .page-body,
.athlete-news .page-header {
  @media (min-width: 768px) {
    width: 75%;
  }
}
.athlete-news .page-body {
  .articles {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .articles__item {
    background: #fee;
    padding: 1.5rem;
  }
  .articles__title {
    margin-bottom: 0;
    color:#ff0000 ;
    font-weight: bold;
    font-size: 18px;
  }
  .articles__date {
    margin: 0;
    font-size: 11px;
    color: #808080;
    text-align: right;
    display: block;
  }
  .step7-legacy-post p > br:first-child {
    display: none;
  }
  .step7-legacy-post .ie5s .qhm-plugin-style.qhm-block {
    margin-top: 0 !important;
    padding: 0 !important;
  }
  .athlete-news .page-body .articles__date {
    display: block;
    text-align: right;
  }
}
