@charset "UTF-8";

/* =========================================================
   Hands custom CSS
   moved from WordPress Additional CSS
========================================================= */

/* =========================================================
   00. PC基本スタイル / 共通スタイル
========================================================= */

/* フォント設定 */
body {
  font-family: "BIZ UDPGothic", sans-serif;
}

/* 01. SWELL共通リセット・トップページ余白調整 */
h1, h2, h3, h4,
.c-pageTitle,
.post_content h2,
.post_content h3 {
  font-family: "IBM Plex Sans JP", sans-serif;
  font-weight: 700;
}

/* SWELLヘッダー上部バーを非表示 */
.l-header__bar {
  display: none !important;
}

/* トップページ上部の余白を消す */
.home .l-content,
.home .l-mainContent,
.home #content,
.home .post_content {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* 本文最初のブロックの上余白を消す */
.home .post_content > *:first-child {
  margin-top: 0 !important;
}

/* --------------------------------
   全ページ H1 タイトル中央化
-------------------------------- */

.c-pageTitle[data-style="b_bottom"] {
  text-align: center;
  border-bottom: 2px solid var(--color_border);
	font-size: 26px;
}

.c-pageTitle[data-style="b_bottom"] .c-pageTitle__inner {
  display: inline-block;
  float: none;
  margin: 0 auto -2px;
  padding: .5em .8em;
  border-bottom: 2px solid #1598DB;
}

/* スマホでのh1下余白調整 */

@media (max-width: 767px) {
.l-mainContent__inner>.post_content {
	margin-top: 32px;
}
}


/* =========================================
ボックス内の画像を角丸にする
=========================================*/

.usp-card figure,
.school-branch-card figure,
.school-feature-card figure,
.voice-card figure,
.worry-card figure,
.hands-usp figure {
  overflow: hidden;
  border-radius: 5px;
}

/* 画像本体 */
.usp-card img,
.school-branch-card img,
.school-feature-card img,
.voice-card img,
.worry-card img {
  display: block;
  width: 100%;
  border-radius: 5px;
}




















/* =======================================
   01. PC：カスタムヘッダー全体レイアウト調整（SWELLコンテナ制御）
======================================= */

/* カスタムヘッダー使用時のみコンテナ制限解除 */
.l-container:has(.custom-pc-header) {
  max-width: none !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ヘッダーウィジェット中央寄せ */
.w-header:has(.custom-pc-header) {
  margin-left: auto !important;
  margin-right: auto !important;
}


/* =======================================
   02. PC：カスタムヘッダー（全体構造）
=======================================*/

.custom-pc-header {
  width: 100%;
  background: #fff;
  position: relative;
  z-index: 500;
  box-sizing: border-box;
  border-bottom: none !important;
}

/* 上段（ロゴ・CTAエリア） */
.custom-header-top {
  width: 100%;
  background: #fff;
  position: relative !important;
}

/* 区切り線 */
.custom-header-separator {
  width: min(100%, 1440px);
  height: 1px;
  background: #eee;
	margin-top: 4px;
}

/* 上段内部レイアウト */
.custom-header-inner {
  width: min(100% - 24px, 1440px) !important;
  margin: 0 auto !important;
  padding: 6px 20px !important;
  display: flex;
}


/* =======================================
   03. ロゴ
=======================================*/

.custom-header-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none !important;
}

.custom-header-logo img {
  display: block;
  height: 50px;
  width: auto;
  max-width: 100%;
	padding-top: 2px;
}


/* =======================================
   04. 右側エリア（電話 + CTA）
======================================= */

.custom-header-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-left: auto;
}

/* 電話カード */
.custom-header-tel {
  min-width: 250px;
  padding: 0px 14px;
	margin-bottom: 6px;
  border-radius: 8px;
  background: #fff;
  color: #20A84A;
  text-align: right;
  box-sizing: border-box;
}

/* 電話番号 */
.header-tel-number {
  display: inline-flex;
  align-items: center;
  gap: 7px;

  color: #20A84A !important;
  font-size: 26px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-decoration: none !important;
}

/* 電話アイコン */
.header-tel-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.header-tel-svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}

/* 営業時間 */
.custom-header-tel-time {
  margin-top: 0px;
  padding: 0px 16px;
  border-radius: 4px;
  background: #e6f2e9;
  font-size: 12px;
  color: #4a4a4a;
}


/* =======================================
   05. CTAボタン
=======================================*/

.custom-header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 15px 45px;
  border-radius: 10px;
  background: linear-gradient(to top, #ED7B1E, #FC9D1C);
  color: #fff !important;
  font-size: 18px;
  font-weight: 700;
  text-decoration: none !important;
  box-shadow: 0 2px 0 #C97200;
  transition: all 0.15s ease;
  gap: 10px;
}

/* CTA矢印 */
.custom-header-cta-arrow {
  position: relative;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.custom-header-cta-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-top: 2px solid #ED7B1E;
  border-right: 2px solid #ED7B1E;
  transform: translate(-60%, -50%) rotate(45deg);
}

/* hover / active */
.custom-header-cta:hover {
  transform: translateY(1px);
  filter: brightness(1.03);
}

.custom-header-cta:hover .custom-header-cta-arrow {
  transform: translateX(3px);
}

.custom-header-cta:active {
  transform: translateY(2px);
  box-shadow: 0 0 0 #C97200;
}


/* =======================================
   06. 下段ナビゲーション
=======================================*/

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

/* ナビ本体 */
.custom-header-nav {
  position: relative !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: min(100vw, 1440px) !important;
  border-bottom: 1px solid #eee;
	
}

/* メニュー */
.custom-header-menu {
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  list-style: none;
  margin: 0;
  padding: 0;
	position: relative;
}


/* 左端 */
.custom-header-menu::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 30px; 
  background: #ddd;
}

/* 右端 */
.custom-header-menu::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 30px; 
  background: #ddd;
}

.menu-item {
	margin: 0 !important;
}

/* メニューリンク */
.custom-header-menu > li > a {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 48px;
  color: #333;
  text-decoration: none;
  font-size: 15px;
  transition: 0.2s;
}

.custom-header-menu > li > a:hover {
  background: #f2f8fc;
  color: #389CDB;
}


.custom-header-menu > li + li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 1px;
  height: 30px;
  background: #ddd;
  transform: translateY(-50%);
}

.custom-header-nav ul,
.custom-header-nav ol {
  padding-left: 0 !important;
  margin: 0 !important;
}
/* =======================================
   07. サブメニュー
=======================================*/

.custom-header-nav .sub-menu {
  position: absolute;
  left: 50%;
  top: 100%;
  width: 210px;
  padding: 8px 0;
  background: #fff;
  border: 1px solid #eee;
  border-radius: 0 0 8px 8px;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 8px);
  transition: 0.2s;
}

.custom-header-nav > ul > li:hover .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
}

.custom-header-nav .sub-menu li a {
  display: flex;
  justify-content: center;
  padding: 10px;
  font-size: 14px;
}

.custom-header-nav .sub-menu {
  list-style: none;
  margin: 0;
  padding: 8px 0;
}

/* ホバー */
.custom-header-nav .sub-menu li:hover a {
  background: #f2f8fc;
  color: #389CDB;
}


/* =======================================
   08. レスポンシブ（PC）
======================================= */

@media (min-width: 768px) { 
	.l-header__gnav { 			
		display: none !important; 
	} 
}

@media (min-width: 1284px) { 
	.l-header__logo { 			
		display: none !important; 
	} 
}


/* =======================================
   09. タブレット
=======================================*/

@media (min-width: 768px) and (max-width: 1180px) {

  .custom-header-actions {
    gap: 12px;
  }

  .custom-header-tel {
    min-width: 220px;
  }

  .custom-header-cta {
    font-size: 16px;
    padding: 12px 18px;
  }


  .l-header__logo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin: 0 !important;
    padding-left: 0 !important;
  }
}

