@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/
/*
Theme Name: SWELL Child
Template: swell
Version: 1.0.0
*/

/* -------------------------
   基本変数
   ------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,200..900;1,200..900&family=Zen+Kaku+Gothic+New&display=swap');
:root{
  --site-max-width: 1200px;
  --gutter: 32px;
  --left-width: 240px;
  --right-width: 240px;
  --base-padding: 40px;
  --breakpoint-sp: 768px;
  --color-text: #222;
  --color-muted: #666;
  --link-color: #0a66c2;
  --bg-site: #fff;
}

/* リセット系（必要最小限） */
html,body{height:100%;margin:0;padding:0;color:var(--color-text);background:var(--bg-site);font-family: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;line-height:1.8;}
a{color:var(--link-color);text-decoration:none;}
a:hover{text-decoration:underline;}

/* -------------------------
   レイアウト（PC）
   ------------------------- */
.site-frame{
  display: grid;
  grid-template-columns: var(--left-width) 1fr var(--right-width);
  gap: var(--gutter);
  max-width: var(--site-max-width);
  margin: 0 auto;
  padding: var(--base-padding);
  box-sizing: border-box;
  align-items: start;
}

/* 左カラム */
.col-left{
  position: relative;
  padding: 8px 12px;
}
.col-left .logo{display:block;margin-bottom:20px;}
.col-left .left-buttons .btn{
  display:block;
  margin-bottom:10px;
  padding:10px 14px;
  background:#0a66c2;color:#fff;border-radius:6px;text-align:center;
}

/* メイン */
.col-main{
  min-width:0;
  padding: 0 8px;
  box-sizing: border-box;
}

/* 右カラム */
.col-right{
  padding: 8px 12px;
  box-sizing: border-box;
}
.col-right nav{margin-bottom:20px;}
.news-widget{background:transparent;}
.news-widget .news-title{font-weight:700;margin:0 0 8px 0;}
.news-list{list-style:none;margin:0;padding:0;}
.news-list li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid rgba(0,0,0,0.05);}
.news-list time{color:var(--color-muted);font-size:13px;min-width:86px;}

/* コンテンツ内の画像や表の最大幅調整 */
.col-main img, .col-main table{max-width:100%;height:auto;}

/* -------------------------
   ハンバーガーメニュー（モバイル用）基礎
   ------------------------- */
#menu-toggle{
  display:none;
  background:transparent;border:0;padding:8px;cursor:pointer;
}
#menu-toggle .bar{display:block;width:22px;height:2px;background:#222;margin:4px 0;border-radius:2px;}
#mobile-menu{
  display:none;
  position:fixed;
  top:0;right:0;bottom:0;left:0;
  background:rgba(0,0,0,0.6);
  z-index:9999;
}
#mobile-menu .panel{
  width:320px;
  max-width:90%;
  height:100%;
  background:#fff;
  padding:20px;
  box-sizing:border-box;
  overflow:auto;
}

/* モバイル内のニュースリスト（コンパクト） */
#mobile-menu .news-list li{display:flex;flex-direction:row;align-items:center;padding:8px 0;border-bottom:1px solid rgba(0,0,0,0.06);}
#mobile-menu .news-list time{min-width:80px;font-size:13px;color:var(--color-muted);}

/* -------------------------
   レスポンシブ（SP）: 左右を非表示、メニュー表示
   ------------------------- */
@media (max-width: calc(var(--breakpoint-sp) - 1px)) {
  .site-frame{
    display:block;
    padding:16px;
  }
  .col-left, .col-right{display:none;}
  /* ヘッダーにトグルを表示する想定 */
  #menu-toggle{display:inline-block;}
  /* mobile menu open state */
  #mobile-menu.is-open{display:block;}
}

/* -------------------------
   アクセシビリティとフォーカス
   ------------------------- */
