body {
  margin: 0;
  font-family: sans-serif;
}
:root {
  --base-2: #fff !important;
}

.top-header {
  width: 100%;
  background: #fff;
}

.top-inner {
    max-width: 1180px;
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
}

/* h1 */
.top-h1 {
  max-width: 1180px;
  margin: 0 auto;
  padding: 8px 20px;
  font-size: 14px;
  font-weight: normal;
}

/* ロゴ並び */
.logo-row {
  max-width: 1180px;
  margin: 0 auto;
  padding: 15px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo {
  font-size: 24px;
  font-weight: bold;
}

/* ロゴ右ボタン：PCのみ */
.header-btns {
  display: flex;
  gap: 10px;
  align-items: center;
}

.top-nav-btn {
  display: block;
  line-height: 0;
}

.top-nav-btn img {
  display: block;
  height: 70px; /* 必要に応じて調整 */
  width: auto;
}

/* スマホでは非表示 */
@media (max-width: 768px) {
.logo {
  width : 82%;
  font-weight: bold;
}
  .header-btns {
    display: none;
  }
.top-inner {
    width: auto;
    margin: 0 auto;
    padding-left: 0px;
    padding-right: 0px;
    box-sizing: border-box;
}
}

/* ===== PCメニュー（整理済み）===== */
/* 外側（100%背景） */
.pc-nav-wrap {
  width: 100%;
  background: #23a6dd;
}

/* 内側（1280） */
.pc-nav {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
}

/* メニュー自体の背景 */
.pc-nav ul {
  background: #fefefe;
}

/* 横並び＋高さ確定 */
.pc-nav ul {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  list-style: none;
  margin: 0;
  padding: 0;
  height: 50px; /* ← 半角スペースで書き直す */
}

/* 5分割 */
.pc-nav li {
  width: 20%;
  text-align: center;
  position: relative;
  font-weight : 600;
}

/* クリック領域＝全体 */
.pc-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-decoration: none;
  color: #333;
  font-size: 15px;

  /* hover用 */
  background: #23a6dd;
	color : #fff!important;
  transition: 0.2s;
}

/* ===== hover（これでズレない）===== */
.pc-nav a:hover {
  background: #46cad6;
  color: #fff;
}

/* ===== 縦線（高さ連動）===== */
.pc-nav li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  height: 100%; /* ← 全高さにする */
  width: 1px;
  background: #ccc;
}
/* 左端と右端の線 */
.pc-nav ul {
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
}

/* 各メニューの区切り */
.pc-nav li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
  width: 1px;
  background: #ccc;
}

/* FV */
.fv {
  max-width: 1180px;
  margin: 30px auto;
}

.fv img {
  width: 100%;
  height: auto;
  display: block;
}

.fv-pc {
  display: block !important;
}

.fv-sp {
  display: none !important;
}

/* =========================
サブFV
========================= */

.sub-fv {
    position: relative;
    width: 100%;
    background: #effafb;
    overflow: hidden;
}

/* 背景 */
.sub-fv-bg {
    position: absolute;
    inset: 0;
	background: #fffef8;
	z-index: 1;
}

/* 画像共通 */
.sub-fv img {
    position: relative;
    z-index: 2;

    width: auto;
    max-width: 100%;
    height: auto;

    margin: 0 auto;
}

/* =========================
PC
========================= */

.sub-fv-pc {
    display: block !important;
}

.sub-fv-sp {
    display: none !important;
}

/* =========================
スマホ
========================= */

@media (max-width: 899px) {
.fv {
  max-width: 1180px;
  margin: 0px auto 10px;
}

    .sub-fv-pc {
        display: none !important;
    }

    .sub-fv-sp {
        display: block !important;
        width: 100%;
    }

}


/* SPメニュー */
.hamburger {
  display: none;
  flex-direction: column;
  cursor: pointer;
}

.hamburger span {
  width: 28px;
  height: 3px;
  background: #333;
  margin-bottom: 5px;
}

.sp-nav {
  display: none;
}

/* コンテンツ */
/* セクションは100%幅 */
section {
  width: 100%;
	max-width : 1180px;
	margin : 10px auto;
}

/* 中身を1080中央に */
.content {
  max-width: 1080px;
  margin: 0 auto;
  padding: 60px 20px;
}

/* スマホ */
@media (max-width: 768px) {

  .top-h1 {
    font-size: 12px;
    padding: 6px 15px;
  }

  .logo-row {
    padding: 10px 10px 0 10px;
  }

  .header-btns,
  .pc-nav {
    display: none;
  }

  .hamburger {
    display: flex;
  }

  .sp-nav.active {
    display: block;
  }

  .sp-nav ul {
    list-style: none;
    margin: 0;
    padding: 15px;
  }

  .sp-nav li {
    margin-bottom: 10px;
  }

  .fv-pc {
    display: none !important;
  }

  .fv-sp {
    display: block !important;
  }
}

/* ===== h1帯（100%）===== */
.top-h1 {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 8px 0;
  background: #2bb7f2;
  color : #fff;
  text-align : center;
  font-size : 12px;
}

