@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
*/

/* Common */
.page h1.c-pageTitle {
	position: relative;
	padding: 0.7em 1.5em;
	text-align: center;
	background-color: #f4f4f4;
}
.c-pageTitle[data-style=b_bottom] {
	border-bottom:none;
}
.c-pageTitle[data-style=b_bottom] .c-pageTitle__inner {
	float:none !important;
	border:none !important;
	font-size:1.5em;
}
.page h1.c-pageTitle:before,
.page h1.c-pageTitle:after {
	position: absolute;
	content: '';
	visibility: initial;
}
.page h1.c-pageTitle:after {
  top: 0;
  left: 0;
  width: 50px;
  height: 50px;
  border-top: 2px solid #2e8bef;
  border-left: 2px solid #2e8bef;
}
.page h1.c-pageTitle:before {
  right: 0;
  bottom: 0;
  width: 50px;
  height: 50px;
  border-right: 2px solid #2e8bef;
  border-bottom: 2px solid #2e8bef;
}
.post_content h2 {}
.post_content h3 { font-size:1.5em; }
.post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	padding: 0px 0.3em .5em;
}
.post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	height:4px;
}

.post_content h4 {
	padding: 5px 0 5px 16px;
    border-left: solid 4px var(--color_htag);
}

.alignfull {
	width: 100vw;           /* 画面幅いっぱいに指定 */
    position: relative;
    left: 50%;
	right: 50%;
	margin-left: -50vw;     /* 左に画面半分戻す */
	margin-right: -50vw;
}
.post_content .wd01 table { width:80%; margin:0 auto; }
.post_content .swell-block-linkList__link {
	color:#1176d4;
}


/* header */
.logo_header {
	max-width:1200px;
	margin:0 auto;
}
.logo_left { width:50%; float:left; }
.logo_right { width:25%; float:right; margin-top:35px; }
nav.l-header__gnav {
	background-color: #31428c;
}
.l-header__gnav ul.c-gnav { border-top:1px solid #7180bc; border-bottom:1px solid #7180bc; }
.l-header__gnav ul.c-gnav > li:first-child {
	border-left:1px solid #7180bc;
}
.l-header__gnav ul.c-gnav > li {
	border-right:1px solid #7180bc;
}
.l-header__gnav ul.c-gnav > li a {
	padding: 16px 35px !important;
	color:#fff;
}
.l-header__gnav .c-gnav .sub-menu li{ border-bottom:1px solid #eee; }
.l-header__gnav ul.c-gnav > li .sub-menu li a {
	padding: 12px 25px !important;
	line-height:1.4;
	color:#222;
}
.l-fixHeader__gnav ul.c-gnav ul.sub-menu li {
	border-bottom:1px solid #eee;
}


ul.c-gnav li a::after {
	background: #fff;
}

.pankuzu {
	max-width:1200px;
	margin:0 auto;
	position: relative;
}
.-body-solid .p-breadcrumb.-bg-on {
	box-shadow: none;
	background: none;
	position: absolute;
	right:0;
}

/* HOME */
.home .l-content {
	margin-bottom:0 !important;
	padding-top:0 !important;
}
/* 「記事が見つかりませんでした。」というテキストを含むpタグが中にある場合、親のグループを消す */
.hide-if-empty:has(.p-postListWrap p:contains-text) {
    display: none;
}
/* 上記で動かない場合の、より直接的な指定（pタグが直下にある場合を想定） */
.hide-if-empty:has(.p-postListWrap > p) {
    display: none;
}

/* page */
.page_head {
	text-align:center;
	color:#fff;
	padding:60px 0 30px;
	background: url("images/bg_page.webp") no-repeat;
}
.page_head h2 {	font-size: clamp(18px, 4vw, 42px); }
.page_head h4 {
	font-weight: normal;
	font-size: clamp(12px, 4vw, 21px);
	margin-top:-10px;
	margin-bottom:30px;
}
.page_head .submenu ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0px;
    list-style: none;
}

.page_head .submenu li {
    display: flex;           /* アイコンと文字を並べる */
    align-items: center;    /* アイコンと文字の上下中央を揃える */
	/* --- 周囲のデザイン（ボタン風） --- */
    border-top: 1px solid #ccc;  /* 枠線 */
    border-bottom: 1px solid #ccc;  /* 枠線 */
    border-left: 1px solid #ccc;  /* 枠線 */
    padding: 8px 16px;       /* 内側の余白 */
    background: #fff;
    transition: all 0.3s;    /* ホバー時の動きを滑らかに */
}
.page_head .submenu li:last-child { border-right:1px solid #ccc; }

/* リスト名の前にアイコンを追加 */
.page_head .submenu li::before {
    content: "▶";           /* 追加する記号 */
    font-size: 0.7em;       /* 記号を少し小さくするとバランスが良い */
    margin-right: 5px;      /* アイコンと文字の間の隙間 */
    color: #0f6abc;            /* アイコンの色（お好みで） */
}
.page_head .submenu li a {}
p.search-result-count { margin-bottom:25px; }

/* footer */

.ft_info {
	padding:40px 20px;
	box-shadow: 2px 2px 5px 0px rgba(0,0,0,0.4);
}

/* form */
.wpforms-container .wpforms-field { padding:12px 0 !important; }
.wpforms-container h3.wpforms-field-label {
	margin:0 !important;
	padding:0 !important;
	font-size:16px !important;
}
.wpforms-container h3::before {
	background:none !important;
	border:none !important;
}
#wpforms-1215-field_17-container {
	background-color:#eee;
	padding:25px !important;
}
#wpforms-1215-field_17-container .wpforms-field-repeater-button-add {
	background:#666 !important;
	color:#fff !important;
}
.wpforms-field-description {
	position:absolute !important;
	bottom:0 !important;
	margin-bottom:0 !important;
}
.wpforms-field-file-upload .wpforms-field-description {
	position:relative !important;
}
.wpforms-field-radio ul {
	display:inline-grid !important;
}
.wpforms-field-repeater-display-rows-buttons {
	top:12px !important;
}
.wpforms-container .wpforms-field-label {
	margin-bottom:10px !important;
}
.wpforms-entry-preview-label { font-size:16px !important; }
div.wpforms-container-full .wpforms-form .wpforms-pagebreak-center {
	text-align:left;
}