a:focus, button:focus, input:focus{outline:3px solid rgba(10,102,194,0.18);outline-offset:2px;}
#mobile-menu .panel:focus{outline:none;}

/* -------------------------
   微調整（可変幅や小画面での余白）
   ------------------------- */
@media (max-width: 1024px) {
  :root{--site-max-width: 980px;}
  .site-frame{gap:24px;}
}
@media (max-width: 900px) {
  :root{--left-width:200px;--right-width:260px;}
}

/* -------------------------
   ニュースタイトルの省略（長いタイトル対策）
   ------------------------- */
.news-list a{
  display:inline-block;
  color:var(--color-text);
  max-width: calc(100% - 100px);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* -------------------------
   管理用のユーティリティ（必要に応じて）
   ------------------------- */
.u-hidden{display:none !important;}
/* ヒーロー */
.hero { width:100%; overflow:hidden; margin-bottom:24px; }
.hero .swiper-slide img { width:100%; height:auto; object-fit:cover; display:block; }
@media (max-width:768px){ .hero .swiper-slide img { height:320px; } }

/* モバイルメニュー開閉の簡易スタイル */
#mobile-menu { display:none; }
#mobile-menu.is-open { display:block; position:fixed; inset:0; background:#fff; z-index:9999; }

#gnav, #main_visual, #post_slider, .l-fixHeader__gnav {
	display: none;
}
.top #content {
    padding-top: 0;
}
.hero {
	position: relative;
}
.heroLogo {
	position: absolute;
    bottom: 3%;
    left: 5%;
    z-index: 10;
}
.heroLogo img {
	width: 15vw;
}
.hero { position: relative; overflow: hidden; }
.hero-slides { position: relative; width:100%; aspect-ratio: 1.5; }
.slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
  display: block;
}
.slide.is-active { opacity: 1; pointer-events: auto; z-index: 2; }
.slide img { width:100%; height:100%; object-fit: cover; display:block; }
.hero-prev, .hero-next {
  position: absolute; top:50%; transform: translateY(-50%);
  background: rgba(0,0,0,0.4); color:#fff; border:none; padding:8px 12px;
  cursor:pointer; z-index: 10;
}
.hero-prev { left: 12px; } .hero-next { right: 12px; }
@media (prefers-reduced-motion: reduce) {
  .slide { transition: none; }
}
body {
	font-family: "Source Sans 3", "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	font-style: normal;
}
.-txt .c-headLogo__link {
    font-weight: 400;
    letter-spacing: 0.075em;
}
.l-footer {
	display: none;
}
a:hover {
	opacity: 0.7;
}
.onlineBtn img {
	width: 80%;
}
.home .logo {
	display: none;
}
.site-frame {
	padding-top: 0;
}
/* 空の中央領域の見た目調整（必要なら高さを調整） */
.center-empty { min-height: 1px; }

/* PC の場合は余白を確保 */
@media (min-width: 768px) {
  .site-frame { display: grid; grid-template-columns: 240px 1fr 240px; gap: var(--gutter, 32px); align-items:start; }
  .center-empty { min-height: 200px; }
}
/* 右カラムの SWELL ハンバーガーを PC でも表示させる */
@media (min-width: 960px) {
  /* 親テーマで非表示にしている場合を上書き */
  .sidebar-actions .l-header__menuBtn.sp_ {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  /* ボタン自体の表示を強制（親テーマの .c-iconBtn 等を流用） */
  .sidebar-actions .c-iconBtn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }

  /* 右カラム内での見た目調整（必要に応じて数値を変更） */
  .sidebar-actions {
    gap: 16px;
  }
  .sidebar-actions .l-header__menuBtn.sp_ {
    margin-left: 0;
    margin-right: 0;
  }

  /* もしアイコンが小さすぎる／大きすぎる場合の調整例 */
  .sidebar-actions .c-iconBtn__icon {
    font-size: 20px; /* アイコンサイズ調整 */
  }
}
.sidebar-actions a img {
	width: 44px;
}
.sidebar-actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 1rem;
}
.is-hide-last--pc .p-postList__item:last-child, .p-spMenu {
	display: initial;
}
news-list li {
    border-bottom: 1px solid black;
}
.sidebar-actions .c-iconBtn__icon {
	font-size: 24px;
}
.icon-menu-thin:before {
    content: "";
    display: inline-block;
    width: 44px;
    height: 44px;
    background-color: none;
    background-image: url('https://the-school.jp/wp-content/themes/swell_child/images/hamburger.png');
    background-position: center;
    background-size: contain;
}
.news-widget .news-title {
    font-size: 1.5rem;
    font-weight: 400;
}
.news-list li:first-child {
    border-top: 1px solid black;
}
.news-list li {
    border-bottom: 1px solid black;
}
a:focus, button:focus, input:focus {
    outline: none;
}
/* 基本コンテナ */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

