/*
Theme Name: ipsa2026
Theme URI: https://i-psa.or.jp/
Description: 2026年
Author: the Adworks team
Author URI: https://adworks24.co.jp
Version: 0.9
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6,
p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
section, article, aside, hgroup, header, footer, nav, dialog, figure, menu,
video, audio, mark, time, canvas, details, input {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	vertical-align: baseline;
	background: transparent;
}

section,
article,
aside,
hgroup,
header,
footer,
nav,
dialog,
figure,
figcaption {
	display: block;
}

html {
	font-size: 62.5%;
}

body {
	background: #fff;
	color: #333;
	font-family: 'Noto Sans JP', "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
	font-size: 1.6rem;
	font-feature-settings: "palt";
	line-height: 1.8;
	position: relative;
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-o-text-size-adjust: 100%;
	text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	width: 100%;
	height: 100%;
	word-break: break-word;
	-webkit-print-color-adjust: exact;
}
ol,
ul {
	list-style: none;
}

blockquote,
q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: '';
}

:focus {
	outline: 0;
}

ins {
	text-decoration: none;
}

del {
	text-decoration: line-through;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

a:link,
a:visited {
	color: #333;
	text-decoration: none;
}

a:hover {
	color: #333;
	text-decoration: none;
}

a:active {
	color: #666;
	text-decoration: none;
}

.clr {
	zoom: 1;
}

.clr:after {
	content: '';
	display: block;
	clear: both;
	height: 0;
}

.disnon {
	display: none;
}

img {
	max-width: 100%;
	display: block;
	height: auto;
}
article {
	width: calc(99.999% - 4em);
	width: -webkit-calc(99.999% - 4em);
	max-width: calc(1220px - 4em);
	margin: 0 auto;
	padding: 2em;
}
header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 1rem 2rem;
	background-color: #fff;
}

main {
	display: block;
	position: relative;
	z-index: 2;
}

footer {
	clear: both;
}

section {
	width: calc(99.999% - 120px);
	width: -webkit-calc(99.999% - 120px);
	padding: 120px 60px;
}
section.pT0 {
	padding-top: 0;
}
.logo {
	font-size: 1.5rem;
	font-weight: bold;
}
.w980 {
	max-width: 980px;
	margin: 0 auto;
	display: flex;
	gap: 4%;
}
.w980-block {
	max-width: 980px;
	margin: 0 auto;
}
.w760 {
	max-width: 760px;
	margin: 0 auto;
	display: flex;
}
.w760-block {
	max-width: 760px;
	margin: 0 auto;
}
.offer-area dl {
	width: 48%;
	text-align: center;
}
#content p,
#content dl,
#content ul,
#content ol {
	margin-bottom: 40px;
}
.message-area div,
.purpose-area-txt,
.purpose-area-list {
	width: 48%;
}
.entry-content .message-area h3 span {
	color: #ff3b30;
}
section.purpose-area,
section.contact-area {
	background-color: #4a83fb;
	color: #fff;
	border-radius: 40px;
	padding: 60px;
}
.entry-content h3 {
	font-size: 20px;
	font-size: 2rem;
	line-height: 1.2;
	font-weight: normal;
	margin-bottom: 24px;
}
.entry-content h3 span {
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	font-size: 65px;
	font-size: 6.5rem;
	display: block;
	font-weight: 600;
}
.entry-content h3 span::first-letter {
	font-size: 90px;
	font-size: 9rem;
	line-height: 1;
}
.purpose-area-list ol li {
	font-size: 23px;
	font-size: 2.3rem;
	line-height: 1.2;
	display: inline-flex;
	align-items: center;
}
.purpose-area-list ol li span {
	font-family: "Barlow Condensed", sans-serif;
	font-size: 72px;
	font-size: 7.2rem;
	margin-right: 24px;
}
.contents-nav,
.join-team {
	text-align: center;
}
.contents-nav h3 span {
	color: #4a83fb;
}
.contents-nav nav {
	width: 100%;
}
.contents-nav nav ul {
	display: flex;
	flex-wrap: wrap;
	border-top: 1px solid #e6e6e6;
	border-left: 1px solid #e6e6e6;
}
.contents-nav nav ul li {
	width: 33.3333%;
}
.contents-nav nav ul li a {
	display: block;
	border-right: 1px solid #e6e6e6;
	border-bottom: 1px solid #e6e6e6;
	padding: 45px;
}
.contents-nav nav ul li a img {
	margin: 0 auto 12px;
}
.join-team-txt h3 span b,
.sponsor-area h3 span b {
	color: #4a83fb;
}
.join-team-txt p {
	margin-bottom: 40px;
}
.join-team-pic ul {
	display: flex;
	gap: 4%;
	margin-bottom: 40px;
}
/* =========================================================
   BASE: 共通のスタイル（色以外はすべてここで定義）
   ========================================================= */