/* =======================================
 10-1. タブレット&スマホ共通ハンバーガーメニュー
=======================================*/
@media (max-width: 1180px) {
	
	 /* リンク共通 */
  #sp_menu .menu-item a,
  .p-spMenu .menu-item a {
    position: relative;
  }

  /* 既存アイコン・矢印削除 */
  #sp_menu .menu-item a::before,
  .p-spMenu .menu-item a::before,
  #sp_menu .menu-item-has-children > a::after,
  .p-spMenu .menu-item-has-children > a::after {
    content: "" !important;
    display: none !important;
  }

  /* 親メニュー：＋表示 */
  #sp_menu .menu-item-has-children > a::before,
  .p-spMenu .menu-item-has-children > a::before {
    content: "＋" !important;
    display: inline-block !important;
    position: absolute;
    left: .8em;
    top: 50%;
    transform: translateY(-50%);
    font-weight: 700;
  }

  /* 開いた状態：－に変更 */
  #sp_menu .menu-item-has-children.is-open > a::before,
  .p-spMenu .menu-item-has-children.is-open > a::before {
    content: "－" !important;
  }

  /* 左余白調整 */
  #sp_menu .menu-item-has-children > a,
  .p-spMenu .menu-item-has-children > a {
    padding-left: 2.4em !important;
  }

  /* サブメニュー（閉） */
  #sp_menu .menu-item-has-children > .sub-menu,
  .p-spMenu .menu-item-has-children > .sub-menu {
    display: block !important;
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height 0.28s ease, opacity 0.18s ease, transform 0.18s ease;
  }

  /* サブメニュー（開） */
  #sp_menu .menu-item-has-children.is-open > .sub-menu,
  .p-spMenu .menu-item-has-children.is-open > .sub-menu {
    max-height: 550px !important;
    opacity: 1;
    transform: translateY(0);
  }

  /* サブメニュー項目 */
  #sp_menu .sub-menu a,
  .p-spMenu .sub-menu a {
    padding-left: 2.8em !important;
    padding-right: 2.4em !important;
  }
	.c-listMenu a {
		padding-left: 0.85em;
	}

/* =======================================
     10-2. スマホメニュー下部SNS
======================================= */
	.p-spMenu__bottom {
		margin-top: 1em;
	}
  .sp-menu-social {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
  }

  .sp-menu-social-link {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
    text-decoration: none !important;
  }

  .sp-menu-social-link i {
    font-size: 25px;
    line-height: 1;
		padding-top: 2px;
		padding-left: 1px;
  }

  .sp-menu-social-link.line {
    color: #06c755;
  }

  .sp-menu-social-link.instagram {
    color: #e4405f;
  }


/* =======================================
     10-3. スマホCTA（完全統一版）
======================================= */

.sp-menu-trial-cta {
  position: relative;
  width: min(100%, 340px);
  min-height: 72px;
  margin: 30px auto 0;
  padding: 10px 44px 10px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-radius: 12px;
  background: linear-gradient(to top, #ED7B1E, #FC9D1C);
  color: #fff !important;
  text-decoration: none !important;
  box-shadow: 0 5px 0 #C97200;
  box-sizing: border-box;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

/* hover */
.sp-menu-trial-cta:hover {
  filter: brightness(1.03);
  transform: translateY(1px);
  box-shadow: 0 4px 0 #C97200;
}

/* テキスト */
.sp-menu-trial-lead {
  display: block;
  margin-bottom: 2px;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}

.sp-menu-trial-cta strong {
  display: block;
  font-size: 24px;
  font-weight: 900;
  text-align: center;
}


/* =======================================
  10-4. 矢印（トップCTA完全統一）
======================================= */

.sp-menu-trial-arrow {
  position: absolute;
  right: 17%;
  top: 63%;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #fff;
  color: #ED7B1E;
  font-size: 0;
  line-height: 0;
  transform: translateY(-50%);
  transition: transform 0.2s ease;
}

/* 斜め矢印 */
.sp-menu-trial-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-top: 2px solid #ED7B1E;
  border-right: 2px solid #ED7B1E;
  transform: translate(-60%, -50%) rotate(45deg);
}

/* hover時の矢印移動 */
.sp-menu-trial-cta:hover .sp-menu-trial-arrow {
  transform: translateY(-50%) translateX(3px);
}
	
}


/* =======================================
   11. スマホ（max-width: 767px）
======================================= */

@media (max-width: 767px) {

  /*PCヘッダー非表示*/
  .custom-pc-header {
    display: none !important;
  }
		.l-header__logo {
		margin-left: 16px;
		padding-left: 0px;
	}
}

 



/* ====================================================================================================================================================*/


/* =======================================
   メインスライダー：全体構造
======================================= */

/* スライダー全体 */
.hero-slider-wrap {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  overflow: hidden;
}

/* トップページではスライダー上の余白を消す */
.home .hero-slider-wrap {
  margin-top: 0 !important;
}

/* メインスライダー本体 */
.hero-main-slider {
  display: block !important;
  width: 100% !important;
  max-width: 1440px !important;
  height: 550px !important;
  margin: 0 auto !important;
  background: #ffffff;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* Swiper wrapper */
.hero-main-slider .swiper-wrapper {
  width: 100% !important;
  height: 100% !important;
}

/* 各スライド */
.hero-main-slider .swiper-slide {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  background: #ffffff;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* スライド上部のPR帯 */
.slide-top-label {
  position: relative;
  z-index: 5;
  width: 100% !important;
  height: 44px;
  min-height: 44px;
  flex: 0 0 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #389CDB;
  color: #ffffff;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-sizing: border-box !important;
}

/* 画像とHTML文字を重ねる表示エリア */
.hero-slide-visual {
  position: relative;
  width: 100% !important;
  height: calc(100% - 44px) !important;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* pictureを画像表示エリアとして扱う */
.hero-slide-visual picture {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}

/* メインスライド画像 */
.hero-slide-visual picture img,
.hero-main-slider .swiper-slide > img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}


/* =======================================
   スライド共通：コピー配置
======================================= */

/* コピー全体 */
.hero-slide-copy {
  position: absolute;
  left: clamp(40px, 7vw, 100px);
  top: clamp(36px, 6vw, 70px);
  z-index: 5;
  max-width: 52%;
  color: #333333;
  box-sizing: border-box;
}

/* メインコピー内span */
.hero-slide-main span {
  display: block;
}

/* サブコピー内span */
.hero-slide-sub span {
  display: block;
}

/* PCサブコピー配置 */
.hero-slide-sub {
  display: block;
}

/* サブコピー1行目 */
.hero-slide-sub .hero-sub-1 {
  display: block !important;
}

/* サブコピー2・3 */
.hero-slide-sub .hero-sub-2,
.hero-slide-sub .hero-sub-3 {
  display: inline-block !important;
}

/* サブコピー3 */
.hero-slide-sub .hero-sub-3 {
  margin-left: -20px;
}


/* =======================================
   1枚目：トップスライドコピー
======================================= */

/* メインコピー */
.top-slide .hero-slide-copy .hero-slide-main {
  color: #168de0 ;
  font-size: clamp(30px, 3.7vw, 54px);
  font-weight: 900 ;
  line-height: 1.08 ;
  letter-spacing: 0.04em ;
}

/* 黄色マーカー */
.top-slide .hero-slide-main .is-marker {
  display: inline-block;
  padding: 15px 1px 2px 0;
  background: linear-gradient(transparent 70%, #fff200 70%);
}

/* サブコピー */
.hero-main-slider .swiper-slide.top-slide .hero-slide-copy .hero-slide-sub {
  margin-top: 22px;
  color: #444444;
  font-size: clamp(18px, 1.9vw, 28px) !important;
  font-weight: 900;
  line-height: 1.55;
  letter-spacing: 0.3em;
}


/* =======================================
   1枚目：オレンジCTA
======================================= */

/* CTA本体 */
.top-slide .hero-slide-cta {
  position: absolute;
  left: clamp(40px, 7vw, 100px) ;
  right: auto ;
  bottom: clamp(28px, 5vw, 58px) ;
  width: min(340px, calc(100% - 48px)) ;
  max-width: 340px;
  min-height: 64px;
  margin-top: 0;
  padding: 10px 32px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-radius: 12px;
  background: linear-gradient(to top, #ED7B1E 0%, #FC9D1C 100%);
  color: #ffffff !important;
  text-decoration: none !important;
  box-shadow: 0 5px 0 #C97200;
  box-sizing: border-box;
  transform: none !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
/* CTA上部テキスト */
.top-slide .hero-slide-cta-lead {
  display: block;
  margin-bottom: 2px;
  color: #ffffff;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-align: center;
}

/* CTAメイン文字 */
.top-slide .hero-slide-cta strong {
  display: block;
  padding-right: 15px;
  color: #ffffff !important;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.3;
  letter-spacing: 0.04em;
  text-align: center;
}

/* 白丸矢印 */
.top-slide .hero-slide-cta-arrow {
  position: absolute;
  right: 65px;
  top: 64%;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #ffffff;
  transform: translateY(-50%);
  transition: transform 0.2s ease;
  will-change: transform;
}

/* 白丸矢印の中身 */
.top-slide .hero-slide-cta-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-top: 2px solid #ED7B1E;
  border-right: 2px solid #ED7B1E;
  transform: translate(-60%, -50%) rotate(45deg);
}

/* Hover */
.top-slide .hero-slide-cta:hover {
  color: #ffffff !important;
  filter: brightness(1.03);
  transform: translateY(1px);
  box-shadow: 0 4px 0 #C97200;
}

/* Hover時矢印 */
.top-slide .hero-slide-cta:hover .hero-slide-cta-arrow {
  transform: translateY(-50%) translateX(3px);
}


/* =======================================
   2枚目：個別指導スライド
======================================= */

/* コピー枠 */
.course-slide .hero-slide-copy {
  position: absolute;
  left: clamp(70px, 7vw, 110px);
  top: clamp(25px, 6vw, 35px);
  z-index: 6;
  width: clamp(390px, 33vw, 480px);
  padding: clamp(22px, 2.6vw, 30px) clamp(26px, 3vw, 34px) clamp(24px, 2.8vw, 32px);
  background: #389CDB;
  border: 4px solid #ffffff;
  border-radius: 18px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
  container-type: inline-size;
  --course-inner-width: 95%;
--course-line1-size: clamp(26px, 7.6cqw, 40px);
--course-line2-size: clamp(26px, 6.8cqw, 40px);
--course-line3-size: clamp(28px, 6.9cqw, 42px);
--course-line4-size: clamp(78px, 20.5cqw, 106px);
}

/* メインコピー全体 */
.course-slide .hero-slide-main {
  margin: 0;
  color: #ffffff;
  font-weight: 800;
  line-height: 1.32;
  letter-spacing: 0.04em;
}

/* 1行目 */
.course-slide .hero-slide-main span:first-child {
  display: block;
  width: var(--course-inner-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: #ffffff;
  font-size: var(--course-line1-size) !important;
  font-weight: 700;
  line-height: 1.35;
  text-align: center !important;
  white-space: nowrap !important;
  letter-spacing: 0 !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  transform: none !important;
}

/* 2行目 */
.course-slide .hero-slide-main .is-marker {
  display: block;
  width: var(--course-inner-width) !important;
  margin: 4px auto 0 !important;
  padding: 0;
  background: none;
  color: #fff200;
  font-size: var(--course-line2-size) !important;
  font-weight: 900;
  line-height: 1.35;
  text-align: center !important;
  white-space: nowrap !important;
  letter-spacing: 0 !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  transform: none !important;
}

/* 白い区切り線 */
.course-slide .hero-slide-main::after {
  content: "";
  display: block;
  width: var(--course-inner-width) !important;
  height: 3px;
  margin: clamp(12px, 1.5vw, 13px) auto clamp(12px, 1.5vw, 15px) !important;
  background: rgba(255, 255, 255, 0.9);
}

/* サブコピー全体 */
.course-slide .hero-slide-sub {
  width: var(--course-inner-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  color: #ffffff;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-align: center !important;
}

/* サブコピー1行目 */
.course-slide .hero-slide-sub span:first-child {
  display: block;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-bottom: 0;
  border-bottom: none;
  color: #ffffff;
  font-size: var(--course-line3-size) !important;
  font-weight: 900;
  line-height: 1.2;
  text-align: center !important;
  white-space: nowrap !important;
  letter-spacing: 0 !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  transform: none !important;
}

/* サブコピー2行目 */
.course-slide .hero-slide-sub span:last-child {
  display: block;
  width: 100% !important;
  margin-top: 4px;
  margin-left: auto !important;
  margin-right: auto !important;
  color: #fff200;
  font-size: var(--course-line4-size) !important;
  font-weight: 900;
  line-height: 1;
  text-align: center !important;
  white-space: nowrap !important;
  letter-spacing: 0 !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  transform: none !important;
}


/* =======================================
   2〜4枚目：白背景CTA共通
======================================= */

/* CTA本体 */
.course-slide .hero-slide-cta,
.tablet-slide .hero-slide-cta,
.season-slide .hero-slide-cta {
  position: absolute;
  left: clamp(70px, 7vw, 110px);
  bottom: clamp(32px, 5vw, 42px);
  z-index: 7;
  width: clamp(300px, 36vw, 320px);
  min-height: 58px;
  padding: 12px 24px 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.07);
  box-sizing: border-box;
  text-decoration: none !important;
  overflow: hidden;
  transition: background-color 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease, transform 0.28s ease;
}

/* CTA文字 */
.course-slide .hero-slide-cta strong,
.tablet-slide .hero-slide-cta strong,
.season-slide .hero-slide-cta strong {
  position: relative;
  z-index: 2;
  padding-left: 10px;
  font-size: clamp(18px, 2.1vw, 20px);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-align: center;
  white-space: nowrap;
  transition: color 0.28s ease, letter-spacing 0.28s ease;
}

/* CTA矢印 */
.course-slide .hero-slide-cta-arrow,
.tablet-slide .hero-slide-cta-arrow,
.season-slide .hero-slide-cta-arrow {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-left: 8px;
  padding: 0;
  background: transparent;
  border-radius: 0;
  flex: 0 0 auto;
  font-size: 0;
  line-height: 0;
  color: inherit;
  transform: translateX(0);
  transition: color 0.28s ease, transform 0.28s ease;
}

/* CTA矢印本体 */
.course-slide .hero-slide-cta-arrow::before,
.tablet-slide .hero-slide-cta-arrow::before,
.season-slide .hero-slide-cta-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 10%;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translate(-60%, -50%) rotate(45deg);
}

/* Hover */
.course-slide .hero-slide-cta:hover,
.tablet-slide .hero-slide-cta:hover,
.season-slide .hero-slide-cta:hover {
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
}

/* Hover時文字 */
.course-slide .hero-slide-cta:hover strong,
.tablet-slide .hero-slide-cta:hover strong,
.season-slide .hero-slide-cta:hover strong {
  letter-spacing: 0.04em;
}

/* Hover時矢印 */
.course-slide .hero-slide-cta:hover .hero-slide-cta-arrow,
.tablet-slide .hero-slide-cta:hover .hero-slide-cta-arrow,
.season-slide .hero-slide-cta:hover .hero-slide-cta-arrow {
  transform: translateX(4px);
}


/* =======================================
   2〜4枚目：CTAカラー
======================================= */

/* 2枚目：青 */
.course-slide .hero-slide-cta {
  border: 3px solid #389CDB;
  color: #389CDB !important;
}

.course-slide .hero-slide-cta strong,
.course-slide .hero-slide-cta-arrow {
  color: #389CDB !important;
}

/* 3枚目：緑 */
.tablet-slide .hero-slide-cta {
  border: 3px solid #20B177;
  color: #20B177 !important;
}

.tablet-slide .hero-slide-cta strong,
.tablet-slide .hero-slide-cta-arrow {
  color: #20B177 !important;
}

/* 4枚目：青 */
.season-slide .hero-slide-cta {
  border: 3px solid #389CDB;
  color: #389CDB !important;
}

.season-slide .hero-slide-cta strong,
.season-slide .hero-slide-cta-arrow {
  color: #389CDB !important;
}


/* =======================================
   3〜4枚目：CTA中央配置
======================================= */

/* CTAを下部中央に配置 */
.hero-main-slider .swiper-slide.tablet-slide .hero-slide-cta,
.hero-main-slider .swiper-slide.season-slide .hero-slide-cta {
  position: absolute;
  left: 50%;
  right: auto;
  top: auto;
  bottom: clamp(24px, 5vw, 32px);
  width: min(90%, 320px);
  margin: 0;
  z-index: 20;
  transform: translateX(-50%);
}

/* 中央配置CTAのHover */
.hero-main-slider .swiper-slide.tablet-slide .hero-slide-cta:hover,
.hero-main-slider .swiper-slide.season-slide .hero-slide-cta:hover {
  transform: translateX(-50%) translateY(0) !important;
}


/* =======================================
   スライダー左右矢印
======================================= */

/* 左右矢印 */
.hero-main-slider .swiper-button-prev,
.hero-main-slider .swiper-button-next {
  color: #ffffff;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

/* 左右矢印サイズ */
.hero-main-slider .swiper-button-prev::after,
.hero-main-slider .swiper-button-next::after {
  font-size: 34px;
  font-weight: bold;
}


/* =======================================
 タブレット：1枚目のコピー
======================================= */

@media (min-width: 768px) and (max-width: 1091px) {
	.hero-slide-visual .hero-slide-copy {
		margin-left: 0;
	}
	.hero-slide-main span {
				font-size: 42px ;
	}
}

@media (min-width: 601px) and (max-width: 767px) {
		.top-slide .hero-slide-visual .hero-slide-copy {
		margin-left: 2em;
	}
}


/* =======================================
   タブレット：2枚目スライド：中間幅調整
   768px〜1180px
======================================= */

@media (min-width: 768px) and (max-width: 1180px) {

  /* コピー枠 */
  .course-slide .hero-slide-copy {
    width: clamp(390px, 38vw, 440px);
    padding: 22px 24px 24px !important;

    --course-inner-width: 96%;
    --course-line1-size: clamp(24px, 7.2cqw, 34px);
    --course-line2-size: clamp(24px, 6.8cqw, 34px);
    --course-line3-size: clamp(28px, 7.2cqw, 38px);
    --course-line4-size: clamp(72px, 20.5cqw, 96px);
  }

  /* 1行目 */
  .course-slide .hero-slide-main span:first-child {
    line-height: 1.3 !important;
  }

  /* 2行目 */
  .course-slide .hero-slide-main .is-marker {
    line-height: 1.3 !important;
  }

  /* 3行目 */
  .course-slide .hero-slide-sub span:first-child {
    line-height: 1.25 !important;
  }

  /* 4行目：個別指導 */
  .course-slide .hero-slide-sub span:last-child {
    line-height: 0.98 !important;
  }
	
	.hero-slide-visual picture img, .hero-main-slider .swiper-slide > img {
		width: 107% !important;
	}
}

/* =======================================
   タブレット：3枚目4枚目スライドの画像調整
======================================= */
@media (min-width: 420px) and (max-width: 767px) {

  .tablet-slide .hero-slide-visual,
  .season-slide .hero-slide-visual {
    background: #ffffff;
  }
  .tablet-slide .hero-slide-visual picture,
  .season-slide .hero-slide-visual picture {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #ffffff;
  }
  .tablet-slide .hero-slide-visual picture img,
  .season-slide .hero-slide-visual picture img {
    position: absolute !important;
    left: 50% !important;
    top: 44% !important;
    width: 180% !important;
    max-width: none !important;
    height: auto !important;
    object-fit: initial !important;
    object-position: initial !important;
    transform: translate(-50%, -50%) !important;
  }
}
/* =======================================
   スマホ：メインスライダー全体
======================================= */

@media (max-width: 767px) {

  /* スライド上部帯 */
  .slide-top-label {
    height: 30px !important;
    min-height: 30px !important;
    flex: 0 0 30px !important;
    font-size: 14px;
    line-height: 1;
  }

  /* 画像とHTML文字を重ねる表示エリア */
  .hero-slide-visual {
    height: calc(100% - 50px) !important;
  }

  /* メインスライダー本体 */
  .hero-main-slider {
    height: 520px !important;
  }

  /* スマホでは左右矢印を非表示 */
  .hero-main-slider .swiper-button-prev,
  .hero-main-slider .swiper-button-next {
    display: none !important;
  }


  /* =======================================
     スマホ：1枚目スライドコピー
======================================= */

  /* コピー全体 */
  .hero-slide-copy {
    left: 24px;
    right: 24px;
    top: 28px;
    max-width: none;
  }

  /* メインコピー */
  .top-slide .hero-slide-main {
    font-size: 28px;
    line-height: 1;
  }

  /* サブコピー */
  .top-slide .hero-slide-sub {
    margin-top: 22px;
    font-size: 15px;
    line-height: 1.95;
  }

  /* サブコピー1行目 */
  .top-slide .hero-slide-sub span:first-child {
    padding-bottom: 0;
  }

  /* サブコピー共通 */
  .hero-slide-sub .hero-sub {
    display: block !important;
  }

  /* サブコピー3 */
  .hero-slide-sub .hero-sub-3 {
    margin-left: 0 !important;
  }


  /* =======================================
     スマホ：1枚目オレンジCTA
  ======================================= */

  /* CTA本体 */
  .hero-main-slider .swiper-slide.top-slide .hero-slide-cta {
  left: 0;
	right: 0;
		margin: 0 auto;
	}

  /* Hover */
  .top-slide .hero-slide-cta:hover {
    transform: translateX(-50%) translateY(1px);
  }

  /* Active */
  .top-slide .hero-slide-cta:active {
    transform: translateX(-50%) translateY(2px);
  }

  /* 白丸矢印 */
  .top-slide .hero-slide-cta-arrow {
    right: 59px;
    top: 65%;
    width: 20px;
    height: 20px;
    padding-left: 2px;
    text-decoration: none !important;
    transition: transform 0.2s ease, color 0.2s ease;
  }


  /* =======================================
     スマホ：スライドCTA共通
  ======================================= */

  /* CTA本体共通 */
  .hero-slide-cta,
  .hero-slide-cta-only {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 24px;
    width: auto;
    min-height: 76px;
    margin-top: 0;
    padding: 10px 58px 12px 22px;
    z-index: 20;
  }

  /* CTA上部テキスト */
  .hero-slide-cta-lead {
    font-size: 15px;
    text-align: center;
  }

  /* CTAメイン文字 */
  .hero-slide-cta strong {
    font-size: 30px;
    text-align: center;
  }


  /* =======================================
     スマホ：2枚目CTA
  ======================================= */

  /* CTAを中央配置 */
  .course-slide .hero-slide-cta {
    position: absolute;
    left: 50%;
    right: auto;
    top: auto;
    bottom: clamp(24px, 5vw, 32px);
    width: min(90%, 320px);
    margin: 0;
    z-index: 20;
    transform: translateX(-50%);
  }


  /* =======================================
     スマホ：2枚目コピー枠
  ======================================= */

  /* 青いコピー枠 */
  .course-slide .hero-slide-copy {
    left: 50%;
    top: 3%;
    width: calc(100% - 44px);
    max-width: 340px !important;
    padding: 20px 18px 20px !important;
    border: 4px solid #ffffff;
    border-radius: 18px;
    box-sizing: border-box;
    transform: translateX(-50%);
    container-type: normal;
    --course-inner-width: 100%;
  }

  /* メインコピー全体 */
  .course-slide .hero-slide-main {
    width: 100%;
    margin: 0;
    text-align: center;
  }

  /* メインコピー1行目 */
  .course-slide .hero-slide-main span:first-child {
    width: 100% !important;
    margin: 0 auto !important;
    font-size: 21px !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    letter-spacing: 0.02em !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  /* メインコピー2行目 */
  .course-slide .hero-slide-main .is-marker {
    width: 100% !important;
    margin: 4px auto 0 !important;
    font-size: 21px !important;
    font-weight: 900 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  /* 白い区切り線 */
  .course-slide .hero-slide-main::after {
    width: 100% !important;
    height: 2px !important;
    margin: 10px auto 10px !important;
  }

  /* サブコピー全体 */
  .course-slide .hero-slide-sub {
    width: 100% !important;
    margin: 0 auto !important;
    text-align: center !important;
  }

  /* サブコピー1行目 */
  .course-slide .hero-slide-sub span:first-child {
    width: 100% !important;
    font-size: 21px !important;
    font-weight: 900 !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  /* サブコピー2行目 */
  .course-slide .hero-slide-sub span:last-child {
    width: 100% !important;
    margin-top: 4px !important;
    font-size: 56px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
  }
}











/* ====================================================================================================================================================*/












/* =======================================
   ファーストビュー下：バナーエリア
   SWELLブロック版
======================================= */

.hero-slider-wrap,
.hero-main-slider,
.hero-banner-area {
  margin-bottom: 0 !important;
}

.hero-banner-area {
  margin-top: 0 !important;
}

/* バナーエリア全体：既存サムネ背景を流用 */
.hero-banner-area {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);

  background: #D6EFFF;
  padding: 30px 20px;
  border-top: solid 2px #ffffff;

  box-sizing: border-box;
}

/* SWELLグループ内側 */
.hero-banner-area > .wp-block-group__inner-container {
  width: min(100%, 1120px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* バナー2カラム */
.hero-banner-inner {
  width: 100%;
  margin: 0 auto;
  gap: 24px;
  box-sizing: border-box;
}

/* SWELLカラム調整 */
.hero-banner-inner.wp-block-columns {
  display: flex;
  align-items: stretch;
  justify-content: center;
}

/* カラム内の余白補正 */
.hero-banner-inner .wp-block-column {
  margin: 0;
}

/* バナー画像ブロック */
.hero-bottom-banner {
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 3px 0 rgba(0, 0, 0, 0.08);

  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    opacity 0.2s ease;
}

/* バナー画像 */
.hero-bottom-banner img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
}

/* ホバー */
.hero-bottom-banner:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 0 rgba(0, 0, 0, 0.08);
  opacity: 0.92;
}

/* =======================================
   ファーストビュー下：バナーエリア
   タブレット版
======================================= */
/* タブレットでの横並び縦並び調整*/
@media (min-width: 460px) and (max-width: 781px) {

	  .hero-banner-inner.wp-block-columns {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap !important;
    justify-content: center;
    align-items: stretch;
    gap: 0.8em !important;
    width: min(100%, 620px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}




/* ====================================================================================================================================================*/






/* =======================================
教室一覧・対象学年セクション
======================================= */

/* セクション全体 */
.school-info-strip {
  width: 100%;
  padding: 88px 20px 16px;
  box-sizing: border-box;
}

/* セクション内側 */
.school-info-inner {
  max-width: 920px;
  margin: -20px auto 10px;
}

/* ブロック間の余白 */
.info-block + .info-block {
  margin-top: 34px;
}

/* 左右線付き見出し */
.section-title-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  color: #555555;
  font-weight: 800;
  font-size: 24px;
  line-height: 1;
}

/* 左右線付き見出しの線 */
.section-title-line::before,
.section-title-line::after {
  content: "";
  display: block;
  width: 314px;
  height: 1px;
  background: #d8d8d8;
}

/* 見出しテキスト */
.section-title-line span {
  white-space: nowrap;
}

/* 教室ボタン一覧 */
.school-buttons {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 26px;
  flex-wrap: wrap;
}

/* 教室ボタン */
.school-btn {
  min-width: 230px;
  padding: 9px 28px;
  border: 1.5px solid #2297e5;
  border-radius: 999px;
  background: #ffffff;
  color: #555555 !important;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition:
    background 0.2s ease,
    transform 0.2s ease;
}

/* 教室ボタン内の強調文字 */
.school-btn strong {
  color: #168de0;
  font-weight: 800;
}

/* 教室ボタン：ホバー時 */
.school-btn:hover {
  background: #eaf7ff;
  transform: translateY(-1px);
}

/* 対象学年タグ一覧 */
.grade-tags {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 26px;
  flex-wrap: wrap;
}

/* 対象学年タグ */
.grade-tags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 82px;
  padding: 7px 18px;
  border-radius: 999px;
  background: #d9d9d9;
  color: #444444;
  font-size: 22px;
  line-height: 1;
}


/* =======================================
スマホ：教室一覧・対象学年セクション
======================================= */
  /* 教室一覧セクション余白 */
	@media (max-width: 767px) {

  .school-info-strip {
    padding: 66px 18px 2px;
  }

  /* 教室一覧セクション内側 */
  .school-info-inner {
    max-width: 100%;
  }

  /* 左右線付き見出し */
  .section-title-line {
    gap: 14px;
    font-size: 20px;
  }

  /* 左右線の長さ */
  .section-title-line::before,
  .section-title-line::after {
    width: 120px;
  }

  /* 教室ボタン一覧 */
  .school-buttons {
    gap: 12px;
    margin-top: 22px;
  }

  /* 教室ボタン */
  .school-btn {
    width: 100%;
    max-width: 300px;
    min-width: auto;
    font-size: 18px;
    padding: 10px 20px;
  }

  /* 対象学年タグ一覧 */
  .grade-tags {
    gap: 8px;
    margin-top: 22px;
  }

  /* 対象学年タグ */
  .grade-tags span {
    min-width: auto;
    padding: 7px 13px;
    font-size: 13px;
  }
}



/* ====================================================================================================================================================*/


/* =======================================
  トップページ：お知らせセクション
=======================================*/

/* セクション全体 */
.news-section {
  max-width: 780px;
  margin: 3em auto 6em;
  padding: 20px 28px 26px;
  background: #ffffff;
  border: 2px solid #d6d6d6;
  border-radius: 12px;
  box-sizing: border-box;
  text-align: center;
  overflow: hidden;
}

/* タイトル */
.news-section h2,
.news-section h2::before,
.news-section h2::after,
.news-section::before,
.news-section::after {
  background: transparent;
  border: none;
}

.news-section h2 {
  color: #168de0;
  font-size: 24px;
  margin-bottom: 0;
  padding-top: 8px;
}


/* =======================================
  投稿リスト全体
======================================= */

.news-section .p-postList.-type-simple {
  border-top: solid 2px #c7c7c780;
}


/* 投稿1件横線を少し短く見せる*/

.news-section .p-postList__item {
  padding: 0 42px;
  transition: background-color 0.2s ease;
}


/* =======================================
  投稿リンク
=======================================*/

.news-section .p-postList__link {
  padding: 1.15em 0;
}

.news-section .p-postList__body {
  display: grid !important;

  /* 日付列 + タイトル列 */
  grid-template-columns: 120px minmax(0, 560px);

  /* 全体中央 */
  justify-content: center;
  align-items: center;

  /* 幅制御 */
  max-width: 100%;
  margin: 0 auto;
	padding-left: 5.5em;

}

/* 日付 */
.news-section .p-postList__times {
  text-align: left;
  white-space: nowrap;
}

/* タイトル */
.news-section .p-postList__title {
  text-align: left;
  white-space: nowrap;
}

.news-section .p-postList__title a {
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
}

.news-section .p-postList__title a:hover {
  color: #389CDB;
}



/* =======================================
  一覧リンク
======================================= */

.news-section .wp-block-buttons {
  display: flex;
  justify-content: center;
  margin-top: 1.4em;
}

.news-section .wp-block-button__link {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #0f4f8f !important;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: underline;
}

.news-section .wp-block-button__link:hover {
  background: transparent !important;
  color: #389CDB !important;
  opacity: 1;
}


/* =======================================
  お知らせ：スマホ
======================================= */

@media (max-width: 767px) {

  .news-section {
    margin: 2.5em auto 5em;
    padding: 18px 16px 22px;
  }

  .news-section .p-postList__item {
    padding: 0;
  }

  .news-section .p-postList__link {
    padding: 0.9em 0;
  }

  .news-section .p-postList__body {
    display: block !important;
  }

  .news-section .p-postList__times {
    margin-bottom: 0.25em;
    white-space: normal;
  }

  .news-section .p-postList__title {
    font-size: 0.92rem;
  }

  .news-section .p-postList__title a {
    white-space: normal;
  }
	.news-section .p-postList__body {
	padding-left: 0em;

}
}


/* ====================================================================================================================================================*/


/* =======================================
  PC：青帯の平均点以下でも大丈夫
======================================= */

/* セクション全体 */
.top-message-section {
  width: 100%;
  background: #ffffff;
  padding: 0;
}

/* 青帯 */
.top-message-band {
  width: 100vw;
  margin-top: -10px;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #389CDB;
  padding: 25px 20px 35px;
  text-align: center;
  box-sizing: border-box;
}

/* 青帯テキスト */
.top-message-band p {
  margin: 0;
  color: #ffffff;
  font-size: 32px;
  font-weight: 900;
  line-height: 1.55;
  letter-spacing: 0.06em;
}

/* 青帯テキスト内の黄色強調 */
.top-message-band p span {
  color: #fff200;
}

/* 青帯下の三角 */
.top-message-arrow {
  width: 0;
  height: 0;
  margin: 0 auto 10px;
  border-left: 54px solid transparent;
  border-right: 54px solid transparent;
  border-top: 22px solid #389CDB;
}



/* =======================================
スマホ：青帯メッセージセクション
======================================= */
	@media (max-width: 767px) {

  /* 青帯余白 */
  .top-message-band {
    padding: 28px 18px 26px;
		margin-top: -40px;
  }

  /* 青帯テキスト */
  .top-message-band p {
    font-size: 26px;
    line-height: 1.55;
  }

  /* 青帯下三角 */
  .top-message-arrow {
    margin-bottom: 28px;
    border-left-width: 38px;
    border-right-width: 38px;
    border-top-width: 18px;
		margin-bottom: -20px;
  }
}




/* ====================================================================================================================================================*/



/* =======================================
  PC：共通CTAセクション
======================================= */

/* CTAセクション全体 余白調整 */
.common-cta-section {
  width: 100%;
  background: #ffffff;
  padding: 10px 20px 60px;
  box-sizing: border-box;
}

/* CTAボックス */
.common-cta-box {
  width: 100%;
  max-width: 860px;
  margin: 42px auto 0;
  padding: 28px 38px 26px;
  background: #ecf6fc;
  border: 2px solid #d9e3e8;
  border-radius: 18px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
  text-align: center;
  box-sizing: border-box;
}

/*++++ CTAリード文 */
.common-cta-lead {
  margin: 0 0 20px;
  color: #4f4f4f;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.7;
  text-align: center;
}


/* CTA見出し：お気軽にご相談ください！h2リセット込み */
.common-cta-title {
  margin-bottom: 20px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  color: #4b4b4b;
  background: transparent !important;

  font-size: 32px !important;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.03em;
  text-align: center;

  border: none !important;
  border-left: none !important;
  border-right: none !important;
  border-top: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

.common-cta-title,
.common-cta-title * {
  font-family: "IBM Plex Sans JP", sans-serif !important;
}



/* 黄色マーカーのまとまり */
.common-cta-title .title-text-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  text-align: center;
}

/* 黄色マーカー文字 */
.common-cta-title .title-text {
  display: inline-block;
  color: #4b4b4b !important;
  font-weight: 900;
  line-height: 1.25;
  background: linear-gradient(transparent 60%, #fff200 60%) !important;
}

/* PCでは中央の余白を詰める */
.common-cta-title .title-text:first-child {
  padding: 0 1px 0 6px;
}

.common-cta-title .title-text:last-child {
  padding: 0 6px 0 1px;
}

/* PC用スペースはほぼ不要 */
.pc-space {
  display: inline-block;
  width: 0;
}

/* PCでは改行なし */
br.br-sp {
  display: none !important;
}

/* 左右の斜線 */
.common-cta-title .title-slash {
  display: inline-block;
  width: 3px;
  height: 38px;
  background: #4b4b4b;
  border-radius: 999px;
  flex: 0 0 auto;
  transform-origin: center center;
}

.common-cta-title .title-slash-left {
  transform: rotate(-15deg);
}

.common-cta-title .title-slash-right {
  transform: rotate(15deg);
}

/* CTAボタン配置 */
.common-cta-buttons {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 22px;
  margin-top: 16px;
}

/* CTA内SVGアイコン共通 */
.cta-svg-icon {
  width: 34px;
  height: 34px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* 無料体験ボタン */
.common-trial-btn {
  width: 340px;
  height: 128px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 18px 24px;
  border-radius: 10px;
  background: linear-gradient(to top, #ED7B1E 0%, #FC9D1C 100%);
  color: #ffffff !important;
  text-decoration: none !important;
  box-shadow: 0 4px 0 #C97200;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    filter 0.15s ease;
  box-sizing: border-box;
}

/* 無料体験ボタン：ホバー時 */
.common-trial-btn:hover {
  color: #ffffff !important;
  filter: brightness(1.03);
  transform: translateY(1px);
  box-shadow: 0 3px 0 #C97200;
}

/* 無料体験ボタン：クリック時 */
.common-trial-btn:active {
  transform: translateY(4px);
  box-shadow: 0 0 0 #C97200;
}

/* 無料体験ボタン内アイコン */
.trial-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  flex: 0 0 auto;
}

/* 無料体験ボタン内SVG */
.common-trial-btn .cta-svg-icon {
  width: 38px;
  height: 38px;
  stroke-width: 2.5;
}

/* 無料体験ボタンメインテキスト */
.trial-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
	  font-size: 28px;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #ffffff;
  line-height: 1;
}


/* 無料体験ボタンサブ詳しくはこちら */
.trial-text small {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.04em;
	color: #ffffff;
  opacity:1.0;
	margin: 0px auto;
	padding-top: 10px;
}

/* 「詳しくはこちら」の右に→を追加 */
.trial-text small::after {
  content: "›";
  display: inline-block;
  margin-left: 5px;
  font-size: 1.4em;
  font-weight: 900;
  line-height: 1;
  transform: translateY(1px);
}

/* 電話カード */
.common-tel-card {
  width: 340px;
  min-height: 112px;
  padding: 12px 20px 10px;
  border: 2px solid #1DB24A;
  border-radius: 10px;
  background: #ffffff;
  color: #20A84A;
  text-align: center;
  box-sizing: border-box;
}

/* 電話カード見出し */
.tel-card-title {
  margin: 0;
  color: #22A94B;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.3;
}

/* 電話カード区切り線 */
.tel-divider {
  width: 99%;
  height: 1px;
  margin: 7px auto 5px;
  background: #75c98a;
}

/* 電話番号 */
.tel-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #20A84A !important;
  text-decoration: none !important;
  font-size: 31px;
  font-weight: 900;
  letter-spacing: 0.01em;
  line-height: 1.1;
  white-space: nowrap;
}

/* 電話アイコン */
.tel-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #20A84A;
  flex: 0 0 auto;
	padding-bottom: 6px;
}

/* 電話番号内SVG */
.tel-number .cta-svg-icon {
  width: 28px;
  height: 28px;
  stroke-width: 2;
  margin-top: 6px;
}

/* 電話受付情報 */
.tel-info {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 7px;
  padding: 4px 10px;
  border-radius: 4px;
  background: #e6f2e9;
  color: #4a4a4a;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
}

/* 電話受付情報の校舎ラベル */
.tel-info span {
  padding: 3px 8px;
  border-radius: 999px;
  background: #2bbf59;
  color: #ffffff;
  font-size: 11px;
  line-height: 1;
	font-weight: 500;
}

/* 電話受付情報の強調 */
.tel-info strong {
  font-weight:500;
  color: #4a4a4a;
}

/* PCでは表示専用、スマホではタップ発信用に切り替え */

.pc-tel-number {
  display: inline-flex;
}

.sp-tel-number {
  display: none !important;
}


/* CTA下リンク */
.flow-link {
  display: inline-block;
  margin-top: 20px;
  color: #2d7fd3 !important;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none !important;
  text-align: center;
}

.flow-link::after {
  content: "›";
  display: inline-block;
	 margin-left: 3px;
  font-size: 1.4em;
  font-weight: 500;
  line-height: 1;
}

.flow-link::after {
  content: "›";
  display: inline-block;
  margin-left: 4px;
  transition: transform 0.25s ease;
}

.flow-link:hover::after {
  transform: translateX(4px);
}

/* =======================================
  タブレット：共通CTAセクション
======================================= */

@media (min-width: 768px) and (max-width: 875px) {
	/* 電話カード */
.common-tel-card {
  width: 50%;
  min-height: 112px;
  padding: 12px 20px 10px;
  border-radius: 10px;
}
	/* 電話番号 */
.tel-number {
  gap: 8px;
  font-size: 24px;
  font-weight: 900;
}

/* 電話アイコン */
.tel-icon {
 width: 22px;
}
	
	/* 電話受付情報 */
.tel-info {
  margin-top: 0px;
  padding: 8px 10px;
}
	.tel-info {
  flex-wrap: wrap;
  justify-content: center;
  font-size: 12px;
	white-space: nowrap;
  }

	
		/* オレンジ無料体験ボタン */
	.common-trial-btn {
  width: 50% ;
  height: 151px;
  gap: 11px;
  padding: 18px 24px;
  border-radius: 10px;
  background: linear-gradient(to top, #ED7B1E 0%, #FC9D1C 100%);
  color: #ffffff !important;
  text-decoration: none !important;
  box-shadow: 0 4px 0 #C97200;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    filter 0.15s ease;
  box-sizing: border-box;
}
	/* 無料体験ボタンメインテキスト */
.trial-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
	font-size: 21px;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #ffffff;
  line-height: 1;
}
}


/* =======================================
  スマホ：共通CTAセクション
======================================= */
@media (max-width: 767px) {


/*電話番号：PC表示 / スマホ発信用切り替え */
  /* PC用電話番号はスマホで非表示 */
  .pc-tel-number {
    display: none !important;
  }

  /* スマホ用電話リンクを表示 */
  .sp-tel-number {
    display: inline-flex !important;
  }

  /* CTAセクション余白 */
  .common-cta-section {
    padding: 0px 0px 30px;
  }

  /* CTAボックス */
  .common-cta-box {
    padding: 24px 18px 22px;
    border-radius: 16px;
  }

  
  /* CTA見出し：スマホ */
  .common-cta-title {
    font-size: 29px !important;
    gap: 18px;
    align-items: center;
		margin: 0 auto !important;
		padding-bottom: 15px !important;
  }

  /* スマホでは文字部分を縦に扱う */
  .common-cta-title .title-text-wrap {
    display: inline-block !important;
    text-align: center;
  }

  /* スマホでは改行を有効化 */
  br.br-sp {
    display: block !important;
  }

  /* PC用スペースは消す */
  .pc-space {
    display: none !important;
  }

  /* 黄色マーカー文字 */
  .common-cta-title .title-text {
    display: inline-block;
    padding: 0 6px !important;
    line-height: 1.18;
    white-space: nowrap;
  }

  /* 1行目と2行目の間隔 */
  .common-cta-title .title-text:first-child {
    margin-bottom: 10px;
  }

  /* 斜線 */
  .common-cta-title .title-slash {
    width: 2px;
    height: 62px;
  }
	

  /* CTAリード文 */
  .common-cta-lead {
    font-size: 14px;
    line-height: 1.7;
  }

  /* CTAボタン縦並び */
  .common-cta-buttons {
    flex-direction: column;
    gap: 16px;
  }

  /* CTAボタンと電話カードを横幅いっぱいに */
  .common-trial-btn,
  .common-tel-card {
    width: 100%;
  }
	
	.common-trial-btn {
		height: 120px;
		padding-left: 13px;
	}

  /* 無料体験ボタン内SVG */
  .common-trial-btn .cta-svg-icon {
    width: 34px;
    height: 34px;
  }

  /* 無料体験ボタンメイン文字 */
  .trial-text strong {
    font-size: 26px;
		font-weight: 900;
  }
	.trial-text small {
		font-size: 14px;
		padding-left: 1px;
	}

  /* 電話番号 */
  .tel-number {
    font-size: 27px;
		margin-top: 6px;
  }
	.tel-divider {
		width: 98%;
	}

  /* 電話番号SVG */
  .tel-number .cta-svg-icon {
    width: 22px;
    height: 22px;
    margin-top: 4px;
  }

  /* 電話受付情報 */
  .tel-info {
    flex-wrap: wrap;
    justify-content: center;
    font-size: 12px;
		white-space: nowrap;
  }

  /* CTA下リンク */
  .flow-link {
    font-size: 14px;
  }
}

/* =======================================
   共通CTA：電話カード
   713px〜767pxだけ表示崩れ防止
======================================= */

@media (min-width: 713px) and (max-width: 767px) {

  /* 電話カード */
  .common-tel-card {
    text-align: center;
  }


  /* 受付情報を次の行に落とす */
  .common-tel-card .tel-info {
    display: flex !important;
    width: fit-content;
    margin: 8px auto 0 !important;
    justify-content: center;
  }
	
	  /* CTAボタンと電話カードを横幅いっぱいに */
  .common-trial-btn,
  .common-tel-card {
    width: 80%;
		margin: 5px auto;
  }
}




/* ====================================================================================================================================================*/








/* =======================================
   PC：お悩みセクション
=======================================*/

/* セクション全体 */
.worry-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 56px 20px 64px;
  background: #D6EFFF;
  box-sizing: border-box;
}

/* 内側幅 */
.worry-section-inner {
  width: min(100%, 1120px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* メイン見出し：こんなお悩みありませんか？ */
h2.worry-main-title {
  display: block;
  margin: 0 0 32px;
  padding: 0;
  color: #444444;
  background: transparent;
  font-size: 34px;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: 0.04em;
  text-align: center;
  border: none;
  box-shadow: none;
}

/* SWELLのh2装飾を消す */
h2.worry-main-title::before,
h2.worry-main-title::after {
  display: none;
  content: none;
}


/* =======================================
   上部：悩みカード2枚
=======================================*/

/* 2カラム全体 */
.worry-card-grid {
  width: min(100%, 1040px);
	margin: 0 auto 58px;
  gap: 34px;
  box-sizing: border-box;
}

/* SWELLカラム調整 */
.worry-card-grid.wp-block-columns {
  display: flex;
  align-items: stretch;
  justify-content: center;
}

/* 悩みカード共通 */
.worry-card {
  height: 100%;
  padding: 28px 34px 30px;
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  box-sizing: border-box;
}

/* カード内お悩み見出し */
.worry-card h3 {
  margin: 0 0 10px;
  padding: 0 0 18px;
  color: #444444;
  background: transparent;
  font-size: 25px;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
  border: none;
  border-bottom: 2px solid #bbbbbb;
  box-shadow: none;
}

/* 右カード見出しだけ赤 */
.worry-card-red h3 {
  color: #cc0000;
}

/* SWELL見出し装飾を消す */
.worry-card h3::before,
.worry-card h3::after {
  display: none;
  content: none;
}

/* リスト全体 */
.worry-card ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* リスト項目 */
.worry-card li {
  position: relative;
  margin: 0;
  padding: 14px 0 14px 34px;
  color: #333333;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
	letter-spacing: 0.03em;

  border-bottom: 1px solid #bbbbbb;
}

/* チェック丸 */
.worry-card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #ffffff;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}

/* 左カードのチェック色 */
.worry-card-blue li::before {
  background: #5A7EEA;
}

/* 右カードのチェック色 */
.worry-card-red li::before {
  background: #cc0000;
}


/* ======================================
  「その悩み」青いメッセージボックス
=======================================*/

.worry-message-box {
  width: min(100%, 1040px);
  margin: 38px auto 32px;
  padding: 34px 48px 36px;
  background: #389CDB;
  border: 3px solid #ffffff;
  border-radius: 20px;
  box-sizing: border-box;
  text-align: center;
}

/* 青ボックス見出し */
.worry-message-box h2 {
  margin: 0 0 24px;
  padding: 0 0 24px;
  color: #ffffff;
  background: transparent;
  font-size: 32px;
  font-weight: 900;
  line-height: 1.0;
  letter-spacing: 0.05em;
  text-align: center;
  border: none;
  border-bottom: 2px solid #ffffff;
  box-shadow: none;
}

/* SWELL見出し装飾を消す */
.worry-message-box h2::before,
.worry-message-box h2::after {
  display: none;
  content: none;
}

/* 青ボックス本文 */
.worry-message-box p {
  margin: 0;
  color: #ffffff;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: center;
}

/* 本文内のspanを黄色に */
.worry-message-box span {
  color: #fff200;
  font-weight: 900;
}


/* =======================================
   下部：白い説明ボックス
=======================================*/

.worry-solution-box {
  width: min(100%, 1040px);
  margin: 42px auto 10px;
  padding: 34px 48px 36px;

  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);

  box-sizing: border-box;
  text-align: center;
}

/* 白ボックス見出し */
.worry-solution-box h2 {
  margin: 0 0 24px;
  padding: 0 0 18px;
  color: #389CDB;
  background: transparent;
  font-size: 34px;
  font-weight: 900;
  line-height: 1.45;
  letter-spacing: 0.04em;
  text-align: center;
  border: none;
  border-bottom: 3px solid #389CDB;
  box-shadow: none;
}

/* SWELL見出し装飾を消す */
.worry-solution-box h2::before,
.worry-solution-box h2::after {
  display: none;
  content: none;
}

/* 白ボックス本文 */
.worry-solution-box p {
  margin: 0;

  color: #444444;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.9;
  letter-spacing: 0.03em;
  text-align: center;
}

/* =======================================
   スマホ：お悩みセクション
=======================================*/

@media (max-width: 767px) {
	
  /* お悩みセクション余白 */
  .worry-section {
    padding: 36px 20px 50px;
  }

  /* お悩みセクション内側 */
  .worry-section-inner {
    max-width: 100%;
  }

  /* お悩みタイトル */
  h2.worry-main-title {
    font-size: 24px !important;
    margin-bottom: 26px !important;
  }

  /* お悩みカード */
  .worry-card {
    max-width: 100%;
    padding: 22px 22px 20px;
  }

  /* お悩みカード見出し */
  .worry-card h3 {
    font-size: 21px !important;
		padding-bottom:14px;
		margin-bottom: 2px;
  }

  /* お悩みリスト */
  .worry-card li {
    font-size: 16px;
    padding-left: 27px;
		letter-spacing: 0.02em;
  }
	
 /* お悩みチェックマーク */
	.worry-card li::before {
		width:16px;
		height:16px;
	}

  /* 青いメッセージボックス */
  .worry-message-box {
    padding: 22px 22px 24px;
		margin-top: 26px;
  }

  /* 青いメッセージ見出し */
  .worry-message-box h2 {
    font-size: 21px;
    line-height: 1.5;
		padding-bottom: 16px;
		margin-bottom: 16px;
		display: block;
		white-space: nowrap;
		font-weight:900;
  }

  /* 青いメッセージ本文 */
  .worry-message-box p {
    font-size: 16px;
    line-height: 1.5;
		display: block;
		font-weight: 500;
  }
	 /* 本文一部を黄色に変更 */
	.worry-message-box span {
		font-size: 23px;
	}

  /* 白い解決メッセージボックス */
  .worry-solution-box {
    padding: 24px 22px 24px;
		margin-top: -6px;
  }

  /* 白い解決メッセージ見出し */
  .worry-solution-box h2 {
    font-size: 28px !important;
		margin-bottom: 16px;
		
  }

  /* 白い解決メッセージ本文 */
  .worry-solution-box p {
    font-size: 16px;
    line-height: 1.8;
		text-align: center;		
		
  }
	
	 /* 白い解決メッセージ本文左揃え */

 .worry-section .worry-solution-box p {
	 	font-weight: 500;
}
}





/* ====================================================================================================================================================*/



/* =======================================
 PC：そのためにHandsがやっていること
========================================= */
/*そのために、handsがの余白 */
.usp-section {
	padding-top: 35px !important;
}

/* USP見出し */
.hands-usp-title {
  position: relative;
  margin: 0 0 20px !important;
  padding: 0;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #ffffff !important;
  font-family: "IBM Plex Sans JP", sans-serif !important;
  font-size: 36px !important;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
}

/* SWELL見出し装飾を消す */
.hands-usp-title::before,
.hands-usp-title::after {
  display: none !important;
  content: none !important;
}

/* 文字のまとまり */
.hands-usp-title-inner {
  position: relative;
  display: inline-block;
  padding: 0 58px;
}

/* スラッシュを文字ではなく線で作る */
.hands-usp-title-inner::before,
.hands-usp-title-inner::after {
  content: "";
  position: absolute;
  top: 70%;
  width: 3px;
  height: 50px;
  background: #ffffff;
  border-radius: 999px;
  transform-origin: center;
}

/* 左スラッシュ */
.hands-usp-title-inner::before {
  left: 28px ;
  transform: translateY(-50%) rotate(-28deg);
}

/* 右スラッシュ */
.hands-usp-title-inner::after {
  right: 28px;
  transform: translateY(-50%) rotate(28deg);
}

.hands-usp p {
	font-size: 17px;
	letter-spacing: 0.03em;
}


.hands-usp {
	border-radius: 30px;
  padding: 38px !important;
}

/* USPカード：その1/その2ラベル */
p.usp-number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 86px;
  margin: 0 auto 14px !important;
  padding: 5px 18px;
  border-radius: 999px;
  background: #389CDB;
  color: #ffffff !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1.2;
  letter-spacing: 0.04em;
}



/* =======================================
 スマホ： そのためにHandsがやっていること
========================================= */
@media (max-width: 767px) {

/* 上部余白調整 */
	.usp-section {
		padding-top: 10px !important;
	}
	
/* handsが行っていること*/
	.usp-section h2 {
		font-size: 26px !important;
	}

  .hands-usp-title-inner::before,
  .hands-usp-title-inner::after {
    width: 2px;
    height: 60px;
  }

  .hands-usp-title-inner::before {
    left: 0px;
    transform: translateY(-50%) rotate(-28deg);
  }

  .hands-usp-title-inner::after {
    right: 0px;
    transform: translateY(-50%) rotate(28deg);
  }
	
/* uspボックス調整*/
	.hands-usp {
		padding: 32px 24px !important;
	}
	
	.hands-usp h3 {
		font-size:28px !important;
	}

  .hands-usp-title-inner {
    display: inline-flex;
    flex-direction: column;
    gap: 2px;
    position: relative;
    padding: 10px 10px 0px;
  }

  .hands-usp-title-line {
    display: block;
    white-space: nowrap;
  }
}






/* ====================================================================================================================================================*/






/*=====================================
   PC：実際の変化セクション
======================================= */

/* セクション全体 */
.big-change-section {
  width: 100%;
  padding: 48px 20px 56px;
	margin-top: -20px;
  background: #ffffff;
  box-sizing: border-box;
}

/* SWELLグループ内側 */
.big-change-section > .wp-block-group__inner-container {
  width: min(100%, 1120px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* =======================================
見出し：実際にこんな変化が生まれてます
=======================================*/

.big-change-section h2 {
  position: relative;
  display: block;
  margin: 0 auto 34px;
  padding: 19px 0 14px;
  color: #389CDB !important;
  background: transparent !important;
  font-size: 32px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  border: none !important;
  border-top: 2px solid #389CDB !important;
  border-bottom: 2px solid #389CDB !important;
  box-shadow: none !important;
}

/* SWELL見出し装飾を消す */
.big-change-section h2::before {
  display: none !important;
  content: none !important;
}

/* 見出し下中央のV字 */
.big-change-section h2::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -11px;
  width: 18px;
  height: 18px;
  background: #ffffff;
  border-right: 2px solid #389CDB;
  border-bottom: 2px solid #389CDB;
  transform: translateX(-50%) rotate(45deg);
}


/* =======================================
 生徒の声カード2カラム
=======================================*/

/* 2カラム全体 */
.big-change-section .wp-block-columns {
  width: min(100%, 1040px);
  margin: 0 auto 28px;
  gap: 28px;
  align-items: stretch;
  box-sizing: border-box;
}

/* カード */
.student-voice-card {
  height: 100%;
  padding: 38px 34px 34px;
  background: #EAF8FF;
  border: 3px solid #d8d8d8;
  border-radius: 16px;
  box-sizing: border-box;
  text-align: center;
}

/* カード内のSWELLラッパー */
.student-voice-card > .wp-block-group__inner-container {
  width: 100%;
}

/* カード見出し：Aさん/小学6年生 */
.student-voice-card h3 {
  display: block;
  width: min(100%, 440px);
  margin: 0 auto 18px;
  padding: 8px 20px;
  color: #ffffff !important;
  background: #58BF35 !important;
  font-size: 26px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;

  border: none !important;
  border-radius: 7px;
  box-shadow: none !important;
}

/* SWELLのh3装飾を消す */
.student-voice-card h3::before,
.student-voice-card h3::after {
  display: none !important;
  content: none !important;
}

/* 画像 */
.student-voice-card figure {
  margin: 0 !important;
}

.student-voice-card img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 0;
  box-sizing: border-box;
}

	.big-change-section .wp-element-caption {
		display: none !important
}
/* 下の注釈：クリックで拡大できます */
.big-change-section p {
  margin: 0;
  color: #333333;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

 
/*=====================================
   スマホ：実際の変化セクション
======================================= */
@media (max-width: 767px) {
	.big-change-section {
		width:100%;
		padding: 50px 0px 40px !important;
	}
	.big-change-section h2 {
		font-size: 28px !important;
	}
	
	.big-change-section .wp-block-columns {
		margin-bottom: 10px;
	}
	
	.big-change-section .wp-element-caption {
		display: block !important;
		margin-top: 25px;
}
	
	.student-voice-card {
		padding-top: 30px !important;
}
	
	.student-voice-card h3 {
    width: min(100%);
		margin-top: 50px !important;
}
}




/* ====================================================================================================================================================*/



/*=====================================
   PC：進学セクション
======================================= */

/* ロゴ */
.hands-results-logo {
  width: 82px !important;
  margin: -94px auto 16px !important;
  text-align: center !important;
}

.hands-results-logo img {
  display: inline-block !important;
  width: 82px !important;
  height: auto !important;
}

/* メイン見出し */
.hands-results-title {
  margin: 0 0 34px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  color: #f2648a !important;
  font-size: 44px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.03em !important;
  text-align: center !important;
}

/* SWELL見出し装飾をリセット */
.hands-results-title::before,
.hands-results-title::after,
.hands-card-title::before,
.hands-card-title::after {
  display: none !important;
  content: none !important;
}


/*=====================================--
   上段レイアウト：高校実績 + 大学実績
===================================== */

/* 上段全体 */
.hands-results-top {
  margin: 0 0 28px !important;
}

/* SWELLカラムをグリッド化 */
.hands-results-top .wp-block-columns {
  display: grid !important;
  grid-template-columns: 330px minmax(0, 1fr) !important;
  gap: 32px !important;
  align-items: stretch !important;
  margin: 0 !important;
}

/* SWELLカラムの初期幅指定を解除 */
.hands-results-top .wp-block-column {
  flex-basis: auto !important;
  flex-grow: 0 !important;
  min-width: 0 !important;
  margin: 0 !important;
}


/* =====================================
   04. 共通カード
=====================================*/

/* 共通カード */
.hands-results-card {
  width: 100% !important;
  padding: 26px 28px 24px !important;
  background: #ffffff !important;
  border: 3px solid #d4deea !important;
  border-radius: 20px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06) !important;
  box-sizing: border-box !important;
}

/* カード内のSWELL幅制限を解除 */
.hands-results-card > .wp-block-group__inner-container {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 高校カード */
.hands-results-card--highschool {
  max-width: none !important;
  margin: 0 !important;
}

/* 大学カード */
.hands-results-card--univ {
  max-width: none !important;
  margin: 0 !important;
}

/* カード内見出し */
.hands-card-title {
  margin: 0 0 16px !important;
  padding: 0 0 8px !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 3px solid #389CDB !important;
  box-shadow: none !important;
  color: #389CDB !important;
  font-size: 24px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  text-align: center !important;
}


/*=====================================
   05. 年度バッジ
=====================================*/

/* 年度バッジ共通 */
.hands-year-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: fit-content !important;
  min-width: 82px !important;
  margin: 0 0 12px !important;
  padding: 6px 14px !important;
  border-radius: 7px !important;
  background: #389CDB !important;
  color: #ffffff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

/* 緑バッジ */
.hands-year-badge--green {
  min-width: 170px !important;
  padding: 8px 14px !important;
  background: #6bc53a !important;
  line-height: 1 !important;
}


/* =====================================
   06. 大学実績：3列 + 縦破線
=====================================*/

/* 大学実績3カラム */
.hands-results-card--univ .wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: flex-start !important;
  margin: 0 !important;
}

/* 大学実績の各列 */
.hands-results-card--univ .wp-block-column {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  flex-basis: auto !important;
  flex-grow: 0 !important;
  min-width: 0 !important;
  margin: 0 !important;
}

/* 大学実績のバッジを列中央へ */
.hands-results-card--univ .hands-year-badge {
  align-self: center !important;
  margin: 0 auto 14px !important;
}

/* 大学実績のテーブル幅 */
.hands-results-card--univ .wp-block-table {
  width: 100% !important;
}

/* 大学実績：列間の縦破線 */
.hands-results-card--univ .wp-block-column:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 58px;
  bottom: 6px;
  right: -11px;
  border-right: 1px dashed #b8c4d3;
  pointer-events: none;
}


/*=====================================
   07. テーブル共通
=====================================*/

.hands-results-card figure.wp-block-table {
  margin: 0 !important;
}

.hands-results-card table {
  width: 100% !important;
  margin: 0 !important;
  border-collapse: collapse !important;
  table-layout: fixed !important;
}

.hands-results-card table,
.hands-results-card th,
.hands-results-card td {
  border-left: none !important;
  border-right: none !important;
}

.hands-results-card td,
.hands-results-card th {
  padding: 7px 8px !important;
  background: transparent !important;
  color: #333333 !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
}

.hands-results-card td:first-child {
  text-align: left !important;
}

.hands-results-card td:last-child {
  text-align: right !important;
  white-space: nowrap !important;
}


/*=====================================
   08. 卒業生の活躍
=====================================*/

/* 卒業生の活躍カード */
.hands-results-card--career {
  margin-top: 28px !important;
  padding: 28px 34px 28px !important;
}

/* 卒業生の活躍：見出し幅 */
.hands-results-card--career .hands-card-title {
  max-width: 620px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* 卒業生の活躍：4列 */
.hands-career-cols .wp-block-columns {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 24px !important;
  width: min(100%, 1040px) !important;
  margin: 0 auto 18px !important;
  align-items: start !important;
}

/* 卒業生の活躍：各列 */
.hands-career-cols .wp-block-column {
  min-width: 0 !important;
  margin: 0 !important;
}

/* 卒業生の活躍：各テキスト */
.hands-career-cols p,
.hands-career-cols li {
  margin: 0 !important;
  padding: 10px 8px !important;
  color: #333333 !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  text-align: left !important;
}

/* 卒業生の活躍：各行の下線 */
.hands-career-cols .wp-block-column p {
  border-bottom: 1px solid #d9e2ec !important;
}


/*=====================================
   09. 下部コメント
=====================================*/

.hands-results-note {
  margin: 18px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  color: #389CDB !important;
  font-size: 22px !important;
  font-weight: 900 !important;
  line-height: 1.5 !important;
  text-align: center !important;
  text-decoration: underline !important;
  text-decoration-color: #fff200 !important;
  text-decoration-thickness: 8px !important;
  text-underline-offset: -2px !important;
  text-decoration-skip-ink: none !important;
}

/*=====================================
   タブレット：進学実績セクション
======================================= */
@media (min-width: 768px) and (max-width: 1100px) {
  /* 上段：左カードを縮めて右カードにスペースを渡す */
  .hands-results-top .wp-block-columns {
    grid-template-columns: 250px minmax(0, 1fr) !important;
    gap: 18px !important;
  }

  /* 共通カード：内側余白を圧縮 */
  .hands-results-card {
    padding: 22px 18px !important;
  }

  /* テーブル文字：中間幅だけ少し小さく */
  .hands-results-card td,
  .hands-results-card th {
    font-size: 14px !important;
    line-height: 1.3 !important;
  }

  /* 年度バッジ共通 */
  .hands-year-badge {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: fit-content !important;
    min-width: 72px !important;
    margin: 0 auto 14px !important;
    padding: 6px 10px !important;
    font-size: 13px !important;
  }

  /* 緑バッジ */
  .hands-year-badge--green {
    width: fit-content !important;
    max-width: 100%;
    min-width: 0 !important;
    margin: 0 auto 14px !important;
    padding: 8px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    text-align: center;
    white-space: normal !important;
  }

  /* 高校実績カード：左右余白をさらに圧縮 */
  .hands-results-card--highschool {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* 高校実績：表を内容幅寄りにする */
  .hands-results-card--highschool table {
    max-width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    table-layout: auto !important;
  }

  /* 高校実績：学校名列 */
  .hands-results-card--highschool td:first-child {
    padding-left: 10px !important;
    white-space: nowrap !important;
  }

  /* 高校実績：人数列 */
  .hands-results-card--highschool td:last-child {
    padding-right: 10px !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  /* 大学実績：列間隔 */
  .hands-results-card--univ {
    --univ-column-gap: 20px;
  }

  /* 大学実績：3列レイアウト */
  .hands-results-card--univ .wp-block-columns {
    position: relative !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: var(--univ-column-gap) !important;
    row-gap: 0 !important;
    align-items: stretch !important;
  }

  /* 大学実績：各列 */
  .hands-results-card--univ .wp-block-column {
    position: relative !important;
    display: flex !important;
    flex-direction: column;
    align-items: stretch !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  /* 大学実績：表の固定レイアウトを解除 */
  .hands-results-card--univ table {
    table-layout: auto !important;
  }

  /* 大学実績：既存の縦線を消す */
  .hands-results-card--univ .wp-block-column::before,
  .hands-results-card--univ .wp-block-column::after {
    display: none !important;
    content: none !important;
  }

  /* 大学実績：破線2本を親グリッド側に作る */
  .hands-results-card--univ .wp-block-columns::before,
  .hands-results-card--univ .wp-block-columns::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 6px;
    border-left: 1px dashed #b8c4d3;
    pointer-events: none;
  }

  /* 大学実績：1列目と2列目の間 */
  .hands-results-card--univ .wp-block-columns::before {
    left: calc(33.333% - (var(--univ-column-gap) / 6));
  }

  /* 大学実績：2列目と3列目の間 */
  .hands-results-card--univ .wp-block-columns::after {
    left: calc(66.666% + (var(--univ-column-gap) / 6));
  }
	.hands-career-cols p {
		font-size: 14px !important;
	}
}
/* =======================================
   スマホ：進学実績セクション
======================================= */

@media (max-width: 767px) {

  /* セクション余白 */
  .hands-results-section {
    padding: 44px 16px 0 !important;
  }

  /* 内側ボックス */
  .hands-results-inner {
    padding: 52px 18px 58px !important;
    border-radius: 0 !important;
  }

  /* ロゴ */
  .hands-results-logo {
    width: 72px !important;
    margin: -82px auto 14px !important;
  }

  .hands-results-logo img {
    width: 72px !important;
  }

  /* メイン見出し */
  .hands-results-title {
    margin-bottom: 24px !important;
    font-size: 29px !important;
  }

  /* カラムを1列化 */
  .hands-results-top .wp-block-columns,
  .hands-results-card--univ .wp-block-columns,
  .hands-career-cols .wp-block-columns {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  /* 合格実績カード */
  .hands-results-card {
    padding: 18px 16px 30px !important;
    border-radius: 16px !important;
    text-align: center;
  }

  /* カード見出し */
  .hands-card-title {
    font-size: 22px !important;
  }

  /* テーブル全体 */
  .hands-results-card table {
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    table-layout: fixed !important;
  }

  /* 学校名列 */
  .hands-results-card td:first-child,
  .hands-results-card th:first-child {
    width: 70% !important;
    padding-left: 42px !important;
    padding-right: 8px !important;
    text-align: left !important;
    white-space: nowrap !important;
  }

  /* 人数列 */
  .hands-results-card td:last-child,
  .hands-results-card th:last-child {
    width: 30% !important;
    padding-left: 8px !important;
    padding-right: 42px !important;
    text-align: right !important;
    white-space: nowrap !important;
  }

  /* 大学実績：縦線を非表示 */
  .hands-results-card--univ .wp-block-column::before,
  .hands-results-card--univ .wp-block-column::after,
  .hands-results-card--univ .wp-block-column:not(:last-child)::after {
    display: none !important;
    content: none !important;
  }

  /* 合格実績注釈 */
  .hands-results-note {
    font-size: 18px !important;
  }

  /* 卒業生の活躍カード */
  .result-card-career {
    text-align: left !important;
  }

  /* 卒業生の活躍：全体配置 */
  .hands-career-cols.wp-block-columns {
    display: block !important;
    width: 260px !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    gap: 0 !important;
    row-gap: 0 !important;
    --wp--style--block-gap: 0 !important;
  }

  /* 卒業生の活躍：カラム余白リセット */
  .hands-career-cols.wp-block-columns > .wp-block-column {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* 卒業生の活躍：各行テキスト */
  .hands-career-cols p {
    width: 100%;
    margin: 0 !important;
    padding: 9px 0 9px 55px !important;
    color: #333333 !important;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.1;
    text-align: left !important;
    border-bottom: 1px solid #d4deea;
  }
}









/* ====================================================================================================================================================*/












/* =======================================
   PC：校舎紹介
======================================= */

/* 校舎紹介：青背景セクション全体 */
.school-section {
  width: 100vw;
  margin-left: calc(50% - 50vw) ;
  margin-right: calc(50% - 50vw) ;
  padding: 52px 20px 100px;
  background: #389CDB;
  box-sizing: border-box;
}

/* 校舎紹介：中身の最大幅 */
.school-section-inner {
  width: min(100%, 1120px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* =======================================
   PC：校舎紹介：上部見出し
======================================= */

/* 見出しエリア全体 */
.school-section-heading {
  color: #ffffff;
  text-align: center;
}

/* 「Googleレビューも要チェック！」 */
.school-section-lead {
  color: #ffffff;
  font-size: 26px ;
  font-weight: 600 ;
  line-height: 1.4;
  letter-spacing: 0.07em;
}


/* 「校舎紹介」h2タイトル */
.school-section-title,
.school-section-heading h2 {
  display: block;
  margin: -50px auto -20px auto;
  background: transparent;
  color: #ffffff;
  font-size: 46px;
  font-weight: 900;
  letter-spacing: 0.06em ;
	border-left: none;

}

/* SWELL見出し装飾を消す */
.school-section-heading h2::before,
.school-section-heading h2::after,
.school-section-title::before,
.school-section-title::after,
.school-section-lead::before {
  display: none !important;
  content: none !important;
}


/* =======================================
   PC：校舎紹介：校舎カード2枚
=======================================*/

/* 校舎カード2列エリア */
.school-branch-grid {
  width: min(100%, 900px) !important;
  margin: 0 auto !important;
  gap: 24px !important;
  box-sizing: border-box !important;
}

/* SWELLカラムの調整 */
.school-branch-grid.wp-block-columns {
  display: flex !important;
  align-items: stretch !important;
  justify-content: center !important;
}

/* 校舎カード */
.school-branch-card {
  height: 100%;
  padding: 28px 28px 30px;
  background: #ffffff;
  border: 3px solid #d9d9d9;
  border-radius: 18px;
  box-shadow: 0 4px 0 rgba(0, 0, 0, 0.08) ;
  box-sizing: border-box;
  text-align: center;
  overflow: hidden;
}

/* 校舎名 */
.school-branch-title,
.school-branch-card h3 {
  margin: 0 0 12px !important;
  color: #444444;
  font-size: 32px;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  background: transparent;
  box-shadow: none;
	border-bottom: solid 2px #666666;
	letter-spacing: 0.04em;
}

/* 校舎名の一部を青くしたい場合 */
.school-branch-title span,
.school-branch-card h3 span {
  color: #168de0 !important;
}

/* SWELL見出し装飾を消す */
.school-branch-card h3::before,
.school-branch-card h3::after,
.school-branch-title::before,
.school-branch-title::after {
  display: none !important;
  content: none !important;
}

/* 所在地ラベル */
.school-address-label {
  display: inline-block;
  margin: 0 0 7px;
  padding: 3px 12px;
  border-radius: 999px;
  background: #d9d9d9;
  color: #555555;

  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
}

/* 住所 */
.school-address {
  margin: 0 0 7px;
  color: #333333;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

/* 電話番号 */
.school-tel {
  margin: 0 0 18px;
  color: #333333;
  font-size: 29px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-align: center;
}

/* 電話アイコン調整 */
.school-tel span {
  font-size: 24px;
  line-height: 1;
  vertical-align: middle;
	margin-bottom: 4px;
	margin-right: 2px;
}

/* 校舎写真2枚のまとまり */
.school-photo-stack {
  display: grid !important;
  gap: 12px !important;
  margin-top: 16px !important;
}

/* 写真ブロックの余白リセット */
.school-photo-stack figure {
  margin: 0 !important;
}

/* 校舎写真 */
.school-photo-stack img {
  display: block !important;

  width: 100% !important;
  max-width: none !important;
  height: auto !important;

  aspect-ratio: 4 / 3;
  object-fit: cover !important;
}


/* カスタムHTMLブロックの余白対策 */
.school-map-box .wp-block-html,
.school-branch-card .wp-block-html {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 100% !important;
}

/* =======================================
 PC：校舎特徴セクション
=======================================*/

/* 校舎特徴：白い大枠 */
.school-feature-box {
  width: min(100%, 1240px);
  margin: 88px auto 0;
  padding: 68px 44px 64px;
  background: #ffffff;
  border-radius: 20px;
  box-sizing: border-box;
}

/* 校舎特徴：見出し */
.school-feature-heading,
.school-feature-box h2 {
  margin: 0 0 24px;
  padding: 0;
  color: #444444;
  font-size: 40px;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  background: transparent;
  border: none;
  box-shadow: none;
}

/* 見出し下ライン */
.school-feature-heading + .school-feature-grid,
.school-feature-box > h2 + .school-feature-grid {
  position: relative;
  padding-top: 30px;
}

.school-feature-heading + .school-feature-grid::before,
.school-feature-box > h2 + .school-feature-grid::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 360px;
  max-width: 80%;
  height: 3px;
  background: linear-gradient(
    to right,
    #dddddd 0%,
    #dddddd 42%,
    #389CDB 42%,
    #389CDB 58%,
    #dddddd 58%,
    #dddddd 100%
  );
}

/* =======================================
   PC：校舎特徴：3カード
=======================================*/

/* 3カラム全体 */
.school-feature-grid {
  gap: 24px;
  align-items: stretch;
}

/* SWELLカラム調整 */
.school-feature-grid.wp-block-columns {
  display: flex;
  justify-content: center;
  align-items: stretch;
}

/* 各カード */
.school-feature-card {
  height: 100%;
  padding: 24px 18px 20px;
  background: #f4f8fc;
  border: 2px solid #d6d6d6;
  border-radius: 12px;
  box-sizing: border-box;
  text-align: center;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* アイコンエリア */
.school-feature-icon {
  width: 42px;
  height: 42px;
  margin: 0 auto 14px;
  padding:6px 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #389CDB;
  color: #ffffff;
  flex: 0 0 auto;
}

/* SWELLアイコン調整 */
.school-feature-icon svg,
.school-feature-icon i,
.school-feature-icon span {
	font-size: 22px;
  color: #ffffff;
  fill: currentColor;
}

/* 特徴タイトル */
.school-feature-title,
.school-feature-card h3 {
  margin: 0 0 14px;
  padding: 0 0 12px;
  border: none;
  border-bottom: 2px solid #389CDB;
  box-shadow: none;
  background: transparent;
  color: #389CDB !important;
  font-size: 28px;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: 0.02em;
  text-align: center;
}

/* SWELL見出し装飾を消す */
.school-feature-title::before,
.school-feature-title::after,
.school-feature-card h3::before,
.school-feature-card h3::after {
  display: none;
  content: none;
}

/* 特徴本文 */
.school-feature-text  {
  margin: 0 0 14px;
  color: #333333;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.75;
  text-align: left;
}

/* カード内の通常段落 */
.school-feature-card p {
  color: #333333;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.75;
}

/* 画像ブロック */
.school-feature-card figure {
  margin: 14px 0 14px;
}

/* 特徴カード画像：大きすぎ防止 */
.school-feature-card img {
  display: block;
  width: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  border-radius: 6px;
}


/* =======================================
   PC：校舎特徴：タグ
======================================= */

/* 青タグ3全体 */
.feature-tags {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 5px 0 16px;
}

/* 青タグ3単体 */
.feature-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 5px 2px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #389CDB;
  white-space: nowrap;
}

.feature-tags .feature-tag,
.feature-tags .feature-tag *,
.feature-tags .feature-tag span,
.feature-tags .feature-tag strong {
  color: #ffffff;
  font-size: 13px;
	font-weight: 500;
  line-height: 1.2;
}


/* =======================================
自習室カード：利用時間 横並びレイアウト
======================================= */
/* 自習室カード内で利用時間エリアを中央配置 */
.study-room-card .study-room-hours {
  position: relative;
  left: auto;
  transform: none;

  display: grid;
  grid-template-columns: auto auto;
  grid-template-rows: auto auto;
  column-gap: 22px;
  row-gap: 0px;

  justify-content: center;
  align-items: center;

  width: 100%;
  margin: 0 auto;
  padding: 10px 16px;
  border: solid 2px #389CDB;
  background-color: #ffffff;
  border-radius: 12px;
  box-sizing: border-box;
}

/* 左上：利用時間 */
.study-room-hours .hours-label {
  grid-column: 1;
  grid-row: 1;

  margin: 0 auto 2px;
  color: #555555;
  font-size: 18px;
  font-weight: 600;
  white-space: nowrap;
  text-align: center;
}

/* 左下：月〜土 */
.study-room-hours .hours-days {
  grid-column: 1;
  grid-row: 2;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;

  margin: 0;
  white-space: nowrap;
  justify-self: center;
	padding-bottom:5px;
}

/* 月・土の丸 */
.study-room-hours .hours-days span {
  width: 19px;
  height: 19px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;
  background: #555555;
  color: #ffffff;

  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

/* 〜 */
.study-room-hours .hours-days b {
  color: #555555;
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
}

/* 右：時間 */
.study-room-hours .hours-time {
  grid-column: 2;
  grid-row: 1 / 3;

  margin: 0;
  padding: 0;

  color: #555555;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.65;
  text-align: left;
  white-space: nowrap;

  justify-self: start;
}

.study-room-hours .hours-time div {
  margin: 0;
  padding: 0;
}
/* =======================================
 タブレット：校舎紹介セクション
 768px〜1140px
======================================= */
@media (min-width: 768px) and (max-width: 1140px) {

  /* セクション全体 */
  .school-section {
    padding: 50px 68px 100px;
  }

  /* 白い大枠 */
  .school-feature-box {
    width: min(100%, 99%);
    margin: 54px auto 0;
    border-radius: 18px;
  }

  /* セクション見出し */
  .school-feature-heading,
  .school-feature-box h2 {
    margin-bottom: 24px;
    font-size: 36px;
    line-height: 1.35;
  }

  /* 見出し下ライン */
  .school-feature-heading + .school-feature-grid,
  .school-feature-box > h2 + .school-feature-grid {
    padding-top: 30px;
  }

  .school-feature-heading + .school-feature-grid::before,
  .school-feature-box > h2 + .school-feature-grid::before {
    width: 320px;
    max-width: 80%;
  }

  /* カード全体：タブレットでは縦積み */
  .school-feature-grid.wp-block-columns {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
  }

/* SWELL / WordPressカラム調整 */
.school-feature-grid.wp-block-columns > .wp-block-column {
  width: 100%;
  max-width: 720px;
  flex-basis: auto !important;
  flex-grow: 0;
  flex-shrink: 1;

  margin-left: auto !important;
  margin-right: auto !important;
}

  /* 各カード本体 */
  .school-feature-card {
    width: 100%;
    height: auto;
    padding: 34px 60px 36px;
    box-sizing: border-box;
    text-align: left;
    display: flex;
    flex-direction: column;
  }

  /* アイコン＋タイトル */
  .school-feature-head {
    width: 100%;
    margin: 0 0 22px;
    padding: 0 0 16px;
    border-bottom: 3px solid #389CDB;
    box-sizing: border-box;
  }

  .school-feature-head,
  .school-feature-head > .wp-block-group__inner-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
  }

  /* アイコン */
  .school-feature-head .school-feature-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    flex: 0 0 48px;
    padding: 0;
    box-sizing: border-box;
    margin: 0;

    display: flex;
    align-items: center;
    justify-content: center;
		margin-bottom: 7px;
    border-radius: 50%;
    background: #389CDB;
  }

  .school-feature-head .school-feature-icon svg,
  .school-feature-head .school-feature-icon i,
  .school-feature-head .school-feature-icon span {
    font-size: 24px;
    color: #ffffff;
    fill: currentColor;
  }

  /* タイトル */
  .school-feature-head .school-feature-title,
  .school-feature-head h3 {
    margin: 0;
    padding: 0;
    flex: 0 1 auto;

    border: none;
    box-shadow: none;
    background: transparent;

    color: #389CDB;
    font-size: 34px;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.02em;
    text-align: left;
    white-space: nowrap;
  }

  /* SWELL見出し装飾を消す */
  .school-feature-head .school-feature-title::before,
  .school-feature-head .school-feature-title::after,
  .school-feature-head h3::before,
  .school-feature-head h3::after {
    display: none;
    content: none;
  }

  /* 画像 */
  .school-feature-card figure {
    width: 100%;
    margin: 0 0 20px;
  }

  .school-feature-card img {
    height: auto;
    border-radius: 8px;
  }

  /* 本文 */
  .school-feature-text,
  .school-feature-card p {
    margin: 0 0 16px;
    font-size: 19px;
    line-height: 1.85;
    text-align: left;
  }

  /* タグ */
  .feature-tags {
    justify-content: center;
    width: 100%;
    margin: 0 auto 18px;
  }

  .feature-tag {
    margin: 0;
    padding: 7px 14px;
  }

  .feature-tags .feature-tag,
  .feature-tags .feature-tag * {
    color: #ffffff;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.2;
  }

  /* 自習室カード：利用時間 */
  .study-room-card .study-room-hours {
    max-width: 520px;
    margin: 4px auto 18px;
    padding: 12px 18px;
  }
}

/* =======================================
スマホ：校舎紹介セクション
======================================= */

@media (max-width: 767px) {

	.school-section-lead {
		font-size: 16px;
	}
	
	.school-branch-title {
		font-size:28px !important;
	}

.school-tel {
	white-space:nowrap;
	font-size: 25px;
}
	
	.school-tel span {
		height: 22px !important;
		width: 22px;
		margin-top: 2px;
	}
	
	.school-branch-card .swl-inline-icon {
		margin-bottom: 8px;
		height: 24px;
		color: #1176D4;
	}
	
	.school-branch-card {
		padding-bottom: 50px ;
	}
	
	.school-section {
		padding-bottom: 50px !important;
	}
	
	.school-section-title  {
		border-left: none !important;
		
	}
	
/* =======================================
スマホ：校舎特徴
======================================= */
	.school-feature-box {
		padding: 50px 16px 40px; 
		margin-top: 50px;
	}
		 /*タイトル下グラデーション調整  */
  .school-feature-heading + .school-feature-grid::before,
  .school-feature-box h2 + .school-feature-grid::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    width: 240px;
    max-width: 80%;
    height: 3px;
    background: linear-gradient(
      to right,
      #dddddd 0%,
      #dddddd 30%,
      #389CDB 30%,
      #389CDB 70%,
      #dddddd 70%,
      #dddddd 100%
    );
  }
	.school-feature-title {
		font-size: 26px !important;
	}
	  .feature-tags {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px;
    margin: 14px 0 18px;
  }

  .feature-tags p.feature-tag {
    margin: 0;
    padding: 4px 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #389CDB;
    color: #ffffff;
		font-size: 12px;
		font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
  }

/* =======================================
スマホ：自習室利用
======================================= */
  .study-room-hours {
    width: 100%;
    margin: 18px auto 0;
    padding: 22px 16px 24px;

    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    column-gap: 10px !important; 
    row-gap: 14px;

    background: #ffffff;
    border: 2px solid #d6efff;
    border-radius: 14px;
    box-sizing: border-box;

    color: #555555;
  }

  /* Label: 利用時間 */
  .study-room-hours .hours-label {
    flex: 0 0 auto;

    color: #555555;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.2;
    white-space: nowrap;
    text-align: center;
		padding-top: 4px;
  }

  /* Days: 月〜土 */
  .study-room-hours .hours-days {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
		padding-top: 3px;
  }

  .study-room-hours .hours-days span {
    width: 16px;
    height: 16px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #555555;
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
  }

  .study-room-hours .hours-days b {
    color: #555555;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
  }

  /* Time text */
  .study-room-hours .hours-time {
    flex: 0 0 100%;
    margin: 0;
    padding: 0;
    color: #555555;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.55;
    text-align: center;
    white-space: nowrap;
  }

  .study-room-hours .hours-time div {
    margin: 0;
    padding: 0;
  }
}



/* ====================================================================================================================================================*/








/* ====================================
   PC：保護者の声セクション
====================================*/

/* セクション全体 */
.voice-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 56px 20px 64px;
  background: #EAF8FF;
  box-sizing: border-box;
}

/* 内側幅 */
.voice-section-inner {
  width: min(100%, 980px);
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}


/* ====================================
   PC：見出しエリア
====================================*/

/* 見出し全体 */
.voice-heading {
  margin: 0 auto 34px;
  text-align: center;
}

/* 小見出し：保護者の皆様の声 */
.voice-heading p:first-child {
  margin: 0 0 4px;
  color: #389CDB;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.4;
  text-align: center;
}

/* 大見出し */
.voice-heading h2 {
  display: block;
  position: relative;
  margin: 0 0 3px;
  padding: 0 0 18px;
  color: #168de0 !important;
  background: transparent !important;
  font-size: 32px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.04em !important;
  text-align: center !important;
  border: none !important;
  box-shadow: none !important;
}

/* 大見出し下のグレー線 */
.voice-heading h2::after {
  content: "";
  display: block;
  width: 620px;
  max-width: 80%;
  height: 2px;
  margin: 10px auto 0;
  background: #cccccc;
}

/* SWELLのh2装飾を消す */
.voice-heading h2::before {
  display: none !important;
  content: none !important;
}

/* 説明文 */
.voice-heading p:last-child {
  margin: 0;
  color: #555555;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
  text-align: center;
}


/* ====================================
   カードエリア
====================================*/

/* 2カラム */
.voice-grid {
  width: min(100%, 940px);
  margin: 0 auto;
  gap: 28px;
  box-sizing: border-box;
}

/* SWELLカラム調整 */
.voice-grid.wp-block-columns {
  display: flex;
  align-items: stretch;
  justify-content: center;
}

/* 各カード */
.voice-card {
  height: 100%;
  padding: 36px 36px 36px;
  background: #ffffff;
  border: 1px solid #e5e5e5;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
	border-radius: 20px;
}


/* =======================================
   PC：カード上部：アイコン + 保護者名
=======================================*/

/* カード上部エリア */
.voice-card-head {
  margin: 0 0 18px;
  padding: 0;
}

/* SWELLが自動で入れる内側ラッパーを横並びにする */
.voice-card-head > .wp-block-group__inner-container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: 0;
  padding: 0;
}

/* アイコン・名前タグのp余白をリセット */
.voice-card-head p.voice-icon,
.voice-card-head p.voice-name {
  margin: 0;
}

/* 青丸アイコン */
.voice-card-head p.voice-icon {
  width: 42px;
  height: 42px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 42px;
  border-radius: 50%;
  background: #389CDB;
  color: #ffffff;
  line-height: 1;
  box-sizing: border-box;
}

/* SWELLアイコン本体 */
.voice-card-head p.voice-icon svg,
.voice-card-head p.voice-icon i,
.voice-card-head p.voice-icon span,
.voice-card-head p.voice-icon::before,
.voice-card-head p.voice-icon *::before {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  fill: currentColor;
  stroke: currentColor;
  font-size: 22px;
  line-height: 1;
}

/* SVG内部まで白にする */
.voice-card-head p.voice-icon svg * {
  fill: currentColor;
  stroke: currentColor;
}

/* 保護者名タグ */
.voice-card-head p.voice-name {
  padding: 7px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #389CDB;
  border-radius: 999px;
  background: #ffffff;
  color: #389CDB;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

/* 保護者名タグ内の文字対策 */
.voice-card-head p.voice-name * {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}


/* =======================================
   PC：カード本文
=======================================*/

/* カードタイトル */
.voice-card h3 {
  display: block;
  margin: 10px 0;
  padding: 10px 0;
  color: #cc0000 !important;
  background: transparent !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  text-align: left !important;
  border: none !important;
  border-top: 2px solid #d8d8d8 !important;
  border-bottom: 2px solid #d8d8d8 !important;
  box-shadow: none !important;
}

/* SWELLのh3装飾を消す */
.voice-card h3::before,
.voice-card h3::after {
  display: none !important;
  content: none !important;
}

/* 本文 */
.voice-card p:not(.voice-name):not(.voice-icon) {
  margin: 0;
  color: #333333;
  background: transparent;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.85;
  text-align: left;
	letter-spacing:0.02em;
}

/* 本文内のspan/strong対策 */
.voice-card p:not(.voice-name):not(.voice-icon) * {
  font-size: inherit;
  line-height: inherit;
}

/* =======================================
   スマホ：保護者の声
=======================================*/
@media (max-width: 767px) {
		.voice-section h2 {
		font-size: 28px !important;
	}
	.voice-heading h2::after {
		max-width: 98%;
	}
		.voice-section .voice-heading p {
		font-size: 16px;
	}
		.voice-section h3 {
		font-size: 22px !important;
	}
	.voice-card p {
		font-size: 17px !important;
	}
	.voice-card {
		padding: 36px 20px;
	}
}




/* ====================================================================================================================================================*/






/* ====================================== PC：学習のお悩み
=======================================*/

/* セクション全体 */
.consult-message-section {
  width: 100%;
  padding: 10px 20px 50px;
  background: #ffffff;
  box-sizing: border-box;
}

/* SWELLグループ内側ラッパーの幅補正 */
.consult-message-section > .wp-block-group__inner-container {
  width: 100%;
}

/* 白い角丸ボックス */
.consult-message-box {
  width: min(100%, 1040px);
  margin: 0 auto;
  padding: 34px 48px 36px;
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 0 14px rgba(56, 156, 219, 0.22);

  box-sizing: border-box;
  text-align: center;
}

/* ボックス内のSWELLラッパー */
.consult-message-box > .wp-block-group__inner-container {
  width: 100%;
  margin: 0 auto;
}

/* 見出し */
.consult-message-box h2 {
  margin: 0 0 16px;
  padding: 0;
  color: #444444;
  background: transparent;
  font-size: 30px;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: 0.03em;
  text-align: center;
  border: none;
  box-shadow: none;
}

/* SWELL見出し装飾を消す */
.consult-message-box h2::before,
.consult-message-box h2::after {
  display: none;
  content: none;
}

/* 本文 */
.consult-message-box p {
  width: fit-content;
  max-width: 760px;
  margin: 0 auto;
  color: #444444;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.85;
  letter-spacing: 0.03em;
  text-align: left;
}

/* ====================================
   スマホ：学習のお悩み
====================================*/

@media (max-width: 767px) {
	.consult-message-section {
		padding: 20px 0px;
	}
	.consult-message-section h2 {
		font-size: 24px;
	}
	.consult-message-box {
		padding: 32px;
	}
	
	.has-text-align-center u-mb-ctrl u-mb-30 {
		margin-bottom: 10px !important;
	}
	
 /* 最後までご覧いただきありがとうございます */

	.last-thanks {
		margin-top: 20px;
		margin-bottom:30px;
	}
/* トップに戻る */
	.back-to-top {
		margin-bottom: -40px;
		}
}





/* ====================================================================================================================================================*/






/* =====================================
 PC：フッター直前ロゴ：中央寄せ
=====================================*/

.footer-before-logo,
figure.footer-before-logo {
  width: 25%;
  margin: 0 auto 20px;
  text-align: center;
}

.footer-before-logo img,
figure.footer-before-logo img,
img.footer-before-logo {
  display: block;
  margin-left: auto;
  margin-right: auto;
}


/* =====================================
 スマホ：フッター直前ロゴ：中央寄せ
=====================================*/
@media (max-width: 767px) {
  #before_footer_widget .footer-before-logo,
  #before_footer_widget figure.footer-before-logo {
    width: 250px;
    max-width: 400px;
    margin-left: auto ;
    margin-right: auto ;
  }
}





/* ====================================================================================================================================================*/





/* =============================================
 公式LINE登録ページ
============================================= */

/* PC：トップメージ */

.line-trial-mainvisual {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #ffffff;
  box-sizing: border-box;
}

.line-trial-mainvisual-inner {
  width: min(100%, 1040px);
  margin: 0 auto;
  padding: 0 24px 42px;
  box-sizing: border-box;
  text-align: center;
}

.line-trial-mainvisual-img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}

.line-trial-mainvisual-button {
  margin-top: 28px;
  text-align: center;
}


/* =============================================
 PC：登録ボタン
============================================= */

.line-official-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease;
}

.line-official-btn:hover {
  transform: translateY(-2px);
  opacity: 0.92;
}

.line-official-btn img {
  display: block;
  width: auto;
  height: 36px;
  border: none;
}

/* PCではLINE公式ボタンを少し拡大 */
@media (min-width: 768px) {
  .line-official-btn img {
    transform: scale(1.45);
    transform-origin: center;
  }

  .line-trial-mainvisual-button {
    margin-top: 34px;
  }
}


/* =============================================
 PC：フローチャート
============================================= */


.line-flow-section {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 58px 24px 64px;
  background: #f4f8fc;
  box-sizing: border-box;
}

.line-flow-inner {
  width: min(100%, 1120px);
  margin: 0 auto;
}

.line-flow-title {
  margin: 0 auto 42px !important;
  padding: 0 0 12px !important;
  color: #1598DB;
  background: transparent !important;
  font-size: 36px !important;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
  border: none !important;
  border-bottom: 3px solid #1598DB !important;
  box-shadow: none !important;
}

.line-flow-title::before,
.line-flow-title::after {
  display: none !important;
  content: none !important;
}


/* 1 → 2 → 3 → 4*/

.line-flow-list {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
}

.line-flow-card {
  position: relative;
  z-index: 2;
  min-height: 180px;
  padding: 24px 22px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  background: #ffffff;
  border: 1px solid #e3edf5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  box-sizing: border-box;
  text-align: left;
}

/* PC：カード間の矢印 */
.line-flow-card:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -22px;
  z-index: 3;
  width: 0;
  height: 0;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-left: 14px solid #2f80cf;
  transform: translateY(-50%);
}

.line-flow-number {
  width: 96%;
  height: 60px;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #1598DB;
  font-size: 42px;
  font-weight: 900;
  line-height: 1;
  padding-bottom: 16px;
  border-bottom: 2px solid #1598DB;
}

.line-flow-text h3 {
  margin: 0 0 8px;
  padding: 0;
  color: #333333;
  background: transparent;
  border: none;
  box-shadow: none;
  font-size: 21px;
  font-weight: 900;
  line-height: 1.35;
}

.line-flow-text h3::before,
.line-flow-text h3::after {
  display: none;
  content: none;
}

.line-flow-text p {
  margin: 0;
  color: #444444;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
}


/* =============================================
 PC：下のCTA
============================================= */

.line-bottom-cta {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0 24px 76px;
  background: #f4f8fc;
  box-sizing: border-box;
	margin-bottom: -75px;
}

.line-bottom-cta-inner {
  width: min(100%, 760px);
  margin: 0 auto;
  padding: 42px 42px 50px;

  background: #ffffff;
  border: 3px solid #1598DB;
  border-radius: 16px;

  text-align: center;
  box-sizing: border-box;
}

.line-bottom-cta h2 {
  margin: 0 0 10px;
  padding: 0;
  color: #1598DB !important;
  background: transparent !important;
  font-size: 32px;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
  border: none !important;
  box-shadow: none !important;
}

.line-bottom-cta h2::before,
.line-bottom-cta h2::after {
  display: none !important;
  content: none !important;
}

.line-bottom-cta p {
  margin: 0 0 8px;
  color: #444444;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.6;
}

.line-bottom-cta .line-official-btn {
  margin-top: 45px;
}

/* =============================================
 スマホ：公式LINE登録
============================================= */
@media (max-width: 767px) {

  /*トップ画像*/

  .line-trial-mainvisual-inner {
    width: 100%;
    padding: 0 0 34px;
  }

  .line-trial-mainvisual-img {
    width: 100%;
    max-width: none;
  }


  /*フロー 1 ↓ 2 ↓ 3 ↓ 4*/

  .line-flow-section {
    padding: 40px 26px 48px;
  }

  .line-flow-inner {
    width: 100%;
  }

  .line-flow-title {
    margin-bottom: 24px;
    font-size: 28px !important;
  }

  .line-flow-list {
    display: block;
  }


  .line-flow-card {
    position: relative;
    min-height: auto;
    margin-bottom: 42px;
    padding: 20px 22px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 18px;
    text-align: left;
  }

  .line-flow-card:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 115%;
    z-index: 3;
    width: 0;
    height: 0;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-top: 11px solid #2f80cf;
    transform: translateX(-50%);
  }

  .line-flow-card:last-child {
    margin-bottom: 0;
  }

  .line-flow-number {
    flex: 0 0 58px;
    width: 58px;
    height: auto;
    margin: 0;
		margin-left: 6px;
    padding-bottom:0px ;
		padding-right:18px;
    font-size: 36px;
    border-right: 3px solid #1598DB;
    border-bottom: none;
		height: 60px;
  }

  .line-flow-text h3 {
    margin-bottom: 4px;
    font-size: 18px;
    line-height: 1.35;
  }

  .line-flow-text p {
    font-size: 16px;
    line-height: 1.6;
  }


  /* ボトムCTA*/

  .line-bottom-cta {
    padding: 0 26px 56px;
		margin-bottom: -50px;
  }

  .line-bottom-cta-inner {
    padding: 32px 22px 34px;
    border-radius: 14px;


  }

  .line-bottom-cta h2 {
    font-size: 30px;
    line-height: 1.4;
  }

  .line-bottom-cta p {
    font-size: 15px;
    line-height: 1.6;
  }
}


/* ====================================================================================================================================================*/




/* =============================================
 PC：在籍生徒について
============================================= */


/* 通塾生の在籍校テーブル：3カラム内の文字切れ対策 */

.hands-results-card.school-table {
  overflow: visible !important;	
}

.hands-results-card.school-table table {
  table-layout: auto !important;
	
}

.hands-results-card.school-table th,
.hands-results-card.school-table td {
	white-space:nowrap;
  line-height: 1.6 !important;
	font-size: 14px !important;
	text-align: left !important;
	padding-left: 16px !important;
}


.hands-results-card.school-table th:first-child,
.hands-results-card.school-table td:first-child {
  border-right: 1px dashed #b8c4d3 !important;
}

.school-table-columns {
  gap: 10px !important;
  column-gap: 16px !important;
}

/* 通塾生の在籍校テーブル：左列を狭くする */
.hands-results-card.school-table table {
  table-layout: fixed !important;
}

.hands-results-card.school-table th:first-child,
.hands-results-card.school-table td:first-child {
  width: 34% !important;
}

.hands-results-card.school-table th:nth-child(2),
.hands-results-card.school-table td:nth-child(2) {
  width: 45% !important;
}







/* =============================================
 PC：時間割
============================================= */
.table-bg h3::before,
.table-bg h3::after {
  background: none !important;
  background-image: none !important;
}

.table-bg h2::before,
.table-bg h2::after,
.table-bg h2 {
	border: none;
	background: transparent;
	font-size: 38px;
	margin-bottom: 7px;
	padding-top: 26px;
}


.table-bg {
		padding: 30px 42px 50px 42px !important;
	}


.regular-timetable-title {
	background: none !important;
	border-bottom: 2px solid #49aae6;
}

.summer-timetable-title {
	background: none !important;
	border-bottom: 2px solid #6dc464;
}

.winter-timetable-title {
	background: none !important;
	border-bottom: 2px solid #EA7F50;
}


/* =============================================
 スマホ：時間割
============================================= */

@media (max-width: 767px) {
	.time-table .white-table  {
		padding: 40px 14px !important;
	}
	.table-bg {
		padding: 10px 14px 60px 14px !important;
	}
	.season-title {
		margin-bottom: -10px !important;
	}
}
 








/* =============================================
  PC：料金ページ：共通設定
============================================= */

.price-page {
  --price-blue: #389CDB;
  --price-blue-dark: #0f4f8f;
  --price-blue-deep: #0b2f5b;
  --price-bg: #e8f4fc;
  --price-bg-light: #f7fbfe;
  --price-border: #d8e8f2;
  --price-text: #1f2933;
  --price-muted: #64748b;
  --price-red: #e53935;
  --price-yellow: #fff7d6;

  color: var(--price-text);
}

/* SWELL見出し装飾リセット・料金ページ内だけ既存のH2/H3装飾を消す
 */

.price-page h2,
.price-page h3,
.price-page .wp-block-heading {
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
}

.price-page h2,
.price-page h3 {
  border: none !important;
}

.price-page h2::before,
.price-page h2::after,
.price-page h3::before,
.price-page h3::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}

.price-page h2 span,
.price-page h3 span {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
}



/* =============================================
  PC：見出し・本文
============================================= */

.price-page h2.wp-block-heading {
  margin-top: 2.8e !important;
  margin-bottom: 1em;
  padding-left: 0.9em;
  border-left: 5px solid var(--price-blue) !important;
  color: var(--price-blue-dark) !important;
  font-size: 28px;
  line-height: 0.5;
  font-weight: 700;
}

.price-page h3.wp-block-heading {
  margin-top: 0;
  margin-bottom: 0.7em;
  padding: 0;
  border: none !important;
  color: var(--price-blue-dark) !important;
  font-size: 1.15rem;
  line-height: 1.2;
  font-weight: 700;
}

.price-page p {
  line-height: 1.9;
}

/* =============================================
  PC：授業プランについて
=============================================*/

.price-page .price-intro {
  margin: 2.2em 0 4em;
  padding: 1.6em 1.8em;
  border: 1px solid var(--price-border);
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    var(--price-bg) 0%,
    var(--price-bg-light) 100%
  ) !important;
}

.price-page .price-intro h2.wp-block-heading {
  margin-top: 0;
  margin-bottom: 0.7em;
  padding-left: 0;
  border-left: none !important;
}

.price-page .price-intro p:last-child {
  margin-bottom: 0;
}

/* =============================================
  PC：月額授業料：2個ずつ並べるカラム行
=============================================*/

.price-cards {
	margin-bottom: 5em;
}

.price-page .price-row {
  gap: 24px;
  margin-top: 24px;
  margin-bottom: 0;
}

.price-page .price-row + .price-row {
  margin-top: 24px;
}

/* カラム内のカード高さを揃える */
.price-page .price-row > .wp-block-column {
  display: flex;
}

.price-page .price-row > .wp-block-column > .price-card {
  width: 100%;
}

/* =============================================
  PC：料金カード
=============================================*/

.price-page .price-card {
  height: 100%;
  padding: 1.4em;
  border: 1px solid var(--price-border);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 79, 143, 0.08);
}

.price-page .price-card p {
  margin-top: -0.2em;
  margin-bottom: 1em;
  color: var(--price-muted);
  font-size: 0.95rem;
  line-height: 1.7;
}

/* =============================================
  PC：テーブル共通
  角丸をきれいに出すため、figure側に枠線と角丸を持たせる
============================================= */

.price-page .wp-block-table {
  margin: 0;
  border: 1px solid var(--price-border);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
  -webkit-overflow-scrolling: touch;
}

/* table本体の外枠は消す */
.price-page .wp-block-table table {
  width: 100%;
  margin: 0;
  border: none;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}

/* セル罫線は右・下だけ */
.price-page .wp-block-table th,
.price-page .wp-block-table td {
  border: none;
  border-right: 1px solid var(--price-border);
  border-bottom: 1px solid var(--price-border);
  padding: 11px 12px;
  line-height: 1.55;
  vertical-align: middle;
}

/* 右端の線を消す */
.price-page .wp-block-table tr > *:last-child {
  border-right: none;
}

/* 最下段の線を消す */
.price-page .wp-block-table tbody tr:last-child > * {
  border-bottom: none;
}

/* theadがある場合、見出し下の線は残す */
.price-page .wp-block-table thead tr:last-child > * {
  border-bottom: 1px solid var(--price-border);
}

/* 見出しセル */
.price-page .wp-block-table th {
  background: var(--price-bg);
  color: #19456b;
  text-align: center;
  font-weight: 700;
}

/* 通常セル */
.price-page .wp-block-table td {
  background: #fff;
  text-align: center;
}

/* 全テーブル：1列目の本文だけ左揃え */
.price-page .wp-block-table td:first-child {
  text-align: left;
  padding-left: 1.4em;
}

/* 見出し行の1列目は中央揃え */
.price-page .wp-block-table th:first-child {
  text-align: center;
}

/* =============================================
  PC：料金表テーブル
=============================================*/

.price-page .price-table td:last-child {
  color: var(--price-blue-deep);
  font-weight: 700;
  font-size: 1.08em;
}

/* =============================================
  PC：諸経費テーブル
=============================================*/

.price-page .cost-table {
  margin-top: 1em;
	margin-bottom: 4em;
}

.price-page .cost-table td:first-child {
  width: 28%;
  font-weight: 700;
  background: #fff;
}

.price-page .cost-table td:nth-child(2) {
  width: 24%;
  white-space: nowrap;
  text-align: center;
  color: var(--price-blue-deep);
  font-weight: 700;
}

.price-page .cost-table td:nth-child(3) {
  text-align: left;
  line-height: 1.8;
}

/* =============================================
  PC：割引ブロック
=============================================*/

.price-page .discount-block {
  margin-top: 1.2em;
  padding: 1.4em 1.6em;
  border: 1px solid var(--price-border);
  border-radius: 14px;
  background: #fff;
}

.price-page .discount-block h3 {
  margin-bottom: 0.7em;
  padding-bottom: 0.5em;
  border-bottom: 1px solid var(--price-border) !important;
}

.price-page .discount-block p:last-child {
  margin-bottom: 0;
}

.price-page .discount-block strong,
.price-page .discount-block .emphasis {
  color: var(--price-red);
  font-weight: 700;
}

/* =============================================
  PC：割引ブロック内のH3：下線をきれいに出す
=============================================*/

.price-page .discount-block h3.wp-block-heading {
  margin: 0 0 0.8em;
  padding: 0 0 0.55em;
  border: none !important;
  border-bottom: 1px solid var(--price-border) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* =============================================
  PC：特待生制度テーブル
=============================================*/

.price-page .discount-table {
  margin-top: 1em;
}

.price-page .discount-table th,
.price-page .discount-table td {
  text-align: center;
}

.price-page .discount-table td:first-child {
  padding-left: 0;
  font-weight: 700;
  background: #fff;
}

.price-page .discount-table td:last-child {
  color: var(--price-blue-deep);
  font-weight: 700;
}

/* =============================================
  注意事項リスト
=============================================*/

.price-page .discount-block ul {
  margin-top: 1em;
  padding: 1em 1.2em 1em 1.7em;
  border-radius: 10px;
  background: var(--price-yellow);
  line-height: 1.8;
}

/* =============================================
  スマホ：料金ページ
============================================= */

@media (max-width: 767px) {
  /* 見出し */
  .price-page h1 {
    font-size: 1.8rem;
  }

  .price-page h2.wp-block-heading {
    margin-top: 2.3em;
    font-size: 1.25rem;
  }

  .price-page h3.wp-block-heading {
    font-size: 1.08rem;
  }

  /* 授業プラン */
  .price-page .price-intro {
    padding: 1.2em;
  }

  /* 月額授業料：SPでは1カラム */
  .price-page .price-row {
    flex-direction: column;
    gap: 16px;
    margin-top: 16px;
  }

  .price-page .price-row + .price-row {
    margin-top: 16px;
  }

  .price-page .price-row > .wp-block-column {
    flex-basis: 100% !important;
    max-width: 100% !important;
  }

  .price-page .price-card {
    padding: 1.1em;
  }

  /* テーブル全体 */
  .price-page .wp-block-table th,
  .price-page .wp-block-table td {
    padding: 10px 8px;
    font-size: 0.9rem;
  }

  .price-page .price-table td:last-child {
    font-size: 1rem;
  }

  /* 諸経費テーブル：スマホ横スクロール */
  .price-page figure.cost-table.wp-block-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .price-page figure.cost-table.wp-block-table table {
    width: 600px !important;
    min-width: 600px !important;
    max-width: none !important;
    table-layout: fixed;
  }

  .price-page .cost-table th:nth-child(1),
  .price-page .cost-table td:nth-child(1) {
    width: 190px;
  }

  .price-page .cost-table th:nth-child(2),
  .price-page .cost-table td:nth-child(2) {
    width: 140px;
  }

  .price-page .cost-table th:nth-child(3),
  .price-page .cost-table td:nth-child(3) {
    width: 270px;
  }

  .price-page .cost-table th,
  .price-page .cost-table td {
    padding: 10px;
  }

  /* 割引ブロック */
  .price-page .discount-block {
    padding: 1.1em;
  }
	  .price-page figure.cost-table.wp-block-table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    line-height: normal !important;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .price-page figure.cost-table.wp-block-table::-webkit-scrollbar {
    display: none;
  }

  .price-page figure.cost-table.wp-block-table table {
    width: 600px !important;
    min-width: 600px !important;
    max-width: none !important;
    table-layout: fixed;
    border: 1px solid var(--price-border) !important;
    border-radius: 10px !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    overflow: hidden;
    background: #fff;
    margin: 0 !important;
  }

  .price-page figure.cost-table.wp-block-table th,
  .price-page figure.cost-table.wp-block-table td {
    border: none !important;
    border-right: 1px solid var(--price-border) !important;
    border-bottom: 1px solid var(--price-border) !important;
  }

  .price-page figure.cost-table.wp-block-table tr > *:last-child {
    border-right: none !important;
  }

  .price-page figure.cost-table.wp-block-table tbody tr:last-child > * {
    border-bottom: none !important;
  }

  .price-page figure.cost-table.wp-block-table thead tr:last-child > * {
    border-bottom: 1px solid var(--price-border) !important;
  }
}



/* =============================================
  生徒専用ページ：ヘッダー・フッター非表示
  対象ページID：1812
  ※ page-id-1812 が body ではなく body直下のdivに付いている構造用
============================================= */

.page-id-1812 header,
.page-id-1812 footer,
.page-id-1812 .l-header,
.page-id-1812 .l-footer,
.page-id-1812 .p-header,
.page-id-1812 .p-footer,
.page-id-1812 #header,
.page-id-1812 #footer,
.page-id-1812 .p-breadcrumb,
.page-id-1812 .c-pageTitle,
.page-id-1812 .l-topTitleArea,
.page-id-1812 .c-pageTitle__inner {
  display: none !important;
}

/* 上下余白調整 */
.page-id-1812 .l-mainContent,
.page-id-1812 .l-content,
.page-id-1812 main {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* 本文エリア調整 */
.page-id-1812 .l-mainContent__inner,
.page-id-1812 .post_content {
  max-width: 100% !important;
  padding-top: 0 !important;
}

/* =============================================
  生徒専用ページ：フッター直前のロゴ・フッター周辺要素を非表示
  対象ページID：1812
============================================= */

.page-id-1812 .l-footer,
.page-id-1812 .p-footer,
.page-id-1812 footer,
.page-id-1812 #footer,
.page-id-1812 .w-footer,
.page-id-1812 .l-footer__inner,
.page-id-1812 .p-footer__inner,
.page-id-1812 .p-footer__logo,
.page-id-1812 .c-headLogo,
.page-id-1812 .c-headLogo.-footer,
.page-id-1812 .footer-logo,
.page-id-1812 .footerLogo,
.page-id-1812 .p-footer__nav,
.page-id-1812 .p-footer__widgets,
.page-id-1812 .w-beforeFooter,
.page-id-1812 .l-beforeFooter,
.page-id-1812 .p-beforeFooter {
  display: none !important;
}