/* カラムの基本 */
.col-left { display:none; }
.col-center { order: 1; }
.col-right { order: 2; }

/* メインビジュアル */
.page-hero__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* tablet */
@media (min-width: 600px) {
  .container {
    grid-template-columns: 1fr 320px; /* メイン + サイド */
    align-items: start;
  }
  .col-left { display:none; }
  .col-center { order: 1; }
  .col-right { order: 2; }
}

/* desktop */
@media (min-width: 960px) {
  .container {
    grid-template-columns: 1fr 720px 320px; /* 左余白・中央・右サイド */
    gap: 32px;
  }
  .col-left { display:block; } /* 左カラムを空白やウィジェットに使える */
}
a:hover {
    text-decoration: none;
}
/* --- 共通コンテナ（TOP と同じ幅） --- */
.layout-3col__container {
  max-width: 1200px; /* TOP と合わせる */
  margin: 0 auto;
  padding: 0 16px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}

/* カラムの基本（モバイルファースト） */
.col-left { display: none; }
.col-center { order: 1; width: 100%; }
.col-right { order: 2; }

/* メインビジュアル */
.page-hero__img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: 4px;
}

/* tablet（600px 以上）: メイン + サイドの2カラム想定 */
@media (min-width: 600px) {
  .layout-3col__container {
    grid-template-columns: 1fr 320px;
  }
  .col-left { display: none; }
  .col-center { width: auto; }
  .col-right { width: 320px; }
}

/* desktop（960px 以上）: 左余白 + 中央 + 右サイドの3カラム */
@media (min-width: 960px) {
  .layout-3col__container {
    grid-template-columns: 1fr 720px 320px; /* 左空白・中央・右 */
    gap: 32px;
  }
  .col-left { display: block; }
  .col-center { width: 720px; }
  .col-right { width: 320px; }
}

/* ページ本文の基本スタイル（必要に応じて拡張） */
.page-content {
  line-height: 1.8;
  color: #222;
  font-size: 16px;
}
.page-title {
  font-size: 28px;
  margin: 0 0 18px;
}

/* 画像のレスポンシブ最適化補助 */
.page-hero img { display:block; max-width:100%; height:auto; }