.msg-btn {
	width: 100%;
	max-width: 360px;
	height: 80px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	font-size: 18px;
	font-weight: 600;
	position: relative;
	overflow: hidden;
	text-decoration: none;
	transition: color 0.3s ease;
	color: #000;         /* 通常文字色 */
	background: #ffffff; /* 通常背景色（青ボタンに適用） */
}

/* テキストは最前面 */
.msg-btn .label {
	position: relative;
	z-index: 2;
}

/* 拡大する円（背景として広がる丸） */
.msg-btn::before {
	content: "";
	position: absolute;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	top: 34px;
	right: 40px;
	transform: scale(0);
	transform-origin: center;
	transition: transform 0.45s ease;
	z-index: 0; /* 背景層 */
}

/* 表示される小ドット */
.msg-btn::after {
	content: "";
	position: absolute;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	top: 34px;
	right: 40px;
	z-index: 3; /* 最前面 */
}

/* hover：文字色を白に */
.msg-btn:hover {
	color: #fff;
}

/* hover：ドット消える */
.msg-btn:hover::after {
	opacity: 0;
	transition: opacity 0.2s ease;
}

/* =========================================================
   RED VARIANT
   ========================================================= */

.msg-btn--red {
	background: #f1f1f1; /* 赤ボタンは背景グレー */
	color: #000;
}

.msg-btn--red::before,
.msg-btn--red::after {
	background: #ff3b30; /* 赤 */
}

.msg-btn--red:hover::before {
	transform: scale(60); /* 背景を全面赤に */
}
.msg-btn--red:hover::after {
	background: #fff;
	opacity: 1; /* 消すのではなく白を表示 */
}
/* =========================================================
   BLUE VARIANT
   ========================================================= */

.msg-btn--blue {
	background: #ffffff; /* 青ボタンは白背景 */
	color: #000;
}

.msg-btn--blue::before,
.msg-btn--blue::after {
	background: #4a83fb; /* 青 */
}

.msg-btn--blue:hover::before {
	transform: scale(60); /* 背景を全面青に */
}
.msg-btn--blue:hover::after {
	background: #fff;
	opacity: 1; /* 消すのではなく白を表示 */
}

/* =========================================================
   GRAY → BLUE VARIANT
   ========================================================= */

.msg-btn--gray-blue {
	background: #f1f1f1; /* 通常時：グレー */
	color: #000;         /* 通常時：文字黒 */
}

/* 通常：ドットは青 */
.msg-btn--gray-blue::before,
.msg-btn--gray-blue::after {
	background: #4a83fb; /* dot & expanding circle blue */
}

/* hover：背景を青に広げる */
.msg-btn--gray-blue:hover::before {
	transform: scale(60);
}

/* hover：文字 → 白 */
.msg-btn--gray-blue:hover {
	color: #fff;
}

/* hover：小ドット → 白 */
.msg-btn--gray-blue:hover::after {
	background: #ffffff;
	opacity: 1;
}


.sponsor-area {
	width: 100%;
	margin: 0 auto;
	padding: 80px 40px; /* お好みでOK。左右に少し余白 */
	background: #f1f1f1;
	box-sizing: border-box;
	border-radius: 40px;
	text-align: center;
	margin-bottom: 80px;
}

.sponsor-section {
	max-width: 980px;
	margin: 0 auto 12px;
}

.sponsor-grid {
	display: grid;
	gap: 12px;
	align-items: center;
	justify-items: center;
}

/* 200万円 → 2列 */
.sponsor-tier-200 .sponsor-grid {
	grid-template-columns: repeat(2, 1fr);
}

/* 100万円 → 3列 */
.sponsor-tier-100 .sponsor-grid {
	grid-template-columns: repeat(3, 1fr);
}

/* 50万円 → 4列 */
.sponsor-tier-50 .sponsor-grid {
	grid-template-columns: repeat(4, 1fr);
}

/* 30万円 → 5列 */
.sponsor-tier-30 .sponsor-grid {
	grid-template-columns: repeat(5, 1fr);
}

/* 10万円 → 6列 */
.sponsor-tier-10 .sponsor-grid {
	grid-template-columns: repeat(6, 1fr);
}

.sponsor-item img {
	max-width: 100%;
	height: auto;
	display: block;
}

.contact-area {
	width: 100%;
    margin: 0 auto;
	padding: 80px 40px;
	box-sizing: border-box;
}

/* =========================================================
   FOOTER AREA（背景部分）
   ========================================================= */

.site-footer {
	padding: 2em;
	background: transparent;
	width: calc(99.999% - 4em);
	width: -webkit-calc(99.999% - 4em);
}

.footer-nav-area,
.sponsor-area {
	display: block;
}

.footer-nav-wrapper {
	max-width: 980px;
	margin: 0 auto;
}

/* 大きい背景ブロック */
.site-footer .footer-background {
	max-width: 1220px;
	margin: 0 auto;
	background: #00d4aa;
	border-radius: 40px;
	padding: 60px 40px;
	box-sizing: border-box;
}

