/* ===========================================================
   style.css
   styles.css + responsive.css + under.css + under_responsive.css を統合
   （読み込み順序を維持: styles → responsive → under → under_responsive）
   =========================================================== */

/* ===========================================================
   1. styles.css（サイト全体・PC）
   =========================================================== */
@import"base.css";
@import"fonts.css";
:root {
  --content-width: 1400px;
  --font-yumincho: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝B", serif;
  --font-family: "Noto Sans JP", sans-serif;
  --font-kaisei: "Kaisei Tokumin", serif;
  --font-cormo: "Cormorant Garamond", serif;
  --font-number: "Anton", sans-serif;
  --color-primary: #f0961b;
  --color-secondary: #fce632;
  --color-clr01: #008acf;
  --body-color: #222222;
  --red: #e50012;
}
h1, h2, h3, h4, h5, h6, input, button, textarea, select, p, blockquote, th, td, pre, address, li, dt, dd {
  font-size: 200%;
  -webkit-text-size-adjust: none
}
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=date], textarea, select {
  width: 100%;
  border: solid 1px #b3b3b3;
  padding: 10px;
  font-family: var(--font-family);
  font-weight: 500;
}
textarea {
  resize: vertical
}
::placeholder {
  opacity: .5
}
h1, h2, h3, h4, h5, h6 {
  line-height: 1.6em;
  font-weight: 700;
  margin-bottom: .5em;
}
a {
  color: var(--color-secondary);
  transition: all .2s
}
select {
  visibility: visible !important
}
[href^="tel:"] {
  word-break: keep-all;
  white-space: nowrap
}
img {
  vertical-align: middle;
  max-width: 100%;
  flex-shrink: 0;
  height: auto;
  object-fit: cover
}
table {
  width: 100%
}
p {
  margin-bottom: 2em;
  line-height: 1.7em
}
p:last-child {
  margin-bottom: 0
}
button {
  cursor: pointer;
  border: solid 1px #333;
  border-radius: 0;
  outline: none;
  box-shadow: none
}
*, ::before, ::after {
  box-sizing: border-box;
  outline: none
}
html {
  background: #fff
}
body {
  min-width: 320px;
  -webkit-text-size-adjust: none;
  color: var(--body-color);
  font-family: var(--font-family);
  font-weight: 500;
}
.break_sp {
  display: none;
}
.break_pc {
  display: block;
}
.mb0 {
  margin-bottom: 0 !important;
}
.mb30 {
  margin-bottom: 30px !important;
}
.mb60 {
  margin-bottom: 60px !important;
}
#wrapper {
  min-width: 1260px;
  max-width: 1920px;
  margin: 0 auto;
  overflow: hidden
}
.inner {
  width: var(--content-width);
  max-width: 100%;
  margin-left: auto;
  margin-right: auto
}
.menu_sp {
  display: none;
}
.d-flex {
  display: flex
}
.d-flex-column {
  display: flex;
  flex-direction: column
}
.flex_wrap {
  display: flex;
  flex-wrap: wrap
}
.flex_between {
  display: flex;
  justify-content: space-between;
}
.flex_center {
  justify-content: center;
  display: flex;
  flex-wrap: wrap;
}
.left {
  text-align: left
}
.center {
  text-align: center
}
.right {
  text-align: right
}
.bold {
  font-weight: bold
}
.text-large {
  font-size: 130%
}
.text-small {
  font-size: 80%
}
.text-yell {
  color: var(--color-secondary);
}
img.alignleft {
  float: left;
  margin-right: 20px;
  margin-bottom: 20px
}
img.alignright {
  float: right;
  margin-left: 20px;
  margin-bottom: 20px
}
img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto
}
.tab-content {
  display: none
}
.tab-content.active {
  display: block
}
[data-tab], .accordion-button {
  cursor: pointer
}
.red {
  color: var(--red);
}
body.open-nav {
  height: 100%;
  overflow: hidden
}
/*==========================================================
                        header
==========================================================*/
header {
  position: fixed;
  width: 100%;
  z-index: 10;
  top: 0;
  left: 0;
  background: #ffffff;
}
#head_top #logo {
  margin: 0;
}
#head_top .inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 110px;
}
.head_list {
  display: flex;
  align-items: center;
  padding-right: 3px;
}
.head_list li {
  margin-right: 20px;
}
.head_list li:last-child {
  margin-right: 0;
}
.head_list .btn {
  width: 275px;
  position: relative;
  top: 2px;
}
.head_list .btn.orange {
  margin-left: 5px;
}
.head_list .btn a {
  height: 52px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  text-decoration: none;
  font-size: 22px;
  font-weight: 600;
  background: #E6AB00;
  background: linear-gradient(180deg, rgba(230, 171, 0, 1) 0%, rgba(242, 150, 0, 1) 100%);
  border-radius: 99px;
  box-shadow: 2px 3px 0px 0px rgba(35, 24, 21, 0.2);
  -webkit-box-shadow: 2px 3px 0px 0px rgba(35, 24, 21, 0.2);
  -moz-box-shadow: 2px 3px 0px 0px rgba(35, 24, 21, 0.2);
  padding-right: 14px;
  position: relative;
  line-height: 1.4em;
  padding-bottom: 3px;
}
.head_list .btn a:before {
  position: absolute;
  top: 50%;
  right: 27px;
  transform: translateY(-50%);
  background: url("../images/arrow_btn01.png") no-repeat;
  background-size: 100% auto;
  width: 18px;
  height: 18px;
  content: '';
  display: block;
}
.head_list .btn.blue a {
  background: #008ACF;
  background: linear-gradient(180deg, rgba(0, 138, 207, 1) 0%, rgba(0, 113, 188, 1) 100%);
}
.head_list .btn.blue a:before {
  background: url("../images/arrow_btn02.png") no-repeat;
  background-size: 100% auto;
}
#gnavi {
  width: 100%;
  background: #F0961B;
  background: linear-gradient(90deg, rgba(240, 150, 27, 1) 0%, rgba(255, 109, 44, 1) 100%);
}
.list-nav {
  display: flex;
  align-items: center;
  width: 100%;
  justify-content: center;
  height: 80px;
}
.list-nav .nav-item {
  position: relative;
  padding: 0 30px
}
.list-nav .nav-item:after, .list-nav .nav-item:first-child:before {
  content: "";
  width: 2px;
  height: 20px;
  background: #ffffff;
  position: absolute;
  right: 0;
  top: calc(50% - 10px);
  opacity: 0.7;
}
.list-nav .nav-item:first-child:before {
  right: auto;
  left: 0;
}
.list-nav .nav-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #ffffff;
  text-decoration: none;
  font-weight: 600;
}
.list-nav .nav-link > span {
  display: block;
  position: relative
}
.list-nav .has-nav {
  position: relative;
  z-index: 1
}
.list-nav .has-nav > .nav-link {
  cursor: default
}
.list-nav .sub-nav-wrap {
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  width: 430px;
  padding-top: 37px;
  opacity: 0;
  visibility: hidden;
  transition: .2s all
}
.list-nav .sub-nav {
  display: flex;
  flex-wrap: wrap;
  padding: 36px 10px 39px 40px;
}
.list-nav .sub-nav li {
  width: 50%
}
.list-nav .sub-nav li:nth-child(n+3) {
  margin-top: 14px
}
.list-nav .sub-nav a {
  display: inline-block;
  text-decoration: none;
  color: var(--body-color);
  padding-left: 28px;
  position: relative;
  font-size: 16px
}
.list-nav .sub-nav a:before {
  content: "";
  width: 18px;
  height: 18px;
  background: var(--body-color);
  background-size: 5px auto;
  position: absolute;
  left: 0;
  top: 4px
}
/* common */
main {
  padding-top: 190px;
}
main i {
  font-style: normal
}
.btn01 {
  width: 100%;
  max-width: 396px;
  margin: 0 auto;
  background: #fff;
  border-radius: 99px;
}
.btn01 a {
  height: 76px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  text-decoration: none;
  font-size: 31px;
  font-weight: 600;
  background: #E6AB00;
  background: linear-gradient(180deg, rgba(230, 171, 0, 1) 0%, rgba(242, 150, 0, 1) 100%);
  border-radius: 99px;
  box-shadow: 3px 4px 0px 0px rgba(35, 24, 21, 0.2);
  -webkit-box-shadow: 3px 4px 0px 0px rgba(35, 24, 21, 0.2);
  -moz-box-shadow: 3px 4px 0px 0px rgba(35, 24, 21, 0.2);
  padding-right: 14px;
  position: relative;
  letter-spacing: 0.02em;
  padding-bottom: 5px;
  line-height: 1.4em;
}
.btn01 a:before {
  position: absolute;
  top: 50%;
  right: 37px;
  transform: translateY(-50%);
  background: #fff;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  content: '';
  display: block;
}
.btn01 a:after {
  position: absolute;
  top: 50%;
  right: 44px;
  transform: translateY(-50%);
  background: var(--color-primary);
  width: 9px;
  height: 13px;
  content: '';
  display: block;
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}
.btn01.blue a {
  background: #008ACF;
  background: linear-gradient(180deg, rgba(0, 138, 207, 1) 0%, rgba(0, 113, 188, 1) 100%);
}
.btn01.blue a:after {
  background: #2c9ed7;
}
.btn01.big {
  max-width: 700px;
}
.btn01.big a {
  height: 113px;
  font-size: 42px;
  letter-spacing: 0;
  box-shadow: 5px 5px 0px 0px rgba(35, 24, 21, 0.2);
  -webkit-box-shadow: 5px 5px 0px 0px rgba(35, 24, 21, 0.2);
  -moz-box-shadow: 5px 5px 0px 0px rgba(35, 24, 21, 0.2);
  padding-bottom: 5px;
}
.btn01.big a:before {
  display: none;
}
.btn01.big a:after {
  position: absolute;
  top: 50%;
  right: 59px;
  transform: translateY(-50%);
  width: 25px;
  height: 28px;
  content: '';
  display: block;
  background: url(../images/arr_w.svg) no-repeat;
  background-size: 100% auto;
  clip-path: none;
}
.btn01.small {
  max-width: 275px;
}
.btn01.small a {
  height: 52px;
  font-size: 22px;
}
.com_txt01 {
  font-size: 24px;
  line-height: 1.8em;
}
h2.tyle01 {
  font-size: 40px;
  text-align: center;
  font-weight: 700;
  margin-bottom: 40px;
}
h2.tyle01 span {
  display: inline-block;
  position: relative;
  line-height: 1.6em;
  padding-bottom: 12px;
}
h2.tyle01 span:after {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  content: '';
  display: block;
  background: url("../images/line_bottom.svg") repeat-x;
  background-size: auto 100%;
  width: 115%;
  height: 12px;
}
h2.tyle02 {
  color: var(--color-primary);
  font-size: 44px;
  margin-bottom: 7px;
  font-weight: 700;
  line-height: 1.5em;
}
/*==========================================================
                        menu sp
==========================================================*/
#menu-toggle {
  width: 60px;
  height: 60px;
  background: #F0961B;
  background: linear-gradient(90deg, rgba(240, 150, 27, 1) 0%, rgba(255, 109, 44, 1) 100%);
  position: relative;
  z-index: 100;
  cursor: pointer;
  display: none;
  border-radius: 9px;
}
#menu-toggle > span {
  height: 4px;
  position: absolute;
  width: 40px;
  background: #fff;
  left: 10px;
  transition: .2s ease-in-out;
  color: #fff;
  font-weight: 700;
  font-size: 11px;
}
#menu-toggle > span:nth-child(1) {
  top: 11px
}
#menu-toggle > span:nth-child(2), #menu-toggle > span:nth-child(3) {
  top: 23px
}
#menu-toggle > span:nth-child(4) {
  top: 34px
}
#menu-toggle > span:nth-child(5) {
  background: none;
  width: 100%;
  left: 0;
  text-align: center;
  top: 40px;
}
#menu-toggle > span.txt_close {
  display: none;
}
#menu-toggle.open > span.txt_close {
  display: block;
  background: none;
  width: 100%;
  left: 0;
  text-align: center;
  top: 40px;
}
#menu-toggle.open > span.txt_menu {
  display: none;
}
#menu-toggle.open span:nth-child(1), #menu-toggle.open span:nth-child(4) {
  width: 0%;
}
#menu-toggle.open span:nth-child(4) {
  left: auto;
  right: 10px;
}
#menu-toggle.open span:nth-child(2) {
  transform: rotate(45deg)
}
#menu-toggle.open span:nth-child(3) {
  transform: rotate(-45deg)
}
/*==========================================================
                        mv
==========================================================*/
#home #top_info {
  position: relative;
  z-index: 1;
  background: url("../images/idx_main.jpg") no-repeat;
  background-size: cover;
  max-height: 719px;
  height: calc(100vh - 210px);
}
#top_info .main_info {
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.8);
}
.main_info .main_txt01 {
  margin-bottom: 25px;
  font-size: 36px;
  font-weight: 700;
}
.main_info .main_txt01 .num {
  font-size: 54px;
}
.line {
  position: relative;
  z-index: 1;
  line-height: 1;
  display: inline-block;
}
.line:after {
  background: var(--color-secondary);
  height: 20px;
  position: absolute;
  z-index: -1;
  content: '';
  display: block;
  width: 100%;
  left: 0;
  bottom: -6px;
}
.main_info .main_txt02 {
  margin-bottom: 0;
  font-size: 53px;
  font-weight: 700;
  position: relative;
  line-height: 1.6em;
}
.main_info .main_txt02:before, .main_info .main_txt02:after {
  position: absolute;
  top: 12px;
  left: -32px;
  transform: rotate(-30deg);
  width: 3px;
  height: 60px;
  background: var(--color-primary);
  content: '';
  display: block;
}
.main_info .main_txt02:after {
  left: auto;
  right: -15px;
  transform: rotate(30deg);
}
.main_info .main_txt02 span {
  display: inline-block;
  position: relative;
  line-height: 1.55em;
}
.main_info .main_txt02 span:before {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--color-primary);
  content: '';
  display: block;
}
.main_info h1 {
  font-size: 53px;
  line-height: 1.8em;
  color: var(--color-primary);
  margin-bottom: 30px;
}
.main_info h1 span {
  font-size: 117px;
}
/*==========================================================
                        #top_banner (トップバナーカルーセル)
==========================================================*/
#top_banner {
  position: relative;
  background: #fff;
  padding: 70px 0 80px;
}
.banner_slider {
  position: relative;
  display: flex;
  align-items: center;
}
.banner_slider_viewport {
  width: 100%;
  overflow: hidden;
  padding: 0 32px;
  box-sizing: border-box;
}
.banner_slider_track {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding: 0 calc(50% - 345px);
  margin: 0;
  list-style: none;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.banner_slider_track::-webkit-scrollbar {
  display: none;
}
.banner_slide {
  flex: 0 0 690px;
  width: 690px;
  margin-right: 15px;
  scroll-snap-align: center;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  opacity: .45;
  transform: scale(.86);
  transition: opacity .3s, transform .3s, box-shadow .3s;
}
.banner_slide:last-child {
  margin-right: 0;
}
.banner_slide.is-current {
  opacity: 1;
  transform: scale(1);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
}
.banner_slide a {
  display: block;
  line-height: 0;
}
.banner_slide img {
  width: 100%;
  height: auto;
  aspect-ratio: 690 / 370;
  object-fit: cover;
}
.banner_arrow {
  flex: none;
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--color-primary);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}
.banner_arrow.prev {
  left: 0;
}
.banner_arrow.next {
  right: 0;
}
.banner_dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 40px;
}
.banner_dots .dot {
  width: 16px;
  height: 16px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #dcdcdc;
  cursor: pointer;
  transition: background .2s, transform .2s;
  -webkit-appearance: none;
  appearance: none;
  box-sizing: content-box;
}
.banner_dots .dot.is-active {
  background: var(--color-primary);
  transform: scale(1.25);
}
/*==========================================================
                        #sec01
==========================================================*/
#sec01 {
  background: #fff6e6;
  padding: 38px 0 85px;
  text-align: center;
  border-top: var(--color-primary) 10px solid;
}
.s01_box01 .com_txt01 {
  margin-bottom: 25px;
}
.s01_box02 {
  background: #ffffff;
  padding: 46px 70px 51px;
  margin: 36px 0 30px;
  border-radius: 20px;
}
.s01_box02 .com_txt01 {
  line-height: 1.85em;
}
.s01_box03 h2.tyle01 {
  margin-bottom: 52px;
}
.s01_box03 h2.tyle01 span:after {
  width: calc(100% + 76px);
}
.s01_dl {
  display: flex;
  justify-content: space-between;
  padding: 0 42px 0 16px;
}
.s01_dl dl dt {
  margin-bottom: 25px;
  height: 254px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.s01_dl dl:nth-child(2) dt {
  position: relative;
  right: 17px;
}
.s01_dl dl:nth-child(3) dt {
  position: relative;
  right: 22px;
  top: 5px;
}
.s01_dl dl dd {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.55em;
}
.s01_dl dl .line:after {
  height: 11px;
  bottom: -5px;
}
/*==========================================================
                        #sec02
==========================================================*/
#sec02 {
  padding: 75px 0 97px;
}
#sec02 .btn01.big {
  max-width: 923px;
  margin-bottom: 60px;
}
#sec02 .btn01.big a {
  height: 146px;
  font-size: 55px;
  box-shadow: 5px 8px 0px 0px rgba(35, 24, 21, 0.2);
  -webkit-box-shadow: 5px 8px 0px 0px rgba(35, 24, 21, 0.2);
  -moz-box-shadow: 5px 8px 0px 0px rgba(35, 24, 21, 0.2);
  padding-bottom: 7px;
}
#sec02 .btn01.big a:after {
  width: 25px;
  height: 28px;
}
#sec02 h2.tyle01 {
  margin-bottom: 62px;
}
#sec02 h2.tyle01 span:after {
  width: calc(100% + 68px);
}
.s02_cont {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.s02_cont .item {
  width: 680px;
  margin-bottom: 30px;
  border-radius: 26px;
  background: #fff6e6;
  overflow: hidden;
  padding-bottom: 32px;
  display: flex;
  flex-direction: column;
}
.s02_cont .item:nth-child(even) {
  background: #e5f3fa;
}
.s02_cont h3 {
  text-align: center;
  font-size: 40px;
  font-weight: 700;
  background: url("../images/s02_ic01.svg") 35px center no-repeat #f0961b;
  background-size: 73px auto;
  color: #ffffff;
  min-height: 101px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 5px 10px 5px 88px;
  margin-bottom: 0;
}
.s02_cont .dl02 h3 {
  background: url("../images/s02_ic02.svg") 35px center no-repeat #2c9ed7;
  background-size: 67px auto;
}
.s02_cont .dl03 h3 {
  background: url("../images/s02_ic03.svg") 50px center no-repeat #f0961b;
  background-size: 41px auto;
}
.s02_cont .dl04 h3 {
  background: url("../images/s02_ic04.svg") 37px center no-repeat #2c9ed7;
  background-size: 61px auto;
}
.s02_cont .dl05 h3 {
  background: #f0961b;
  padding-left: 10px;
}
.s02_cont .dl06 h3 {
  background: #2c9ed7;
  padding-left: 10px;
}
.s02_cont .s02_img {
  border-radius: 10px;
  overflow: hidden;
  text-align: center;
  max-width: 620px;
  margin: 0 auto 20px;
}
.s02_box {
  padding: 20px 20px 2px;
}
.s02_box dl {
  font-weight: 700;
  padding: 0 20px;
  margin-bottom: 16px;
}
.s02_box dt {
  font-size: 32px;
  background: url("../images/s02_check.svg") left center no-repeat;
  background-size: 32px auto;
  padding-left: 40px;
  margin-bottom: 5px;
}
.s02_box dd {
  font-size: 36px;
  position: relative;
  left: -8px;
}
/* パソコンで趣味を広げたい：講座名リンクの見た目調整（黒文字・下線＋オレンジ丸に白い▶アイコン） */
.s02_box dd a {
  color: #000;
  text-decoration: underline;
}
.s02_box dd a .dd_arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
  width: 28px;
  height: 28px;
  background: #f0961b;
  border-radius: 50%;
  vertical-align: middle;
}
.s02_box dd a .dd_arrow:after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  margin-left: 2px;
  border-style: solid;
  border-width: 6px 0 6px 9px;
  border-color: transparent transparent transparent #fff;
}
.s02_cont .item .btn01 {
  max-width: 346px;
  margin-top: auto;
}
.s02_cont .item .btn01 a {
  height: 67px;
  font-size: 27px;
  padding-bottom: 3px;
  box-shadow: 3px 3px 0px 0px rgba(35, 24, 21, 0.2);
  -webkit-box-shadow: 3px 3px 0px 0px rgba(35, 24, 21, 0.2);
  -moz-box-shadow: 3px 3px 0px 0px rgba(35, 24, 21, 0.2);
}
.s02_cont .item .btn01 a:before {
  width: 22px;
  height: 22px;
  right: 34px;
}
.s02_cont .item .btn01 a:after {
  width: 8px;
  height: 11px;
  right: 40px;
}
/*============================================================ 
                          #sec03 
============================================================ */
#sec03 {
  padding: 50px 0 75px;
  background: #eaeaea;
}
#sec03 h2.tyle01 span:after {
  width: 132%;
}
.s03_cont {
  margin-bottom: 65px;
}
.s03_cont .item {
  width: 100%;
  display: flex;
  align-items: center;
}
.s03_cont .item:not(:last-child) {
  margin-bottom: 55px;
}
.s03_cont .item .s03_img {
  width: 234px;
  margin-bottom: 0;
  margin-right: 35px;
  flex-shrink: 0;
}
.s03_cont .item .s03_voice {
  position: relative;
  margin-left: 65px;
  padding: 31px 50px;
  background-color: #fff;
  border-radius: 22px;
}
.s03_cont .item:last-child .s03_voice {
  padding: 40px 50px;
  position: relative;
  top: -2px;
}
.s03_cont .item .s03_voice:before {
  position: absolute;
  content: "";
  border-top: 15px solid rgba(0, 0, 0, 0);
  border-right: 65px solid #fff;
  border-bottom: 25px solid rgba(0, 0, 0, 0);
  left: -65px;
  top: 50%;
  transform: translateY(-50%);
}
.s03_cont .s03_voice h3 {
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 1em;
}
.s03_cont .item .s03_voice p {
  font-size: 26px;
  line-height: 1.5;
  margin-bottom: .8em;
}
.s03_cont .item .s03_voice p:last-child {
  margin-bottom: 0;
}
#sec03 .btn01 {
  max-width: 465px;
}
/*============================================================ 
                          #sec04 
============================================================ */
#sec04 {
  padding: 75px 0 65px 0;
}
#sec04 h2.tyle01 span:after {
  width: 125%;
}
.s04_cont .s04-it {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
}
.s04-it .s04_img {
  width: 501px;
  flex-shrink: 0;
  margin-bottom: 0;
  margin-right: 59px;
  padding-bottom: 40px;
}
.s04-it04 .s04_img {
  padding-bottom: 0;
}
.s04-it .s04_content {
  position: relative;
  display: flex;
  align-self: normal;
  width: calc(100% - 560px);
}
.s04-it .s04_content::before {
  z-index: -1;
  position: absolute;
  content: "";
  top: 0;
  left: calc(106px/2);
  width: 2px;
  height: 100%;
  background: #b3b3b3;
}
.s04-number {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  background: #f0961b;
  color: #fff;
  font-size: 67px;
  font-weight: 400;
  width: 106px;
  height: 106px;
  border-radius: 50%;
  margin-right: 25px;
  padding-bottom: 0;
  font-family: var(--font-number);
}
.s04-text {
  margin-top: -15px;
}
.s04-text .s04_tit01, .under main .s04-text .s04_tit01 {
  font-size: 40px;
  margin-bottom: 0;
  font-weight: 700;
}
.s04-text p {
  font-size: 26px;
  line-height: 1.55;
}
/*==========================================================
                        #sec05
==========================================================*/
#sec05 {
  padding: 50px 0 60px;
  background: #fff6e6;
}
#sec05 h2.tyle01 span:after {
  width: 118%;
}
.s05_info_img {
  position: relative;
}
.s05_info_img .s05_img {
  margin-bottom: 0;
}
.s05_circle {
  position: absolute;
  right: 20px;
  top: calc(0px - (243px / 4));
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  background: #f0961b;
  width: 243px;
  height: 243px;
  border-radius: 50%;
}
.s05_circle > p {
  color: #fff;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
}
.s05_com_txt01 {
  padding: 22px 30px 33px 30px;
  font-size: 26px;
  text-align: center;
  margin-bottom: 0;
  line-height: 1.55em;
}
.s05_com_txt01 .line {
  font-weight: 700;
}
.s05_cont {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.s05_cont_image {
  z-index: 2;
  width: 401px;
  flex-shrink: 0;
}
.s05_cont_text {
  width: 100%;
  z-index: 1;
  background: #fff;
  margin-left: -90px;
  border-radius: 16px;
  padding: 70px 60px 80px 150px;
}
.s05_cont_text h3 {
  margin-bottom: 0;
  font-size: 39px;
  font-weight: 700;
}
.s05_cont_text > p {
  font-size: 26px;
}
/*============================================================ 
                          #sec_member_site 
============================================================ */
#sec_member_site {
  padding: 60px 0 70px;
  background: #fff;
}
#sec_member_site .sms_lead {
  text-align: center;
  font-size: 24px;
  line-height: 1.8em;
  margin-bottom: 50px;
}
.sms_cont {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.sms_row {
  display: flex;
  align-items: stretch;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}
.sms_row01, .sms_row03 {
  flex-direction: row-reverse;
}
.sms_photo {
  flex: 0 0 46%;
  max-width: 46%;
}
.sms_photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.sms_panel {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 50px 60px;
}
.sms_panel_orange {
  background: #fff6e6;
}
.sms_panel_blue {
  background: #e5f3fa;
}
.sms_head {
  display: flex;
  align-items: center;
  gap: 24px;
  padding-bottom: 20px;
  margin-bottom: 24px;
  border-bottom: 3px dashed var(--color-primary);
}
.sms_panel_blue .sms_head {
  border-bottom-color: #2c9ed7;
}
.sms_icon {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  background: var(--color-primary);
  color: #fff;
  font-size: 26px;
  font-weight: 700;
}
.sms_icon.blue {
  background: #2c9ed7;
}
.sms_head h3 {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 0;
}
.sms_panel > p {
  font-size: 24px;
  line-height: 1.8em;
  margin-bottom: 0;
}
#sec_member_site .btn01 {
  margin-top: 50px;
}
/*============================================================ 
                          #sec06
============================================================ */
#sec06 {
  padding: 53px 0 64px;
  background: #eaeaea;
}
#sec06 h2.tyle01 {
  margin-bottom: 20px;
}
#sec06 h2.tyle01 span:after {
  width: 127%;
}
.s06_com_txt01, .under main .s06_com_txt01 {
  font-size: 26px;
  text-align: center;
  line-height: 1.55em;
  margin-bottom: 75px;
}
.s06_cont {
  position: relative;
  margin-top: -8em;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: 86px;
}
.s06_bnr, .under main .s06_bnr {
  width: 455px;
  padding: 20px 0 30px 10px;
  margin-top: 30px;
  margin: 0 25px 0 10px;
  display: flex;
  align-items: center;
  background: #ffffff;
  border-top: #f0961b 3px solid;
  border-bottom: #f0961b 3px solid;
}
.s06_btn_circle {
  margin-right: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  font-size: 32px;
  font-weight: 700;
  color: #ffffff;
  background: #f0961b;
}
.s06_btn_txt {
  font-size: 34px;
  font-weight: 700;
  line-height: 1.3;
  color: #f0961b;
}
.s06_img {
  position: relative;
  top: -8px;
}
.s06_voice_wr {
  position: absolute;
}
.s06_i01 .s06_voice_wr {
  top: -32px;
  left: -186px;
}
.s06_i02 .s06_voice_wr {
  top: -13px;
  right: -105px;
}
.s06_voice {
  position: relative;
  padding: 10px 10px;
  width: 214px;
  height: 214px;
  border-radius: 50%;
  background-color: #fff;
  display: flex;
  text-align: center;
  align-items: center;
  justify-content: center;
}
.s06_voice:before {
  position: absolute;
  content: "";
}
.s06_voice.voice01:before {
  right: -30px;
  top: 60%;
  transform: rotate(15deg);
  border-top: 18px solid rgba(0, 0, 0, 0);
  border-left: 40px solid #fff;
  border-bottom: 18px solid rgba(0, 0, 0, 0);
}
.s06_voice.voice02 {
  padding: 5px 5px;
  width: 147px;
  height: 147px;
}
.s06_voice.voice02:before {
  left: -5px;
  bottom: 6%;
  transform: rotate(319deg);
  border-top: 12px solid rgba(0, 0, 0, 0);
  border-right: 25px solid #fff;
  border-bottom: 12px solid rgba(0, 0, 0, 0);
}
.s06_voice p, .under main .s06_voice p {
  font-size: 26px;
  line-height: 1.5;
  margin: 0;
}
/*============================================================ 
                          #sec07
============================================================ */
#sec07 {
  padding: 60px 0 90px;
  background: #fff;
}
#sec07 .btn01.big {
  margin-bottom: 65px;
  max-width: 920px;
}
#sec07 .btn01.big a {
  height: 146px;
  font-size: 55px;
}
.s07_dl {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  margin-top: 30px;
}
.s07_dl dl {
  flex: 1;
  position: relative;
  width: calc(100%/4);
  padding: 0 20px;
}
.s07_dl dl::before {
  position: absolute;
  content: "";
  bottom: 0;
  top: 35px;
  right: 0;
  width: 1px;
  background: #b3b3b3;
}
.s07_dl dl:first-child {
  padding-left: 0;
}
.s07_dl dl:last-child {
  padding-right: 0;
}
.s07_dl dl:last-child::before {
  content: none;
}
.s07_dl dl dt {
  margin-bottom: 5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.s07_dl dl dd {
  position: relative;
}
.s07_dl dl dt .num {
  color: #f0961b;
  font-size: 46px;
  margin-right: 5px;
  font-weight: 400;
  font-family: var(--font-number);
}
.s07_dl dl dt .ttl {
  font-size: 32px;
}
.s07_dl dl dd > picture {
  position: relative;
  margin-bottom: 16px;
  display: block;
}
.s07_dl dl dd::after {
  position: absolute;
  content: "";
  right: calc(-20px - 22px / 2);
  top: calc(258px/2 - 42px);
  width: 42px;
  height: 42px;
  background: url("../images/s07_ic01.svg")no-repeat right center;
  background-size: contain;
}
.s07_dl dl:last-child dd:after {
  content: none;
}
.s07_dl dl dd > p {
  padding-right: 10px;
}
/*============================================================ 
                          #sec08
============================================================ */
#sec08 {
  padding: 60px 0 66px;
  background: #fff6e6;
}
#sec08 h2.tyle01 {
  margin-bottom: 50px;
}
.s08_dl {
  margin-top: 50px;
  margin-bottom: 40px;
  padding: 52px 74px;
  border-radius: 13px;
  background: #fff;
}
.s08_dl dl {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  border-bottom: 1px solid #b3b3b3;
  margin-bottom: 20px;
  padding-bottom: 20px;
}
.s08_dl dl:last-child {
  margin-bottom: 0;
}
.s08_dl dl dt {
  flex-shrink: 0;
  margin-right: 35px;
  font-size: 24px;
}
.s08_dl dl dd {
  padding-top: 5px;
}
.s08_dl dl dd p {
  font-size: 24px;
}
.s08_dl dl dd p.date {
  margin-bottom: 24px;
}
#sec08 .btn01 a {
  box-shadow: 2px 3px 0px 0px rgba(35, 24, 21, 0.2);
  -webkit-box-shadow: 2px 3px 0px 0px rgba(35, 24, 21, 0.2);
  -moz-box-shadow: 2px 3px 0px 0px rgba(35, 24, 21, 0.2);
}
#sec08 .btn01 a:before {
  width: 18px;
  height: 18px;
  right: 28px;
}
#sec08 .btn01 a:after {
  right: 33px;
  width: 6px;
  height: 9px;
}
/*============================================================ 
                          #sec09
============================================================ */
#sec09 {
  padding: 67px 0 75px 0;
  background: #fff;
}
#sec09 h2.tyle01 span:after {
  width: 130%;
}
.s09_dl {
  margin-top: 44px;
}
.s09_dl dl dt {
  cursor: pointer;
  position: relative;
  padding: 34px 200px 34px 230px;
  margin-bottom: 0;
  border-bottom: 1px solid #b3b3b3;
  background: url("../images/s09_ic01.svg")no-repeat left 113px center #eaeaea;
  background-size: 70px auto;
}
.s09_dl dl dt:hover {
  opacity: .7;
}
.s09_dl dl:last-child dt {
  border-bottom: none;
}
.s09_dl dl dt > p {
  margin-bottom: 0;
  font-size: 24px;
}
.s09_dl dl dt .ic_accor {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 108px;
  width: 75px;
  height: 75px;
  border-radius: 6px;
  background: #fff;
  display: block;
}
.s09_dl dl dt .ic_accor:after {
  position: inherit;
  background: url("../images/ic_accorr.svg") no-repeat;
  background-size: 100% auto;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: block;
  width: 40px;
  height: 40px;
  content: '';
  transition: 0.3s all;
}
.s09_dl dl dt.open .ic_accor:after {
  transform: translate(-50%, -50%) rotate(45deg);
}
.s09_dl dl dt.open ~ dd {
  display: block;
}
.s09_dl dl dd {
  position: relative;
  display: none;
}
.s09_dl dl:last-child dd {
  border-top: 1px solid #b3b3b3;
}
.s09_dl dl dd .s09_content {
  position: relative;
  padding: 34px 200px 48px 230px;
  margin-bottom: 0;
  border-bottom: 1px solid #b3b3b3;
  background: url("../images/s09_ic02.svg")no-repeat left 111px top 21px #fff;
  background-size: 70px auto;
}
.s09_dl dl dd .s09_content p {
  font-size: 24px;
}
/*============================================================ 
                          #sec_price
============================================================ */
.under_sec_price {
  padding: 70px 0 90px;
  background: #fff;
}
.under_sec_price h2.tyle01 span:after {
  width: 110%;
}
.price_table {
  max-width: 900px;
  margin: 0 auto 70px;
  background: #fff;
  border: 2px solid #f5d9b0;
  border-radius: 15px;
  overflow: hidden;
}
.price_table_row {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #f5d9b0;
}
.price_table_row:last-child {
  border-bottom: none;
}
.price_table_row dt {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 220px;
  flex-shrink: 0;
  padding: 25px 20px;
  background: #ffe9c7;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
}
.price_table_row dd {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 25px 35px;
  font-size: 22px;
  font-weight: 500;
}
.price_table_row dd p {
  margin: 0;
}
.price_table .nowrap {
  white-space: nowrap;
}
.price_lead {
  margin: 0 0 8px !important;
  font-size: 20px;
  font-weight: 700;
}
.price_list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.price_list li {
  font-size: 22px;
  font-weight: 500;
}
.price_list li:before {
  content: "●";
  margin-right: 6px;
  color: #f0961b;
  font-size: 16px;
}
.price_note_inline {
  display: inline-block;
  margin-left: 8px;
  font-size: 15px;
  font-weight: 500;
  color: #666;
}
.price_table .price {
  font-size: 28px;
  font-weight: 700;
  color: #e6432a;
}
.price_table .price_note {
  margin-top: 4px;
  font-size: 16px;
  font-weight: 500;
  color: #666;
}
.price_discount {
  margin-bottom: 55px;
}
.price_discount_ttl {
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 18px;
  font-size: 32px;
  font-weight: 700;
  text-align: center;
}
.price_discount_ttl:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 60px;
  height: 4px;
  border-radius: 4px;
  background: linear-gradient(90deg, #f0961b, #ffd28c);
}
.price_discount_txt {
  max-width: 900px;
  margin: 0 auto 35px;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
}
.price_discount_accent {
  font-weight: 700;
  color: var(--color-primary);
}
.price_discount_banner {
  display: flex;
  gap: 30px;
  max-width: 900px;
  margin: 0 auto;
}
.price_discount_banner li {
  width: calc((100% - 30px)/2);
}
.price_discount_banner a {
  display: block;
  transition: opacity .2s;
}
.price_discount_banner a:hover {
  opacity: .8;
}
.price_discount_banner img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 15px;
  box-shadow: rgba(0, 0, 0, 0.15) 3px 4px 8px;
}
/*============================================================ 
                          #sec10
============================================================ */
#sec10 {
  padding: 67px 0 67px;
  background: #fff6e6;
  line-height: 1.8;
}

