@charset "utf-8";
/* -----------------------------------------

	JWU / Department of Child Studies
	breakpoint : 768px / 992px / 1200px / 1400px

	Powered by MTnet
	Arranged by ShiShiDesign

	2025.08.09

----------------------------------------- */

*,:after,:before {
  min-inline-size: 0;
}

:root {
	--font-title-maru: "Zen Maru Gothic", sans-serif;
	/*--font-title-kaku: "Noto Sans JP", sans-serif;*/

	--font-color: #3a3a3a;
	--pink: #f19a96;
	--orange: #ed7841;
	--red: #e9616b;
	--fresh: #d6de26;
	--spring: #adce29;
	--green: #3fb164;
	--purple: #d9adce;
	--sky: #4eb8c4;
	--blue: #5b8cc9;
	--yellow: #fcd13e;
	
	--ivory: #fffcf0;
	--cream: #faf4cd;
	--baby: #fce8dc;
	--brown: #665533;

	--sub-pink: #e37499;
	--sub-green: 159, 189, 74;
	--sub-green-30: #e2ebc8;
	--sub-green-dark: #638c15;
	
	--top-spacing: 70px;
	--theme-block-margin: 1em;
}

html{
  /*-webkit-font-smoothing: antialiased;*/
	font-size: var(--bs-body-font-size);
	scroll-padding-top: var(--top-spacing);
	scroll-behavior: smooth;
}
body {
	letter-spacing: 0.03em;

}
a {
	transition: 0.5s ease-in-out;
}
a:not(.theme-logo){
  word-break: break-all;
}
a:hover {
	opacity: 0.7;
	text-decoration: none;
}
img{
  max-width: 100%;
  height: auto;
}
iframe[src*="youtube"],
iframe[src*="vimeo"]{
  aspect-ratio: 16/9;
  width: 100%;
  height: auto;
}


/**
 * layout
 * 
 */

.offcanvas {
	background-color: var(--ivory);
}
.theme-wrapper{
	background-color: var(--ivory);
}
.theme-skippy{
  position: fixed;
  top: 4px;
  left: 4px;
}
.theme-nav {
	background-color: rgb(var(--sub-green));
}

/* ---------------------------------
	header
--------------------------------- */
header .inner,
.title-wrap,
.site-title {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-content: center;
	align-items: center;
	gap: 1em;
}
header .inner {
	padding: 10px 3rem 20px;
	max-width: 1308px;
}
.logo-header {
	width: 5vw;
	min-width: 40px;
}
header > * {
	user-select: none;
}
.site-title {
	text-align: center;
	gap: 0.5em;
}
.site-tagline {
	font-family: var(--font-title-maru);
	font-weight: 700;
	font-size: 0.85rem;
	line-height: 1.3;
	color: var(--brown);
}
.site-name {
	color: #fff;
	/*font-family: var(--font-title-kaku);*/
	font-size: 1.3rem;
	font-weight: 500;
	line-height: 1.4;
}
header a {
	text-decoration: none;
	gap: 0.5em;
}
@media (min-width: 768px){
	.site-title br {
		display: none;
	}
}
@media (min-width: 992px){
	.logo-header {
		width: 56px;
	}
}
@media (min-width: 1200px){
	header .inner{
		flex-direction: row;
		justify-content: space-between;
		margin: 0 auto;
		padding: 10px 100px 10px 10px;
	}
	.title-wrap {
		flex-direction: row;
		gap: 15px;
	}
	.site-title {
		justify-content: flex-start;
		align-items: flex-start;
		text-align: left;
		gap: 0.3em;
		margin-top: 0.25em;
	}
	.site-tagline {
		margin-left: 0.2em;
	}
}
@media (min-width: 1400px){
	header .inner{
		padding: 10px 0;
	}
}