/* =========================================
   HEADER BASE
   ========================================= */

.hero-header {
	background: #008cff;
	border-radius: 40px;
	padding: 24px 40px;
	width: calc(99.999% - 120px);
	max-width: 1376px;
	margin: 40px auto 0;
	box-sizing: border-box;
	color: #fff;
	position: relative;
	z-index: 10;
}

.hero-header__inner {
	max-width: 1220px;
	margin: 0 auto;
	color: #fff;
	width: 100%;
}

/* ロゴ＋メインナビ（PC） */
.hero-header__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
}

.hero-header__logo {
	flex-shrink: 0;
}

.hero-header__logo img {
	display: block;
	height: auto;
	max-width: 260px;
	width: 100%;
}

/* PC ナビ */
.hero-header__nav {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 8px;
	margin-left: auto;
}

.hero-header__nav-sub {
	display: flex;
	align-items: center;
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 13px;
	letter-spacing: 0.08em;
}

.hero-header__nav-sub a {
	color: #fff;
	text-decoration: none;
}

.hero-header__nav-sub a:hover {
	text-decoration: underline;
}

.hero-header__nav-sep {
	opacity: 0.6;
}

.hero-header__nav-list {
	display: flex;
	gap: 32px;
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: center;
}

.hero-header__nav-item a {
	color: #fff;
	text-decoration: none;
	font-size: 15px;
}

.hero-header__nav-item a:hover {
	text-decoration: underline;
}

/* キャッチコピー */
.hero-header__content {
	margin: 160px 0 80px;
}

.hero-header__catch {
	font-size: 40px;
	line-height: 1.6;
	font-weight: 700;
	letter-spacing: 0.2em;
	margin: 0 0 24px;
}

.hero-header__catch span {
	display: block;
}

.hero-header__sub {
	margin: 0;
	font-size: 18px;
	letter-spacing: 0.06em;
}

/* 最新お知らせバー */
.hero-header__news {
	display: inline-flex;
	align-items: center;
	gap: 24px;
	background: #ffffff;
	color: #000;
	border-radius: 999px;
	padding: 18px 40px;
	text-decoration: none;
	font-size: 14px;
	max-width: 480px;
	float: right;
}

.hero-header__news-date {
	color: #008cff;
	font-weight: 600;
	letter-spacing: 0.12em;
}

.hero-header__news-sep {
	color: #d0d0d0;
}

.hero-header__news-title {
	color: #000;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.hero-header__news:hover .hero-header__news-title {
	text-decoration: underline;
}

/* =========================================
   PC メガメニュー（わたしたちについて）
   ========================================= */

.hero-header__nav-item--about {
	position: relative;
}

/* 基本は非表示 */
.hero-header__megamenu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	margin-top: 8px;
	background: #ffffff;
	color: #000;
	border-radius: 24px;
	padding: 20px 28px;
	min-width: 260px;
	box-shadow: 0 10px 25px rgba(0, 0, 0, 0.18);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity 0.15s ease,
		visibility 0.15s ease,
		transform 0.15s ease;
	z-index: 50;
}

/* JS から .is-open が付いたときだけ表示 */
.hero-header__megamenu.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateX(-50%);
}

.hero-header__megamenu-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hero-header__megamenu-list li + li {
	margin-top: 8px;
}

.hero-header__megamenu-list a {
	display: block;
	color: #000;
	font-size: 14px;
	text-decoration: none;
}

.hero-header__megamenu-list a:hover {
	text-decoration: underline;
}

/* =========================================
   SP ハンバーガー
   ========================================= */

.hero-header__menu-toggle {
	position: fixed;             /* 画面右上固定（SP） */
	top: 16px;
	right: 16px;
	width: 52px;
	height: 52px;
	border-radius: 999px;
	border: none;
	background: rgba(0, 0, 0, 0.18);
	cursor: pointer;
	z-index: 1200;               /* ★ オーバーレイ(1000)より前面に */
	display: none;               /* PC では非表示。SP で表示 */
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 6px;
}

/* 三本線の共通スタイル */
.hero-header__menu-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: #ffffff;
	border-radius: 999px;
	transition: transform 0.25s ease, opacity 0.25s ease, background 0.25s ease;
}

/* 開いている時（×ボタン状態） */
.hero-header__menu-toggle.is-open span {
	background: #000; /* close 時：黒 */
}

.hero-header__menu-toggle.is-open span:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}
.hero-header__menu-toggle.is-open span:nth-child(2) {
	opacity: 0;
}
.hero-header__menu-toggle.is-open span:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}

/* =========================================
   SP オーバーレイメニュー
   ========================================= */

.sp-nav-overlay {
	position: fixed;
	inset: 0;
	background: rgba(255, 255, 255, 0.98);
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}