#sec10 h2.tyle01 span:after {
  width: 156%;
}

#sec10 .school_inner {
  margin: 0 40px;
}
#sec10 .school_tbl .thead1{
  background: #f0981d ;
  color: #ffffff;
  font-size: 240%;
  letter-spacing: 0.7em; 
}
#sec10 th, td {
    border: 1.5px solid #f0981d;
    font-size: 240%;
}
#sec10 tr{
  background: #ffffff; ;
}
#sec10 tr.trow2{
  background: #fffbdd; ;
}

#sec10 a {
  text-decoration: none;
  color: var(--color-primary);
  transition: all .2s
}

#sec10 a:hover {
  opacity: 0.7;
  color: #fce632;
}

#sec10 .s_font {
  font-size: 80%;
}
/*============================================================ 
                          #CTA
============================================================ */
#cta {
  padding: 105px 0 95px;
  background: #FFF;
}
#cta .btn01 {
  max-width: 930px;
}
#cta .btn01 a {
  width: 930px;
  height: 148px;
  font-size: 55px;
}
/*==========================================================
                        footer
==========================================================*/
footer {
  background: #F0961B;
  background: linear-gradient(90deg, rgba(240, 150, 27, 1) 0%, rgba(255, 109, 44, 1) 100%);
  color: #ffffff;
  padding: 50px 0;
}
footer a {
  color: #ffffff;
}
.footer_link {
  display: flex;
  margin-bottom: 40px;
}
.f_menu01 {
  margin-right: 100px;
}
.f_menu01:first-child {
  margin-right: 35px;
}
.f_menu01:not(:first-child) {
  padding-top: 34px;
}
.f_menu01:last-child {
  margin-right: 0;
  margin-left: 20px;
}
.f_menu01 p {
  line-height: 1.4em;
  margin-bottom: 5px;
}
.f_menu01 p:last-child {
  margin-bottom: 0;
}
.f_menu01 a {
  font-weight: 700;
  text-decoration: none;
  padding-left: 28px;
  position: relative;
}
.f_menu01 a:before {
  position: absolute;
  left: 0;
  top: 5px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: url("../images/arrow_r_w.svg") 8px center no-repeat #fbb03b;
  background-size: 7px auto;
  content: '';
  display: block;
}
.f_menu01 .box_menu a:before {
  background-color: rgba(255, 255, 255, 0);
}
.f_txt01 {
  margin-bottom: 43px;
}
.f_banner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0 45px;
}
.f_banner li {
  margin-bottom: 35px;
}
.f_menu02 {
  margin-bottom: 58px;
}
.f_menu02 dd a {
  margin-right: 20px;
  display: inline-block;
  line-height: 1.8em;
  text-underline-offset: 2px;
  text-decoration-thickness: 2px;
}
.f_menu02 dd a:nth-child(6) {
  margin-right: 50px;
}
.f_menu02 dd a:last-child {
  margin-right: 0;
}
.f_menu03 {
  display: flex;
  justify-content: center;
  margin-bottom: 15px;
}
.f_menu03 li {
  margin-right: 60px;
  position: relative;
}
.f_menu03 li:after {
  position: absolute;
  top: 5px;
  right: -30px;
  content: '';
  display: block;
  width: 1px;
  height: 20px;
  background: #ffffff;
}
.f_menu03 li:last-child {
  margin-right: 0;
}
.f_menu03 li:last-child:after {
  display: none;
}
.f_menu03 a {
  text-decoration: none;
}
address {
  text-align: center;
  line-height: 1.4em;
  letter-spacing: .05em
}
address a {
  color: inherit;
}
.to-top {
  position: fixed;
  z-index: 5;
  right: 30px;
  bottom: 168px;
  transition: all .2s;
  transform-origin: 50% 100%;
  opacity: 0;
  visibility: hidden
}
.to-top > a {
  cursor: pointer;
  width: 100px;
  height: 100px;
  background: #f0961b;
  border-radius: 50%;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  font-weight: 700;
}
.to-top > a span {
  font-size: 18px;
  display: block;
  background: url("../images/ic_totop.svg") center top no-repeat;
  background-size: 35px auto;
  padding-top: 20px
}
.to-top.show {
  opacity: 1;
  visibility: visible
}
.fixed-banner {
  bottom: 1rem;
  width: 16rem;
  z-index: 50;
  right: 1rem;
  position: fixed;
}
.close-banner {
  transition-property: color,background-color,border-color,text-decoration-color,fill,stroke;
  transition-timing-function: cubic-bezier(.4,0,.2,1);
  transition-duration: .15s;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
  border-radius: 9999px;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  width: 1.5rem;
  height: 1.5rem;
  display: flex;
  z-index: 10;
  position: absolute;
}
.close-banner i {
  font-size: .75rem;
  line-height: 1rem;
}
.close-banner i::before {
  content: "\eb99";
}