/* サイドバー内のウィジェット間隔 */
.col-right .widget { margin-bottom: 24px; }
/* --- ページ上部ヒーロー（site-frame の上に出した場合の追加スタイル） --- */
.page-hero--wrap {
  max-width: 1200px; /* TOP と同じ幅に合わせる（必要なら数値を変更） */
  margin: 0 auto;
  padding: 0 16px;
  box-sizing: border-box;
}
.page-hero__img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 4px; /* 不要なら削除 */
}
#breadcrumb {
	display: none;
}
.page-hero__img {
    border-radius: 0;
}
.page-hero--wrap {
	margin-bottom: 24px;
	padding: 0;
}
.l-content {
	padding-top: 0;
}
.site-frame {
	padding: 0;
}
.col-left {
    padding: 0;
}
.col-right {
	width: 100%;
}
.col-right {
    padding: 0;
}
.col-main {
	padding-left: 10%;
	padding-right: 10%;
}
#page-title {
	font-weight: 900;
	font-size: 2rem;
	letter-spacing: -0.1rem;
}
.-type-card .p-postList__thumb {
	display: none;
}
.p-postList__item {
	width: 100% !important;
}
.-type-card .p-postList__item {
    margin-bottom: 1em;
    border-bottom: 1px solid black;
	padding-bottom: 1em;
}
.p-postList__body {
	padding-top: 0 !important;
}
.p-postList__title {
	font-weight: 400;
}
.icon-posted:before {
    content: none;
}
.c-postTimes {
    font-size: 0.9rem;
    letter-spacing: 0.05rem;
    color: black;
}
.p-postList.p-postList .p-postList__item:first-child {
	padding-top: 1em;
	border-top: 1px solid black; 
}
.p-postList__excerpt {
	display: none;
}
/* 投稿ページのみロゴ画像を完全に非表示にする（強力） */
.single-post .-series .l-header__logo a {
  display: none !important;
}
.post-navigation {
	margin: 5% auto 0 auto;
}
.post-nav-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.post-nav-inner div {
	width: 30%;
}
.post-nav-inner div a {
	color: white;
	padding: 1em 2em;
	border-radius: 9999px;
	background-color: black;
	width: 100%;
    display: block;
    text-align: center;
}
#content {
	padding-bottom: 4em;
}
.single-post .entry-title {
    font-weight: 900;
    font-size: 2rem;
    letter-spacing: -0.1rem;
}
.l-fixHeader {
    z-index: 100;
}
.c-widget__title {
	display: none;
}
.p-spMenu__body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}
.p-spMenu__nav {
    order: 1;
}
.menuOpen {
	width: 30vw;
	margin-right: 5vw;
}
.p-spMenu__bottom {
    margin-top: 0;
}
.c-gnav .sub-menu a:before, .c-listMenu a:before {
	content: none;
}
.c-listMenu a {
	padding-left: 0;
}
.c-spnav a {
    border-bottom: none;
    padding: .5em 0;
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -0.05rem;
}
.c-listMenu a:hover {
	background: none;
    padding-left: 0.5em;
}
.p-spMenu__closeBtn {
    right: 0;
    background: black;
}
.p-spMenu__closeBtn .c-iconBtn__icon {
	color: white;
}
p-spMenu__closeBtn {
    left: unset;
}
@media (max-width: 959px) {
.l-header__logo {
	padding-top: 0.5em;
	padding-bottom: 0.5em;
}
.single-post .-series .l-header__logo a {
    display: unset !important;
}
.post-nav-inner {
    flex-wrap: wrap;
}
.post-nav-inner div {
    width: 100%;
}
.post-nav-inner div:first-child, .post-nav-inner div:nth-child(2) {
    margin-bottom: 1em;
}
.site-frame {
	grid-template-columns: 1fr 120px;
}
.center-empty {
	display: none;
}
.onlineBtn img {
	height: 44px;
	width: auto;
}
.news-widget .news-title {
    font-weight: 900;
    font-size: 2rem;
    letter-spacing: -0.1rem;
}
.col-right .news-widget {
	display: none;
}
.sidebar-actions {
	gap: 16px;
}
.col-main {
    padding-left: 0;
    padding-right: 0;
}
.sidebar-actions {
    margin-top: 0;
}
header .l-header__menuBtn {
	display: none !important;
}
.l-header__logo {
	padding-left: var(--swl-pad_container, 0);
}
.news-widget {
    margin-bottom: 2.5rem;
}
.heroLogo img {
    width: 20vw;
}
}
@media (max-width: 599px) {
.col-right {
	display: none;	
}
.site-frame {
	grid-template-columns: 100%;
}
.heroLogo img {
	width: 40vw;
}
.onlineBtn {
	display: block;
	text-align: center;
}
.hero-slides { position: relative; width:100%; aspect-ratio: 1 / 1; }
header .l-header__menuBtn {
	display: unset !important;
	margin: 1em;
	margin-right: var(--swl-pad_container, 0);
}
.menuOpen {
    width: 70%;
}
.p-spMenu__nav {
    margin-top: -50%;
}
.p-spMenu__closeBtn {
    width: 66px;
    height: 66px;
}
.-txt .c-headLogo__link {
    font-size: 6.5vw;

}
}
@media (max-width: 1300px) {
.post-nav-inner {
    flex-wrap: wrap;
}
.post-nav-inner div {
    width: 100%;
}
.post-nav-inner div:first-child, .post-nav-inner div:nth-child(2) {
    margin-bottom: 1em;
}
}
@media screen and (min-width: 960px) {
.tab {
	display: none !important;
}
.sp {
	display: none !important;
}
.tabsp {
	display: none !important;
}
}
@media screen and (max-width: 959px)and (min-width: 601px) {
.pc {
	display: none !important;
}
.sp {
	display: none !important;
}
}
@media screen and (max-width: 600px) {
.pc {
	display: none !important;
}
.tab {
	display: none !important;
}
.pctab {
	display: none !important;
}
}
/* スライド動作を固定（上下移動・拡大縮小を無効化） */
.slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s ease-in-out, filter 1s ease-in-out;
  pointer-events: none;
  will-change: opacity, filter;
  backface-visibility: hidden;
  transform: none !important; /* translate/scale を無効化 */
  filter: blur(3px) saturate(0.95) contrast(0.98);
  overflow: hidden;
}