/* ---------------------------------
	footer
--------------------------------- */
.theme-footer {
	position: relative;
	margin-top: 100px;
}
footer {
	position: relative;
	background-color: rgba(var(--sub-green),0.20);
	padding: 1.5em 0 1em;
}
.footer-illust {
	position: absolute;
	top: -70px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 100;
	width: auto;
	height: 75px;
}
.footer-illust img {
	height: 100%;
	width: auto;
	max-width: inherit;
}
.footer-wrap,
.footer-info,
.theme-footer-logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
}
.footer-wrap,
.footer-info {
	border-bottom: 1px solid rgba(var(--sub-green),0.5);
}
.footer-info {
	padding-bottom: 1em;
}
.footer-info img {
	width: 60px;
}
footer nav {
	padding: 1em 0;
}
footer nav ul {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	row-gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
footer nav li a {
	position: relative;
	text-decoration: none;
	font-size: 0.9em;
}
footer nav li a[target="_blank"]::before {
  font-family: 'Material Symbols Outlined';
  content: 'open_in_new';
  font-weight: normal;
  font-style: normal;
  font-size: 1em;
  color: rgb(var(--sub-green));
  margin-right: 0.2em;
  position: relative;
  top: 0;
  display: inline-block;
  vertical-align: middle;
}

address p {
	margin-bottom: 0;
}
.copyright {
	font-size: 0.70rem;
	line-height: 1.75;
	margin-top: 2em;
}
.copyright p {
	margin-bottom: 0;
}
@media (min-width: 768px){
	.theme-footer {
		margin-top: 200px;
	}
	footer {
		padding: 2.5em 0 1em;
	}
	.footer-illust {
		top: -130px;
		height: 138px;
	}
	.footer-wrap {
		flex-direction: row;
		gap: 50px;
		align-items: flex-start;
	}
	.footer-wrap,
	.footer-info {
		border: none;
		flex-basis: 40%;
	}
	.footer-info,
	.theme-footer-logo {
		align-items: flex-start;
		justify-content: flex-start;
		width: auto;
	}
	.footer-info img {
		width: 113px;
	}
	footer nav {
		border-left: 1px solid rgba(var(--sub-green),0.5);	
		padding: 0.2em 0 5em 1.5em;
	}
}
	
/* ---------------------------------
	search
--------------------------------- */
.search-area {
	width: 270px;
	margin: 0;
}
.mt-site-search-form {
	width: 100%;
	max-width: 300px;
	display: flex;
	position: relative;
}
.mt-site-search-form__query {
	position: relative;
	display: block;
	width: 100%;
	height: 40px;
	font-size: 16px;
	box-sizing: inherit;
	padding: 0 40px 0 20px;
	border: 1px solid #fff;
	border-radius: 100vh;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: #fff;
}
::placeholder {
	color: #ccc;
}
.mt-site-search-form__button {
	position: absolute;
	top: 0;
	right: 0;
	overflow: hidden;
	width: 42px;
	height: 40px;
	display: block;
	padding: 0;
	border: none;
	text-indent: 100%;
	white-space: nowrap;
	background: url("../img/search.svg") 50% no-repeat;
	-webkit-background-size: 18px 18px;
	background-size: 18px;
	cursor: pointer;
}
.mt-site-search-form__button:focus {
	border: 0;
	outline: 0;
}
.entrylist .mt-site-search-result-container .mt-site-search-pagination-item {
	width: auto;
	float: none;
	margin: 0 0;
}
	
body:not(.MTSE) .theme-CTA[href=""]{
  display: none;
}
.theme-footer-logo{
  width: min(var(--theme-footer-logo-max-width, 300px), 100%);
	
}

.whats-new-area {
	background: rgba(var(--sub-green), 0.2);
}

/* ---------------------------------
	headline
--------------------------------- */
.section-title {
	position: relative;
	color: rgb(var(--sub-green));
	font-family: var(--font-title-maru);
	font-size: clamp(2.0rem, calc(1.375rem + 1.5vw), 2.2rem);
	font-weight: 500;
	text-align: center;
}
.section-title:after {
	position: relative;
	top: 10px;
	content: '';
	display: block;
	width: 81px;
	height: 10px;
	background: url("../img/color_dots.png") no-repeat center bottom;
	background-size: contain;
	vertical-align: bottom;
	margin: 0 auto;
}
h1.section-title,
.section-title.blog-name {
	padding-bottom: 2em;
	border-bottom: 3px dotted #d3cdc3;
	background: url("../img/illust_bnr_blog.png") no-repeat right bottom;
	background-size: auto 55%;
}
main.teacher h1.section-title {
	background-image: url("../img/illust_bnr_teacher.png");
}
main.seminar h1.section-title {
	background-image: url("../img/illust_bnr_seminar.png");
}
main.license h1.section-title {
	background-image: url("../img/illust_bnr_license.png");
}
main.senior h1.section-title {
	background-image: url("../img/illust_bnr_senior.png");
}
main.overseas h1.section-title {
	background-image: url("../img/illust_bnr_overseas.png");
}
main.column .section-title.blog-name,
main.column h1.section-title {
	background-image: url("../img/illust_bnr_column.png");
}
@media (min-width: 768px){
	h1.section-title,
	.section-title.blog-name {
		background-size: auto 100%;
	}
}
/**
 * component
 * 
 */
/* ---------------------------------
	hero
--------------------------------- */
.theme-hero {
	display: flex;
	flex-direction: column-reverse;
	gap: 1.5em;
	padding: 2.5rem 1.5rem;
	align-items: center;
}
.theme-hero h1 {
	color: rgb(var(--sub-green));
	font-size: clamp(1.4em, calc(1.375rem + 1.0vw), 1.75rem);
	font-family: var(--font-title-maru);
	font-weight: 500;
	margin-bottom: 0.5em;
}
@media (min-width: 992px){
	.theme-hero{
		flex-direction: row;
		align-items: center;
	}
	.theme-hero-pic {
		flex: 0 0 40%;
	}
}
@media (min-width: 1400px){
	.theme-hero {
		padding: 2.5rem 0;
	}
}

body.MTSE .theme-hero:not(:has(img)){
  display: block;
}
.theme-hero-pic img {
	width: 580px;
}
.theme-hero-text > p {
  font-size: inherit;
  padding: 0 2px;
  line-height: 1.75;
	margin-bottom: 0.75em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/**
 * entries, entry-item
 * 
 */
/* ---------------------------------
	entries
--------------------------------- */
.theme-entries{
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	border-bottom: 1px solid rgba(var(--sub-green), 0.5);
}
.whats-new-area .theme-entries {
	border-bottom: none;
}
.theme-entries a {
	text-decoration: none;
}
.entry-meta{
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	align-items: center;
	gap: 0.25em 0.5em;
	padding: 0;
	margin-bottom: 0.5em;
}
.theme-entry-item {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	background-color: var(--ivory);
}
.theme-entry-item a {
	padding: 1.0em 0;
}
.theme-entry-item {
	border-radius: 0;
	border-top: 1px solid rgba(var(--sub-green), 0.5);
}
.theme-entry-item-title{
	position: relative;
	font-size: 1rem;
	line-height: 1.5;
	margin: 0;
}
.theme-entry-item-title.new-icon:after {
	position: relative;
	top: -1px;
	content: '';
	display: inline-block;
	width: 42px;
	height: 14px;
	background: url("../img/icon_new.png") no-repeat center bottom;
	background-size: contain;
	vertical-align: middle;
	margin-left: 0.25em;
}

.theme-entry-item-published{
	margin: 0;
	font-size: 0.875rem;
	color: rgba(var(--sub-green),0.8);
}
.theme-entries-hide-meta .theme-entry-item-published{
	display: none;
}
.theme-entry-item-categories {
	display: flex;
	gap: 0.5em;
	margin: 0;
	padding: 0;
	font-size: 0.75rem;
	font-weight: 700;
	list-style: none;
}
.theme-entry-item-categories li {
	color: #aaa;
	background: #fff;
	border: 2px solid #ddd;
	font-size: 0.9rem;
	font-weight: 500;
	line-height: 1;
	padding: 0.3em 0.75em;
	border-radius: 100vw;
}

/*whats-new*/
.whats-new-area .theme-entry-item {
	position: relative;
	border-radius: 5px;
	margin-bottom: 8px;
	border: none;
}
.whats-new-area .theme-entry-item a {
	padding: 1.0em;
}
.whats-new-area .theme-entry-item:hover {
	transform: scale(1.01);
	box-shadow: 0 3px 9px rgba(0,0,0,0.1);
}
.theme-entry-item.pick-up {
	border: 2px solid var(--fresh);
}
.theme-entry-item.pick-up:after {
	z-index: 100;
	position: absolute;
	left: -10px;
	top: -20px;
	font-family: 'Material Symbols Outlined';
	content: 'keep';
	font-weight: normal;
	font-style: normal;
	font-size: 30px;
	line-height: 1;
	color: rgb(var(--sub-green));
	transform: rotate(-45deg);
}
.entry-image {
	display: flex;
	justify-content: center;
}

.entry-image img {
	position: relative;
	display: block;
	max-width: 100%;
	max-height: 500px;
	height: auto;
	width: auto;
	margin-bottom: 0.2em;
	border-radius: 1rem;
}
.entry-image figure {
	position: relative;
}
.entry-image figure:after {
	content: "";
	position: absolute;
	left: -20px;
	top: -55px;
	background: url("../img/illust_blog_onepoint.png") no-repeat;
	width: 65px;
	height: 86px;
	background-size: contain;
}

@media (min-width: 768px){
	.entry-image figure:after {
		width: 78px;
		height: 109px;
		left: -40px;
	}
	.theme-entry-item a{
		padding: 1.0em;
	}
}
@media (min-width: 992px){
	.whats-new-area .theme-entries {
		width: 80%;
	}
}

/* ---------------------------------
	button
--------------------------------- */
.btn-round {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 180px;
	padding: 1.00em 2.00em 1.00em 1.25em;
	border-width: 0px;
	border-radius: 100vh;
	color: #fff;
	font-size: 1.1rem;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
	background-color: rgb(var(--sub-green));
	transition: all 0.3s;
	overflow: hidden;
	z-index: 2;
}
.btn:after,
.btn-round:after {
	position: absolute;
	content: "";
	top: 50%;
	transform: translateY(-50%);
	right: 18px;
	transition: all 0.15s;
	background-image: url("data:image/svg+xml,%3csvg width='8' height='12' viewBox='0 0 8 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='m1 1 5 5-5 5' stroke='white' stroke-width='2'/%3e%3c/svg%3e");
	background-size: 100%;
	width: 8px;
	height: 12px;
}
.btn:hover,
.btn-round:hover {
	opacity: 0.90;
	animation: blink 0.5s ease 0s both;
	background-color: rgb(var(--sub-green));
	box-shadow: 0 3px 9px rgba(0,0,0,0.1);
}
.btn:hover:after,
.btn-round:hover:after {
	margin-right: -4px;
}

.theme-entries-hide-meta .theme-entry-item-categories{
display: none;
}


/**
 * webpages, webpage-item
 * 
 */
.theme-webpages{
  --theme-block-columns-gap: 3rem;
}
.theme-webpage-item-grid{
  display: grid;
}
.theme-webpage-item-link{
  text-decoration: none;
}
@media (any-hover: hover) {
  .theme-webpage-item-link:hover {
	text-decoration: underline;
  }
}
.theme-webpage-item-title{
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: inherit;
}
.theme-webpage-item-thumb{
  order: -1;
  margin: 0 0 1.25rem;
  aspect-ratio: 3/2;
  border-radius: 0.5rem;
  background: var(--bs-gray-100);
  overflow: hidden;
}
.theme-webpage-item-img{
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.theme-webpage-item-desc{
  margin: 0;
  font-size: 0.9rem;
}


/**
 * MT custom blocks
 * section
 * 
 */
.theme-block-section{
  --theme-section-padding: 5rem;
  --theme-section-bg: var(--bs-gray-200);
  padding-block: 5rem;
  border-image-source: linear-gradient(to top, var(--theme-section-bg), var(--theme-section-bg));
  border-image-slice: 0 fill;
  border-image-outset: 0 100vw;
}
.theme-block-section-white{
  --theme-section-bg: #fff;
}

/**
 * MT custom blocks
 * columns
 * 
 */

.theme-block-columns{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--theme-block-columns-width, min(200px, 100%)), 1fr));
  gap: var(--theme-block-columns-gap, 2rem);
}