/* ===========================================================
   2. responsive.css（サイト全体・レスポンシブ）
   =========================================================== */
.sp390, .sp360 {
  display: none
}
@media screen and (min-width:1921px) {
  header {
    margin: 0 auto;
    max-width: 1920px;
    left: 50%;
    transform: translateX(-50%);
  }
}
@media screen and (min-width:751px) {
  #lightboxOverlay, #lightbox {
    min-width: var(--content-width) !important;
    width: 100% !important
  }
  .sp {
    display: none !important
  }
  a:hover {
    text-decoration: none
  }
  .to-top a:hover {
    opacity: .7
  }
  .list-nav .has-nav:hover .sub-nav-wrap {
    opacity: 1;
    visibility: visible
  }
  .list-nav .nav-link:hover {
    color: #fce632;
  }
  .list-nav .sub-nav a:hover {}
  .list-nav .sub-nav a:hover:before {}
  .list-nav .has-nav:hover .en:after, .list-nav .nav-link:hover .en:after, .list-nav .nav-item.active .en:after {}
  .btn01 a:not(.no_hover):hover {
    opacity: 0.7;
  }
  .btn01 a:not(.no_hover):hover:after {}
  .f_menu01 a:not(.no_hover):hover, .f_menu03 a:hover {
    text-decoration: underline;
  }
  .f_menu02 a:hover {
    text-decoration: underline;
  }
  .f_menu01 .ic_accor {
    display: none;
  }
  .main_info .btn01 a:after {
    width: 20px;
    height: 24px;
    right: 40px;
    clip-path: polygon(0 0, 0% 100%, 100% 50%);
    background: #fff;
  }
}
@media screen and (min-width:751px) and (max-width:1600px) {
  /*==========================================================
                      header
  ==========================================================*/
  #head_top .inner {
    padding: 0 20px;
  }
  #head_top #logo {
    max-width: 30%;
  }
  .main_info .main_txt01 .num, .main_info h1, .main_info .main_txt02 {
    font-size: 40px;
  }
  .main_info h1 span {
    font-size: 85px;
  }
  .main_info .main_txt01 {
    font-size: 28px;
  }
  .main_info .btn01.big {
    width: 500px;
  }
  .main_info .btn01.big a {
    height: 90px;
    font-size: 32px;
  }
  #home #top_info {
    background-size: cover;
    background-position: center center;
  }
  /*==========================================================
                      #top_banner
  ==========================================================*/
  #top_banner {
    padding: 50px 0 60px;
  }
  .banner_slider_track {
    padding: 0 calc(50% - 260px);
  }
  .banner_slider_viewport {
    padding: 0 26px;
  }
  .banner_slide {
    flex-basis: 520px;
    width: 520px;
    margin-right: 12px;
  }
  .banner_arrow {
    width: 52px;
    height: 52px;
    font-size: 30px;
  }
  .banner_arrow.prev {
    left: 0;
  }
  .banner_arrow.next {
    right: 0;
  }
  /*==========================================================
                      top
  ==========================================================*/
  h2.tyle02 {
    font-size: 36px;
  }
  .com_txt01 {
    font-size: 20px;
  }
  .s01_dl dl dd {
    font-size: 24px;
  }
  .s01_dl {
    padding: 0 20px;
    justify-content: center;
    gap: 30px;
  }
  #cta .btn01 a, #cta .btn01, #sec02 .btn01.big {
    max-width: 640px;
  }
  #cta .btn01 a, #sec02 .btn01.big a {
    height: 120px;
    font-size: 42px;
  }
  .s02_cont {
    padding: 0 20px;
  }
  .s02_cont .item {
    width: 49%;
  }
  .s02_cont h3 {
    font-size: 35px;
  }
  .s05_cont_text h3, .s02_box dd {
    font-size: 30px;
  }
  .s04-text .s04_tit01, .under main .s04-text .s04_tit01, .s02_box dt {
    font-size: 28px;
  }
  .s04-text {
    margin-top: -5px;
  }
  .s05_cont, .s05_info, .s04_cont, .s03_cont {
    padding: 0 20px;
  }
  .s04-text p, .s03_cont .item .s03_voice p {
    font-size: 24px;
    line-height: 1.6;
  }
  #sec09 h2.tyle01, #sec05 h2.tyle01 {
    margin-bottom: 50px;
  }
  .s06_com_txt01, .under main .s06_com_txt01, .s05_cont_text > p {
    font-size: 22px;
  }
  .s06_btn_txt {
    font-size: 24px;
  }
  .s06_bnr {
    padding: 20px;
  }
  .s06_btn_circle {
    width: 70px;
    height: 70px;
    font-size: 26px;
  }
  .s06_voice {
    width: 150px;
    height: 150px;
  }
  .s06_voice p, .under main .s06_voice p {
    font-size: 17px;
    padding-bottom: 0;
  }
  .s06_i01 .s06_voice_wr {
    top: 0;
    left: -120px;
  }
  .s06_voice.voice02 {
    width: 120px;
    height: 120px;
  }
  .s06_i02 .s06_voice_wr {
    top: 0;
    right: -80px;
  }
  .s06_cont {
    padding-right: 40px;
  }
  .s06_bnr, .under main .s06_bnr {
    width: 360px; 
  }
  .s07_dl {
    padding: 0 20px;
  }
  .s07_dl dl dt .ttl {
    font-size: 26px;
  }
  .s07_dl dl dt .num {
    font-size: 36px;
  }
  .s07_dl dl dd > p {
    font-size: 18px;
  }
  .s09_dl, .s08_dl {
    width: calc(100% - 40px);
    margin-left: auto;
    margin-right: auto;
  }
  #cta {
    padding: 70px 0 70px;
  }
  /*==========================================================
                      footer
  ==========================================================*/
  footer .inner {
    width: 100%;
    padding: 0 20px;
  }
  footer .f_menu03 a, footer .f_menu02 dd a, footer .f_txt01 li, footer .f_menu01 p {
    font-size: 18px;
  }
  footer .f_banner {
    gap: 2%;
    margin-bottom: 10px;
  }
  footer .f_banner li {
    width: 31%;
    margin-bottom: 2%;
  }
  address {
    font-size: 16px;
  }
  .to-top > a {
    width: 80px;
    height: 80px;
  }
}
@media screen and (min-width:751px) and (max-width:1400px) {
  main {
    padding-top: 150px;
  }
  #head_top .inner {
    height: 90px;
  }
  .list-nav {
    height: 60px;
  }
  #home #top_info {
    height: calc(100vh - 170px);
  }
  .s01_box02 {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
  }
}
@media screen and (min-width:751px) and (max-width:1300px) {
    #home #top_info {
        background-position: right -8vw center;
    }

}
@media screen and (min-width:1px)and (max-width:750px) {
  p, blockquote, th, td, pre, address, li, dt, dd {
    font-size: 160%
  }
  #wrapper {
    min-width: unset !important
  }
  .pc {
    display: none !important
  }
  * {
    column-gap: 0px;
    row-gap: 0px;
  }
  .inner {
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }
  .break_sp {
    display: block;
  }
  .break_pc {
    display: none;
  }
  .lt_spa {
    letter-spacing: -0.05em;
  }
  .mb60 {
    margin-bottom: 30px !important;
  }
  .line:after {
    height: 10px;
    bottom: -3px;
  }
  #menu-toggle {
    display: block
  }
  main {
    padding-top: 80px;
  }
  #head_top {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    padding: 0;
    z-index: 10
  }
  #head_top #logo {
    width: 124px;
    flex-shrink: 0;
  }
  #head_top .inner {
    height: 80px;
    padding: 0 10px !important;
  }
  #gnavi {
    display: none;
  }
  .head_list {
    padding: 0 0 6px;
    margin-left: auto;
    margin-right: 10px;
  }
  body.open-nav .head_list {
    display: none;
  }
  .head_list li:not(.blue) {
    display: none;
  }
  .head_list .btn {
    width: 121px;
  }
  .head_list .btn a {
    height: 52px;
    font-size: 20px;
    padding: 0;
  }
  .head_list .btn a:before {
    display: none;
  }
  .btn01 {
    max-width: 326px;
  }
  .btn01 a {
    height: 62px;
    font-size: 24px;
    padding-right: 13px;
    letter-spacing: 0;
  }
  .btn01 a:before {
    width: 20px;
    height: 20px;
    right: 30px;
  }
  .btn01 a:after {
    right: 35px;
    width: 7px;
    height: 11px;
  }
  .btn01.big {
    max-width: 326px;
  }
  .btn01.big a {
    height: 85px;
    font-size: 24px;
    padding-right: 12px;
    box-shadow: 3px 4px 0px 0px rgba(35, 24, 21, 0.2);
    -webkit-box-shadow: 3px 4px 0px 0px rgba(35, 24, 21, 0.2);
    -moz-box-shadow: 3px 4px 0px 0px rgba(35, 24, 21, 0.2);
  }
  .btn01.big a:after {
    width: 12px;
    height: 14px;
    right: 24px;
  }
  .menu_sp {
    height: calc(100vh - 80px);
    position: fixed;
    top: 80px;
    left: 0;
    width: 100%;
    overflow: auto;
    padding: 10px 0px 20px;
    background: #fff;
  }
  .menu_sp .btn01.big {
    margin-bottom: 12px;
  }
  .menu_sp .btn_sp {
    margin-bottom: 30px;
  }
  .menu_sp .footer_link {
    margin-bottom: 15px;
  }
  .social_list {
    display: flex;
    justify-content: center;
    margin-bottom: 50px;
  }
  .social_list li {
    margin: 0 10px;
  }
  /*==========================================================
                        mv
  ==========================================================*/
  #home #top_info {
    background: url("../images/idx_main_sp.png") no-repeat top;
    background-size: contain;
    max-height: unset;
    height: auto;
    padding-bottom: 30px;
  }
  #top_info .main_info {
    position: inherit;
    display: inline-block;
    background: transparent;
    width: 100%;
    padding-top: 85vw;
    text-align: center;
  }
  .main_info .main_txt01 {
    font-size: 18px;
    margin-bottom: 10px;
  }
  .main_info .main_txt01 .num {
    font-size: 25px;
  }
  .main_info .main_txt01 .line::after {
    height: 12px;
  }
  .main_info .main_txt02 {
    font-size: 26px;
    display: inline-block;
  }
  .main_info .main_txt02::before, .main_info .main_txt02::after {
    width: 2px;
    height: 30px;
    top: 10px;
  }
  .main_info .main_txt02::before {
    left: -22px;
  }
  .main_info h1 {
    font-size: 26px;
    margin-bottom: 15px;
  }
  .main_info h1 span {
    font-size: 58px;
  }
  h2.tyle01 {
    font-size: 32px;
    margin-bottom: 20px;
    display: block ruby;
  }
  h2.tyle01 span {
    line-height: 1.4;
    padding-bottom: 12px;
  }
  h2.tyle01 span::after {
    background: url(../images/line_bottom.svg) repeat-x;
    height: 8px;
    background-size: cover;
    width: calc(100% + 25px) !important;
  }
  h2.tyle02 {
    font-size: 30px;
    font-weight: 900;
    letter-spacing: -0.01em;
  }
  /*==========================================================
                        #top_banner
  ==========================================================*/
  #top_banner {
    padding: 40px 0 45px;
  }
  .banner_slider_track {
    padding: 0;
  }
  .banner_slider_viewport {
    padding: 0;
  }
  .banner_slide {
    flex-basis: 100%;
    width: 100%;
    margin-right: 0;
    border-radius: 10px;
  }
  .banner_arrow {
    width: 44px;
    height: 44px;
    font-size: 26px;
  }
  .banner_arrow.prev {
    left: -20px;
  }
  .banner_arrow.next {
    right: -20px;
  }
  .banner_dots {
    gap: 16px;
    margin-top: 26px;
  }
  .banner_dots .dot {
    width: 10px;
    height: 10px;
    padding: 9px;
    background-clip: content-box;
  }
  /*==========================================================
                        #sec01
  ==========================================================*/
  #sec01 {
    padding: 6vw 0 6vw;
  }
  .s01_box01 h2.tyle01 span::after {
    width: calc(100% + 27px) !important;
  }
  #sec01 .com_txt01 {
    font-size: 20px;
    letter-spacing: -0.01em;
  }
  #sec01 .s01_box02 {
    margin: 35px auto 20px;
    border-radius: 5vw;
    padding: 20px;
  }
  #sec01 .s01_dl {
    flex-wrap: wrap;
    row-gap: 20px;
    padding: 0;
  }
  #sec01 .s01_dl dl {
    width: 50%;
    margin-bottom: 20px;
  }
  .s01_dl dl dt {
    height: 128px;
    text-align: center;
    margin-bottom: 5px;
    right: 0 !important;
  }
  .s01_dl dl dt img {
    width: auto;
    height: 100%;
  }
  .s01_dl dl dd {
    font-size: 15px;
  }
  .s01_box03 h2.tyle01 {
    margin-bottom: 25px;
  }
  /*==========================================================
                        #sec02
  ==========================================================*/
  #sec02 {
    padding: 6vw 0 6vw;
  }
  #sec02 h2.tyle01 {
    margin-bottom: 20px;
  }
  #sec02 h2.tyle01 span:after, #sec03 h2.tyle01 span:after, #sec06 h2.tyle01 span:after {
    width: calc(100% + 22px) !important;
  }
  .s02_cont {}
  .s02_cont h3 {
    font-size: 20px;
    min-height: 50px;
    background-size: 34px auto;
    padding: 5px 10px 5px 40px;
    background-position: 15px;
  }
  .s02_box {
    padding: 10px 15px;
  }
  .s02_box dl {
    padding: 0 5px;
    margin-bottom: 5px;
  }
  .s02_box dt {
    font-size: 16px;
    background-size: 18px auto;
    padding-left: 20px;
  }
  .s02_cont .dl02 h3 {
    background-size: 32px auto;
    background-position: 20px;
  }
  .s02_cont .dl03 h3 {
    background-size: 18px auto;
    background-position: 35px;
  }
  .s02_cont .dl04 h3 {
    background-size: 26px auto;
    background-position: 32px;
  }
  .s02_box dd {
    font-size: 18px;
    padding-left: 5px;
  }
  .s02_box dd a .dd_arrow {
    margin-left: 5px;
    width: 20px;
    height: 20px;
  }
  .s02_box dd a .dd_arrow:after {
    margin-left: 1px;
    border-width: 4px 0 4px 6px;
  }
  .s02_cont .item .btn01 {
    max-width: 170px;
  }
  .s02_cont .item .btn01 a {
    height: 38px;
    font-size: 14px !important;
    padding-right: 0 !important;
    font-weight: 700;
    padding: 0;
  }
  .s02_cont .item .btn01 a::before {
    width: 14px;
    height: 14px;
    right: 15px;
  }
  .s02_cont .item .btn01 a::after {
    width: 5px;
    height: 8px;
    right: 19px;
  }
  .s02_cont .item {
    padding-bottom: 20px;
    margin-bottom: 15px;
    border-radius: 20px;
  }
  /*==========================================================
                        #sec03 
  ========================================================== */
  #sec03 {
    padding: 6vw 0 12vw 0;
  }
  .s03_cont {
    margin-bottom: 20px;
  }
  .s03_cont .item {
    flex-wrap: wrap;
    justify-content: center;
  }
  .s03_cont .item .s03_img {
    margin-right: 0;
    margin-bottom: 20px;
  }
  .s03_cont .item .s03_voice, .s03_cont .item:last-child .s03_voice {
    margin-left: 0;
    padding: 20px;
    border-radius: 16px;
    text-align: center;
    top: 0;
  }
  .s03_cont .s03_voice h3, .s03_cont .item:last-child .s03_voice h3 {
    font-size: 22px;
    font-weight: 900;
    margin-top: 0;
  }
  .s03_cont .item .s03_voice p {
    font-size: 20px;
  }
  .s03_cont .item .s03_voice::before {
    display: none;
  }
  #sec03 .btn01 {
    max-width: 326px;
  }
  #sec03 .btn01 a {
    font-size: 22px;
    padding-right: 26px;
  }
  /*==========================================================
                        #sec04 
  ========================================================== */
  #sec04 {
    padding: 50px 0;
  }
  #sec04 > .inner {
    padding-left: 15px;
    padding-right: 15px;
  }
  .s04_cont {
    max-width: 500px;
    margin: 0 auto;
  }
  .s04_cont .s04-it {
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
  }
  .s04-it .s04_img {
    width: 100%;
    padding-bottom: 0;
    margin: 0 auto 10px;
  }
  .s04-number {
    font-size: 38px;
    width: 64px;
    height: 64px;
    padding-bottom: 0;
    line-height: 0;
    margin-right: 15px;
    position: relative;
    top: 3px;
  }
  .s04-text {
    margin-top: 0;
  }
  .s04-text p {
    padding-bottom: 30px;
  }
  .s04-text .s04_tit01, .under main .s04-text .s04_tit01 {
    font-size: 22px;
    font-weight: 900;
    padding-bottom: 0;
  }
  .s04-it .s04_content::before {
    display: none;
  }
  .s04_cont {
    position: relative;
    overflow: hidden;
  }
  .s04_cont:before {
    left: calc(64px/2);
    z-index: -1;
    position: absolute;
    content: "";
    top: 400px;
    width: 2px;
    height: 100%;
    background: #b3b3b3;
  }
  .s04-text p {
    font-size: 18px;
    padding-bottom: 20px;
  }
  .s04-it .s04_content {
    width: 100%;
  }
  /*==========================================================
                        #sec05 
  ========================================================== */
  #sec05 {
    padding: 6vw 0 12vw 0;
  }
  #sec05 h2 {
    margin-bottom: 50px;
  }
  .s05_circle {
    width: 130px;
    height: 130px;
    right: unset;
    top: -40px;
  }
  .s05_circle > p {
    font-size: 18px;
    text-align: center;
    line-height: 1.4;
  }
  .s05_com_txt01 {
    font-size: 20px;
    padding: 20px 0 40px;
    margin-bottom: 0;
    letter-spacing: -0.02em;
  }
  .s05_cont {
    justify-content: center;
    flex-wrap: wrap;
  }
  .s05_cont .s05_img {
    max-width: 300px;
    margin: 0 auto;
  }
  .s05_cont_text {
    padding: 30px 20px 20px 20px;
    margin-left: 0;
    margin-top: -20px;
    text-align: center;
  }
  .s05_cont_text h3 {
    font-weight: 900;
    font-size: 22px;
  }
  .s05_cont_text p {
    font-size: 20px;
  }
  .s05_com_txt01 .line {
    font-weight: 900;
  }
  .s05_info_img {
    max-width: 668px;
    margin: 0 auto;
  }
  /*==========================================================
                        #sec_member_site
  ========================================================== */
  #sec_member_site {
    padding: 8vw 0 10vw;
  }
  #sec_member_site .sms_lead {
    font-size: 18px;
    line-height: 1.7em;
    margin-bottom: 30px;
  }
  .sms_cont {
    gap: 24px;
  }
  .sms_row, .sms_row01, .sms_row03 {
    flex-direction: column;
    border-radius: 16px;
  }
  .sms_photo {
    flex-basis: auto;
    max-width: 100%;
    width: 100%;
    height: 55vw;
  }
  .sms_panel {
    padding: 30px 24px;
  }
  .sms_head {
    gap: 14px;
    padding-bottom: 14px;
    margin-bottom: 16px;
  }
  .sms_icon {
    width: 60px;
    height: 60px;
    font-size: 18px;
  }
  .sms_head h3 {
    font-size: 22px;
  }
  .sms_panel > p {
    font-size: 17px;
    line-height: 1.75em;
  }
  #sec_member_site .btn01 {
    margin-top: 30px;
  }
  /*==========================================================
                        #sec06 
  ========================================================== */
  #sec06 {
    padding: 6vw 0 12vw 0;
  }
  .s06_com_txt01, .under main .s06_com_txt01 {
    font-size: 20px;
    margin-bottom: 20px;
    letter-spacing: -0.02em;
  }
  .s06_cont {
    margin-top: 0;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: center;
    padding-left: 0;
  }
  .s06_img.s06_i01 {
    order: 1;
    max-width: 162px;
    text-align: center;
  }
  .s06_img.s06_i02 {
    order: 2;
  }
  .s06_img.s06_i01 img, .s06_img.s06_i02 img {
    height: 165px;
    width: auto;
    margin: 0 auto;
  }
  .s06_img.s06_i02 img {
    position: relative;
    left: -1vw;
  }
  .s06_bnr, .under main .s06_bnr {
    order: 3;
    margin: 15px auto 0;
    max-width: 334px;
  }
  .s06_voice {
    width: 150px;
    height: 150px;
    margin: 0 auto 20px;
  }
  .s06_voice_wr {
    position: unset;
  }
  .s06_voice p, .under main .s06_voice p {
    font-size: 18px;
    padding-bottom: 0;
  }
  .s06_voice.voice02 {
    width: 100px;
    height: 100px;
    left: 20px;
  }
  .s06_voice.voice01::before {
    right: 35px;
    top: 87%;
    transform: rotate(75deg);
  }
  .s06_voice.voice02::before {
    left: 40%;
    bottom: -15%;
    transform: rotate(265deg);
  }
  .s06_bnr, .under main .s06_bnr {
    padding: 20px;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    margin-top: 15px;
  }
  .s06_btn_txt {
    font-size: 22px;
  }
  .s06_btn_circle {
    width: 60px;
    height: 60px;
    font-size: 22px;
    margin-right: 10px;
  }
  /*==========================================================
                        #sec07 
  ========================================================== */
  #sec07 {
    padding: 8vw 0 0vw 0;
  }
  .s07_dl {
    flex-wrap: wrap;
  }
  .s07_dl dl {
    width: 100%;
    flex: auto;
    padding: 0;
    margin-bottom: 30px;
  }
  .s07_dl dl::before {
    bottom: 0;
    top: unset;
    width: 100%;
    height: 1px;
  }
  .s07_dl dl dd::after {
    right: 0;
    top: unset;
    bottom: -10px;
    transform: rotate(90deg);
    left: 0;
    margin: 0 auto;
  }
  .s07_dl dl dt, .s07_dl dl dd {
    width: 100%;
  }
  .s07_dl dl dt {
    margin-bottom: 15px;
  }
  .s07_dl dl dd > p {
    padding: 0 10px;
    padding-bottom: 40px;
    font-size: 18px;
  }
  .s07_dl dl dd > picture {
    margin-bottom: 20px;
  }
  .s07_dl dl:last-child {
    padding-right: 0;
    margin-bottom: 0;
  }
  #sec07 .btn01.big {
    max-width: 326px;
  }
  #sec07 .btn01.big a {
    height: 85px;
    font-size: 24px;
  }
  .s07_dl dl dt .num {
    line-height: 0;
  }
  .s07_dl dl dt .ttl {
    padding-left: 5px;
  }
  /*==========================================================
                        #sec08 
  ========================================================== */
  #sec08 {
    padding: 50px 0;
  }
  #sec08 h2.tyle01 {
    margin-bottom: 30px;
  }
  .s08_dl {
    padding: 20px;
    margin-top: 30px;
    border-radius: 5vw;
  }
  .s08_dl dl {
    flex-wrap: wrap;
    margin-bottom: 25px;
  }
  .s08_dl dl dt {
    width: 100%;
  }
  .s08_dl dd {
    text-align: center;
  }
  .s08_dl dl dd p.date {
    font-size: 20px;
    margin-bottom: 0;
    margin-top: 10px;
  }
  .s08_dl dl dd p.s08_txt {
    font-size: 18px;
    text-align: left;
  }
  /*==========================================================
                        #sec09 
  ========================================================== */
  #sec09 {
    padding: 8vw 0 12vw 0;
  }
  #sec09 .inner {
    padding: 0;
  }
  .s09_dl {
    margin-top: 30px;
  }
  .s09_dl dl dt {
    padding: 15px 45px 15px 45px;
    background: url("../images/s09_ic01.svg") no-repeat left 10px top 18px #eaeaea;
    background-size: 26px auto;
  }
  .s09_dl dl dt > p {
    padding-left: 0;
    font-size: 18px;
  }
  .s09_dl dl dt .ic_accor {
    width: 30px;
    height: 30px;
    right: 10px;
  }
  .s09_dl dl dt .ic_accor::after {
    width: 18px;
    height: 18px;
  }
  .s09_dl dl dd .s09_content {
    padding: 15px 20px 15px 45px;
    background: url("../images/s09_ic02.svg")no-repeat left 10px top 18px #fff;
    background-size: 26px auto;
  }
  .s09_dl dl dd .s09_content p {
    font-size: 18px;
  }
  /*==========================================================
                        #sec_price 
  ========================================================== */
  .under_sec_price {
    padding: 40px 0 50px;
  }
  .under_sec_price h2.tyle01 span:after {
    width: calc(100% + 22px) !important;
  }
  .price_table {
    margin: 0 auto 40px;
  }
  .price_table_row {
    flex-wrap: wrap;
  }
  .price_table_row dt {
    width: 100%;
    padding: 15px 20px;
    font-size: 18px;
  }
  .price_table_row dd {
    width: 100%;
    padding: 18px 20px;
    font-size: 16px;
    gap: 6px;
  }
  .price_table .price {
    font-size: 20px;
  }
  .price_lead {
    font-size: 16px;
  }
  .price_list {
    gap: 6px;
  }
  .price_list li {
    font-size: 16px;
  }
  .price_note_inline {
    display: block;
    margin-left: 20px;
    font-size: 12px;
  }
  .price_table .price_note {
    font-size: 13px;
  }
  .price_discount {
    margin-bottom: 30px;
  }
  .price_discount_ttl {
    margin-bottom: 15px;
    padding-bottom: 12px;
    font-size: 22px;
  }
  .price_discount_txt {
    margin-bottom: 20px;
    font-size: 16px;
    text-align: left;
  }
  .price_discount_banner {
    flex-direction: column;
    gap: 15px;
  }
  .price_discount_banner li {
    width: 100%;
  }
  /*==========================================================
                        #sec10 
  ========================================================== */
  #sec10 {
    padding: 30px 0 20px;
  }
  #sec10 h2.tyle01 span:after {
    width: calc(100% + 20px) !important;
  }

  #sec10 .school_inner {
    margin: 0 0;
  }

  #sec10 table th{
    padding: 7px;
    width: 25%;
    font-size: 190%;
  }

  #sec10 table td {
  font-size: 200%;
}
  /*============================================================ 
                          #CTA
  ============================================================ */
  #cta {
    padding: 12vw 0 12vw 0;
    background: #FFF;
  }
  #cta .btn01 {
    max-width: 326px;
  }
  #cta .btn01 a {
    width: 100%;
    max-width: 100%;
    height: 85px;
    font-size: 24px;
  }
  /*==========================================================
                        footer
  ==========================================================*/
  footer {
    padding: 50px 0 120px 0;
  }
  .footer_link {
    flex-direction: column;
  }
  footer .footer_link {
    background: #ffffff;
    width: calc(100% + 40px);
    margin-left: -20px;
    margin-right: -20px;
  }
  .f_menu01 {
    margin: 0 !important;
  }
  .f_menu01:not(:first-child) {
    padding-top: 0px;
  }
  .f_menu01 p {
    padding-left: 10px;
    margin-bottom: 0;
    border-bottom: #b3b3b3 1px solid;
  }
  .f_menu01 a {
    color: #222;
    display: block;
    font-weight: 500;
    line-height: 1.6em;
    padding: 15px 0 15px 28px;
    font-size: 18px;
  }
  .f_menu01 a:before {
    top: 50%;
    transform: translateY(-50%);
  }
  .f_menu01 .tit_menu {
    position: relative;
  }
  .f_menu01 .ic_accor {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 10px;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    background: #eaeaea;
    display: block;
  }
  .f_menu01 .ic_accor:after {
    position: inherit;
    background: url("../images/ic_accorr.svg") no-repeat;
    background-size: 100% auto;
    top: 6px;
    left: 6px;
    display: block;
    width: 15px;
    height: 15px;
    content: '';
    transition: 0.3s all;
  }
  .f_menu01 .ic_accor.open:after {
    transform: rotate(45deg);
  }
  .f_menu01 .box_menu {
    display: none;
  }
  .f_menu01 .box_menu p {
    padding-left: 35px;
  }
  .f_menu01 .box_menu p a {
    padding-left: 15px;
  }
  .f_menu01 .box_menu p a:before {
    background: url(../images/arrow_r_b.svg) center center no-repeat;
    background-size: 100% auto;
    width: 8px;
    height: 16px;
  }
  .to-top {
    bottom: 160px;
    right: 3%
  }
  .to-top > a {
    width: 55px;
    height: 55px
  }
  .to-top > a span {
    font-size: 13px;
    background-size: 20px auto;
    padding-top: 14px;
  }
  .f_txt01 {
    margin-bottom: 20px;
  }
  footer .f_txt01 li {
    line-height: 1.65;
  }
  footer .f_banner {
    gap: 10px;
    margin-bottom: 30px;
  }
  footer .f_banner li {
    width: 48%;
    margin-bottom: 0%;
  }
  footer .btn_sp {
    margin-bottom: 20px;
  }
  footer .btn_sp .btn01 {
    margin-bottom: 15px;
  }
  footer .f_menu02 {
    margin-bottom: 30px;
  }
  footer .f_menu03 {
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-bottom: 10px;
  }
  footer .f_menu03 li {
    margin-right: 30px;
    margin-bottom: 10px;
  }
  .f_menu03 li::after {
    right: -15px;
  }
  footer address {
    font-size: 140% !important;
  }
  footer .social_list {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #fff;
  }
  .fixed_bottom {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    transition: all .2s;
    opacity: 0;
    visibility: hidden;
  }
  .fixed_bottom.show {
    opacity: 1;
    visibility: visible;
  }
  .fixed_bottom .btn_fixed_footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    width: 100%;
    height: 90px;
    overflow: hidden;
  }
  .fixed_bottom .btn_fixed_footer li {
    width: 50%;
    height: 100%;
    height: 90px;
  }
  .fixed_bottom .btn_fixed_footer li a {
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(230, 171, 0, 1) 0%, rgba(242, 150, 0, 1) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 22px;
    font-weight: 700;
    text-decoration: none;
  }
  .fixed_bottom .btn_fixed_footer li.btn_fixed02 a {
    background: linear-gradient(180deg, rgba(0, 138, 207, 1) 0%, rgba(0, 113, 188, 1) 100%);
  }
}
@media screen and (min-width:640px) and (max-width:750px) {
  #home #top_info {}
  .s01_dl dl dt {
    height: 30vw;
  }
  .s02_cont .item {
    width: 48%;
  }
  .s02_cont h3 {
    font-size: 16px;
  }
  .s02_box dt {
    font-size: 14px;
  }
  .s02_box dd {
    font-size: 15px;
  }
  .s04-it .s04_img {
    text-align: center;
  }
  .s08_dl, .s07_dl, .s04_cont {
    max-width: 500px;
    margin: 0 auto;
  }
  .s06_cont {
    max-width: 490px;
    margin: 0 auto;
  }
}
@media screen and (max-width:520px) {
  .s04_cont {}
  .s04_cont:before {
    top: 68vw;
    left: calc(60px / 2);
  }
}
@media screen and (max-width:390px) {
  .sp390 {
    display: block
  }
}
@media screen and (max-width:360px) {
  .inner {
    padding-left: 3%;
    padding-right: 3%;
  }
  .banner_arrow.prev {
    left: -3%;
  }
  .banner_arrow.next {
    right: -3%;
  }
  .sp360 {
    display: block
  }
  .head_list .btn {
    width: 94px;
  }
  .head_list .btn a {
    height: 44px;
    font-size: 18px;
  }
  .f_menu01 a {
    font-size: 14px;
  }
  .s05_com_txt01, .s06_com_txt01, .under main .s06_com_txt01 {
    font-size: 16px;
  }
  .btn01 a {
    font-size: 20px !important;
    padding-right: 20px !important;
  }
  .btn01 a:before {
    right: 16px;
  }
  .btn01 a:after {
    right: 21px;
  }
  .btn01.big, .btn01 {
    max-width: 300px;
  }
  .btn01.big a {
    height: 70px;
    font-size: 22px;
  }
  .main_info .main_txt01 {
    font-size: 15px;
  }
  .main_info .main_txt01 .num {
    font-size: 20px;
  }
  .main_info h1 {
    font-size: 22px;
  }
  .main_info h1 span {
    font-size: 40px;
  }
  #sec01 .com_txt01 {
    font-size: 16px;
  }
  h2.tyle02 {
    font-size: 24px;
  }
  h2.tyle01 {
    font-size: 26px;
  }
  #sec01 .s01_dl dl {
    width: 100%;
  }
  .s01_dl dl dd {
    font-size: 16px;
  }
  .s02_cont h3 {
    font-size: 16px;
  }
  .s02_box dt {
    margin-bottom: 5px;
  }
  .s02_box dd {
    font-size: 14px;
  }
  .s03_cont .item .s03_voice p {
    font-size: 16px;
  }
  .s04-text .s04_tit01, .under main .s04-text .s04_tit01 {
    font-size: 21px;
    margin-bottom: 5px;
  }
  .s05_circle {
    width: 100px;
    height: 100px;
  }
  .s05_circle > p {
    font-size: 15px;
  }
  .s05_cont_text h3 {
    font-size: 20px;
  }
  .s06_img.s06_i01 img, .s06_img.s06_i02 img {
    height: 130px;
  }
  .s06_btn_txt {
    font-size: 18px;
  }
  .s06_voice {
    width: 130px;
    height: 130px;
  }
  .s06_voice p, .under main .s06_voice p {
    font-size: 14px;
  }
  .s06_bnr {
    padding: 14px;
  }
  #sec07 .btn01.big a {
    font-size: 22px;
  }
  .s07_dl dl dd > p {
    font-size: 16px;
  }
  .s07_dl dl dt .num {
    font-size: 38px;
  }
  .s07_dl dl dt .ttl {
    font-size: 28px;
  }
  #sec07 .btn01.big a {
    font-size: 20px;
    padding-bottom: 0;
  }
  .f_menu02 dd {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .f_menu02 dd a {
    margin: 0;
  }
  #cta .btn01 a {
    width: 100%;
    max-width: 100%;
    font-size: 22px;
    padding-right: 26px;
  }
  .s01_box03 h2.tyle01 span:after, #sec04 h2.tyle01 span:after, #sec05 h2.tyle01 span:after, #sec07 h2.tyle01 span:after, #sec08 h2.tyle01 span:after, #sec09 h2.tyle01 span:after {
    width: calc(100% + 22px) !important;
  }
  #sec03 h2.tyle01 span:after, #sec06 h2.tyle01 span:after {
    width: calc(100% + 18px) !important;
  }
  footer .footer_link {
    width: 107%;
    margin-left: -3.5%;
    margin-right: -3.5%;
  }
}
/* ===========================================================
   3. under.css（下層ページ・PC）
   =========================================================== */
