/*
 * youth subpage
 */

/* ---------------------------------------- fonts */

/* kosugi-maru-regular - japanese_latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Kosugi Maru';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/kosugi-maru/kosugi-maru-v17-japanese_latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* ---------------------------------------- common */

:root {
	--color-b1db8f: #b1db8f;
	--color-c9e3b4: #c9e3b4;
	--color-fdfee1: #fdfee1;
	--color-03a03a: #03a03a;
	--color-fafafa: #fafafa;
	--color-004ea8: #004ea8;
	--color-00b0d8: #00b0d8;
	--color-ffb332: #ffb332;
	--color-00ba41: #00ba41;
	--color-e0f5ec: #e0f5ec;
	--color-f1f9eb: #f1f9eb;
	--color-e9f0e3: #e9f0e3;
}

/* ---------------------------------------- fonts size */

@media (max-width: 767px) {
	main { font-size: clamp(0.75rem, 0.023rem + 3.64vw, 0.875rem); } /* 320-375 12-14 */
	article h1 { font-size: clamp(1.25rem, 1.026rem + 1.12vw, 1.563rem); }
	article h1 span { font-size: clamp(1.875rem, -0.307rem + 10.91vw, 2.25rem); }
	article h2 { font-size: clamp(1.125rem, 0.946rem + 0.89vw, 1.375rem); }
	article h3 { font-size: clamp(1rem, 0.821rem + 0.89vw, 1.25rem); }
	article h4 { font-size: clamp(0.938rem, 0.803rem + 0.67vw, 1.125rem); }
	article h5 { font-size: clamp(0.75rem, 0.661rem + 0.45vw, 0.875rem); }
	article h6 { font-size: clamp(0.688rem, 0.598rem + 0.45vw, 0.813rem); } /* 11-14 */
	article h6 + p { font-size: clamp(0.688rem, 0.598rem + 0.45vw, 0.813rem); }
	article ul,
	article ol { font-size: clamp(0.75rem, 0.661rem + 0.45vw, 0.875rem); }
}

@media (min-width: 768px) {
	main { font-size: clamp(0.688rem, 0.09rem + 1.24vw, 1rem); } /* 768-1170 11-16 */
	article h1 { font-size: clamp(1.563rem, -0.101rem + 3.47vw, 2rem); }
	article h1 span { font-size: clamp(1.875rem, -0.274rem + 4.48vw, 3rem); }
	article h2 { font-size: clamp(1.375rem, -0.051rem + 2.97vw, 1.75rem); }
	article h3 { font-size: clamp(1.188rem, -0.001rem + 2.48vw, 1.5rem); }
	article h4 { font-size: clamp(1rem, 0.05rem + 1.98vw, 1.25rem); }
	article h5 { font-size: clamp(0.891rem, 1.86vw, 1.125rem); }
	article h6 { font-size: clamp(0.688rem, -0.025rem + 1.49vw, 0.875rem); } /* 11-14 */
	article h6 + p { font-size: clamp(0.688rem, -0.025rem + 1.49vw, 0.875rem); }
	article ul,
	article ol { font-size: clamp(0.891rem, 1.86vw, 1.125rem); }
}

/* ---------------------------------------- main */

main { background: var( --color-e9f0e3 ); }