/**
 * MT custom blocks
 * link
 * 
 */
.theme-block-file{
  --theme-block-file-columns: 1fr;
  --theme-block-file-decoration-label: 'リンク';
  --theme-block-file-decoration-fontSize: 0.75rem;
  --theme-block-file-decoration-materialSymbols-name: 'attach_file';
  --theme-block-file-decoration-materialSymbols-fontSize: 1rem;
}
.theme-block-file:has(a[href*=".docx"]){
  --theme-block-file-decoration-label: 'Word';
  --theme-block-file-decoration-materialSymbols-name: 'description';
}
.theme-block-file:has(a[href*=".xlsx"]){
  --theme-block-file-decoration-label: 'Excel';
  --theme-block-file-decoration-materialSymbols-name: 'view_list';
}
.theme-block-file:has(a[href*=".pdf"]){
  --theme-block-file-decoration-label: 'PDF';
  --theme-block-file-decoration-materialSymbols-name: 'description';
}

.theme-block-file:has(a[href*=".zip"]){
  --theme-block-file-decoration-label: 'zip';
  --theme-block-file-decoration-materialSymbols-name: 'folder_zip';
}
.theme-block-file:has(code){
  --theme-block-file-decoration-label: '';
  --theme-block-file-decoration-materialSymbols-name: 'code';
}
.theme-block-file:has(a[href*=".pdf"]):has(img){
  --theme-block-file-columns: 80px 1fr;
}
@media (min-width: 768px){
  .theme-block-file{
    --theme-block-file-decoration-fontSize: 1rem;
    --theme-block-file-decoration-materialSymbols-fontSize: 1.33333rem;
  }
  .theme-block-file:has(a[href*=".pdf"]):has(img){
    --theme-block-file-columns: 128px 1fr;
  }
}
.theme-block-file-decoration{
  display: grid;
  grid-template-columns: max-content max-content;
  align-items: center;
  gap: 0.25rem;
  margin: 0;
  width: fit-content;
  padding: 0.5rem 0.75rem;
	color: var(--ivory);
  font-size: var(--theme-block-file-decoration-fontSize);
  font-weight: 700;
  line-height: 1;
  background: var(--sky);
  border-radius: 8px 8px 0 0;
}
.theme-block-file-decoration-icon::before{
  display: block;
  content: var(--theme-block-file-decoration-materialSymbols-name);
  font-size: var(--theme-block-file-decoration-materialSymbols-fontSize);
  width: var(--theme-block-file-decoration-materialSymbols-fontSize);
  height: auto;
  aspect-ratio: 1/1;
  overflow: hidden;
}
.theme-block-file-decoration-label::before{
  content: var(--theme-block-file-decoration-label);
}
.theme-block-file a{
  display: grid;
  grid-template-columns: var(--theme-block-file-columns);
  justify-items: center;
  align-items: center;
  gap: 12px 16px;
  padding: 0.75rem 1rem;
  text-align: center;
  border-radius: 8px;
  background: #7cd3dd;
  transition: color .15s ease-in-out, background-color .15s ease-in-out;
}
.theme-block-file-decoration + a{
  border-top-left-radius: 0;
}
@media (any-hover: hover) {
  .theme-block-file a:hover {
    color: #fff;
	  opacity: 1;
  }
}