/*==========================================================
                        C U S T O M
==========================================================*/
.under main .image_l {
  float: left;
  margin: 0 50px 0 0;
}
.under main .image_r {
  float: right;
  margin: 0 0 0 50px;
}
/* MB */
.under main .mb0 {
  margin-bottom: 0;
}
.under main .mb10 {
  margin-bottom: 10px;
}
.under main .mb20 {
  margin-bottom: 20px;
}
.under main .mb30 {
  margin-bottom: 30px;
}
.under main .mb40 {
  margin-bottom: 40px;
}
.under main .mb50 {
  margin-bottom: 50px;
}
.under main .mb60 {
  margin-bottom: 60px;
}
/* MT */
.under main .mt10 {
  margin-top: 10px;
}
.under main .mt20 {
  margin-top: 20px;
}
.under main .mt30 {
  margin-top: 30px;
}
.under main .mt40 {
  margin-top: 40px;
}
.under main .mt50 {
  margin-top: 50px;
}
.under main .mt60 {
  margin-top: 60px;
}
.under main .w24 {
  width: 24%;
}
.under main .w28 {
  width: 28%;
}
/*==========================================================
                        H E A D I N G
==========================================================*/
.sp, .sp640, .sp440,.txt_scroll {
  display: none;
}
.cl-fce632 {
  color: #fce632;
}
.under main #top_info {
  height: 295px;
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  margin-top: 0px;
  background: url('../images/top_info_bg.jpg') no-repeat;
  background-size: cover;
}
.under main #top_info .inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
.under main #top_info h1 {
  color: #fff;
  margin-bottom: 40px;
  font-size: 40px;
  font-weight: bold;
  font-family: var(--f-nts);
}
.under main #top_info .top_info_btn a {
  padding: 10px 40px;
  width: 565px;
  height: 90px;
  font-size: 34px;
  font-weight: bold;
  color: #fff;
  background: url(../images/top_info_btn-arr.png) no-repeat center right 40px, linear-gradient(0deg, rgba(0, 113, 188, 1) 0%, rgba(0, 137, 206, 1) 100%);
  border-radius: 60px;
  box-shadow: rgba(0, 0, 0, 0.15) 3px 4px 1px;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.under main .u_tit2 {
  width: max-content;
  margin: 0 auto 35px;
  padding-bottom: 12px;
  position: relative;
  text-align: center;
  font-size: 40px;
  font-weight: bold;
  font-family: var(--f-nts);
}
.under main .u_tit2:after {
  position: absolute;
  content: "";
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 12px;
  width: 115%;
  background: url(../images/line_bottom.svg)no-repeat bottom center;
  background-size: auto 100%;
}
.under main p {
  line-height: 1.4;
  font-weight: 500;
  margin-bottom: 35px;
}
.under main p:last-child {
  margin-bottom: 0;
}
.under .under_sec01 p,.under .under_sec02 p {
    font-size: 28px;
}
/*==========================================================
                        under class.html
==========================================================*/
.under main .under_sec01 {
  padding: 31px 0 50px;
}
.under main .under_sec01 .u_tit2 {
  margin-bottom: 45px;
}
.under main .under_sec01 .flex_3col li {
  width: 310px;
  margin-right: 70px;
}
.under main .under_sec01 .flex_3col li:last-child {
  margin-right: 0;
}
.under main .under_sec01 .flex_3col li .img {
  margin-bottom: 15px;
}
.under main .under_sec01 .flex_3col li .img img {
  width: auto;
  max-height: 216px;
}
.under_sec01 h2.tyle01 span:after,.under_sec02 h2.tyle01 span:after {
   width: 117%; 
}
/*---under_txt01---*/
.under main .under_txt01 {
  padding: 50px 15px 48px 15px;
  background: #F0961B;
  background: linear-gradient(90deg, rgba(240, 150, 27, 1) 0%, rgba(255, 109, 44, 1) 100%);
}
.under main .under_txt01 p {
  color: #fff;
  font-size: 32px;
  font-weight: bold;
  line-height: 1.6;
}
/*under_sec02*/
.under main .under_sec02 {
  padding: 78px 0 83px;
}
.under main .under_sec02 .flex_2col {
  margin-top: 47px;
}
.under main .under_sec02 .u_tit2 {
  margin-bottom: 50px;
}
.under main .under_sec02 .under_sec02_frame {
  width: calc(100%/2);
  max-width: 680px;
  background: #fff6e6;
  border-radius: 26px;
  padding-bottom: 34px;
  margin-bottom: 30px;
}
.under main .under_sec02 li:nth-child(2n) {
  background: #e5f3fa;
}
.under main .under_sec02_frame .sec02_frame_ttl {
  padding: 15px 10px;
  text-align: center;
  font-size: 34px;
  font-weight: bold;
  color: #fff;
  background: #f0961b;
  border-radius: 26px 26px 0 0;
  margin-bottom: 0;
  line-height: 1.3;
}
.under main li:nth-child(2n) .sec02_frame_ttl {
  background: #2c9ed7;
}
.under main .under_sec02_frame .sec02_content {
  padding: 30px 30px 15px;
  margin-bottom: 10px;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
}
.under main .under_sec02_frame .img {
  width: 230px;
  margin-bottom: 0;
}
.under main .under_sec02_frame .txt {
  width: calc(100% - 230px);
  font-size: 20px;
  line-height: 1.6;
  padding: 0 0 0 30px;
}
.under main .under_sec02_frame .sec02_btn a {
  position: relative;
  z-index: 1;
  width: 338px;
  height: 58px;
  margin: 0 auto;
  font-size: 28px;
  font-weight: bold;
  letter-spacing: -0.01em;
  color: #f0961b;
  background: url(../images/under_btn-arr01.png) no-repeat center right 35px #fff;
  padding: 10px 35px 10px 15px;
  background-color: #fff;
  border-radius: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
.under main .under_sec02_frame .sec02_btn a:hover {
  opacity: .7;
}
.under main .under_sec02_frame .sec02_btn a:before {
  position: absolute;
  z-index: -2;
  content: "";
  width: 345px;
  height: 65px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #F29600;
  background: linear-gradient(358deg, rgba(242, 150, 0, 1) 0%, rgba(250, 191, 62, 1) 64%, rgba(230, 171, 0, 1) 100%);
  border-radius: 60px;
  box-shadow: rgba(0, 0, 0, 0.15) 3px 4px 1px;
}
.under main .under_sec02_frame .sec02_btn a:after {
  position: absolute;
  z-index: -1;
  content: "";
  width: 338px;
  height: 58px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: url(../images/under_btn-arr01.png) no-repeat center right 30px #fff;
  border-radius: 60px;
}
.under main li:nth-child(2n) .sec02_btn a {
  color: #2c9ed7;
  padding: 10px 35px 10px 15px;
  border: 5px solid #2c9ed7;
}
.under main li:nth-child(2n) .sec02_btn a:before {
  background: #2C9ED7;
  background: linear-gradient(182deg, rgba(44, 158, 215, 1) 0%, rgba(50, 122, 157, 1) 100%);
}
.under main li:nth-child(2n) .sec02_btn a:after {
  background: url(../images/under_btn-arr02.png) no-repeat center right 35px #fff;
}
/*under_sec03*/
.under main .under_sec03 {
  padding: 58px 0 105px;
  background: #fff6e6;
}
.under main .under_sec03_frame {
  padding: 70px 140px;
  background: #fff;
  border-radius: 20px;
  margin-top: 75px;
}
.under main .list-check li {
  position: relative;
  padding-left: 70px;
  margin-bottom: 35px;
  font-size: 34px;
  line-height: 1.4;
  font-weight: bold;
  letter-spacing: -0.005em;
}
.under main .list-check li:last-child {
  margin-bottom: 0;
}
.under main .list-check li:before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 55px;
  height: 55px;
  background: url(../images/under_list-check-ic.svg)no-repeat center center / contain;
}
/*under_sec04*/
.under main .under_sec04 {
  padding: 56px 0 140px;
}
.under main .under_sec04 .tb_scroll {
  margin-top: 60px;
}
.under main .tb_sec04 tr:first-child th {
  padding: 17px 8px;
  border-width: 2px;
}
.under main .tb_sec04 tr:first-child img {
  margin: 0 auto 0;
}
.under main .tb_sec04 tr:first-child th:nth-child(1) {
  border: none;
}
.under main .tb_sec04 tr:first-child th:nth-child(2) {
  background-color: #f0961b;
  border-width: 2px;
}
.under main .tb_sec04 tr:first-child th:nth-child(3), .under main .tb_sec04 tr:first-child th:nth-child(4) {
  font-size: 28px;
  font-weight: bold;
  color: #fff;
  background-color: #b3b3b3;
}
.under main .tb_sec04 tr td {
  padding: 15px 10px;
  color: #222222;
  font-size: 22px;
  line-height: 1.4;
  text-align: center;
}
.under main .tb_sec04 tr td:not(:first-child) {
  vertical-align: top;
}
.under main .tb_sec04 tr td:first-child {
  background-color: #fffbe0;
  font-weight: bold;
  border-width: 2px;
}
.under main .tb_sec04 tr td:nth-child(2) {
  background-color: #fff6e6;
  font-weight: bold;
}
.under main .tb_sec04 tr td:nth-child(3), .under main .tb_sec04 tr td:nth-child(4) {
  background-color: #eaeaea;
  font-weight: 500;
}
.under main table td {
  border-bottom-width: 2px;
  border-right-width: 2px;
}
.under main table th, .under main table td {
  border-color: #b3b3b3;
}
.under main table img {
  display: block;
  margin: 0 auto 15px;
}
.under main table td.pd0 {
  padding: 0;
  border: none;
}
.under main table th {
  border-right-width: 2px;
  border-bottom-width: 2px;
  border-bottom-color: #b3b3b3;
}
.under main table.tb_block th {
  border-bottom-color: #b3b3b3;
}
/*==========================================================
                        MAIL FORM
==========================================================*/
#contact main h1 {
  width: max-content;
  margin: 0 auto 20px;
  padding-bottom: 25px;
  position: relative;
  text-align: center;
  font-size: 40px;
  font-weight: bold;
  font-family: var(--f-nts);
}
#contact main h1:after {
  position: absolute;
  content: "";
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 30px;
  width: 115%;
  background: url(../images/under_ttl_ic01.png)no-repeat bottom center;
}
#contact .sec_mailform {
  padding-bottom: 100px;
}
#contact * {
  box-sizing: border-box
}
#contact #content {
  background: #fff6e6
}
#contact .mailform {
  margin-bottom: 50px;
}
#contact .mailform tr:first-child th, #contact .mailform tr:first-child td {
  border-top-width: 1px;
}
#contact .mailform th, #contact .mailform td {
  border-right-width: 0;
  border-left-width: 0;
  border-top-width: 0;
  border-bottom-width: 1px;
  border-bottom-color: #b3b3b3;
  padding: 20px 10px;
  font-size: 26px;
}
#contact .mailform td.conf{
  color: darkorange;
 }