.slide.is-active {
  opacity: 1 !important;
  transform: none !important; /* アクティブ時も移動させない */
  filter: blur(0px) saturate(1.04) contrast(1.02);
  pointer-events: auto;
  z-index: 2;
}

/* 画像の拡大縮小・移動を完全に取り除く */
.slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: filter 1s ease-in-out; /* transform は使わない */
  transform: none !important;
  filter: blur(0.6px) brightness(0.98);
}
.slide.is-active img {
  transform: none !important;
  filter: blur(0px) brightness(1.02);
}

/* 霧レイヤー等（位置変化は使わない） */
.slide::before {
  content: "";
  position: absolute;
  inset: -10% -10% -10% -10%;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 20%, rgba(0,0,0,0.06) 70%, rgba(0,0,0,0.12) 100%),
    linear-gradient(180deg, rgba(255,255,255,0.02), rgba(0,0,0,0.06));
  mix-blend-mode: screen;
  opacity: 0.12;
  transform: none !important; /* translate を無効化 */
  transition: opacity 1s ease-in-out, filter 1s ease-in-out;
  filter: blur(6px);
  z-index: 3;
}

.slide.is-active::before {
  opacity: 0.06;
  filter: blur(3px);
}

/* 微かなノイズテクスチャ（任意） */
.slide .fog-noise {
  position: absolute;
  inset: 0;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><filter id="n"><feTurbulence baseFrequency="0.9" numOctaves="1" stitchTiles="stitch"/><feColorMatrix type="saturate" values="0"/></filter><rect width="100%" height="100%" filter="url(%23n)" opacity="0.06" /></svg>');
  opacity: 0.06;
  mix-blend-mode: overlay;
  pointer-events: none;
  z-index: 4;
  transition: opacity 1s ease-in-out;
}
.slide.is-active .fog-noise { opacity: 0.02; }

/* reduced motion の配慮 */
@media (prefers-reduced-motion: reduce) {
  .slide {
    transition: opacity 0.15s linear !important;
    transform: none !important;
    filter: none !important;
  }
  .slide img { transition: none !important; transform: none !important; filter: none !important; }
  .slide::before, .slide .fog-noise { display: none !important; animation: none !important; }
}