.sp-nav-overlay.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.sp-nav-overlay__inner {
	position: relative;
	max-width: 960px;
	margin: 0 auto;
	height: 100%;
	padding: 24px 24px 32px;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

.sp-nav-overlay__logo {
	margin-bottom: 32px;
}

.sp-nav-overlay__nav {
	flex: 1 1 auto;
	overflow-y: auto;
	padding-top: 40px;
}

.sp-nav-overlay__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sp-nav-overlay__item {
	border-bottom: 1px solid #e0e0e0;
}

.sp-nav-overlay__item > a,
.sp-nav-overlay__parent {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 18px 4px;
	font-size: 18px;
	border: none;
	background: transparent;
	text-align: left;
	cursor: pointer;
}

.sp-nav-overlay__item > a {
	text-decoration: none;
	color: #111;
}

.sp-nav-overlay__parent {
	color: #111;
}

/* 「わたしたちについて」のテキスト部分 */
.sp-nav-overlay__parent span:first-child {
	flex: 1 1 auto;
}

/* プラスアイコン */
.sp-nav-overlay__plus {
	position: relative;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.sp-nav-overlay__plus::before,
.sp-nav-overlay__plus::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 2px;
	background: #111;
	transform: translate(-50%, -50%);
	border-radius: 999px;
}

.sp-nav-overlay__plus::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

/* 開いたとき：プラスをマイナスに */
.sp-nav-overlay__item--has-children.is-open .sp-nav-overlay__plus::after {
	opacity: 0;
}

/* 子メニュー */
.sp-nav-overlay__children {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.25s ease;
}

.sp-nav-overlay__children li a {
	display: block;
	padding: 10px 4px 10px 16px;
	font-size: 16px;
	text-decoration: none;
	color: #444;
}

.sp-nav-overlay__children li a:hover {
	text-decoration: underline;
}

/* 開いたときに JS から付与（見た目補助用） */
.sp-nav-overlay__children.is-expanded {
	border-top: 1px solid #f0f0f0;
}

/* 下部リンク（COMPANY / CONTACT） */
.sp-nav-overlay__bottom {
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #e0e0e0;
	display: flex;
	gap: 32px;
	font-size: 14px;
}

.sp-nav-overlay__bottom a {
	color: #111;
	text-decoration: none;
}

/* SP メニューオープン時 body 固定 */
body.is-fixed {
	overflow: hidden;
}

/* =========================================
   RESPONSIVE
   ========================================= */

@media (max-width: 1110px) {

	.hero-header {
		width: 100%;
		max-width: none;
		margin: 0;
		border-radius: 0;
		padding: 16px;
	}

	.hero-header__inner {
		padding: 0;
	}

	.hero-header__top {
		align-items: center;
	}

	/* PC ナビ非表示、ハンバーガー表示 */
	.hero-header__nav {
		display: none;
	}

	.hero-header__menu-toggle {
		display: flex;
	}

	.hero-header__content {
		margin: 60px;
		text-align: center;
	}

	.hero-header__catch {
		font-size: 32px;
		letter-spacing: 0.12em;
	}

	.hero-header__sub {
		font-size: 16px;
	}

	.hero-header__news {
		float: none;
		display: flex;
		max-width: 80%;
		padding: 16px 24px;
		margin: 0 auto 20px;
		gap: 8px;
		font-size: 13px;
		font-size: 1.3rem;
	}
}

@media (max-width: 600px) {
	.hero-header__catch {
		font-size: 28px;
	}
}
/* =========================================================
   フッターメニュー
   ========================================================= */

.footer-nav {
	display: block;
}

.footer-nav__columns {
	display: flex;
	justify-content: space-between;
	flex-wrap: nowrap;
	list-style: none;
	padding: 0;
	margin: 0 0 40px;
}

.footer-nav__column {
	list-style: none;
}

.footer-nav__heading {
	font-weight: 700;
	font-size: 20px;
	color: #fff;
	text-decoration: none;
	display: inline-block;
	margin-bottom: 16px;
}
.footer-nav__column a {
	color: #fff;
}
.footer-nav__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-nav__list li a {
	color: #fff;
	text-decoration: none;
	font-size: 16px;
	line-height: 1.9;
}

.footer-nav__list li a:hover {
	text-decoration: underline;
}

/* 下段リンク（情報セキュリティ／プライバシーポリシー） */
.footer-nav__bottom {
	display: flex;
	gap: 40px;
}

.footer-nav__bottom a {
	color: #fff;
	font-size: 14px;
	text-decoration: none;
}

.footer-nav__bottom a:hover {
	text-decoration: underline;
}

/* =========================================================
   スマホ対応（幅が狭い時）
   ========================================================= */

@media (max-width: 800px) {
	.footer-nav__columns {
		flex-wrap: wrap;
		row-gap: 40px;
	}

	.footer-nav__column {
		width: calc(50% - 20px);
	}
}

@media (max-width: 500px) {
	.footer-nav__column {
	}

	.footer-nav__bottom {
		flex-direction: column;
		gap: 16px;
	}
}

.offer-area dl dt a {
	background-color: #ff3b30;
	color: #fff;
	display: block;
	padding: 2em;
	font-size: 20px;
	font-size: 2rem;
	line-height: 1.2;
	margin-bottom: 24px;
	border-radius: 999px;
}
.offer-area dl:nth-of-type(2) dt a {
	background-color: #00d4aa;
}
.offer-area dl dt a strong {
	display: block;
	font-size: 30px;
	font-size: 3rem;
}
.offer-area dl dd {
	line-height: 1.6;
}
.footer-info {
	text-align: center;
	line-height: 1.4;
	font-size: 13px;
	font-size: 1.3rem;
	margin: 80px auto 2em;
}
.footer-info img {
	display: block;
	margin: 0 auto 24px;
}
.footer-info p {
	margin-top: 40px;
}
section.news-area {
    background-color: #f1f1f1;
    border-radius: 40px;
    padding: 60px;
}
.news-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.news-item a {
	display: block;
	text-decoration: none;
	color: #000;
	overflow: hidden;
	transition: transform 0.2s ease;
}

.news-item a:hover {
	transform: translateY(-4px);
}

.news-item__thumb img {
	width: 300px;
	height: 200px;
	object-fit: cover;
	display: block;
}

.news-item__meta {
	font-size: 14px;
	color: #666;
	margin: 12px 0 4px;
	padding: 0 4px;
}

.news-item__title {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	padding: 12px 4px;
}
.directors-list,
.director-card--representative {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4%;
}
.director-card--representative > div {
	width: 38.25%;
}
.director-card--director,
.director-card--auditor {
	width: 24%;
	padding: 0;
}
.director-card__photo,
#content p.athlete-card__sport {
	margin-bottom: 12px;
}
#content p.director-card__name,
#content p.athlete-card__name {
	line-height: 1.5;
	margin-bottom: 8px;
}
.director-card__name-main,
.athlete-card__name-main,
.staff-card__name-ja {
	font-size: 30px;
	font-size: 3rem;
	font-weight: 600;
}
.director-card__kana,
.athlete-card__name-roman,
.staff-card__name-en {
	display: block;
	font-size: 13px;
	font-size: 1.3rem;
	font-style: italic;
}
.director-card__title {
	font-size: 14px;
	font-size: 1.4rem;
	line-height: 1.3;
}
h1.entry-title {
	text-align: center;
	font-size: 20px;
	font-size: 2rem;
	line-height: 1.2;
	margin: 90px 0 40px;
	font-weight: normal;
}
h1.entry-title span {
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	display: block;
	font-size: 60px;
	font-size: 6rem;
	font-weight: 600;
}
h2.directors-section__heading {
	text-align: center;
	font-size: 30px;
	font-size: 3rem;
	font-weight: normal;
	margin-bottom: 40px;
}
.entry-content #post-130 section,
.entry-content #post-132 section {
	padding-top: 0;
}
.director-card__label,
.athlete-card__label {
	background-color: #008cff;
	color: #fff;
	padding: 0.15em 1em;
	border-radius: 999px;
	font-size: 13px;
	font-size: 1.3rem;
	display: inline-block;
	margin-right: 0.5em;
}
.athlete-card {
	display: flex;
	justify-content: center;
	gap: 4%;
	padding: 80px 0;
	border-bottom: 1px solid #ccc;
}
.athlete-card:first-of-type {
	padding-top: 0;
}
.athlete-card > div {
	width: 40%;
}
.athlete-card__career {
	line-height: 1.5;
}
.athlete-card__career dt {
	float: left;
	font-size: 14px;
	font-size: 1.4rem;
	font-weight: bold;
	width: 6em;
}
.athlete-card__career dd {
	padding-left: 6.5em;
	margin-bottom: 6px;
}