/**
 * MT custom blocks
 * chats
 * 
 */
.theme-block-chats{
  display: grid;
  gap: var(--theme-block-margin, 2rem);
}
.theme-block-chat-item{
  display: flex;
  gap: var(--gap, 1rem);
}
.theme-block-chat-item-head{
  flex: 0 0 var(--fig-size, 4.625rem);
}
.theme-block-chat-item-head figure{
  margin: 0;
}

.theme-block-chat-item-body {
	position: relative;
	flex: 1 1 auto;
	padding: 1rem;
	border-radius: 8px;
	background: var(--baby);
}
.theme-block-chat-item-body:before {
	content: '';
	position: absolute;
	top: 24px;
	left: -15px;
	width: 0;
	height: 0;
	border-top: 15px solid var(--baby);
	border-right: 0 none;
	border-left: 15px solid transparent;
}
.theme-block-chat-item.flex-row-reverse .theme-block-chat-item-body:before {
	left: auto;
	right: -15px;
	transform: scaleX(-1);
}
@media (min-width: 768px){
  .theme-block-chat-item-head{
	--fig-size: 6rem;
	--gap: 2rem;
  }
}
.theme-block-chat-item-caption{
  font-weight: 700;
  text-align: center;
  color: #000;
}
.theme-block-chat-item-caption:empty{
  display: none;
}


