/* =========================================================
   OB・OG / If Levante Familia
========================================================= */

#ob {
	--familia-black: #111;
	--familia-yellow: #f2bc00;
	--familia-gray: #f4f4f4;
	--familia-text: #333;
}


/* 共通
--------------------------------------------------------- */

#ob img {
	max-width: 100%;
	height: auto;
}

.familiaSectionTitle {
	margin: 0 0 42px;
	font-size: 32px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.03em;
	color: var(--familia-black);
}

.familiaIntro,
.familiaHistory,
.familiaWorld,
.familiaJapan,
.familiaPhilosophy {
	box-sizing: border-box;
}


/* If Levante Familia
--------------------------------------------------------- */

.familiaIntro {
	padding: 5px 0 90px;
}

.familiaIntro__title {
	width: min(520px, 70%);
	margin: 0 auto 10px;
	text-align: center;
}

.familiaIntro__title img {
	display: block;
	width: 100%;
	height: auto;
}

.familiaIntro__text {
	max-width: 1160px;
	margin: 0 auto;
	font-size: 15px;
	line-height: 2;
	color: var(--familia-text);
}

.familiaIntro__text p {
	margin: 0 0 7px;
}

.familiaIntro__visual {
	max-width: 1160px;
	margin: 45px auto 0;
	text-align: center;
}

.familiaIntro__visual img {
	display: block;
	width: 100%;
	margin: 0 auto;
}


/* OUR HISTORY
--------------------------------------------------------- */

.familiaHistory {
	padding: 40px 0 95px;
}

.familiaHistory__main {
	display: grid;
	grid-template-columns: minmax(250px, 0.95fr) minmax(280px, 0.85fr) minmax(300px, 1fr);
	align-items: center;
	gap: 48px;
}

.familiaHistory__year {
	position: relative;
	min-width: 0;
}

.familiaHistory__yearNumber {
	margin: 0;
	font-size: clamp(90px, 11vw, 168px);
	font-weight: 900;
	line-height: 0.85;
	letter-spacing: -0.07em;
	color: #000;
}

.familiaHistory__ball {
	width: 130px;
	margin: 20px auto 0;
	transform: rotate(-7deg);
}

.familiaHistory__ball img {
	display: block;
	width: 100%;
}

.familiaHistory__founder {
	min-width: 0;
}

.familiaHistory__heading {
	margin: 0 0 8px;
	font-size: 25px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--familia-black);
}

.familiaHistory__name {
	margin: 0;
	font-size: 31px;
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: 0.02em;
	color: var(--familia-black);
}

.familiaHistory__nameEn {
	margin: 5px 0 22px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	color: var(--familia-yellow);
}

.familiaHistory__description {
	margin: 0;
	font-size: 14px;
	line-height: 1.9;
	color: var(--familia-text);
}

.familiaHistory__visual {
	align-self: end;
}

.familiaHistory__visual img {
	display: block;
	width: 100%;
}


/* 経歴
--------------------------------------------------------- */

.familiaCareer {
	margin-top: 45px;
}

.familiaCareer__label {
	margin: 0 0 14px;
	font-size: 14px;
	font-weight: 700;
	color: var(--familia-black);
}

.familiaCareer__list {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
}

.familiaCareerCard {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 116px;
	box-sizing: border-box;
	padding: 20px 18px 30px;
	background: var(--familia-gray);
	text-align: center;
}

.familiaCareerCard__team {
	margin: 0;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--familia-black);
	text-align: center;
}

.familiaCareerCard__flag {
	position: absolute;
	right: 10px;
	bottom: 8px;
	width: 34px;
	height: auto;
}


/* WORLD
--------------------------------------------------------- */

.familiaWorld {
	padding: 10px 0 95px;
}

.familiaWorld__inner {
	display: grid;
	grid-template-columns: minmax(330px, 1.15fr) minmax(500px, 1fr);
	align-items: start;
	gap: 65px;
}

.familiaWorld__lead {
	min-width: 0;
}

.familiaWorld__map {
	width: 100%;
}

.familiaWorld__map img {
	display: block;
	width: 100%;
}

.familiaWorld__message {
	margin: -30px 0 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.7;
	color: var(--familia-black);
}

.familiaWorld__message span {
	color: var(--familia-yellow);
}

.familiaWorld__players {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
}


/* 選手カード共通
--------------------------------------------------------- */

.familiaPlayerCard {
	position: relative;
	box-sizing: border-box;
	min-height: 300px;
	padding: 43px 24px 48px;
	background: var(--familia-gray);
	text-align: center;
}

.familiaPlayerCard__name {
	margin: 0;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.45;
	letter-spacing: 0.03em;
	color: var(--familia-black);
}

.familiaPlayerCard__nameEn {
	margin: 5px 0 28px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.13em;
	color: var(--familia-yellow);
	text-align: center;
}