.purpose-list {
	counter-reset: purpose-counter;
}

.purpose-list dt {
	position: relative;
	padding-left: 80px;
	counter-increment: purpose-counter;
	font-weight: 600;
	font-size: 32px;
	font-size: 3.2rem;
}

.purpose-list dt::before {
	font-family: "Barlow Condensed", sans-serif;
	content: counter(purpose-counter, decimal-leading-zero);
	font-size: 32px;
	font-size: 3.2rem;
	position: absolute;
	top: 10%;
	left: 0;
	font-weight: 300;
	background-color: #008cff;
	color: #fff;
	width: 60px;
	height: 60px;
	border-radius: 999px;
	text-align: center;
}
.purpose-list dd {
	padding-left: 80px;
	margin-bottom: 40px;
}
.support-contents,
.sponsorship-contents {
	max-width: 760px;
	margin: 0 auto;
}
.support-contents h2 {
	margin-bottom: 24px;
}
.support-contents h3 {
	font-weight: bold;
	margin-bottom: 12px;
	margin-top: 40px;
}
.supporting-member-rules ol,
.supporting-member-rules ul {
  margin: 1em 0;
  padding-left: 1.6em;
}
.supporting-member-rules li {
  line-height: 1.9;
  margin: 0.45em 0;
}
.supporting-member-rules ol {
  list-style: decimal;
}
.supporting-member-rules ol ol {
  list-style: lower-alpha;
  margin-top: 0.6em;
  margin-bottom: 0.6em;
}
.supporting-member-rules ol ol ol {
  list-style: lower-roman;
}
.supporting-member-rules ul {
  list-style: disc;
}
.supporting-member-rules ul ul {
  list-style: circle;
  margin-top: 0.6em;
  margin-bottom: 0.6em;
}
.supporting-member-rules ol ol,
.supporting-member-rules ul ul,
.supporting-member-rules ol ul,
.supporting-member-rules ul ol {
  padding-left: 1.4em;
}
.supporting-member-rules ol,
.supporting-member-rules ul {
  list-style-position: outside;
}
.supporting-member-rules li p {
  margin: 0.4em 0 0;
}
.supporting-member-rules li p:first-child {
  margin-top: 0;
}
.supporting-member-rules .rules-body ol,
.supporting-member-rules .rules-body ul {
  max-width: 70ch;
}
@media (max-width: 768px) {
  .supporting-member-rules ol,
  .supporting-member-rules ul {
    padding-left: 1.2em;
  }
}
#content .support-contents p,
#content .support-contents ul,
#content .support-contents ol {
	margin-bottom: 1em;
}
.sponsorship-contents dl {
	display: flex;
	gap: 4%;
	flex-wrap: wrap;	
}
.sponsorship-contents dl dt:first-of-type,
.sponsorship-contents dl dd:first-of-type {
	background-color: #008cff;
	color: #fff;
	border-radius: 999px;
	text-align: center;
	padding: 0.25em;
	box-sizing: border-box;
}
.sponsorship-contents dl dt {
	text-align: center;
	width: 26%;
}
.sponsorship-contents dl dd {
	width: 70%;
	padding: 1em 0;
}
.sponsorship-contents dl dt:not(:first-of-type),
.sponsorship-contents dl dd:not(:first-of-type) {
	border-bottom: 1px solid #ccc;
}
.sponsorship-contents dl dt b {
	font-size: 30px;
	font-size: 3rem;
}
.sponsorship-contents dl dd:not(:first-of-type) {
	font-size: 14px;
	font-size: 1.4rem;
}
.overview-table {
	margin-bottom: 160px;
	width: 100%;
}
.overview-table tr {
	border-bottom: 1px solid #1a1a1a;
}
.overview-table th {
	vertical-align: middle;
	text-align: left;
	width: 30%;
}
.overview-table th,
.overview-table td {
	padding: 0.75em;
}
.overview-div--organization h2 {
	text-align: center;
	font-size: 20px;
	font-size: 2rem;
	font-weight: normal;
	line-height: 1.2;
	margin-bottom: 40px;
}
.overview-div--organization h2 span {
	font-family: "Barlow Condensed", sans-serif;
	display: block;
	font-weight: 600;
	font-size: 60px;
	font-size: 6rem;
	text-transform: uppercase;
}
.overview-div--organization h3 {
	font-weight: bold;
}
p.lead-txt {
	text-align: center;
}
.overview-purpose-list dt {
	font-weight: bold;
	float: left;
	width: 15em;
}
.overview-purpose-list dd {
	padding-left: 15em;
	line-height: 1.6;
	margin-bottom: 12px;
}
#content .overview-block p {
	margin-bottom: 0.75em;
}
ul.overview-business-list {
	padding-left: 1.5em;
}
ul.overview-business-list li {
	list-style-type: disc;
}
.overview-officer-list {
	border-top: 1px solid #1a1a1a;
}
.overview-officer-list dt {
	font-weight: bold;
	float: left;
	width: 10em;
	padding: 0.5em 0;
}
.overview-officer-list dd {
	border-bottom: 1px solid #1a1a1a;
	padding: 0.5em 0 0.5em 10em;
}
.staff-page h2 {
	text-align: center;
	font-weight: normal;
	font-size: 30px;
	font-size: 3rem;
	margin-bottom: 40px;
}
.staff-card {
	display: flex;
	max-width: 760px;
	margin: 0 auto 80px;
	gap: 4%;
}
.staff-card > div {
	width: 48%;
}