/**
 * prose
 */
.theme-prose > * + *,
.semi-block + .semi-block h2 {
  margin-block-start: var(--theme-block-margin, 2rem);
}
.theme-prose > :last-child{
  margin-bottom: 0;
}
.theme-prose > :where(h1,.h1,h2,.h2){
  --theme-block-margin: 6rem;
}

@media (min-width: 768px){
  .theme-prose > :where(h1,.h1,h2,.h2){
	--theme-block-margin: 7rem;
  }
}
.theme-prose > :where(h3,.h3){
  --theme-block-margin: 2.5rem;
}
@media (min-width: 768px){
  .theme-prose > :where(h3,.h3){
	--theme-block-margin: 3rem;
  }
}
.theme-prose > :where(h4,.h4){
  --theme-block-margin: 2rem;
}
.theme-prose > h3 + h4 {
	margin-top: 1rem;
}
.theme-prose > :where(h5,.h5,h6,.h6){
  --theme-block-margin: 1.75rem;
}
.theme-prose > :where(figure, table, .table-responsive){
  /*--theme-block-margin: 3rem;*/
}
.theme-prose li + li{
  margin-block-start: 0.75rem;
}
.theme-prose ul li{
	position: relative;
}
.theme-prose ul li::marker{
/*  content: '\2014';*/
	content: normal;
}

.theme-prose pre{
  padding: 1.5rem;
  border-radius: var(--theme-block-code-border-radius, 4px);
  background: #f7f7f7;
}
.theme-prose blockquote{
  position: relative;
  padding: 1rem 1rem 1rem 35px;
  font-size: 1rem;
  color: var(--bs-secondary-color);
  background: var(--bs-secondary-bg);
  border-left: 4px solid var(--bs-secondary-color);
}
.theme-prose blockquote p{
  margin-bottom: 0.5rem;
}
.theme-prose blockquote::before {
	position: absolute;
	content: '';
	display: block;
	width: 25px;
	height: 25px;
	background: url( 'data:image/svg+xml;utf-8,<svg fill="%23cccccc" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600"><path d="M529.2,309.1c0-59-26.7-74.3-81.9-108.5c-13.3-9.5-17.1-24.8-17.1-34.3c0-26.7,19-55.2,36.2-76.2c7.6-9.5,53.3-47.6,53.3-59 c0-9.5-7.6-20.9-19-20.9c-19,0-192.3,146.6-192.3,298.9c0,57.1,47.6,110.4,110.4,110.4C477.8,419.6,529.2,370.1,529.2,309.1z M239.8,309.1c0-59-26.7-74.3-81.9-108.5c-13.3-9.5-19-24.8-19-34.3c0-26.7,20.9-55.2,38.1-76.2c7.6-9.5,53.3-47.6,53.3-59 c0-9.5-7.6-20.9-19-20.9c-19,0-192.3,146.6-192.3,298.9c0,57.1,47.6,110.4,110.4,110.4C188.3,419.6,239.8,370.1,239.8,309.1z" /></svg>' );
	background-size: contain;
	left: 0.50em;
	top: 1.00em;
}

.theme-prose blockquote cite{
  margin-block-start: 0.5rem;
  font-size: 0.777777777777778rem;
  font-style: normal;
  line-height: 1.15;
}
.theme-block-margin-0{
  --theme-block-margin: 0;
}