/* 中の文字だけ1280中央 */
.top-h1 span {
  display: block;
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 14px;
  font-weight: normal;
}

/* =========================
スマホメニュー全体
========================= */
.sp-nav{
    background:#effafb;
    padding:20px 15px;
}

/* =========================
リスト
========================= */
.sp-nav ul{
    margin:0;
    padding:0;
    list-style:none;
}

/* =========================
各メニュー
========================= */
.sp-nav li{
    margin:0;
    padding:0;
}

/* =========================
リンク
========================= */
.sp-nav li a{
    display:block;
    background:#fff;
    padding:16px 15px;
    margin-bottom:10px;
    color:#333;
    text-decoration:none;
    font-size:15px;
    line-height:1.7;
    border-bottom:1px dotted #ccc;
    border-radius:8px;
    box-shadow:0 2px 8px rgba(0,0,0,0.05);
    transition:0.3s;
}

/* hover */
.sp-nav li a:hover{
    opacity:0.7;
}

/**********************************
トップページ コースバナー
**********************************/

.top-cource{
    max-width:1180px;
    margin:20px auto;
    padding:0;
}

/**********************************
PC/SP切替
**********************************/

.taiken-pc{
    display:block;
}

.taiken-sp{
    display:none !important;
}

/**********************************
上の大バナー
**********************************/

.top-cource-main{
    position:relative;
    overflow:hidden;
    margin-bottom:20px;
}

.top-cource-main img{
    width:100%;
    height:auto;
    display:block;
}

/**********************************
PC日程表示
**********************************/

.top-cource-schedule{
    position:absolute;
    left:20px;
    right:20px;
    bottom:20px;

    background:#0f96c6;

    padding:5px 20px;

    border-radius:10px;

    font-size:34px;
    line-height:1.8;
    color:#fff;

    font-weight:900;

    box-sizing:border-box;

    text-align:center;

    text-shadow:
    0 0 1px #333,
    0 0 1px #333;
}

/**********************************
下２つ
**********************************/

.top-cource-sub{
    display:flex;
    gap:20px;
}

.top-cource-sub-img{
    width:calc((100% - 20px) / 2);
}

.top-cource-sub-img img{
    width:100%;
    height:auto;
    display:block;
}

/**********************************
スマホ
**********************************/
@media screen and (max-width:640px){

.taiken-pc{
    display:none !important;
}

.taiken-sp{
    display:block !important;
}
    .top-cource{
        padding:0 15px;
    }

    .top-cource-main{
        margin-bottom:15px;
    }

    /**********************************
    スマホ日程表示
    **********************************/

    .top-cource-schedule-sp{
        position:absolute;

        left:10px;
        right:10px;
        bottom:10px;

        background:#0f96c6;

        padding:8px 10px;

        border-radius:10px;

        font-size:18px;
        line-height:1.5;
        color:#fff;

        font-weight:900;

        box-sizing:border-box;

        text-align:center;

        text-shadow:
        0 0 1px #333,
        0 0 1px #333;
    }

    /**********************************
    下２つ
    **********************************/

    .top-cource-sub{
        display:block;
    }

    .top-cource-sub-img{
        width:100%;
        margin-bottom:15px;
    }

    .top-cource-sub-img:last-child{
        margin-bottom:0;
    }

}
/***************************
 * トップページ特徴（３つ）
 * ************************/
.seminar-feature {
  padding: 10px 0;
}

.seminar-feature-list {
  display: flex;
  gap: 24px;
}

.seminar-feature-box {
  width: calc((100% - 48px) / 3);
  border: 1px solid #555151;
  padding: 20px;
  box-sizing: border-box;
  background: #fff;
  text-align: center;
}

.seminar-feature-box h3 {
  font-size: 22px;
  margin: 0 0 15px;
  line-height: 1.5;
}

.seminar-feature-box img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto 15px;
}

.seminar-feature-box p {
  font-size: 17px;
  line-height: 1.7;
  margin: 0;
	text-align : left;
}

.seminar-feature-head {
  text-align: center;
  margin-bottom: 15px;
}

.feature-num {
  display: block;
  color: #fff;
	background : #e60033;
	width : 120px;
	text-align : center;
	margin : 0 auto;
	padding : 5px 0px;	
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 8px;
  line-height: 1;
	border-radius : 10px;
}

.seminar-feature-head h3 {
  font-size: 24px;
  color: #333;
  line-height: 1.4;
  margin: 0;
  font-weight: bold;
}

/* スマホ */
@media screen and (max-width: 640px) {
  .seminar-feature {
    padding: ;
  }

  .seminar-feature-list {
    display: block;
  }

  .seminar-feature-box {
    width: auto;
    margin: 0 20px 20px 20px;
  }

  .seminar-feature-box:last-child {
    margin-bottom: 0;
  }
.seminar-feature-head h3 {
  font-size: 22px;
  color: #333;
  line-height: 1.4;
  margin: 0;
  font-weight: bold;
}
}

/****************************
 * TOPページフォロー体制
 * *************************/