#contact .mailform th {
  width: 30%;
  min-width: 440px;
  position: relative;
  font-weight: 500;
}
#contact .mailform th.align-top {
  vertical-align: top;
  padding-top: 30px;
}
#contact .mailform th span {
  text-align: left;
  margin-left: 100px;
  display: block;
  padding-bottom: 10px;
  line-height: 1.4;
}
#contact .mailform th span.required {
  width: 70px;
  height: 45px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #fff;
  background: linear-gradient(to right, #f0961b, #ff6d2c);
  border-radius: 8px;
  position: absolute;
  right: 10px;
  top: 25px;
  line-height: 1.0;
  padding-bottom: 4px;
}
#contact .mailform ul li {
  margin-bottom: 10px;
}
#contact .mailform input[type="radio"], #contact .mailform input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  width: 30px;
  height: 30px;
  border: 1px solid #b3b3b3;
  border-radius: 0%;
  cursor: pointer;
  display: inline-block;
  position: relative;
  background: #fff;
  margin-right: 15px;
  top: 5px;
}
#contact .mailform input[type="radio"] {
  border-radius: 50%;
}
#contact .mailform .list_check label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
#contact .mailform .list_check span {
  width: calc(100% - 45px);
  position: relative;
  top: 4px;
}
input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  left: 0;
  right: 0;
  width: 20px;
  height: 20px;
  background: url(../images/checked.svg) no-repeat;
  background-size: contain;
  margin: 0 auto;
}
#contact .mailform input[type="checkbox"]:checked, #contact .mailform input[type="radio"]:checked {
  background-color: #ff702a;
  border-color: #ff702a;
}
#contact .mailform input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  left: 0;
  right: 0;
  width: 20px;
  height: 20px;
  background: url(../images/radio.svg) no-repeat;
  background-size: contain;
  margin: 0 auto;
}
#contact .mailform input[type="text"], #contact .mailform input[type="email"], #contact .mailform input[type="tel"], #contact .mailform textarea {
  width: 100%;
  max-width: 850px;
  padding: 4px 8px;
}
#contact .mailform select {
  padding: 5px 8px;
}
#contact .mailform select, #contact .mailform label, #contact .mailform textarea, #contact .mailform input[type="text"], #contact .mailform input[type="email"], #contact .mailform input[type="tel"], #contact .mailform select, #contact .mailform p {
  font-size: 26px;
  line-height: 1.8;
  font-weight: 500
}
#contact .mailform .f_sm {
  font-size: 80% !important;
  font-weight: 500;
}
#contact .mailform .red {
  font-weight: 500;
}
.ml_red01 {
  margin-left: 20px;
}
#contact .flex_select {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
  max-width: 850px;
}
#contact .flex_select span {
  margin: 0 20px 0 0;
}
#contact .flex_select .item_select {
  display: flex;
  align-items: center;
  margin: 0 25px 0 0;
}
#contact .flex_select .item_select select {
  margin-right: 10px;
}
#contact .mailform select.custom-select {
  appearance: none; /* Remove default styling */
  -webkit-appearance: none;
  -moz-appearance: none;
  background: url('../images/arrow_down.png') no-repeat right 20px center / 32px;
  padding-right: 60px; /* Space for arrow */
  background-color: white;
  border-radius: 0px;
  width: 140px;
  box-sizing: border-box
}
#contact .mailform select.custom-select2 {
  appearance: none; /* Remove default styling */
  -webkit-appearance: none;
  -moz-appearance: none;
  background: url('../images/arrow_down.png') no-repeat right 20px center / 32px;
  padding-right: 60px; /* Space for arrow */
  background-color: white;
  border-radius: 0px;
  width: 40%;
  margin-right: 2%;
}
#contact .mailform select.custom-select3 {
  appearance: none; /* Remove default styling */
  -webkit-appearance: none;
  -moz-appearance: none;
  background: url('../images/arrow_down.png') no-repeat right 20px center / 32px;
  padding-right: 60px; /* Space for arrow */
  background-color: white;
  border-radius: 0px;
  width: 58%;
}
.button_contact {
  width: 330px;
  height: 66px;
  position: relative;
  margin: 0 auto 30px;
}
.button_contact input {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  background: #E6AB00;
  background: linear-gradient(180deg, rgba(230, 171, 0, 1) 0%, rgba(242, 150, 0, 1) 100%);
  border-radius: 33px;
  color: #fff;
  border: none;
  font-size: 26px;
  font-weight: bold;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition: ease 0.3s
}
.button_contact::after {
  content: '';
  background: url("../images/contact_btn-arr01.png") no-repeat 0 0;
  width: 22px;
  height: 22px;
  position: absolute;
  top: 50%;
  right: 32px;
  transform: translateY(-50%);
  display: block;
  pointer-events: none;
}
.button_contact input:hover {
  opacity: 0.8
}
.button_back {
  width: 230px;
  height: 46px;
  position: relative;
  margin: 0 auto 20px;
}
.button_back input {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  background: #E6AB00;
  background: linear-gradient(180deg, rgba(230, 171, 0, 1) 0%, rgba(242, 150, 0, 1) 100%);
  border-radius: 33px;
  color: #fff;
  border: none;
  font-size: 22px;
  font-weight: bold;
  box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition: ease 0.3s
}
.button_back::after {
  content: '';
  background: url("../images/contact_btn-arr02.png") no-repeat 0 0;
  width: 22px;
  height: 22px;
  position: absolute;
  top: 50%;
  left: 28px;
  transform: translateY(-50%);
  display: block;
  pointer-events: none;
}
.button_back input:hover {
  opacity: 0.8
}
.txt_flex {
  display: flex;
}
.under #sec03 h2.tyle01 span:after {
    width: 109%;
}
.secured {
	margin-top: 30px;
	text-align: center;
}
/*==========================================================
                        FONT FAMILY
==========================================================*/
/* EGDE */
@supports (-ms-ime-align: auto) {}
/* FIREFOX */
@-moz-document url-prefix() {}
/* Safari 10.1+ (which is the latest version of Safari at this time) */
@media not all and (min-resolution: 0.001dpcm) {}
/*==========================================================
                        under_sec_event (event.php)
==========================================================*/
.under main .under_sec01 .txt_small {
  display: inline-block;
  margin-top: 8px;
  font-size: 18px;
  font-weight: 500;
}
.under main .under_txt01 .txt_sub {
  margin-top: 18px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.6;
}
.under main .under_sec_event {
  padding: 65px 0;
}
/* スマホオンラインイベント：背景色を両端まで敷く（フルブリード） */
.under main .under_sec_event.under_sec_event_bg {
  background: #fff6e6;
}
/* 見出しは under_sec01「楽しみながら、もっと学べる！」(h2.tyle01) と同じレイアウトに統一 */
.under main .event_ttl {
  font-size: 40px;
  text-align: center;
  font-weight: 700;
  margin-bottom: 40px;
}
.under main .event_ttl span {
  display: inline-block;
  position: relative;
  line-height: 1.6em;
  padding-bottom: 12px;
}
.under main .event_ttl span:after {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  content: '';
  display: block;
  background: url("../images/line_bottom.svg") repeat-x;
  background-size: auto 100%;
  width: 117%;
  height: 12px;
}
/* event_content：幅を抑えて中央揃え、写真をPCで1.5倍程度に拡大 */
.under main .event_content {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  max-width: 1100px;
  margin: 0 auto;
}
.under main .event_content .img {
  width: 480px;
  margin-bottom: 0;
  border-radius: 15px;
  overflow: hidden;
}
.under main .event_content .img img {
  width: 100%;
  height: auto;
  border-radius: 15px;
}
.under main .event_text {
  width: calc(100% - 480px);
  padding-left: 40px;
}
.under main .event_text > p.txt {
  font-size: 24px;
  line-height: 1.7;
  margin-bottom: 20px;
}
.under main .event_box {
  padding: 25px 35px;
  background: #fff6e6;
  border: 2px solid #f0961b;
  border-radius: 15px;
}
/* 過去の開催例ボックス内テキストは、トップページ講座一覧カード（s02_box dt/dd）の
   サイズ・ウェイトに合わせる */