/*独自のheadline*/
.theme-prose h2, h2.category-title {
	position: relative;
	padding: 0.5em 1.25em;
	margin-bottom: 50px;
	border-radius: 100vh;
	background-color: var(--pink);
	color: white;
}

.theme-prose h2:before,
.theme-prose h2:after,
h2.category-title:before,
h2.category-title:after {
	position: absolute;
	border-radius: 50%;
	background-color: var(--pink);
	content: "";
}

.theme-prose h2:before,
h2.category-title:before {
	bottom: -20px;
	left: 30px;
	height: 15px;
	width: 15px;
}

.theme-prose h2:after,
h2.category-title:after {
	bottom: -30px;
	left: 45px;
	height: 8px;
	width: 8px;
}

.theme-prose h3 {
	padding:0.3em 0.4em;
	border-top: 1px dashed var(--pink);
	border-bottom: 1px dashed var(--pink);
	color: var(--pink);
}

.theme-prose h4 {
	width: 100%;
	padding:0.5em .75em .5em;
	font-weight: 600;
	font-weight: 600;
	color: var(--font-color);
	background: var(--cream);
	border-radius: 8px;
}
.theme-prose h5 {
	position: relative;
	color: var(--orange);
	font-weight: 700;
	padding-left: 0.75em;
	margin-left: 0.5em;
}
.theme-prose h5:before {
	position: absolute;
    content: '';
    top: 0;
    left: 0;
    width: 6px;
    height: calc(100% + 2px);
    border-radius: 3px;
    background: var(--orange);
}
.theme-prose p:not([class]) {
	padding: 0 0.5em;
}
.theme-prose p a[target="_blank"]::before {
	font-family: 'Material Symbols Outlined';
	content: 'open_in_new';
	font-weight: normal;
	font-style: normal;
	font-size: 1.25em;
	color: rgb(var(--sub-green));
	margin-right: 0.2em;
	position: relative;
	top: 0;
	display: inline-block;
	vertical-align: middle;
}

.teacher-block-columns {
	display: flex;
	flex-direction: column;
	gap: 2em;
	margin-bottom: 2em;
}
.teacher-wrap {
	background-color: rgba(var(--sub-green), 0.20);
	padding: 1em;
	border-radius: 16px;
}
.teacher-wrap h2 {
	margin-bottom: 40px;
}
.teacher-wrap .theme-block-teacher-detail {
		gap: 0.5em;
	}
.theme-block-teacher-detail {
	display: flex;
	flex-direction: column;
	gap: 2em;
	margin-block-start:0;
}
.teacher-wrap .theme-block-teacher-detail {
	flex-direction: row;
}
.teacher-info {
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: flex-start;	
}
/*.teacher-wrap .teacher-info {
	align-items: flex-start;	
	
}*/
.teacher-info p {
	margin: 0;
}
.teacher-info .btn {
	margin-left: 0.5em;
}
.teacher-img img {
	width: auto;
	max-height: 300px;;
	border-radius: 16px;
}
.semi-intro a.btn {
	margin: 0 0.5em;
}

@media (min-width: 768px){
	.teacher-block-columns {
		flex-direction: row;
	}
	/*	均等幅で2つ並ぶ。*/
	.teacher-block-columns > .mt-be-column {
		flex: 1;
	}

	/* 子要素が1つしかない場合：左半分、右側空白に */
	.teacher-block-columns:has(> .mt-be-column:only-child) {
		justify-content: flex-start;
	}

	.teacher-block-columns:has(> .mt-be-column:only-child) > .mt-be-column {
		flex: 0 0 calc(50% - 1em);
	}
	.theme-block-teacher-detail {
		flex-direction: row;
	}
	.teacher-img {
		flex: 0 0 30%;
	}
	.teacher-img img {
		width: 100%;
		max-height: inherit;		
	}
}

main.seminar .theme-blocks li + li {
	margin-block-start: 0.25rem;
}


/*関連記事、関連ページ*/
.relation-list {
	position: relative;
	border: 5px solid var(--cream);
	padding: 0.75rem 1rem;
	border-radius: 8px;
	margin-top: 3rem;
}
.relation-list:after {
	content: "";
	position: absolute;
	right: -20px;
	top: -10px;
	background: url("../img/illust_pencile.png") no-repeat;
	width: 51px;
	height: 41px;
	background-size: contain;
}
.relation-list + .relation-list:after {
	background: url("../img/illust_clip.png") no-repeat;
	right: -8px;
	top: -15px;
	width: 38px;
	height: 35px;
	background-size: contain;
}
.relation-list + .relation-list {
	margin-top: 1rem;
}
.relation-title {
	color: var(--orange);
	font-weight: 700;
	font-size: 105%;
	margin-bottom: 0.5rem;
}
.relation-list ul {
	list-style: none;
	padding-left: 0.25rem;
	margin-bottom: 0;
}
.relation-list li {
	position: relative;
	padding-left: 1.5em;
	margin-bottom: 0.5rem;
}
.relation-list li:before {
	color: var(--orange);
	content: 'arrow_right_alt';
	font-family: 'Material Symbols Outlined';
	font-weight: normal;
	font-style: normal;
	font-size: 1.2em;
	position: absolute;
	left: 0;
	top: 5px;
	line-height: 1;
}