@media (max-width: 1028px) {
	section {
		width: 100%;
		padding: 40px 0;
		box-sizing: border-box;
	}
	.w980 {
		flex-wrap: wrap;
	}
	.message-area div,
	.purpose-area-txt,
	.purpose-area-list {
		width: 100%;
		margin-bottom: 40px;
	}
	section.purpose-area,
	section.contact-area {
		padding: 30px;
		border-radius: 20px;
		margin-bottom: 40px;
	}
	.entry-content h3 span,
	.purpose-area-list ol li span {
		font-size: 36px;
		font-size: 3.6rem;
	}
	.entry-content h3 span::first-letter {
		font-size: 60px;
		font-size: 6rem;
	}
	.purpose-area-list ol li {
		font-size: 18px;
		font-size: 1.8rem;
		width: 49%;
	}
	.purpose-area-list ol li span {
		width: 1.5em;
	}
	.contents-nav nav ul li {
		width: 49.999%;
	}
	.contents-nav nav ul li a {
		padding: 24px 12px;
		font-size: 13px;
	}
	.contents-nav nav ul li a img {
		margin-bottom: 4px;
	}
	.msg-btn {
		height: 60px;
		font-size: 13px;
		font-size: 1.3rem;
		display: block;
		margin: 0 auto 40px;
	}
	.msg-btn .label {
		display: block;
		text-align: center;
		top: 30%;
	}
	.msg-btn::before,
	.msg-btn::after {
		top: 24px;
		right: 20px;
	}
	section.news-area,
	.sponsor-area {
		border-radius: 20px;
		padding: 30px;
	}
	.sponsor-section {
		margin-bottom: 4px;
	}
	.sponsor-grid {
		gap: 4px;
	}
	.sponsor-tier-100 .sponsor-grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.sponsor-tier-30 .sponsor-grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.sponsor-tier-10 .sponsor-grid {
	    grid-template-columns: repeat(4, 1fr);
	}
}
@media (max-width: 840px) {
	.offer-area dl {
		width: 100%;
	}
	.offer-area dl dt a {
		padding: 1em;
		margin-bottom: 12px;
	}
	.join-team-pic ul {
		flex-wrap: wrap;
		gap: 2%;
	}
	.join-team-pic ul li {
		width: 49%;
		margin-bottom: 2%;
	}
	#content .news-list {
		margin-bottom: 0;
	}
	.site-footer {
		padding: 0;
		width: 100%;
	}
	.site-footer .footer-background {
		border-radius: 0;
		padding: 32px;
	}
	.footer-nav__heading {
		margin-bottom: 0;
		font-size: 16px;
		font-size: 1.6rem;
	}
	.footer-nav__list li a {
		font-size: 14px;
		font-size: 1.4rem;
	}
	.purpose-list dt::before {
		width: 42px;
		height: 42px;
		line-height: 42px;
		font-size: 2.4rem;
		font-size: 24px;
	}
	.purpose-list dt {
		font-size: 24px;
		font-size: 2.4rem;
		padding-left: 60px;
		line-height: 1.3;
		margin-bottom: 12px;
	}
	.purpose-list dd {
		padding-left: 60px;
		font-size: 15px;
		font-size: 1.5rem;
		line-height: 1.5;
	}
	.director-card--representative,
	.athlete-card,
	.staff-card {
		display: block;
		padding: 24px 0;
	}
	.director-card--representative > div,
	.athlete-card > div,
	.staff-card > div {
		width: 100%;
	}
	.athlete-card__photo {
		margin-bottom: 24px;
	}
	#content dl.athlete-card__career {
		margin-bottom: 0;
	}
	.director-card--director, .director-card--auditor {
		width: 48%;
	}
	.director-card__name-main, .athlete-card__name-main, .staff-card__name-ja {
		font-size: 24px;
		font-size: 2.4rem;
	}
}