.under main .event_box_ttl {
  margin-bottom: 10px !important;
  font-size: 32px;
  font-weight: 700;
  color: #f0961b;
}
.under main .event_box ul li {
  position: relative;
  padding-left: 30px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.5;
}
.under main .event_box ul li:before {
  position: absolute;
  content: "";
  left: 4px;
  top: 17px;
  width: 12px;
  height: 12px;
  background: #f0961b;
  border-radius: 50%;
}
/* スマホオンラインイベント：背景色エリア内は開催例ボックスを白抜きに */
.under main .under_sec_event_bg .event_box {
  background: #fff;
}
/* under_sec_event_last：後続の共通セクション（学習の進め方）との境界がわかりやすいよう装飾ラインを追加（現在未使用・CSSは保持） */
.under main .under_sec_event_last {
  position: relative;
}
.under main .under_sec_event_last:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 180px;
  height: 4px;
  border-radius: 4px;
  background: linear-gradient(90deg, #f0961b, #ffd28c);
}
/* under_sec_event_gray：オンラインカルチャーの背景を両端まで敷いて区切りにする */
.under main .under_sec_event.under_sec_event_gray {
  background: #f2f2f2;
}
/* event_box_works（開催例ボックス内・下部に作品写真を並べる） */
.under main .event_box_works {
  display: flex;
  gap: 15px;
  margin-top: 20px;
}
.under main .event_box_works div {
  width: calc((100% - 15px)/2);
}
.under main .event_box_works img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  box-shadow: rgba(0, 0, 0, 0.15) 2px 3px 6px;
}
/* under_sec_event_gray：オンラインカルチャーの下部にオレンジの区切り線を追加 */
.under main .under_sec_event.under_sec_event_gray {
  border-bottom: 5px solid #f0961b;
}
/* event_notice（注目のイベント／開催例ボックスの下・親の右カラムに配置） */
.under main .event_notice {
  margin-top: 20px;
}
.under main .event_notice_ttl {
  margin-bottom: 15px !important;
  font-size: 30px;
  font-weight: 700;
  color: #f0961b;
  text-align: center;
}
.under main .event_notice_ttl i {
  margin-right: 8px;
  font-size: 32px;
  vertical-align: -3px;
}
.under main .event_notice_ttl .deco {
  display: inline-block;
  margin: 0 8px;
  color: #f0961b;
}
.under main .event_notice_banner {
  margin-bottom: 0 !important;
}
.under main .event_notice_link {
  display: block;
  text-decoration: none;
  transition: opacity .2s;
}
.under main .event_notice_link:hover {
  opacity: .8;
}
.under main .event_notice_link .event_notice_banner {
  margin-bottom: 12px !important;
  border-radius: 10px;
  overflow: hidden;
}
.under main .event_notice_link .event_notice_banner img {
  width: 100%;
  height: auto;
  display: block;
}
.under main .event_notice_catch {
  margin-bottom: 6px !important;
  font-size: 22px;
  font-weight: 700;
  color: #f0961b;
  text-decoration: none;
  text-align: center;
}
.under main .event_notice_sub {
  margin-bottom: 0 !important;
  font-size: 18px;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  text-align: center;
}