/* ---------------------------------
	totop
--------------------------------- */
.totop {
	position: fixed;
	height: 127px;
	right: 2vw;
	bottom: 30px;
	z-index: 10000;
	display: block;
	cursor: pointer;
	transition-duration: .3s;
	transition-property: transform;
	transition-timing-function: ease-out;
}
.totop a:hover {
	opacity: 1;
}
.totop img {
	font-size: 0;
}
.totop:active, .totop:focus, .totop:hover {
	transform: translateY(-8px);
}
.totop .btn-totop {
	visibility: hidden;
}
.totop .btn-totop.is-visible {
	visibility: visible;
}

/* ---------------------------------
	original contents
--------------------------------- */
ul.contents-bnr-list {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: 20px 20px;
	justify-content: flex-start;
	list-style: none;
	padding: 0;
}
ul.contents-bnr-list li {
	background-color: rgba(var(--sub-green),0.20);
	border-radius: 15px;
}
ul.contents-bnr-list li a {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	padding: 1em;
}
.contents-bnr-list h3 {
	color: var(--sub-green-dark);
	font-size: 1.4rem;
	font-family: var(--font-title-maru);	
	font-weight: 500;
	letter-spacing: -.03em;;
	text-align: center;
}

.contents-bnr-body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 1em;
}
.contents-bnr-img {
	margin: 0 auto;
	text-align: center;
}

.contents-bnr-img img {
	width: 50%;
	height: auto;
}