.top-follow-box {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.top-follow-item {
  width: calc((100% - 60px) / 4);
  border: 1px solid #555151;
  padding: 20px;
  box-sizing: border-box;
  background: #fff;
  text-align: center;
}

.top-follow-item h3 {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.4;
  margin: 0 0 15px;
  color: #333;
}

.top-follow-item img {
  width: 100%;
  height: auto;
  display: block;
}

/* スマホ */
@media screen and (max-width: 640px) {

  .top-follow-box {
    gap: 15px;
	  margin : 15px;
  }

  .top-follow-item {
    width: calc((100% - 15px) / 2);
    padding: 8px;
  }

  .top-follow-item h3 {
    font-size: 18px;
    margin-bottom: 12px;
  }

}

.kou-schedule{
    max-width:1100px;
    margin:0 auto;
}

.kou-schedule-block{
    margin:0 20px 40px 20px;
}

.kou-schedule-title{
    font-size:28px!important;
    font-weight:bold;
    color:#333;
    line-height:1.4;
    margin:0 0 20px;
}

.kou-schedule-list{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    gap:20px !important;
}

.kou-schedule-box{
    border:1px solid #ddd;
    padding:20px;
    border-radius:10px;
    background:#fff;
    box-sizing:border-box;
}

.kou-schedule-date{
    font-size:22px!important;
    font-weight:bold;
    color:#333;
    margin-bottom:15px;
}

.kou-schedule-detail{
    font-size:16px!important;
    line-height:1.8;
    color:#555;
}

@media screen and (max-width:899px){

    .kou-schedule-title{
		font-size:24px!important;
        margin-bottom:15px;
    }

    .kou-schedule-list{
        display:block !important;
    }

    .kou-schedule-box{
        width:100%;
        margin-bottom:15px;
    }

}

/******************************
 * カレンダーデザイン
 * ***************************/
.seminar-calendar-wrap{
    margin:40px auto;
}

.seminar-calendar-nav{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}

.calendar-title{
    font-size:28px;
    font-weight:bold;
}

.seminar-calendar{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
}

.seminar-calendar th,
.seminar-calendar td{
    border:1px solid #ddd;
    vertical-align:top;
    padding:10px;
    height:120px;
}

.seminar-calendar th{
    background:#f5f5f5;
}

.calendar-day{
    font-size:18px;
    font-weight:bold;
    margin-bottom:10px;
}

.calendar-event{
    background:#eaf6ff;
    padding:5px;
    margin-bottom:5px;
    border-radius:5px;
    font-size:13px;
    line-height:1.5;
}
#seminar-calendar{
    scroll-margin-top:50px;
}

.calendar-prev,
.calendar-next{
    display:inline-block;
    padding:10px 20px;
    background:#333;
    color:#fff !important;
    text-decoration:none !important;
    border-radius:5px;
    font-size:14px;
    transition:0.3s;
}

.calendar-prev:hover,
.calendar-next:hover{
    opacity:0.8;
}

/* お試し */
.event-otameshi{
    background:#dff4ff;
}

/* 揉みほぐし */
.event-momihogushi{
    background:#e8ffe0;
}
/* その他 */
.event-sonota{
    background:#f1f1f1;
}

@media screen and (max-width:899px){

    .seminar-calendar th,
    .seminar-calendar td{
        padding:5px;
        height:90px;
        font-size:12px;
    }

    .calendar-title{
        font-size:22px;
    }

}

/* PC */
.pc-calendar{
    display:block;
}

.sp-calendar{
    display:none;
}

/* スマホ */
@media screen and (max-width:899px){

    .pc-calendar{
        display:none;
    }

    .sp-calendar{
        display:block;
		margin : 20px;
    }

    .sp-schedule-row{
        display:flex;
        align-items:flex-start;
        gap:10px;

        padding:10px 0;

        border-bottom:1px solid #ddd;
    }

    .sp-schedule-day{
        width:30px;
        font-size:20px;
        font-weight:bold;
    }

    .sp-schedule-week{
        width:20px;
        font-size:14px;
    }

    .sp-schedule-content{
        flex:1;
        font-size:13px;
        line-height:1.6;
    }

}

/* =========================
ボタン
========================= */

.calendar-btn-wrap{
    margin-top:10px;
}

.calendar-detail-btn,
.calendar-entry-btn{
    display:block;
    text-align:center;
    text-decoration:none;
    padding:6px 10px;
    border-radius:6px;
    font-size:12px;
    font-weight:bold;
    margin-top:6px;
}

/* 詳細 */
.calendar-detail-btn{
    background:#555151;
    color:#fff !important;
}

/* 申込み */
.calendar-entry-btn{
    background:#ff7a00;
    color:#fff !important;
}

/**********************************
SNSバナー
**********************************/

.sns-list{
    display:flex;
    gap:20px;
    margin:0 0 20px 0;
}

.sns-item{
    width:calc((100% - 60px) / 4);
}

.sns-item img{
    width:100%;
    height:auto;

    display:block;

    border-radius:10px;
}

/**********************************
スマホ
**********************************/
@media screen and (max-width:640px){

    .sns-list{
		margin : 0 20px;
        display:block;
    }

    .sns-item{
        width:100%;

        margin-bottom:15px;
    }

    .sns-item:last-child{
        margin-bottom:0;
    }

}