.familiaPlayerCard__career {
	font-size: 13px;
	line-height: 1.75;
	color: var(--familia-black);
}

.familiaPlayerCard__career p {
	margin: 0;
	text-align: center;
}

.familiaPlayerCard__arrow {
	display: block;
	margin: 5px 0;
	font-size: 22px;
	font-weight: 400;
	line-height: 1;
}

.familiaPlayerCard__flag {
	position: absolute;
	right: 15px;
	bottom: 13px;
	width: 44px;
	height: auto;
}


/* JAPAN
--------------------------------------------------------- */

.familiaJapan {
	padding: 10px 0 55px;
}

.familiaJapan__main {
	display: grid;
	grid-template-columns: minmax(220px, 0.78fr) minmax(440px, 1.35fr) minmax(240px, 0.65fr);
	align-items: start;
	gap: 32px;
}

.familiaJapan__map {
	align-self: center;
}

.familiaJapan__map img {
	display: block;
	width: 100%;
}

.familiaJapan__caption {
	margin: 0 0 3px;
	font-size: 13px;
	line-height: 1.5;
	color: var(--familia-text);
}

.familiaJapan__leagueTitle {
	margin: 0 0 18px;
	font-size: 21px;
	font-weight: 800;
	line-height: 1.4;
	color: var(--familia-black);
}

.familiaJapan__players {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.familiaJapan__league--women {
	padding-top: 26px;
}

.familiaJapan__league--women .familiaJapan__players {
	grid-template-columns: 1fr;
}

.familiaJapan__league--women .familiaPlayerCard {
	min-height: 300px;
}


/* JAPAN 下段
--------------------------------------------------------- */

.familiaJapan__other {
	margin-top: 48px;
}

.familiaJapan__otherLead {
	margin: 0 0 7px;
	font-size: 13px;
	line-height: 1.7;
	color: var(--familia-text);
}

.familiaJapanGroup__title {
	margin: 0 0 13px;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.4;
	color: var(--familia-black);
}

.familiaJapan__otherGrid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: 20px;
	align-items: start;
}

.familiaJapanGroup--top {
	grid-column: 1 / span 2;
}

.familiaJapanGroup--senorita {
	grid-column: 3 / span 1;
}

.familiaJapanGroup__title {
	margin: 0 0 13px;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.4;
	color: var(--familia-black);
}

.familiaJapanGroup__players {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.familiaJapanGroup--senorita .familiaJapanGroup__players {
	grid-template-columns: 1fr;
}


.familiaNameCard {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	box-sizing: border-box;
	padding: 22px 18px;
	background: var(--familia-gray);
	text-align: center;
}

.familiaNameCard__name {
	margin: 0;
	font-size: 19px;
	font-weight: 800;
	line-height: 1.4;
	color: var(--familia-black);
}

.familiaNameCard__nameEn {
	margin: 7px 0 0;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--familia-yellow);
}


/* OUR PHILOSOPHY
--------------------------------------------------------- */

.familiaPhilosophy {
	padding: 10px 0 80px;
}

.familiaPhilosophy__title {
	width: 430px;
	max-width: 45%;
	margin: 0 auto 38px;
	text-align: center;
}

.familiaPhilosophy__title img {
	display: block;
	width: 100%;
	height: auto;
}

.familiaPhilosophy__columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 90px;
}

.familiaPhilosophy__text {
	font-size: 14px;
	line-height: 2;
	color: var(--familia-text);
}

.familiaPhilosophy__text p {
	margin: 0 0 8px;
}

.familiaPhilosophy__signature {
	width: min(500px, 65%);
	margin: 5px 0 0 auto;
}

.familiaPhilosophy__signature img {
	display: block;
	width: 100%;
}


/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 1100px) {

	.familiaSectionTitle {
		margin-bottom: 34px;
		font-size: 29px;
	}

	.familiaIntro {
		padding: 45px 0 75px;
	}

	.familiaHistory {
		padding-bottom: 80px;
	}

	.familiaHistory__main {
		grid-template-columns: 0.85fr 0.9fr 1fr;
		gap: 30px;
	}

	.familiaHistory__heading {
		font-size: 21px;
	}

	.familiaHistory__name {
		font-size: 27px;
	}

	.familiaHistory__description {
		font-size: 13px;
	}

	.familiaCareer__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.familiaWorld__inner {
		grid-template-columns: 0.95fr 1.15fr;
		gap: 38px;
	}

	.familiaPlayerCard {
		padding-right: 18px;
		padding-left: 18px;
	}

	.familiaJapan__main {
		grid-template-columns: 0.65fr 1.3fr 0.75fr;
		gap: 22px;
	}

	.familiaJapan__leagueTitle {
		font-size: 20px;
	}

	.familiaJapan__players {
		gap: 14px;
	}

	.familiaPhilosophy__columns {
		gap: 55px;
	}
}