.contents-bnr-textblock {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.contnts-bnr-txt {
	font-size: 0.90rem;
	line-height: 1.5;
	margin: 0 0 0.75em;
}

.btn-round.-mini {
	align-self: center;
	padding: 0.4em 2.00em 0.6em 1.25em;
}

@media (min-width: 768px){
	ul.contents-bnr-list {
		grid-template-columns: repeat(2, 1fr);
	}
	.contents-bnr-body {
		align-items: stretch;
		height: 100%;
	}
	.contents-bnr-textblock {
		display: flex;
		flex-direction: column;
 		justify-content: space-between;
		height: 100%;
	}
	.contents-bnr-img {
		flex: 0 0 35%;
	}
	.btn-round.-mini {
		margin-top: auto;
	}
}
@media (min-width: 992px){
	ul.contents-bnr-list {
		grid-template-columns: repeat(3, 1fr);
	}
	.contents-bnr-list h3 {
		text-align: left;
	}
	.contents-bnr-body {
		flex-direction: row;
		flex-direction: row-reverse;
	}
	.contents-bnr-img img {
	width: 100%;
	height: auto;
	}
	.btn-round.-mini {
		align-self: auto;
	}
}

/* ---------------------------------
	main
--------------------------------- */
header h1 {
	position: relative;
	color: var(--orange);
}

/* ---------------------------------
	slide banner
--------------------------------- */
.wrap {
	width: 100vw;
	overflow: hidden;
	position: relative;
	min-height: 200px;
	margin: 10px 0;
}

/* スライドリスト本体 */
.slideshow {
	display: flex;
	justify-content: center;
	gap: 15px;
	position: absolute;
	top: 0;
	left: 0;
	padding: 5px 0;
	list-style: none;
	margin: 0;
}
.slideshow li {
	display: flex;	
}

/* スライドバナー */
.slide-content {
	width: 45vw;
	height: 180px;
	background: #ccc;
	border-radius: 15px;
	flex-shrink: 0;
	position: relative;
	text-decoration: none;
	color: #333;
	display: flex;
	justify-content:space-between;
	align-items: stretch;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	padding: 1.00em;
	background-image: url("../img/illust_bnr_blog.png");
	background-repeat: no-repeat;
	background-position: right 5px bottom 5px;
	background-size: auto 60%;
	background-size: auto 50%;
}
.slide-content.-pink {
	background-image: url("../img/illust_bnr_blog.png");
	background-color: var(--pink);
}
.slide-content.-red {
	background-image: url("../img/illust_bnr_teacher.png");
	background-color: var(--red);
}
.slide-content.-orange {
	background-image: url("../img/illust_bnr_class.png");
	background-color: var(--orange);
}
.slide-content.-purple {
	background-image: url("../img/illust_bnr_seminar.png");
	background-color: var(--purple);
}
.slide-content.-sky {
	background-image: url("../img/illust_bnr_license.png");
	background-color: var(--sky);
}
.slide-content.-blue {
	background-image: url("../img/illust_bnr_grad-school.png");
	background-color: var(--blue);
}
.slide-content.-fresh {
	background-image: url("../img/illust_bnr_column.png");
	background-color: var(--fresh);
}
.slide-content.-spring {
	background-image: url("../img/illust_bnr_senior.png");
	background-color: var(--spring);
}
.slide-content.-green {
	background-image: url("../img/illust_bnr_overseas.png");
	background-color: var(--green);
}
.slide-content.-yellow {
	background-image: url("../img/illust_bnr_society.png");
	background-color: var(--yellow);
}
.slide-content p {
	color: #fff;
	font-family: var(--font-title-maru);
	letter-spacing: -.03em;
	font-weight: 500;
	font-size: 1.2rem;
	line-height: 1.5;
	margin-top: 0;
	}

/* イラスト画像 */
.slide-content img {
	max-height: 100px;
	max-width: 80%;
	object-fit: contain;
}

/* ホバー時のアニメーション（リンクのみ） */
a.slide-content:hover {
	transform: scale(1.01);
	box-shadow: 0 3px 9px rgba(0,0,0,0.1);
	cursor: pointer;
	opacity: 0.95;
}

/* ホバーで表示されるボタン（左下） */
.btn-inner {
	position: absolute;
	display: inline-flex;
	align-items: center;
	justify-content: center;	
	bottom: 1.5em;
	left: 1.5em;
	background: var(--cream);
	color: #333;
	border: none;
	border-radius: 100vw;
	padding: 0.75em 1.75em 0.75em 1.1em;
	font-size: 0.85rem;
	font-weight: 500;
	line-height: 1.3;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
	box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.btn-inner:after {
	position: absolute;
	content: "";
	top: 50%;
	transform: translateY(-50%);
	right: 10px;
	transition: all 0.15s;
	background-image: url("data:image/svg+xml,%3csvg width='8' height='12' viewBox='0 0 8 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='m1 1 5 5-5 5' stroke='black' stroke-width='2'/%3e%3c/svg%3e");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: right center;
	width: 8px;
	height: 12px;
	margin-left: 0.5em;
}
a.slide-content:hover .btn-inner {
	opacity: 1;
	pointer-events: auto;
}

@media (min-width: 768px){
	.slide-content {
		width: 33vw;
	}
	.slide-content p {
		font-size: 1.4rem;
	}
}
@media (min-width: 992px){
	.slide-content p {
		font-size: 1.5rem;
	}
}

/*スライドムーブのための追加css*/
.slide-bnr {
	overflow: hidden;
}
.wrap {
	overflow: hidden;
	position: relative;
}
.slideshow {/* ← ちらつき防止 */
	display: flex;
	width: max-content;
	animation: scroll-left 30s linear infinite;
	animation-delay: 0.1s;/* ← これがSafari対策に効くことあり */
	will-change: transform;
	transform: translateZ(0);
	backface-visibility: hidden;
}
.slideshow-middle {
	animation-name: scroll-right;	
}
.slideshow:hover {
	animation-play-state: paused;
}
@keyframes scroll-left {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}
@keyframes scroll-right {
	0% { transform: translateX(-50%); }
	100% { transform: translateX(0); }
}


/* ---------------------------------
	アーカイブソート
--------------------------------- */
.select-area {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1em;
	/*margin-bottom: 30px;*/
}
.select-blog {
	position: relative;
	width: 100%;
	appearance: none;
	padding: 0.5em;
	border-radius: 8px;
	font-size: 105%;
}
.select-wrap {
	position: relative;
	width: 330px;
}
select.select-blog {
	background-color: rgba(var(--sub-green),0.2);
	border: 2px solid rgb(var(--sub-green));
}
.select-wrap:before {
	z-index: 1;
	position: absolute;
	right: 0.5em;
	top: 50%;
	transform: translateY(-50%);
	font-family: 'Material Symbols Outlined';
	content: 'keyboard_arrow_down';
	font-weight: normal;
	font-style: normal;
	font-size: 1.5em;
	line-height: 1;
	color: rgb(var(--sub-green));
	pointer-events: none;
}

@media screen and (min-width: 768px) {
	.select-area {
		flex-direction: row;
	
	}
}

/* ---------------------------------
	卒業生の進路
--------------------------------- */
.career-table {
	border-top: 1px solid var(--bs-border-color);
}
.career-table > div {
	display: block;
	border-bottom: 1px solid var(--bs-border-color);
	padding: 1em 0;
}
.career-table dt.job-category {
	color: var(--orange);
	font-weight: 700;
	font-size: 105%;
	margin: 0 0 0.5em;
}
.career-table dd.job-name {
	margin: 0;
}
.career-table .job-list {
	margin: 0;
}
.career-table ul.job-list li +li {
	margin-block-start: 0.25rem;	
}

@media screen and (min-width: 768px) {
	.career-table > div {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
	}
	.career-table dt.job-category {
		width: 30%;
		margin: 0;
		white-space: nowrap;
	}
	.career-table dd.job-name {
		width: 70%;
		margin: 0;
	}
}