/*==========================================================
              スマホ割・シニア割ページ（spwari.php / seniorwari.php）
==========================================================*/
.under main .top_info_catch {
  margin-bottom: 12px !important;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
}
.under main .top_info_catch + h1 {
  margin-bottom: 25px;
}
/* こんな時に便利／講座・イベント */
.under main .under_sec_wari_case {
  padding: 70px 0 90px;
  background: #fff;
}
.under main .wari_case_list {
  display: flex;
  gap: 40px;
}
.under main .wari_case_list li {
  display: flex;
  flex-direction: column;
  width: calc((100% - 80px)/3);
  text-align: center;
}
.under main .wari_case_photo {
  margin-bottom: 20px !important;
  border-radius: 15px;
  overflow: hidden;
}
.under main .wari_case_photo img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
}
.under main .wari_case_catch {
  margin-top: 20px !important;
  margin-bottom: 18px !important;
  font-size: 22px;
  font-weight: 700;
  color: #f0961b;
}
.under main .wari_case_txt {
  font-size: 22px;
  line-height: 1.7;
}
/* 映像授業とイベントで学ぶから（spwariのみ） */
.under main .under_sec_wari_feature {
  padding: 70px 0 90px;
  background: #fff6e6;
}
.under main .wari_feature_list {
  display: flex;
  gap: 40px;
  max-width: 900px;
  margin: 0 auto;
}
.under main .wari_feature_list li {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: rgba(0, 0, 0, 0.08) 0 4px 12px;
}
.under main .wari_feature_photo {
  margin-bottom: 0 !important;
}
.under main .wari_feature_photo img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  display: block;
}
.under main .wari_feature_catch {
  margin: 20px 0 10px !important;
  padding-left: 30px;
  font-size: 26px;
  font-weight: 700;
  color: #f0961b;
}
.under main .wari_feature_txt {
  padding: 0 30px 30px;
}
.under main .wari_feature_txt li {
  margin-bottom: 10px;
  padding-left: 1.2em;
  text-indent: -1.2em;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.6;
  border-radius: 0;
  box-shadow: none;
}
.under main .wari_feature_txt li:last-child {
  margin-bottom: 0;
}
.under main .wari_feature_txt li:before {
  content: "・";
}
/* メインビジュアル（Heroとオレンジ帯の間） */
.under main .under_sec_mainvisual {
  padding: 60px 0 70px;
  background: #fff6e6;
  text-align: center;
}
.under main .mainvisual_catch {
  margin-bottom: 15px !important;
  font-size: 24px;
  font-weight: 700;
  color: #f0961b;
}
.under main .mainvisual_tit {
  margin-bottom: 25px !important;
}
.under main .mainvisual_tit img {
  max-width: 420px;
  width: 100%;
  height: auto;
}
.under main .mainvisual_txt {
  margin-bottom: 0 !important;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.7;
}
/* 受講生の声（seniorwariのみ／s03パーツを再利用） */
.under main .under_sec_wari_voice {
  padding: 70px 0 90px;
  background: #fff6e6;
}
/* 受講生の声の写真をトップページと同サイズの正円切り抜きに */
.under main .wari_voice_circle {
  width: 234px;
  height: 234px;
  border-radius: 50%;
  overflow: hidden;
}
.under main .wari_voice_circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
/* 選ばれる5つの理由（カード形式・PC/SPともに縦並び） */
.under main .under_sec_wari_reason {
  padding: 75px 0 85px;
  background: #fff;
}
.under main .wari_reason_list {
  display: flex;
  flex-direction: column;
  gap: 30px;
  max-width: 780px;
  margin: 0 auto 50px;
}
.under main .wari_reason_card {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 25px 30px;
  background: #fff;
  border: 1px solid #f0e2c8;
  border-radius: 20px;
  box-shadow: rgba(0, 0, 0, 0.06) 0 4px 14px;
}
.under main .wari_reason_photo {
  flex-shrink: 0;
  width: 150px;
  margin-bottom: 0 !important;
  border-radius: 12px;
  overflow: hidden;
}
.under main .wari_reason_photo img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  display: block;
}
.under main .wari_reason_text {
  flex: 1;
}
.under main .wari_reason_tit {
  margin-bottom: 8px !important;
  font-size: 24px;
  font-weight: 700;
  color: #f0961b;
}
.under main .wari_reason_txt {
  font-size: 18px;
  line-height: 1.6;
}
/* 選ばれる5つの理由の補足注記 */
.under main .wari_reason_note {
  font-size: 15px;
  font-weight: 500;
  color: #666;
}

/* ===========================================================
   4. under_responsive.css（下層ページ・レスポンシブ）
   =========================================================== */
@media screen and (min-width: 751px) and (max-width: 1400px) {
  .under main .inner {
    width: 100%;
    position: relative;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 0 15px;
  }
  #contact .mailform select, #contact .mailform label, #contact .mailform textarea, #contact .mailform input[type="text"], #contact .mailform input[type="email"], #contact .mailform input[type="tel"], #contact .mailform select, #contact .mailform p {
    font-size: 22px;
  }
  #contact .mailform .f_sm {
    font-size: 65% !important;
  }
  .under main .under_sec02_frame .sec02_btn a, .under main .under_txt01 p {
    font-size: 24px;
  }
    .under .under_sec01 p,.under .under_sec02 p {
    font-size: 24px;
}
  .under main .under_sec02_frame p.txt {
    font-size: 18px;
  }
  .under main .list-check li, .under main .under_sec02_frame .sec02_frame_ttl {
    font-size: 30px;
  }
  .under main .list-check li {
    padding-left: 55px;
    margin-bottom: 20px;
  }
  .under main .list-check li::before {
    width: 40px;
    height: 40px;
  }
  .under main .under_txt01 {
    padding: 60px 0;
  }
  .under main .under_sec02 .under_sec02_frame {
    width: calc(100%/2 - 15px);
  }
  .under main .under_sec03_frame {
    padding: 65px 110px;
  }
  .under main .tb_sec04 tr td {
    padding: 15px 5px;
  }
}
@media screen and (min-width: 751px) and (max-width: 1366px) {
  #contact .mailform {
    width: 100%;
    max-width: 985px;
    margin: 0 auto;
  }
  #contact .mailform th span {
    margin-left: 10px;
    padding-bottom: 0;
  }
  #contact .mailform th {
    min-width: 330px;
  }
  #contact .mailform select.custom-select {
    width: 100px;
  }
  .button_contact {
    margin-top: 40px;
  }
  #contact .mailform select.custom-select2 {
    width: 50%;
  }
}
@media screen and (max-width: 750px) {
  .under main p {
    margin-bottom: 10px;
    line-height: 1.6;
  }
    .under .under_sec01 p,.under .under_sec02 p {
    font-size:18px;
}
  .sp {
    display: block;
  }
  .under main .inner {
    position: relative;
    box-sizing: border-box;
    margin: 0 auto;
  }
  .mb0_sp {
    margin-bottom: 0 !important;
  }
    .txt_scroll {
        display: block;
        font-size: 14px;
        color: #9E9E9E;
        margin-top: 5px;
    }
  /*==========================================================
                        under mv
    ==========================================================*/
  .under main #top_info {
    height: auto;
    width: 100%;
    max-width: 100%;
    padding: 25px 0 35px;
    background: url('../images/top_info_bgsp.jpg') no-repeat left center /cover;
  }
  .under main #top_info .inner {}
  .under main #top_info h1 {
    margin-bottom: 10px;
    font-size: 30px;
  }
  .under main #top_info .top_info_btn a {
    width: 100%;
    max-width: 330px;
    font-size: 24px;
    background: url(../images/top_info_btn-arr.png) no-repeat center right 18px, linear-gradient(0deg, rgba(0, 113, 188, 1) 0%, rgba(0, 137, 206, 1) 100%);
    background-size: 12px auto, contain;
  }
  .under main .u_tit2 {
    width: max-content;
    margin: 0 auto 15px;
    padding-bottom: 15px;
    font-size: 32px;
    line-height: 1.4;
  }
  .under main .u_tit2:after {
    height: 12px;
    background: url(../images/line_bottom.svg) repeat-x;
    background-size: cover;
    width: calc(100% + 29px);
  }
  /*==========================================================
                        under class.html
    ==========================================================*/