/* =========================================================
   タブレット縦・スマートフォン
========================================================= */

@media screen and (max-width: 767px) {

	.familiaSectionTitle {
		margin-bottom: 26px;
		font-size: 24px;
	}

	.familiaIntro {
		padding: 35px 0 60px;
	}

	.familiaIntro__title {
		width: min(330px, 82%);
		margin-bottom: 32px;
	}

	.familiaIntro__text {
		font-size: 13px;
		line-height: 1.9;
	}

	.familiaIntro__text p {
		margin-bottom: 6px;
	}

	.familiaIntro__visual {
		margin-top: 30px;
	}

	.familiaHistory {
		padding: 25px 0 65px;
	}

	.familiaHistory__main {
		display: block;
	}

	.familiaHistory__year {
		text-align: left;
	}

	.familiaHistory__ball {
		width: 95px;
		margin: 15px 0 0 65px;
	}

	.familiaHistory__founder {
		margin-top: 35px;
	}

	.familiaHistory__heading {
		font-size: 20px;
	}

	.familiaHistory__name {
		font-size: 27px;
	}

	.familiaHistory__description {
		font-size: 13px;
	}

	.familiaHistory__visual {
		width: 88%;
		margin: 30px auto 0;
	}

	.familiaCareer {
		margin-top: 38px;
	}

	.familiaCareer__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.familiaCareerCard {
		min-height: 104px;
		padding: 16px 10px 28px;
	}

	.familiaCareerCard__team {
		font-size: 11px;
	}

	.familiaCareerCard__flag {
		width: 28px;
	}

	.familiaWorld {
		padding-bottom: 65px;
	}

	.familiaWorld__inner {
		display: block;
	}

	.familiaWorld__lead {
		margin-bottom: 35px;
	}

	.familiaWorld__map {
		width: 90%;
		margin: 0 auto;
	}

	.familiaWorld__message {
		margin-top: 18px;
		font-size: 14px;
	}

	.familiaWorld__players {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.familiaPlayerCard {
		min-height: 0;
		padding: 32px 20px 50px;
	}

	.familiaPlayerCard__name {
		font-size: 21px;
	}

	.familiaPlayerCard__nameEn {
		margin-bottom: 22px;
	}

	.familiaJapan {
		padding-bottom: 55px;
	}

	.familiaJapan__main {
		display: block;
	}

	.familiaJapan__map {
		width: 55%;
		margin: 0 auto 42px;
	}

	.familiaJapan__league {
		margin-bottom: 42px;
	}

	.familiaJapan__league--women {
		padding-top: 0;
	}

	.familiaJapan__leagueTitle {
		margin-bottom: 16px;
		font-size: 20px;
	}

	.familiaJapan__players {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.familiaJapan__other {
		margin-top: 5px;
	}

	.familiaJapan__otherGrid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.familiaJapanGroup--top,
	.familiaJapanGroup--senorita {
		grid-column: auto;
	}

	.familiaJapanGroup__players,
	.familiaJapanGroup--senorita .familiaJapanGroup__players {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.familiaJapanGroup__title {
		font-size: 20px;
	}

	.familiaJapanGroup__players {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.familiaNameCard {
		min-height: 105px;
	}

	.familiaPhilosophy {
		padding: 0 0 50px;
	}

	.familiaPhilosophy__title {
		width: 280px;
		max-width: 78%;
		margin: 0 auto 35px;
	}

	.familiaPhilosophy__columns {
		grid-template-columns: 1fr;
		gap: 35px;
	}

	.familiaPhilosophy__text {
		font-size: 16px;
		line-height: 1.5;
	}

	.familiaPhilosophy__signature {
		width: min(245px, 67%);
		margin-top: 35px;
	}
}


/* =========================================================
   小さいスマートフォン
========================================================= */

@media screen and (max-width: 420px) {

	.familiaCareer__list {
		grid-template-columns: 1fr;
	}

	.familiaCareerCard {
		min-height: 94px;
	}

	.familiaCareerCard__team {
		font-size: 16px;
	}

	.familiaHistory__ball {
		margin-left: 40px;
	}

	.familiaJapan__map {
		width: 65%;
	}
}

@media screen and (max-width: 767px) {

	.familiaHistory__yearNumber {
		font-size: 72px;
		line-height: 1;
	}

	.familiaHistory__ball {
		width: 70px;
		margin: 8px 0 0 30px;
	}

	.familiaHistory__founder {
		margin-top: 28px;
	}

	.familiaHistory__description {
		margin-top: 24px;
		font-size: 13px;
		line-height: 1.9;
	}

	.familiaHistory__visual {
		margin-top: 22px;
	}
}