main .inner { background: #fff; }

@media (max-width: 767px) {
	main {
		padding: 0 1em;
	}
	main .inner {
		padding: 4em 1em 1em;
	}
	main article {
		margin: 0 0 3em;
	}
}

@media (min-width: 768px) {
	main {
		padding: 0 1em;
	}
	main .inner {
		max-width: 1250px;
		padding: 6.25em 2em 1em;
		margin: 0 auto;
	}
	main article {
		max-width: 1170px;
		margin: 0 auto 5em;
	}
}

/* Probably not available in the Classic Editor */
main article .headline,
main article section:not(:last-child) {
	margin: 0 0 2em; 
}

/* text */

article p { line-height: 1.8; }
main article .headline p,
main article section p {
	margin: 0 0 1em; 
}
main article .headline h1.centered + p {
	text-align: center;
}

article .centered {
	text-align: center;
}
article .leftalign {
	text-align: left;
}
article strong { 
	font-weight: bold;
	font-weight: 700;
}
article em { 
	font-style: italic;
}

article a{
	color: #0B83C6 ;
	text-decoration: underline;
}

article .catelist a {
	text-decoration: none;
}

/* title */

article h1,
article h2,
article h3,
article h4,
article h5,
article h6 {
	font-family: 'BIZ UDGothic', sans-serif;
	font-style: normal;
	font-weight: 600;
	line-height: 1.4;
	position: relative;
}

article h1 { 
	color: #000;
	margin: 0 0 1em; 
}
article h1 span {
	display: inline-block;
	color: #fff;
	background: var( --color-03a03a );
	line-height: 1;
	padding: 5px;
	margin: 0 2px 0 0;
	position: relative;
}
article h1 span::after {
	content: "";
	display: block;
	width: calc( 100% - 4px );
	height: calc(100% - 4px);
	aspect-ratio: 1;
	border: 1px #fff solid;
	position: absolute;
	top: 2px;
	left: 2px;
}

article h2 { 
	color: #000;
	background: url( ../images/youth/subpage/youth-deco.svg ) no-repeat center center;
	padding: .5em 1em;
	margin: 0 0 1em; 
}

article h3 { 
	color: #000;
	margin: 0 0 1em; 
}
article h3 span {
	display: inline-block;
	padding: 0 0 0 1.5em;
	position: relative;
}
article h3 span::before {
	content: "";
	display; block;
	width: 1em;
	aspect-ratio: 1;
	background: var( --color-ffb332 );
	position: absolute;
	top: 50%;
	left: 0;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

article h4 { 
	color: #000;
	margin: 0 0 1em; 
}
article h4 span {
	display: inline-block;
	padding: 0 0 0 1.5em;
	position: relative;
}
article h4 span::before {
	content: "";
	display; block;
	width: 1em;
	aspect-ratio: 1;
	background: var( --color-00b0d8 );
	position: absolute;
	top: 50%;
	left: 0;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

article h5 { 
	color: var( --color-03a03a );
	margin: 0 0 1em; 
}
article h6 { 
	color: var( --color-03a03a );
	margin: 0 0 1em; 
}

/* list */

article ul {
	line-height: 1.6;
	margin: 0 0 1em;
}
article ul li {
	padding: 0 0 0 1em;
	position: relative;
}
article ul li::before {
	content: "";
	display: block;
	width: .8em;
	aspect-ratio: 1;
	background: var( --color-03a03a );
	position: absolute;
	top: 50%;
	left: 0;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

article ol {
	list-style: decimal outside;
	line-height: 1.6;
	margin: 0 0 1em 1.5em;
}
article ol li::marker {
	color: var( --color-03a03a );
	font-weight: 700;
}
article ul li + li,
article ol li + li { margin: .5em 0 0; }

/* aside */

article aside {
	max-width: 750px;
	background: var( --color-f1f9eb );
	border: 2px var( --color-03a03a ) solid;
	padding: 1em;
	margin: 0 auto 1em;
	border-radius: .5em;
}
article aside .deco.upper {
	margin: 0 0 .5em;
}
article aside .deco.under {
	text-align: right;
	margin: .5em 0 0;
}
article aside .deco.upper img,
article aside .deco.under img {
	width: auto;
	height: 1.25em;
}
article aside .inside p { margin: 0; }

/* table */

article table { margin: 0 0 1em; }
article table th,
article table td {
	border: 1px var( --color-03a03a ) solid;
	line-height: 1.6;
	padding: .5em 1em;
	vertical-align: middle;
}
article table th {
	text-align: center;
	background: var( --color-f1f9eb );
}

/**
 * gallery
 * dl .gallery-item.
 * dt class="gallery-icon portrait" a > img
 * dd class="wp-caption-text gallery-caption"
 */

article .gallery { /** ギャラリーを囲むボックス **/
	width: 100%;
	margin-bottom: 20px !important;
    overflow: hidden;
}
article .gallery br {display: none;} /** 自動で挿入される clearfix の余白解除 **/

article dl.gallery-item { /** 画像共通のスタイル **/
	border: 2px var( --color-ffb50a ) solid;
	border-radius: 2em 0 2em 0;
	position: relative;
	overflow: hidden;
	float: left;
	margin: 0 1% 10px 0;
}
article dt.gallery-icon { /** 画像を囲む dt のスタイル **/
	width: 100%;
    text-align: center;
}
article dt.gallery-icon a { 
	display: inline-block; 
}
article dt.gallery-icon img {
	/* aspect-ratio: 1 / 0.696; */
	object-fit: cover;
	object-position: center;
}
article dd.gallery-caption { 
	width: 100%;
	color: #fff;
	background: var( --color-03a03a );
	line-height: 1.4;
	font-size: 11px;
	text-align: center;
	padding: .5em;
	position: absolute;
	bottom: 0;
	left: 0;
}

/*
@media (min-width: 768px) {

	article dd.gallery-caption { 
		font-size: clamp(0.688rem, -0.025rem + 1.49vw, 0.875rem);
	}

}
*/

/* ---------------------------------------- breadcrumbs */

#breadcrumb-wrap { line-height: 2; }
#breadcrumb-wrap i {
	color: var( --color-03a03a );
	margin: 0 .5em 0 0;
}
#breadcrumb-wrap a:hover {
	color: var( --color-03a03a );
}

@media (max-width: 767px) {
	#breadcrumb-wrap { 
		padding: 2em 1em 2em; 
	}
}

@media (min-width: 768px) {
	#breadcrumb-wrap { 
		padding: 4em 1em 2em; 
	}
	#breadcrumb-wrap .inner { 
		max-width: 1170px;
		margin: 0 auto;
	}
}

/* ---------------------------------------- mainimg */

#mainimg {  }
#mainimg::after {
	content: "";
	display: block;
	width: 100%;
	background: url( ../images/youth/subpage/youth-deco.svg ) no-repeat center center;
	background-size: cover;
}
#mainimg img {
	width: 100%;
	vertical-align: text-top;
	line-height: 1;
}

@media (max-width: 767px) {
	#mainimg { font-size: clamp(0.75rem, 0.023rem + 3.64vw, 0.875rem); }
	#mainimg::after {
		height: 2em;
	}
}

@media (min-width: 768px) {
	#mainimg { font-size: clamp(0.688rem, 0.09rem + 1.24vw, 1rem); }
	#mainimg::after {
		height: 3.75em;
	}
}