header.single-post__header {
	padding: 2em 0;
	margin-bottom: 60px;
}
.single-post__content {
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
}
.single-post__content dl {
	font-size: 18px;
	font-size: 1.8rem;
}
.single-post__content dl dt {
	width: 8em;
	float: left;
	padding: 0.5em 0;
	font-weight: bold;
}
.single-post__content dl dd {
	border-bottom: 1px solid #ccc;
	padding: 0.5em 0 0.5em 10em;
}
.archive-list--competitions {
	display: flex;
	flex-wrap: wrap;
	gap: 2%;
}
.archive-list--competitions .archive-list__item {
	width: 30%;
	padding: 0;
}

/* =========================================================
   講演会ページ（page-request.php）専用
   ========================================================= */

.request-block-wrap {
	max-width: 1280px;
	width: calc(99.999% - 4em);
	width: -webkit-calc(99.999% - 4em);
	margin: 0 auto;
	display: flex;
	gap: 4%;
}
/* 各ブロック共通レイアウト */
.request-block {
	max-width: 980px;
	margin: 0 auto 80px;
}

/* 冒頭ブロック */
.request-block--intro .request-intro-content p:last-child {
	margin-bottom: 0;
}

/* 汎用リスト */
.request-list {
	margin: 0;
	padding-left: 1.5em;
}
.request-list li {
	list-style-type: disc;
	margin-bottom: 0.4em;
}

/* テーマ一覧（dt / dd） */
.request-theme-list {
	margin: 0 0 24px;
}
.request-theme-list dt {
	font-weight: bold;
	margin-bottom: 0.25em;
}
.request-theme-list dd {
	margin: 0 0 1.5em;
	line-height: 1.7;
}