@media screen and (max-width: 768px) {
	/* header */
	.l-header__inner { height:70px; }
	.logo_left { width:100%; }
	.logo_right { display:none;}
	.-img .c-headLogo__link { padding:0; }
	.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
		flex-basis: 48% !important;
	}
	.page_head .submenu ul {
		flex-wrap: wrap;
	}
	.page_head .submenu ul li {
		flex: 0 0 calc(50% - 10px);
		margin-bottom:-1px;
	}
}
/* --- PC版 (601px以上で表示) --- */
@media (min-width: 601px) {
    .slide01 {
        display: block;
        /* 高さを自動、または固定にする */
        height: auto; 
    }
    .slide02 {
        display: none;
    }
}
/* --- SP版 (600px以下で表示) --- */
@media (max-width: 600px) {
    .slide01 {
        display: none;
    }
    .slide02 {
        display: block;
        /* 高さを自動、または固定にする */
        height: auto;
    }
}

@media screen and (max-width: 480px) {
	/* common */
	.u-fz-xl { font-size:21px !important; }
	
	.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column {
		flex-basis: 100% !important;
	}
	
	/* home */
	.top_title { font-size:21px; }
	
	/* page */
	.l-mainContent__inner>.post_content {
		margin:2em;
	}
	.page h1.c-pageTitle {
		margin-top:2em !important;
		margin-bottom:2em !important;
		padding: 5px 10px;
	}
	.c-pageTitle[data-style=b_bottom] .c-pageTitle__inner {
		font-size:1.2em;
	}
	.post_content {	margin:0.5em !important; }
	.post_content h3 { font-size:1.4em; }
	
/* table */
/* 共通解体 */
    .post_content table, .post_content tbody, .post_content tr, .post_content td, .post_content th {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .post_content thead, .post_content tr.mobile-hide-row {
        display: none !important;
    }

    .post_content tr {
        margin-bottom: 15px !important;
        border: 1px solid #ddd !important;
        background: #fff !important;
    }

    /* 基本セル設定 */
    .post_content td, .post_content th {
        position: relative !important;
        border: none !important;
        border-bottom: 1px solid #eee !important;
        text-align: left !important;
        padding: 12px 10px !important;
        background: #fff !important;
        color: #333 !important;
        font-weight: normal !important;
        min-height: 40px;
    }

    /* --- パターンA: 3列以上の表（左に見出し固定） --- */
    .post_content tr:not(.mobile-hide-row) td[data-label],
    .post_content tr:not(.mobile-hide-row) th[data-label] {
        padding-left: 31% !important; /* 見出しエリアの確保 */
    }

    .post_content td[data-label]::before,
    .post_content th[data-label]::before {
        content: attr(data-label);
        position: absolute !important;
        top: 0; left: 0;
        width: 27% !important;
        height: 100%;
        background-color: #ffffe6 !important;
        color: #666 !important;
        font-weight: bold !important;
        font-size: 0.85em;
        padding: 5px 10px !important;
        display: flex;
        align-items: center;
        justify-content: center;
        border-right: 1px solid #ddd;
        box-sizing: border-box;
    }

    /* --- パターンB: 2列の縦型テーブル（1列目が見出し） --- */
    /* JSで data-processed がついていて、かつラベルがついていないth/tdの処理 */
    .post_content table.is-vertical-table tr th:first-child {
        background-color: #ffffe6 !important;
        font-weight: bold !important;
        border-bottom: 1px solid #ddd !important;
        padding: 8px 15px !important;
        color: #444 !important;
    }
    
    .post_content table.is-vertical-table td::before {
        display: none !important; /* 余計なラベルを消す */
    }

    /* 空セルの非表示 */
    .post_content td:empty { display: none !important; }
	
	
	.wp-block-table>table tr>:first-child:not(.-no1) {
		max-width: inherit !important;
		min-width: inherit !important;
	}
	
	.swell-block-step__item { padding: 0 0 2em 64px; }
	
	.page_head .submenu ul li {
		flex: 0 0 calc(100% - 10px);
	}
	.banner_top .wp-block-image .alignright,
	.banner_top .wp-block-image .alignleft {
		float:none;
		margin:0 20px;
	}
	.ft_text { text-align:center; }
}


/* 若年事業 -------------------------------------------------- */
/* commen */
a.bt_home {
    font-size: 18px;
	font-weight: bold;
    color: #222;
    padding: 10px 15px 10px 30px;
    border: 1px solid #ccc;
}
a.bt_home:hover {
	background-color: #eee;
}
.arrow{
	position: relative;
	display: inline-block;
	padding: 0 0 0 16px;
	color: #000;
	vertical-align: middle;
	text-decoration: none;
	font-size: 15px;
}
.arrow::before,
.arrow::after{
	position: absolute;
	top: 0;
	bottom: 0;
	left: 8px;
	margin: auto;
	content: "";
	vertical-align: middle;
}
a.bt_home::before{
	box-sizing: border-box;
    width: 18px;
    height: 18px;
    border: 1px solid #222;
    -webkit-border-radius: 50%;
    border-radius: 50%;
}
a.bt_home::after{
    left: 13px;
    width: 5px;
    height: 5px;
    border-top: 1px solid #222;
    border-right: 1px solid #222;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.page-id-88 .logo_right, { width:30%; }

.page-id-88 .pankuzu,
.page-id-88 h1.c-pageTitle{	display:none; }
.page-id-88 .post_content {	margin-top:0; }
.page-id-88 .l-content { padding-top:0; }

.page-id-88 nav.l-header__gnav,
.parent-pageid-88 nav.l-header__gnav {
	background-color: #fff;
}
.page-id-88 .l-header__gnav ul.c-gnav,
.parent-pageid-88 .l-header__gnav ul.c-gnav {
	border-top:1px solid #ccc;
	border-bottom:1px solid #ccc;
}
.page-id-88 .l-header__gnav ul.c-gnav > li:first-child,
.parent-pageid-88 .l-header__gnav ul.c-gnav > li:first-child {
	border-left:1px solid #ccc;
}
.page-id-88 .l-header__gnav ul.c-gnav > li,
.parent-pageid-88 .l-header__gnav ul.c-gnav > li {
	border-right:1px solid #ccc;
}
.page-id-88 .l-header__gnav ul.c-gnav > li a,
.parent-pageid-88 .l-header__gnav ul.c-gnav > li a {
	padding: 16px 25px !important;
	color:#222;
}
.page-id-88 .l-header__gnav ul.c-gnav > li .sub-menu li a,
.parent-pageid-88 .l-header__gnav ul.c-gnav > li .sub-menu li a {
	padding: 12px 25px !important;
	line-height:1.4;
	color:#222;
}
ul.c-gnav li a::after {
	background: #fff;
}
.page-id-88 ul.c-gnav li a::after,
.parent-pageid-88 ul.c-gnav li a::after {
	background: #333;
}
.page-id-88 .l-header__customBtn button,
.parent-pageid-88 .l-header__customBtn button {
	display: none !important;
}

/* home */

@media screen and (min-width: 1400px) {
	.ysd_main { height:750px !important; }
}
@media screen and (min-width: 1200px) {
	.ysd_main { height:700px; }
}
@media screen and (min-width: 1000px) {
	.ysd_main { height:650px; }
}
@media screen and (min-width: 800px) {
	.ysd_main { height:500px; }
}
@media screen and (max-width: 480px) {
	.post_content { margin-top:0 !important; }
}
/* page */
.jakunen {
	height:220px;
	background: url("images/bg_jakun_page.webp") no-repeat;
}

.page-id-88 h1.c-pageTitle,
.parent-pageid-88 h1.c-pageTitle {
  position: relative;
  padding: 10px 5px 10px 42px;
  background: #0095cd;
  font-size: 20px;
  color: white;
  margin-left: -33px;
  line-height: 1.3;
  z-index:-1;
}

.page-id-88 h1.c-pageTitle:before,
.parent-pageid-88 h1.c-pageTitle:before {
	position: absolute;
	content: '';
	left: -2px;
	top: -2px;
	border: none;
	border-left: solid 40px white;
	border-bottom: solid 79px transparent;
	z-index:-2;
	visibility:inherit;
}
.page-id-88 h1.c-pageTitle:after,
.parent-pageid-88 h1.c-pageTitle:after {
	border:none;
}

.page-id-88 .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before,
.parent-pageid-88 .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	background: repeating-linear-gradient(90deg, #0095cd 0%, #0095cd 29.3%, rgba(150, 150, 150, .2) 29.3%, rgba(150, 150, 150, .2) 100%);
}
.page-id-88 .post_content .is-style-num_circle li:before,
.parent-pageid-88 .post_content .is-style-num_circle li:before {
	background-color:#0095cd;
	box-shadow: 0 0 0 1px #0095cd;
}
.page-id-88 .jakunen,
.jakunen p { display: none; }

p.balloon_box01 { background-color:#eec500 !important; padding:15px !important;width:250px !important;  }
p.balloon_box01::before { border-top: 12px solid #eec500 !important; }
p.balloon_box02 { background-color:#7fd845 !important;  padding:15px !important; width:250px !important; }
p.balloon_box02::before { border-top: 12px solid #7fd845 !important; }


@media screen and (max-width: 960px) {
	.page-id-88 .l-header__logo,
	.parent-pageid-88 .l-header__logo {
		width:700px;
	}
	.page-id-88 .l-header__logo .logo_right,
	.parent-pageid-88 .l-header__logo .logo_right {
		width:50%;
		margin-top:0;
	}
	.page-id-88 h1.c-pageTitle,
	.parent-pageid-88 h1.c-pageTitle {
		font-size:18px;
		margin-bottom:30px;
	}
}
@media screen and (max-width: 600px) {
	.top_title { font-size:24px; }
	.jakunen {
	    height: 70px;
	    background-size: 150%;
	}
	.mono_title figure {
		float:none !important;
		margin:0 auto !important;
	}
	.mono_title p {	text-align: center !important; }
	.mono_title p span { font-size:24px !important;	}
}
@media screen and (max-width: 480px) {
	.p-spMenu__logo img { max-width:280px !important; }
	.top_title span { font-size:21px !important; }
	.page-id-88 .l-header__logo,
	.parent-pageid-88 .l-header__logo {
		width:250px;
	}
	.page-id-88 .post_content,
	.parent-pageid-88 .post_content {
		margin:0.5em;
	}
	.page-id-88 .p-spMenu__inner .c-widget__title.-spmenu,
	.parent-pageid-88 .p-spMenu__inner .c-widget__title.-spmenu {
		background: #0095cd;
	}
}