.under_sec01 h2.tyle01 span:after, .under_sec02 h2.tyle01 span:after, .under_sec03 h2.tyle01 span:after {
    width: calc(100% + 22px) !important;
}
  .under main .under_sec01 {
    padding: 35px 0 35px;
  }
  .under main .under_sec01 .u_tit2 {
    margin-bottom: 20px;
  }
  .under main .under_sec01 .flex_3col {
    flex-wrap: wrap;
    gap: 20px;
  }
  .under main .under_sec01 .flex_3col li {
    width: calc(50%/2 - 30px);
    min-width: 320px;
    margin-right: 0;
    margin-bottom: 15px;
  }
  .under main .under_sec01 .flex_3col li:last-child {
    margin-bottom: 0;
  }
  .under main .under_sec01 .flex_3col li .img img {
    max-height: 194px;
  }
  .under main .under_txt01 {
    padding: 25px 0;
  }
  .under main .under_txt01 p {
    font-size: 24px;
  }
  .under main .under_sec02 {
    padding: 40px 0 30px;
  }
  .under main .under_sec02 .u_tit2 {
    margin-bottom: 20px;
  }
  .under main .under_sec02 .flex_2col {
    margin-top: 20px;
    flex-wrap: wrap;
    justify-content: center;
  }
  .under main .under_sec02 .under_sec02_frame {
    width: 100%;
    max-width: 600px;
    border-radius: 15px;
    padding-bottom: 0;
    margin-bottom: 20px;
  }
  .under main .under_sec02 .under_sec02_frame:last-child {
    margin-bottom: 0;
  }
  .under main .under_sec02_frame .sec02_frame_ttl {
    position: relative;
    font-size: 21px;
    padding: 10px 50px 10px 10px;
    border-radius: 15px 15px 0 0;
  }
  .under main .under_sec02_frame .sec02_frame_ttl:not(.open) {
    border-radius: 15px;
  }
  .under main .under_sec02_frame .sec02_frame_ttl .box-ic {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    background-color: #fff;
    border-radius: 5px;
  }
  .under main .under_sec02_frame .sec02_frame_ttl .box-ic .ic {
    width: 100%;
    height: 100%;
    position: relative;
    display: inline-block;
  }
  .under main .under_sec02_frame .sec02_frame_ttl .box-ic .ic:before {
    position: absolute;
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 15px;
    height: 3px;
    background: #222222;
    transition: all 0.3s;
  }
  .under main .under_sec02_frame .sec02_frame_ttl .box-ic .ic:after {
    position: absolute;
    content: "";
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #222222;
    width: 3px;
    height: 15px;
    transition: all 0.3s;
  }
  .under main .under_sec02_frame .sec02_frame_ttl.open .ic:before {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .under main .under_sec02_frame .sec02_frame_ttl.open .ic:after {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .under main .under_sec02_frame .accordion-content {
    display: none;
    padding: 20px 20px;
  }
  .under main .under_sec02_frame .sec02_content {
    flex-direction: column;
    padding: 0 0 0;
    margin-bottom: 20px;
  }
  .under main .under_sec02_frame p.txt {
    font-size: 18px;
  }
  .under main .under_sec02_frame .img {
    text-align: center;
    margin-right: 0;
    padding-bottom: 20px;
  }
  .under main .under_sec02_frame .img, .under main .under_sec02_frame p.txt {
    width: 100%;
    padding-left: 0;
  }
  .under main .under_sec02_frame .sec02_btn a {
    font-size: 19px;
    margin-bottom: 10px;
    line-height: 0;
    padding: 10px 35px 12px 15px;
  }
  .under main .under_sec02_frame .sec02_btn a, .under main .under_sec02_frame .sec02_btn a:after {
    width: 230px;
    height: 50px;
  }
  .under main li:nth-child(2n) .sec02_btn a:after, .under main .under_sec02_frame .sec02_btn a:after {
    background-size: 18px;
  }
  .under main .under_sec02_frame .sec02_btn a:before {
    width: 237px;
    height: 56px;
  }
  .under main .under_sec03 {
    padding: 30px 0 40px;
    background: #fff6e6;
  }
  .under main .under_sec03 .inner {
    padding: 0 20px;
  }
  .under main .under_sec03_frame {
    padding: 20px 20px;
    max-width: 440px;
    margin: 25px auto 0;
  }
  .under main .list-check li {
    padding-left: 40px;
    margin-bottom: 20px;
    font-size: 20px;
  }
  .under main .list-check li:before {
    width: 30px;
    height: 30px;
  }
  .under main .under_sec04 {
    padding: 35px 0;
  }
  .under main .under_sec04 .tb_scroll {
    overflow-x: scroll;
  }
  .under main .under_sec04 .tb_scroll table {
    width: 960px;
  }
  .under main .tb_sec04 tr:first-child th:nth-child(1) {
    width: 120px;
  }
  .under main .tb_sec04 tr:first-child th:nth-child(2), .under main .tb_sec04 tr:first-child th:nth-child(3), .under main .tb_sec04 tr:first-child th:nth-child(4) {
    width: calc(100%/3 - 120px);
  }
  .under main .tb_sec04 tr:first-child th:nth-child(3), .under main .tb_sec04 tr:first-child th:nth-child(4) {
    font-size: 23px;
  }
  .under main .tb_sec04 tr th {
    font-size: 24px;
  }
  .under main .tb_sec04 tr td {
    font-size: 18px;
  }
  .under main .tb_sec04 tr:first-child img {
    max-width: 180px;
  }
  .under main table img {
    max-width: 50px;
    margin: 0 auto 10px;
  }
  .under main #sec03 .inner {
    padding: 0 20px;
  }
  /*==========================================================
                        MAIL FORM
    ==========================================================*/
  #contact main h1 {
    width: max-content;
    margin: 0 auto 15px;
    margin-bottom: 25px;
    font-size: 32px;
    line-height: 1.4;
  }
  #contact main h1:after {
    background: url(../images/line_bottom.svg) repeat-x;
    height: 8px;
    background-size: cover;
    width: calc(100% + 16px);
  }
  #contact .mailform {
    margin-top: 30px;
  }
  #contact .mailform th, #contact .mailform td {
    display: block;
    width: 100%;
	min-height: 68px;
    font-size: 20px;
  }
  #contact .mailform td.conf{
	  color: darkorange;
  }
  #contact .mailform tr:first-child th {
    border-bottom: none
  }
  #contact .mailform th {
    width: 100%;
    min-width: unset;
    font-weight: 700
  }
  #contact .mailform th span {
    margin-left: 0;
    display: block;
    padding-bottom: 0;
    line-height: 1.4;
  }
  #contact .mailform th span.required {
    width: 50px;
    height: 32px;
    right: 10px;
    top: 19px;
    font-size: 18px;
    line-height: 0;
  }
  #contact .mailform input[type="text"], #contact .mailform input[type="email"], #contact .mailform input[type="tel"], #contact .mailform textarea {
    width: 100%;
    padding: 5px 8px;
  }
  #contact .mailform select, #contact .mailform label, #contact .mailform textarea, #contact .mailform input[type="text"], #contact .mailform input[type="email"], #contact .mailform input[type="tel"], #contact .mailform select, #contact .mailform p {
    font-size: 18px;
  }
  #contact .mailform p.notes {
    font-size: 80%;
  }
  #contact .mailform .flex_select {
    flex-wrap: wrap;
    gap: 15px;
  }
  #contact .mailform .flex_select span {
    width: 100%
  }
  #contact .mailform select.custom-select2, #contact .mailform select.custom-select3 {
    width: 100%;
    background: url('../images/arrow_down.png') no-repeat right 20px center / 16px;
    background-color: white;
    padding-right: 30px;
    margin: 0 0 0;
  }
  #contact .mailform select.custom-select {
    width: 60px;
    background: url(../images/arrow_down.png) no-repeat right 10px center / 16px;
    background-color: white;
    padding-right: 28px;
  }
  #contact .mailform input[type="radio"], #contact .mailform input[type="checkbox"] {
    width: 24px;
    height: 24px;
    top: 4px;
    margin-right: 10px;
  }
  .under main .button_contact {
    width: 300px;
    height: 60px;
    margin: 0 auto 30px;
  }
  .button_contact input {
    font-size: 24px;
  }
  .flex_select .item_select {
    margin: 0 15px 0 0;
  }
  .ml_red01 {
    margin-left: 0;
  }
  #contact .mailform .f_sm {
    font-size: clamp(12px, 3vw, 18px) !important;
  }
  #contact .mailform .f_lr {
    font-size: clamp(12px, 3.95vw, 20px) !important;
  }
  #contact .mailform .list_check label {
    align-items: flex-start;
  }
  #contact .mailform .list_check span {
    width: calc(100% - 45px);
    top: 3px;
    line-height: 1.4;
  }
  #contact .flex_select .item_select {
    margin: 0 0 0 0;
  }
  #contact .mailform th.align-top {
    padding: 20px 10px;
  }
  @supports (-webkit-touch-callout: none) {
    #contact .mailform th span.required {
      padding-bottom: 0;
    }
  }
  /*==========================================================
                        under_sec_event (event.php)
  ==========================================================*/
  .under main .under_sec01 .txt_small {
    margin-top: 5px;
    font-size: 13px;
  }
  .under main .under_txt01 .txt_sub {
    margin-top: 10px;
    font-size: 15px;
  }
  .under main .under_sec_event {
    padding: 40px 0 50px;
  }
  .under main .under_sec_event_last:after {
    width: 100px;
    height: 3px;
  }
  .under main .event_ttl {
    font-size: 32px;
    margin-bottom: 20px;
  }
  .under main .event_ttl span {
    line-height: 1.4;
    padding-bottom: 12px;
  }
  .under main .event_ttl span:after {
    height: 8px;
    background-size: cover;
    width: calc(100% + 22px) !important;
  }
  .under main .event_content {
    flex-direction: column;
    max-width: 100%;
  }
  .under main .event_content .img {
    width: 100%;
    max-width: 400px;
    margin: 0 auto 15px;
  }
  .under main .event_text {
    width: 100%;
    padding-left: 0;
  }
  .under main .event_text > p.txt {
    font-size: 18px;
  }
  .under main .event_box {
    padding: 15px 20px;
  }
  .under main .event_box_ttl {
    font-size: 18px;
  }
  .under main .event_box ul li {
    font-size: 18px;
    padding-left: 20px;
  }
  .under main .event_box ul li:before {
    top: 8px;
    width: 8px;
    height: 8px;
  }
  .under main .event_box_works {
    flex-direction: column;
    gap: 10px;
    margin-top: 15px;
  }
  .under main .event_box_works div {
    width: 100%;
  }
  .under main .event_notice {
    margin-top: 20px;
  }
  .under main .event_notice_ttl {
    margin-bottom: 10px !important;
    font-size: 18px;
    text-align: center;
  }
  .under main .event_notice_catch {
    font-size: 18px;
  }
  .under main .event_notice_sub {
    font-size: 15px;
  }
  /*==========================================================
                スマホ割・シニア割ページ
  ==========================================================*/
  .under main .under_sec_mainvisual {
    padding: 40px 0 45px;
  }
  .under main .mainvisual_catch {
    font-size: 16px;
  }
  .under main .mainvisual_tit img {
    max-width: 260px;
  }
  .under main .mainvisual_txt {
    font-size: 16px;
  }
  .under main .under_sec_wari_case {
    padding: 40px 0 50px;
  }
  .under main .wari_case_list {
    flex-direction: column;
    gap: 25px;
  }
  .under main .wari_case_list li {
    width: 100%;
  }
  .under main .wari_case_photo img {
    height: 45vw;
  }
  .under main .wari_case_catch {
    margin-top: 8px !important;
    margin-bottom: 12px !important;
    font-size: 24px;
  }
  .under main .wari_case_txt {
    font-size: 16px;
  }
  .under main .under_sec_wari_feature {
    padding: 40px 0 50px;
  }
  .under main .wari_feature_list {
    flex-direction: column;
    gap: 20px;
  }
  .under main .wari_feature_list li {
    width: 100%;
  }
  .under main .wari_feature_photo img {
    height: 50vw;
  }
  .under main .wari_feature_catch {
    padding-left: 0;
    font-size: 20px;
    text-align: center;
  }
  .under main .wari_feature_txt {
    padding: 0 20px 20px;
  }
  .under main .wari_feature_txt li {
    font-size: 16px;
  }
  .under main .under_sec_wari_voice {
    padding: 40px 0 50px;
  }
  .under main .under_sec_wari_reason {
    padding: 40px 0 45px;
  }
  .under main .wari_reason_list {
    gap: 20px;
    margin-bottom: 30px;
  }
  .under main .wari_reason_card {
    flex-direction: column;
    gap: 15px;
    padding: 20px;
  }
  .under main .wari_reason_photo {
    width: 120px;
  }
  .under main .wari_reason_photo img {
    height: 120px;
  }
  .under main .wari_reason_tit {
    font-size: 24px;
    line-height: 1.3;
    text-align: center;
  }
  .under main .wari_reason_txt {
    font-size: 16px;
  }
  .under main .wari_reason_note {
    font-size: 12px;
  }
}
@media screen and (max-width: 640px) {
  .sp640 {
    display: block;
  }
  .under main .under_sec01 .flex_3col li:last-child {
    margin-bottom: 0;
  }
}
/* IPHONE 14 */
@media screen and (max-width: 440px) {
  .none440 {
    display: none;
  }
  .sp440 {
    display: block;
  }
  .under main .under_txt01 p {
    font-size: 20px;
  }
  .under main #top_info .top_info_btn a {
    width: 326px;
    height: 85px;
    justify-content: center;
    padding: 5px 40px 10px 30px;
  }
  .under main .under_sec02 .under_sec02_frame {
    margin-bottom: 20px;
  }
  .under main .under_sec02_frame .sec02_frame_ttl {
    padding: 10px 50px 12px 10px;
    line-height: 1.3;
    border-radius: 12px 12px 0 0;
    margin-bottom: 0;
    cursor: pointer;
  }
  .under main .under_sec02_frame .sec02_frame_ttl:not(.open) {
    border-radius: 12px;
  }
  .under main .under_sec03_frame {
    padding: 20px 15px 20px 15px;
  }
  .under main .list-check li {
    font-size: 19px;
    padding-left: 40px;
    margin-bottom: 15px;
  }
  .under main .list-check li:before {
    width: 32px;
    height: 32px;
    top: 5px;
  }
  .under main .under_sec01 .flex_3col {
    gap: 0;
  }
}
/* IPHONE 6 */
@media screen and (max-width: 360px) {
  .none360 {
    display: none;
  }
  .under main #top_info h1 {
    font-size: 28px;
    text-align: center;
  }
  .under main .u_tit2 {
    font-size: 26px;
  }
  .under main .u_tit2:after {
    width: 100%;
  }
  .under .under_sec01 p,.under .under_sec02 p {
    font-size: 16px;
}
  .under main #top_info .top_info_btn a {
    width: 300px;
    padding: 5px 30px 10px 15px;
  }
  .under main .under_txt01 p {
    font-size: 17px;
  }
  .under main .under_sec02_frame .sec02_frame_ttl {
    font-size: 18px;
  }
  .under main .list-check li {
    font-size: 18px;
    padding-left: 35px;
  }
  .under main .list-check li:before {
    width: 30px;
    height: 30px;
    top: 5px;
  }
}
@media screen and (max-width: 320px) {
  #sec03 .btn01 a {
    padding-bottom: 2px;
    font-size: 16px;
  }
  .under main #sec03 .s03_cont .item .s03_voice, .under main #sec03 .s03_cont .item:last-child .s03_voice {
    padding: 20px 20px;
  }
  .under main .s03_cont .item:last-child .s03_voice h3 {
    margin-top: 0;
    margin-bottom: 10px;
  }
  .under main .under_sec02_frame .sec02_frame_ttl {
    font-size: 16px;
  }
  .under main .under_sec02_frame .sec02_btn a {
    font-size: 18px;
  }
}