/* プログラム例のボックス */
.request-program {
	margin-bottom: 32px;
	padding: 24px;
	border-radius: 20px;
	background-color: #f7f7f7;
}
.request-program h4 {
	font-size: 20px;
	font-size: 2rem;
	margin-bottom: 12px;
	text-align: center;
	background-color: #1a1a1a;
	color: #fff;
}
#content .request-program ul {
	margin: 0;
	padding-left: 1.2em;
}
.request-program ul li {
	list-style-type: disc;
	margin-bottom: 0.4em;
}

/* 備考テキスト */
.request-note {
	font-size: 14px;
	font-size: 1.4rem;
	color: #666;
	margin-top: 8px;
}

/* 実施までの流れ（番号付き） */
.request-flow-list {
	margin: 0;
	padding-left: 1.4em;
}
.request-flow-list li {
	list-style-type: decimal;
	margin-bottom: 1em;
}

/* 最後の問い合わせボタン */
.request-contact-btn {
	text-align: center;
	margin-top: 32px;
}

/* 講師プロフィール部分 */
.lecture-speakers {
	max-width: 980px;
	margin: 0 auto 120px;
}

.lecture-speaker-card {
	display: flex;
	justify-content: center;
	gap: 4%;
	padding: 80px 0;
	border-top: 1px solid #ccc;
}
.lecture-speaker-card:first-of-type {
	border-top: none;
	padding-top: 40px;
}

.lecture-speaker-card__photo,
.lecture-speaker-card__body {
	width: 48%;
}

.lecture-speaker-card__photo img {
	width: 100%;
	height: auto;
	display: block;
}

.lecture-speaker-card__label {
	background-color: #008cff;
	color: #fff;
	display: inline-block;
	padding: 0.1em 1em;
	border-radius: 999px;
	font-size: 13px;
	font-size: 1.3rem;
	margin-bottom: 12px;
}

.lecture-speaker-card__name {
	line-height: 1.4;
	margin-bottom: 4px;
}
.lecture-speaker-card__name-main {
	font-size: 30px;
	font-size: 3rem;
	font-weight: 600;
}
.lecture-speaker-card__name-roman {
	display: block;
	font-size: 13px;
	font-size: 1.3rem;
	font-style: italic;
}

.lecture-speaker-card__title {
	font-size: 14px;
	font-size: 1.4rem;
	line-height: 1.4;
	margin-bottom: 16px;
}

.lecture-speaker-card__message {
	margin-bottom: 24px;
}

.lecture-speaker-card__bio {
	margin-bottom: 24px;
}

/* 経歴（career） */
.lecture-speaker-card__career dl {
	line-height: 1.5;
}
.lecture-speaker-card__career dt {
	float: left;
	font-size: 14px;
	font-size: 1.4rem;
	font-weight: bold;
	width: 6em;
}
.lecture-speaker-card__career dd {
	padding-left: 6.5em;
	margin-bottom: 6px;
}

/* レスポンシブ調整 */
@media (max-width: 840px) {
	.request-block {
		max-width: 100%;
		margin: 0 auto 60px;
		padding: 0 16px;
		box-sizing: border-box;
	}

	.lecture-speaker-card {
		flex-direction: column;
		padding: 40px 16px;
	}
	.lecture-speaker-card__photo,
	.lecture-speaker-card__body {
		width: 100%;
	}
	.lecture-speaker-card__photo {
		margin-bottom: 24px;
	}

	.lecture-speaker-card__career dt {
		width: 6em;
	}
	.lecture-speaker-card__career dd {
		padding-left: 6.5em;
	}
	.news-list {
		grid-template-columns: auto;
		gap: 0;
	}
	.news-item__thumb img {
		width: 100%;
	}
}
.request-block-wrap div {
	width: 100%;
	background-color: #efe9dd;
	padding: 2em;
	border-radius: 40px;
}
.request-block h2 {
	font-size: 24px;
	font-size: 2.4rem;
	margin-bottom: 0.75em;
}
.request-block h2 span {
	font-family: "Barlow Condensed", sans-serif;
	text-transform: uppercase;
	background-color: #1a1a1a;
	padding: 0em 0.75em;
	margin-right: 0.5em;
	transform: rotate(-5deg);
	color: #fff;
	display: inline-block;
}
#content ul.request-list {
	margin-bottom: 0;
}
.entry-content .request-block--theme h3 {
	text-align: center;
	margin-bottom: 40px;
}
.request-block--theme dl dt {
	font-size: 24px;
	font-size: 2.4rem;
}
.request-program-wrap {
	gap: 4%;
	width: 100%;
	display: flex;
}
.request-program-wrap div {
	width: 100%;
}

@media (max-width: 840px) {
	.archive-list--competitions .archive-list__item {
		width: 48%;
	}
}

@media (max-width: 680px) {
	.purpose-area-list ol li {
		width: 100%;
	}
}