@charset "utf-8";



/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");



/*CSSカスタムプロパティ（LPサイト全体を一括管理する為の設定）
---------------------------------------------------------------------------*/
body {
	background: #737373;
}

:root {
	font-family: "bahnschrift", sans-serif;
}

.blank-only-pc {
	display: none;
}


/*header.php
---------------------------------------------------------------------------*/
.l-header-career__list {
	align-items: center !important;
	font-size: clamp(0.75rem, 0.464rem + 0.45vw, 1rem);
	gap: clamp(0.313rem, -0.402rem + 1.12vw, 0.938rem);
}

.c-button-nav {
	min-width: clamp(5rem, 3.571rem + 2.23vw, 6.25rem);
}

.c-button-entry {
	min-width: clamp(5.625rem, 4.911rem + 1.12vw, 6.25rem);
}

.c-button-entry:hover {
	background: #ed7a9085;
}



/*front-page.php
---------------------------------------------------------------------------*/
/* --- Hero Area --- */
/* イントロ動画 */
.p-lp-intro {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	z-index: 9999;
	/* ヘッダー(通常1000程度)より大きい値 */
	background: #333;
	visibility: hidden;
	/* 初期状態 */
	opacity: 0;
	transition: opacity 0.8s ease;
	/* 中身がはみ出してもスクロールバーを出さない */
	overflow: hidden;
}

#introVideo {
	width: 100%;
	height: 100vh;
	/* ここが重要：比率を保ったまま画面いっぱいに広げ、はみ出した分をカットします */
	object-fit: cover;
	/* ブラウザによるデフォルトの余白を強制排除 */
	display: block;
}

.p-lp-intro.is-active {
	visibility: visible;
	opacity: 1;
}

/* ヒーローエリア全体のコンテナ */
.p-lp-hero {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
}

/* 動画と画像を全画面に広げて重ねる */
.p-lp-hero__video {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.hero-video,
.hero-poster {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	/* height: auto; */
	height: 100vh;
	object-fit: cover;
	/* 画面一杯にトリミングして表示 */
}

/* 動画が読み込まれたら前面に来るように設定 */
.hero-video {
	z-index: 2;
}

/* 画像は背景として待機 */
.hero-poster {
	z-index: 1;
}

/* 閉じるボタン */
.p-lp-intro__close {
	position: absolute;
	top: 30px;
	right: 30px;
	width: 44px;
	height: 44px;
	background: rgba(255, 255, 255, 0.3);
	border: 2px solid #fff;
	border-radius: 50%;
	cursor: pointer;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ボタン内の「×」印 */
.p-lp-intro__close::before,
.p-lp-intro__close::after {
	content: "";
	position: absolute;
	width: 20px;
	height: 2px;
	background: #fff;
}

.p-lp-intro__close::before {
	transform: rotate(45deg);
}

.p-lp-intro__close::after {
	transform: rotate(-45deg);
}

/* 音声ボタンの基本スタイル */
.p-lp-intro__mute {
	position: absolute;
	bottom: 40px;
	left: 40px;
	z-index: 10;
	background: rgba(255, 255, 255, 0.2);
	border: 1px solid #fff;
	color: #fff;
	padding: 8px 16px;
	border-radius: 100px;
	cursor: pointer;
	font-size: 12px;
	transition: all 0.3s ease;
}

/* マウスホバー時 */
.p-lp-intro__mute:hover {
	background: rgba(255, 255, 255, 0.4);
}

/* ON状態のスタイル */
.p-lp-intro__mute.is-audio-on {
	background: #ff3366;
	border-color: #ff3366;
}

/* 動画より前面に出るように設定 */
.p-lp-intro__video {
	z-index: 1;
}

/* LP表示時、Career Site用の大きなマージンを解除する */
.p-career-content-wrapper {
	margin-top: 0 !important;
}

/* --- LPセクション共通設定 --- */

.p-lp-section {
	position: relative;
	background: #fff;
	border-radius: 20px;
	/* 四隅を少し丸く */
	padding: 60px 40px 100px;
	margin-bottom: 60px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

/* 左上の三角形（アクセント） */
.p-lp-section__decoration-top {
	position: absolute;
	top: 20px;
	left: 30px;
	/* width: 40px;
	height: 40px; */
	width: clamp(1.875rem, 1.716rem + 0.65vw, 2.5rem);
	height: clamp(1.875rem, 1.716rem + 0.65vw, 2.5rem);
	background: linear-gradient(135deg, #ED7A90 50%, transparent 50%);
	border-top-left-radius: 5px;
}

/* 右下のロゴ（アクセント） */
.p-lp-section__decoration-bottom {
	position: absolute;
	bottom: 20px;
	right: 30px;
	width: 45px;
	opacity: 0.8;
}

.p-lp-section__decoration-bottom img {
	width: 100%;
}

/* セクションタイトルと罫線 */
.p-lp-section__header {
	margin-bottom: 40px;
}

.p-lp-section__title {
	font-size: 28px;
	font-weight: 800;
	letter-spacing: 0.05em;
	color: #333;
}

.p-lp-section__ruby {
	display: block;
	font-size: 14px;
	font-weight: 500;
	margin-top: 5px;
	display: flex;
	align-items: center;
	gap: 8px;
}

.p-lp-section__ruby img {
	height: 14px;
}

.p-lp-section__line {
	width: 100%;
	height: 1px;
	background: #333;
	margin-top: 20px;
}

/* 追従（Sticky）レイアウト */
.p-lp-section__body {
	display: flex;
	gap: 60px;
	align-items: flex-start;
}

.p-lp-section__side {
	position: sticky;
	top: 140px;
	/* ヘッダーの高さを考慮 */
	width: 200px;
	flex-shrink: 0;
}

.p-lp-section__side-label {
	font-size: 24px;
	color: #333;
	letter-spacing: 0.05em;
}

.p-lp-section__main {
	flex-grow: 1;
	width: 100%;
}

.p-lp-section__main .u-text-center {
	flex-direction: column;
	width: 80%;
	margin: 0 auto;
}

/* 記事ブロックのスタイル */
.p-lp-article {
	margin-bottom: 60px;
}

.p-lp-article__title {
	font-size: 20px;
	font-weight: 700;
	border-bottom: 1px solid #ccc;
	padding-bottom: 10px;
	margin-bottom: 20px;
	display: flex;
	align-items: baseline;
	gap: 15px;
	color: #ed7a90;
}

.p-lp-article__title span {
	font-size: 24px;
}

.p-lp-article__text {
	font-size: 15px;
	line-height: 2;
}

/* --- 医療と暮らしのバランス --- */

/* 図解全体のコンテナ */
.p-lp-balance {
	margin-top: 60px;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 48px;
	background: #b7b7b7;
	padding: 20px;
	border-radius: 8px;
}

.p-lp-balance__container {
	position: relative;
	padding: 60px 20px;
	overflow: hidden;
}

/* 背景 */
.p-lp-balance__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	background: linear-gradient(45deg, #0064ff 0%, #00ff5b 100%);
	overflow: hidden;
	/* はみ出した装飾文字を隠す */
}

/* 背景装飾テキスト：共通設定 */
.p-lp-balance__bg::before,
.p-lp-balance__bg::after {
	position: absolute;
	font-size: clamp(0.625rem, 0.544rem + 0.38vw, 1rem);
	font-weight: 900;
	line-height: 1;
	color: #fffffff7;
	white-space: nowrap;
	z-index: 4;
	pointer-events: none;
}

/* 「医療」の背景文字 */
.p-lp-balance__bg::before {
	content: "医療";
	bottom: clamp(2rem, 1.919rem + 0.38vw, 2.375rem);
	left: 20px;
}

/* 「暮らし」の背景文字 */
.p-lp-balance__bg::after {
	content: "暮らし";
	top: clamp(1.875rem, 1.794rem + 0.38vw, 2.25rem);
	right: 18px;
}

/* 既存の英字テキストは、背景文字の上に重なるように z-index を調整 */
.p-lp-balance__bg-text {
	position: absolute;
	font-weight: 800;
	font-size: clamp(0.75rem, 0.669rem + 0.38vw, 1.125rem);
	color: #fff;
	z-index: 5;
}

.p-lp-balance__bg-text--top {
	top: 15px;
	right: 20px;
}

.p-lp-balance__bg-text--bottom {
	bottom: 15px;
	left: 20px;
}

/* 職種ボックスのレイアウト */
.p-lp-balance__items {
	position: relative;
	z-index: 10;
	display: flex;
	gap: 15px;
	justify-content: center;
}

.p-lp-balance__item {
	flex: 1;
	aspect-ratio: 1 / 1;
	max-width: 180px;
}

.p-lp-balance__box {
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, 0.9);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
	cursor: pointer;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
	text-align: center;
	font-size: clamp(0.5rem, 0.392rem + 0.51vw, 1rem);
}

/* インタラクティブ：ホバー演出 */
.p-lp-balance__box:hover {
	transform: translateY(-10px) scale(1.05);
	background: #fff;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
}

.p-lp-balance__label-jp,
.p-lp-balance__label-en {
	line-height: 1;
	color: #ED7A90;
}

.p-lp-balance__label-jp {
	/* font-size: 16px; */
	font-weight: 700;
	/* color: #ED7A90; */
	margin-bottom: clamp(0.313rem, 0.245rem + 0.32vw, 0.625rem);
}

.p-lp-balance__label-en {
	/* font-size: 12px; */
	font-weight: 800;
	/* color: #ED7A90; */
	letter-spacing: 0.05em;
}

/* フッター部分 */
.p-lp-balance__footer {
	text-align: center;
	margin-top: 40px;
}

.p-lp-balance__footer-title {
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 10px;
}

.p-lp-balance__footer-sub {
	color: #fff;
	font-size: 16px;
	font-weight: 500;
	margin-bottom: 20px;
}

.p-lp-balance__footer-logo img {
	height: 60px;
}

/* --- SERVICE Sctions --- */

/* 重要事項説明リンク */
.p-lp-service-links {
	display: flex;
	gap: 30px;
	flex-direction: column;
	justify-content: center;
	margin-top: 40px;
	margin-bottom: 60px;
}

.p-lp-service-links .c-button-link {
	font-size: 14px;
	text-decoration: underline;
	color: #333;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* 組織図：アニメーション設計 */
.p-lp-org {
	opacity: 1;
	margin-top: 60px;
	padding: 60px 20px;
	position: relative;
	clear: both;
	border: 1px solid #eee;
	border-radius: 10px;
	box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
}

.p-lp-org__container {
	position: relative;
	max-width: 800px;
	margin: 0 auto;
	min-height: 250px;
	/* 組織図が収まる最低限の高さを確保 */
}

/* 各ボックスの共通スタイル */
.p-lp-org__root,
.p-lp-org__leaf {
	background: #fff;
	border: 2px solid #ED7A90;
	color: #ED7A90;
	padding: 15px;
	border-radius: 8px;
	text-align: center;
	font-weight: 700;
	transition: all 0.6s ease;
	opacity: 0;
	transform: translateY(10px);
}

.p-lp-org__root {
	width: 200px;
	margin: 0 auto;
	background: #ED7A90;
	color: #fff;
}

/* コネクター線のアニメーション */
.p-lp-org__lines {
	position: relative;
	height: 120px;
	width: 100%;
	z-index: 1;
}

.p-lp-org__line-vertical {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 2px;
	background: #ED7A90;
	height: 0;
	transition: height 0.6s ease 0.4s;
}

.p-lp-org__line-horizontal {
	position: absolute;
	bottom: 60px;
	left: 50%;
	transform: translateX(-50%);
	width: 0;
	height: 2px;
	background: #ED7A90;
	transition: width 0.6s ease 1.0s;
}

/* スクロール発火時（is-active）のアニメーション */
.p-lp-org.is-active .p-lp-org__root {
	opacity: 1;
	transform: translateY(0);
}

.p-lp-org.is-active .p-lp-org__line-vertical {
	opacity: 1;
	height: 60px;
}

.p-lp-org.is-active .p-lp-org__line-horizontal {
	opacity: 1;
	width: 76%;
}

.p-lp-org.is-active .p-lp-org__leaf {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 1.6s;
}

/* アニメーション発火時（is-active） */
.p-lp-org.is-active .p-lp-org__leaf::before {
	height: 60px;
	/* 30px分、下（ボックス）に向かって伸びる */
}

/* 4職種のディレイ設定 */
.p-lp-org.is-active .p-lp-org__leaf:nth-child(1) {
	transition-delay: 1.2s;
}

.p-lp-org.is-active .p-lp-org__leaf:nth-child(2) {
	transition-delay: 1.4s;
}

.p-lp-org.is-active .p-lp-org__leaf:nth-child(3) {
	transition-delay: 1.6s;
}

.p-lp-org.is-active .p-lp-org__leaf:nth-child(4) {
	transition-delay: 1.8s;
}

/* 職種ごとのディレイ（順々に表示） */
.p-career-service-container {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

/* 3カードのグリッド調整（LP用） */
.p-lp-org__leaf-container {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	position: relative;
}

.p-career-service-card {
	background: #fff;
	border: 1px solid #eee;
	padding: 20px;
	border-radius: 10px;
}

.p-lp-org__leaf {
	flex: 1;
	min-width: 0;
	/* flexの子要素が潰れないように */
	background: #fff;
	border: 1px solid #ED7A90;
	border-radius: 6px;
	padding: 10px 5px;
	font-size: 13px;
	line-height: 1.4;
	position: relative;
}

.p-lp-org__leaf::before {
	content: "";
	position: absolute;
	/* ボックスの「上端」を基準にする */
	bottom: 107%;
	left: 50%;
	transform: translateX(-50%);
	width: 2px;
	height: 0;
	/* 初期状態（長さゼロ） */
	background: #ED7A90;
	/* 1.0sで横線が広がりきった後、1.2sから「下に向かって」伸びる */
	transition: height 0.4s ease 1.2s;
}

.p-lp-org__leaf small {
	display: block;
	font-size: 10px;
	font-weight: 400;
}

.p-career-service-card__description {
	min-height: clamp(18em, 35.155em - 8.944vw, 26em) !important;
}

/* --- PEOPLE: Data Analytics--- */

.p-career-data-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
}

.p-career-data-item {
	background: rgba(255, 255, 255, 0.5);
	border-radius: 30px;
	padding: 40px;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
	text-align: center;
	opacity: 0;
	transform: translateY(30px);
	transition: all 0.8s ease-out;
}

.p-career-data-item.is-active {
	opacity: 1;
	transform: translateY(0);
}

.p-career-data-item--full {
	grid-column: 1 / -1;
}

.p-career-data-item__label {
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 30px;
}

/* 男女比 */
.p-career-data-item__chart--gender {
	display: flex;
	justify-content: center;
	gap: 60px;
	align-items: flex-end;
	min-height: 240px;
}

.p-career-gender-group {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	opacity: 0.3;
	transform: scale(0.6);
	transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.p-career-data-item__chart--gender.is-active .p-career-gender-group {
	opacity: 1;
	transform: scale(1.5);
}

.p-career-gender-icon-wrap img {
	width: 60px;
	height: auto;
}

.p-career-gender-value {
	font-size: 32px;
	font-weight: 700;
	color: #ED7A90;
}

/* 従業員数アイコン */
.p-career-employee-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 15px;
}

.p-career-employee-icons {
	display: flex;
	gap: 4px;
}

.p-career-employee-label {
	width: 120px;
	text-align: left;
	font-weight: bold;
}

.p-career-employee-num {
	width: 60px;
	text-align: right;
	font-weight: bold;
}

.p-career-person-icon {
	opacity: 0;
	transform: scale(0);
	transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	width: 14px;
	height: auto;
	margin-right: 2px;
}

.p-career-person-icon.is-active {
	opacity: 1;
	transform: scale(1);
}

/* Chart.js 職種グラフ */
.p-career-data-item__chart {
	position: relative;
	width: 200px;
	height: 200px;
	margin: 0 auto 20px;
}

.p-career-chart-legend {
	margin-top: 20px;
	opacity: 0;
	transform: translateY(10px);
	transition: all 0.6s ease-out;
}

.p-career-chart-legend.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.p-career-legend-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px 15px;
	list-style: none;
	padding: 0;
}

.p-career-legend-item {
	display: flex;
	align-items: flex-start;
}

.p-career-legend-color {
	width: 12px;
	height: 12px;
	border-radius: 2px;
	margin-right: 8px;
	margin-top: 2px;
	flex-shrink: 0;
}

.p-career-legend-label {
	color: #333;
	font-size: 13px;
	line-height: 1.4;
	flex: 1;
	text-align: left;
}

.p-career-legend-value {
	font-size: 13px;
	font-weight: 700;
	color: #888;
	margin-left: 8px;
}

/* --- PEOPLE: Photo & CTA--- */

.p-lp-people-cta {
	opacity: 0;
	transform: translateY(30px);
	transition: all 0.8s ease;
	margin-top: 64px;
}

.p-lp-people-cta.is-active {
	opacity: 1;
	transform: translateY(0);
}

.p-lp-people-cta__photo {
	width: 100%;
	overflow: hidden;
	border-radius: 20px;
	/* 他のカードと合わせた丸み */
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.p-lp-people-cta__photo img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.6s ease;
}

/* ホバーで写真を少しズームさせる演出（任意） */
.p-lp-people-cta__photo:hover img {
	transform: scale(1.03);
}

.p-lp-people-cta__text {
	font-size: 16px;
	line-height: 1.8;
}

/* 採用サイトへのボタン：目立たせるためにピンク色に */
.p-lp-people-cta .c-button-entry-large {
	display: inline-flex;
	align-items: center;
	gap: 15px;
	background: #ED7A90;
	color: #fff;
	padding: 20px 50px;
	border-radius: 50px;
	text-decoration: none;
	font-weight: 800;
	font-size: 18px;
	transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(237, 122, 144, 0.3);
}

.p-lp-people-cta .c-button-entry-large:hover {
	background: #e85a75;
	transform: translateY(-3px);
	box-shadow: 0 8px 25px rgba(237, 122, 144, 0.5);
}

/* --- PEOPLE: Photo Slideshow CTA --- */

.p-lp-people-cta__container {
	position: relative;
	width: 100%;
	min-height: 450px;
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
}

.p-lp-people-cta__photo-viewport {
	width: 100%;
	position: relative;
	padding-top: 56.25%;
	/* 16:9 の比率で高さを確保 */
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
	background-color: #eee;
}

.p-lp-people-cta__slides {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.p-lp-people-cta__slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	opacity: 0;
	transition: opacity 1.5s ease-in-out;
	z-index: 1;
}

.p-lp-people-cta__slide.is-active {
	opacity: 1;
	z-index: 2;
}

.p-lp-people-cta__content {
	position: relative;
	z-index: 3;
	text-align: center;
	padding: 40px;
	max-width: 800px;
}

.p-lp-people-cta__text {
	font-size: 20px;
	font-weight: 700;
	line-height: 2;
	/* text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); */
}

/* ボタンの調整 */
.p-lp-people-cta .c-button-entry-large {
	background: #ED7A90;
	border: 2px solid #ED7A90;
}

/* 採用サイトへのボタン */
.p-lp-people-cta .c-button-entry-large {
	display: inline-flex;
	align-items: center;
	gap: 15px;
	background: #ED7A90;
	color: #fff;
	padding: 18px 45px;
	border-radius: 50px;
	font-weight: 800;
	font-size: 18px;
	box-shadow: 0 4px 15px rgba(237, 122, 144, 0.3);
}

/* --- ACCESS SECTION --- */

/* 地図の器 */
.p-lp-access__map {
	width: 100%;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
	line-height: 0;
}

/* 拠点詳細 */
.p-lp-access__info {
	background: #fdfdfd;
	/* border: 1px solid #eee; */
	border-radius: 20px;
	padding: 40px;
}

.p-lp-access__info-header {
	display: flex;
	align-items: center;
	gap: 5px;
}

.p-lp-access__logo {
	height: 40px;
}

.p-lp-access__lic-color {
	color: #ED7A90;
	font-size: 1rem;
}

.p-lp-access__name {
	font-size: 24px;
	font-weight: 800;
	color: #333;
}

/* --- COMPANY SECTION --- */

.p-lp-company {
	background: #fdfdfd;
	border: 1px solid #eee;
	border-radius: 20px;
	padding: 40px;
	overflow: hidden;
}

/* 横並びにするためのラッパー */
.p-lp-company__wrapper {
	display: flex;
	gap: 40px;
}

/* 定義リスト形式のレイアウト */
.p-lp-access__list {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 0;
}

.p-lp-company__list {
	flex: 1;
	/* PCでは均等に広がる */
	min-width: 0;
	display: grid;
	grid-template-columns: 140px 1fr 1fr;
	gap: 0 30px;
}

.p-lp-company__list dt,
.p-lp-company__list dd {
	padding: 20px 0;
	border-bottom: 1px solid #eee;
	display: flex;
	align-items: center;
}

.p-lp-company__list dt {
	font-weight: 800;
	color: #ED7A90;
	font-size: 15px;
	padding-right: 20px;
}

.p-lp-company__list dd {
	font-size: 15px;
	line-height: 1.7;
	margin-left: 20px;
}

.p-lp-company__list dd a {
	color: inherit;
	text-decoration: none;
	font-weight: 700;
}

/* --- FINAL CTA AREA --- */

.p-lp-final-cta {
	opacity: 0;
	transform: translateY(30px);
	transition: all 0.8s ease;
}

.p-lp-final-cta.is-active {
	opacity: 1;
	transform: translateY(0);
}

.p-lp-final-cta__title {
	font-size: clamp(24px, 4vw, 32px);
	font-weight: 800;
	color: #ED7A90;
	line-height: 1.5;
}

/* --- NEW SECTION --- */

.p-lp-news {
	width: 100%;
}

.p-lp-news__list {
	border-top: 1px solid #eee;
	list-style-type: none;
}

.p-lp-news__item {
	border-bottom: 1px solid #eee;
}

.p-lp-news__link {
	display: flex;
	align-items: center;
	padding: 25px 10px;
	text-decoration: none;
	color: #333;
	transition: all 0.3s;
}

.p-lp-news__link:hover {
	background-color: rgba(237, 122, 144, 0.03);
}

/* 日付 */
.p-lp-news__date {
	font-size: 14px;
	color: #888;
	width: 110px;
	flex-shrink: 0;
}

/* カテゴリ（バッジ風） */
.p-lp-news__category {
	font-size: 11px;
	font-weight: bold;
	color: #ED7A90;
	border: 1px solid #ED7A90;
	padding: 2px 12px;
	border-radius: 20px;
	margin-right: 25px;
	flex-shrink: 0;
	min-width: 90px;
	text-align: center;
}

/* タイトル */
.p-lp-news__title {
	font-size: 15px;
	font-weight: 500;
	flex-grow: 1;
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.p-lp-news__icon {
	color: #ED7A90;
	font-size: 12px;
	margin-left: 15px;
	transition: transform 0.3s;
}

.p-lp-news__link:hover .p-lp-news__icon {
	transform: translateX(5px);
}

.u-text-center {
	display: flex;
	justify-content: center;
}

/* 共通ボタン：一覧を見る */
.c-button-more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 200px;
	padding: 8px 2px;
	background-color: #ED7A90;
	color: #fff;
	text-decoration: none;
	font-size: 16px;
	font-weight: 700;
	border-radius: 50px;
	box-shadow: 0 4px 15px rgba(237, 122, 144, 0.3);
	transition: all 0.3s ease;
	position: relative;
	margin: 0 auto;
}

/* ホバー時の挙動 */
.c-button-more:hover {
	background-color: #d66479;
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(237, 122, 144, 0.4);
	color: #fff;
}

/* ボタン内のアイコンや矢印（もし付ける場合） */
.c-button-more::after {
	content: "\f061";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	margin-left: 15px;
	font-size: 14px;
	transition: transform 0.3s ease;
}

.c-button-more:hover::after {
	transform: translateX(5px);
}



/*LP Footer Custom
---------------------------------------------------------------------------*/
/* SNSアイコンの横並び */
.p-lp-footer-sns {
	display: flex;
	gap: 20px;
	list-style: none;
	padding: 0;
	margin: 20px 0;
	align-items: center;
}

.p-lp-footer-sns i {
	font-size: 24px;
	color: #333;
	transition: color 0.3s;
}

.p-lp-footer-sns a:hover i {
	color: #ED7A90;
}

.icon-note {
	width: 22px;
	height: auto;
	vertical-align: middle;
	background: #fff;
	border-radius: 50%;
}

/* 住所と電話番号のスタイル */
.p-lp-footer-info {
	font-size: 14px;
	line-height: 1.8;
	color: #666;
	text-align: left;
}

/* 右側ボタンエリアの横並び */
.p-lp-footer-buttons {
	display: flex;
	gap: 15px;
}

/* ボタンサイズの微調整（Career Siteのパーツを上書き） */
.p-lp-footer .c-button-entry-large {
	padding: 12px 25px;
	font-size: 14px;
	min-width: 160px;
}



/* --- CONTACT PAGE: Sub Hero --- */

.p-lp-sub-hero {
	background: #333;
	/* イントロ動画と同じ背景色 */
	padding: 120px 0 60px;
	text-align: center;
}

.p-lp-sub-hero__title {
	color: #fff;
	font-size: 40px;
	font-weight: 800;
	letter-spacing: 0.1em;
}

.p-lp-sub-hero__ruby {
	display: block;
	font-size: 16px;
	color: #ED7A90;
	margin-top: 10px;
	font-weight: 500;
}

.p-lp-contact-container {
	max-width: 800px;
	margin: 0 auto;
	padding: 40px 0;
}

.p-lp-contact__radio-group {
	display: flex;
	flex-direction: column;
}



/*single.php
---------------------------------------------------------------------------*/
/* --- 下層共通ヘッダー --- */
.p-page-header {
	background-color: #737373;
	padding: 120px 0 60px;
	text-align: center;
	margin-bottom: 60px;
}

.p-page-header__title {
	font-size: 32px;
	letter-spacing: 0.1em;
	color: #333;
	font-weight: 800;
}

.p-page-header__sub {
	font-size: 14px;
	color: #ED7A90;
	font-weight: 700;
	margin-top: 5px;
}

/* --- 投稿詳細エリア --- */
.p-entry {
	padding-bottom: 100px;
	margin: auto 20px;
}

.p-entry__inner {
	background: #fff;
	max-width: 800px;
	margin: 0 auto;
	padding: 40px 20px;
	border-radius: 15px;
}

.p-entry__meta {
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 15px;
}

.p-entry__date {
	color: #888;
}

.p-entry__category {
	font-size: 11px;
	font-weight: bold;
	color: #ED7A90;
	border: 1px solid #ED7A90;
	padding: 2px 12px;
	border-radius: 20px;
}

.p-entry__title {
	font-size: 28px;
	line-height: 1.4;
	font-weight: 700;
	margin-bottom: 40px;
	border-bottom: 2px solid #eee;
	padding-bottom: 20px;
}

.p-entry__thumbnail {
	margin-bottom: 40px;
}

.p-entry__thumbnail img {
	width: 100%;
	height: auto;
	border-radius: 10px;
}

/* 本文内の基本スタイル（Gutenberg対応） */
.p-entry__body {
	line-height: 2;
	color: #333;
}

.p-entry__body h2 {
	font-size: 22px;
	border-left: 4px solid #ED7A90;
	padding: 5px 15px;
	margin: 40px 0 20px;
}

.p-entry__body p {
	margin-bottom: 1.5em;
}

/* 前後の記事ナビ */
.p-entry__pagination {
	margin-top: 60px;
	padding-top: 40px;
	border-top: 1px solid #eee;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.p-entry__pagination a {
	color: #ED7A90;
	text-decoration: none;
	font-weight: bold;
	font-size: 14px;
}

.p-entry__pagination-prev,
.p-entry__pagination-next {
	min-width: 70px;
}

.p-entry__pagination-home a {
	color: #fff;
	padding: 10px 20px;
	border-radius: 5px;
}

/* 共通ボタン：一覧を見る */
.p-entry__button-more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 200px;
	padding: 8px 2px;
	background-color: #ED7A90;
	color: #fff;
	text-decoration: none;
	font-size: 16px;
	font-weight: 700;
	border-radius: 50px;
	box-shadow: 0 4px 15px rgba(237, 122, 144, 0.3);
	transition: all 0.3s ease;
	position: relative;
}

/* ホバー時の挙動 */
.p-entry__button-more:hover {
	background-color: #d66479;
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(237, 122, 144, 0.4);
	color: #fff;
}

/* ボタン内のアイコンや矢印（もし付ける場合） */
.p-entry__button-more::after {
	content: "\f061";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	margin-left: 15px;
	font-size: 14px;
	transition: transform 0.3s ease;
}

.p-entry__button-more:hover::after {
	transform: translateX(5px);
}



/*archive.php
----------------------------------------------------------------------*/
.p-archive {
	padding-bottom: 100px;
}

.p-archive__inner {
	max-width: 900px;
	margin: 0 auto;
	background: #fff;
	border-radius: 15px;
	padding: 20px;
}

/* ページネーションのスタイル */
.p-pagination {
	margin-top: 60px;
	display: flex;
	justify-content: center;
}

.p-pagination .nav-links {
	display: flex;
	gap: 10px;
}

.p-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid #eee;
	background: #fff;
	color: #333;
	text-decoration: none;
	font-weight: bold;
	border-radius: 5px;
	transition: all 0.3s;
}

.p-pagination .page-numbers:hover,
.p-pagination .page-numbers.current {
	background-color: #ED7A90;
	border-color: #ED7A90;
	color: #fff;
}

.p-archive__inner .u-text-center {
	margin: 20px 0;
}

/* 共通ボタン：一覧を見る */
.p-lp-news__button-more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 200px;
	padding: 8px 2px;
	background-color: #ED7A90;
	color: #fff;
	text-decoration: none;
	font-size: 16px;
	font-weight: 700;
	border-radius: 50px;
	box-shadow: 0 4px 15px rgba(237, 122, 144, 0.3);
	transition: all 0.3s ease;
	position: relative;
}

/* ホバー時の挙動 */
.p-lp-news__button-more:hover {
	background-color: #d66479;
	transform: translateY(-3px);
	box-shadow: 0 8px 20px rgba(237, 122, 144, 0.4);
	color: #fff;
	padding: 5px 10px;
}

/* ボタン内のアイコンや矢印（もし付ける場合） */
.p-lp-news__button-more::after {
	content: "\f061";
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	margin-left: 15px;
	font-size: 14px;
	transition: transform 0.3s ease;
}

.p-lp-news__button-more:hover::after {
	transform: translateX(5px);
}



/*privacy.php
-----------------------------------------------------------------------*/

.p-page-content {
	padding-bottom: 100px;
}

.p-page-content__inner {
	max-width: 900px;
	margin: 0 auto;
	background: #fff;
	border-radius: 15px;
	padding: 20px;
}

.p-privacy {
	line-height: 1.8;
	color: #333;
}

.p-privacy__intro {
	margin-bottom: 40px;
}

.p-privacy__section {
	margin-bottom: 50px;
}

.p-privacy__title {
	font-size: 18px;
	font-weight: 700;
	color: #333;
	border-bottom: 1px solid #eee;
	padding-bottom: 10px;
	margin-bottom: 20px;
}

.p-privacy__list_num {
	list-style: none;
	counter-reset: my-ct;
	padding-left: 0;
}

.p-privacy__list_num_li {
	counter-increment: my-ct;
	display: flex;
	align-items: flex-start;
	margin-bottom: 1.5em;
}

.p-privacy__list_num_li::before {
	content: "(" counter(my-ct) ")";
	margin-right: 8px;
	/* white-space: nowrap; */
	flex-shrink: 0;
}

.p-privacy__content_wrapper {
	display: flex;
	flex-direction: column;
}

.p-privacy__list {
	margin-top: 15px;
	padding-left: 1.5em;
}

.p-privacy__list li {
	list-style-type: disc;
	margin-bottom: 10px;
}

.p-privacy__address {
	background: #f9f9f9;
	padding: 20px;
	border-radius: 10px;
	margin-top: 15px;
}

.p-privacy__date {
	margin-top: 60px;
	font-weight: bold;
}



/*スマホ表示の調整
---------------------------------------------------------------------------*/
@media (max-width:1280px) {
	.p-lp-org__leaf::before {
		bottom: 105%;
	}
}

@media (min-width: 1024px) {
	.is-sp-only {
		display: none;
	}

	.u-only-sp {
		display: none;
	}

	.blank-only-pc {
		display: inline-block;
		width: 1em;
	}

}

@media (max-width: 1023px) {

	/*front-page.php
    -----------------------------------------------------------------------*/

	/* --- LPセクション共通設定 --- */
	.p-lp-section {
		padding: 40px 20px;
	}

	/* 追従（Sticky）レイアウト */
	.p-lp-section__body {
		flex-direction: column;
		gap: 0;
		margin-bottom: 60px;
	}

	.p-lp-section__side {
		position: static;
		width: 100%;
	}

	/* --- LPセクション共通設定 --- */

	/* 左上の三角形（アクセント） */
	.p-lp-section__decoration-top {
		top: 10px;
		left: 10px;
	}

	/* --- 医療と暮らしのバランス --- */

	/* 職種ボックスのレイアウト */
	.p-lp-balance__items {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr 1fr;
		gap: clamp(0.313rem, 0.157rem + 0.73vw, 0.625rem);
	}

	.p-lp-balance__item {
		max-width: none;
	}

	.p-lp-org {
		margin-top: 0;
	}

	.p-lp-org.is-active .p-lp-org__line-horizontal {
		width: 77%;
	}

	.p-career-service-container {
		display: flex;
		/* gridからflexに変更 */
		flex-wrap: nowrap;
		/* 折り返さない */
		overflow-x: auto;
		/* 横スクロールを許可 */
		scroll-snap-type: x mandatory;
		/* スワイプ時に中央で止まるようにする */
		-webkit-overflow-scrolling: touch;
		/* iOSでのスクロールを滑らかに */
		gap: 20px;
		padding: 0 20px 20px;
		/* 下側にスクロールバー用の余白 */
		margin: 0 -20px;
		/* 親のpaddingを打ち消して画面端まで広げる */
	}

	/* 各カードの幅を固定（画面幅の85%程度にすると次があるのが見えて親切です） */
	.p-career-service-card {
		flex: 0 0 85%;
		/* 3枚並んでも縮まないように固定 */
		max-width: 320px;
		/* あまり広がりすぎないように制限 */
		height: auto;
		text-align: left;
	}

	/* スクロールバーを非表示にする（デザイン性を優先する場合） */
	.p-career-service-container::-webkit-scrollbar {
		display: none;
	}

	.p-career-service-container {
		-ms-overflow-style: none;
		scrollbar-width: none;
		/* スクロールバー自体は隠す */
	}

	/* アイコンのグリッドは2列くらいがちょうど良いです */
	.p-career-service-card__grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}

	/* インジケーター全体のスタイル */
	.p-lp-service-dots {
		display: flex;
		justify-content: center;
		gap: 10px;
		margin-top: -10px;
		/* 位置の微調整 */
		padding-bottom: 40px;
	}

	/* 個別のドット */
	.p-lp-service-dot {
		width: 8px;
		height: 8px;
		background: #ddd;
		border-radius: 50%;
		transition: background 0.3s, width 0.3s;
	}

	/* 現在地を示すドット */
	.p-lp-service-dot.is-active {
		background: #ED7A90;
		width: 20px;
		/* 現在地だけ少し横長にする */
		border-radius: 4px;
	}

	.p-lp-balance__footer-logo img {
		height: 50px;
	}

	/* --- PEOPLE: Data Analytics--- */

	.p-career-data-grid {
		grid-template-columns: 1fr;
	}

	.p-career-data-item__chart {
		width: 160px;
		height: 160px;
	}

	.p-career-data-item__chart--gender.is-active .p-career-gender-group {
		transform: scale(1.1);
	}

	.p-career-legend-list {
		grid-template-columns: 1fr;
	}

	.p-career-employee-row {
		flex-direction: column;
		align-items: center;
		gap: 8px;
		margin-bottom: 25px;
	}

	.p-career-employee-icons {
		justify-content: center;
		flex-wrap: wrap;
	}

	.p-career-employee-label,
	.p-career-employee-num {
		width: auto;
	}

	.p-career-employee-list {
		padding: 0 32px;
	}

	.p-career-service-card__description {
		min-height: 11em !important;
	}

	/* --- PEOPLE: Photo & CTA--- */

	.p-lp-people-cta {
		margin-top: 32px;
	}

	.p-lp-people-cta__text {
		font-size: 14px;
		text-align: left;
		/* スマホは左寄せが見やすい */
	}

	.p-lp-people-cta .c-button-entry-large {
		width: 100%;
		/* スマホでは押しやすく全幅に */
		justify-content: center;
		font-size: 16px;
	}

	/* --- PEOPLE: Photo Slideshow CTA --- */

	.p-lp-people-cta__container {
		min-height: 500px;
		/* スマホでは文字が重なるため少し高めに */
	}

	.p-lp-people-cta__text {
		font-size: 15px;
		line-height: 1.8;
	}

	.p-lp-people-cta__photo-viewport {
		padding-top: 65%;
		/* スマホでは少し縦長に */
	}

	.p-lp-people-cta__text {
		font-size: 15px;
		line-height: 1.8;
		text-align: left;
		/* スマホでは読みやすさ重視で左寄せ */
	}

	.p-lp-people-cta .c-button-entry-large {
		width: 100%;
		justify-content: center;
		font-size: 16px;
		padding: 18px 0;
	}

	.p-lp-people-cta .u-text-center {
		flex-direction: column;
	}

	/* --- ACCESS SECTION --- */

	.p-lp-access__map {
		margin-bottom: 64px;
	}

	.p-lp-access__map iframe {
		height: 300px;
	}

	.p-lp-access__info {
		padding: 30px 20px;
	}

	.p-lp-access__list {
		grid-template-columns: 1fr;
	}

	/* --- CONMPANY SECTION --- */
	.p-lp-company {
		padding: 20px;
	}

	.p-lp-company__wrapper {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.p-lp-company__list {
		grid-template-columns: 120px 1fr 1fr;
	}

	.p-lp-company__list dt {
		padding-bottom: 5px;
		border-bottom: none;
	}

	.p-lp-company__list dd {
		white-space: nowrap;
	}

	/* --- NEW SECTION --- */

	.p-lp-news__link {
		flex-wrap: wrap;
		padding: 20px 5px;
	}

	.p-lp-news__date {
		margin-bottom: 8px;
	}

	.p-lp-news__category {
		margin-bottom: 8px;
	}

	.p-lp-news__title {
		width: 100%;
		font-size: 14px;
		white-space: normal;
	}

	.p-lp-news__icon {
		display: none;
	}


	/*footer.php
    -----------------------------------------------------------------------*/
	.l-footer-career__inner {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.p-lp-footer-info {
		text-align: center;
	}

	.l-footer-career__logo-area {
		justify-content: center;
	}

	.p-lp-footer-sns {
		justify-content: center;
	}

	.p-lp-footer-buttons {
		flex-direction: column;
		width: 100%;
		align-items: anchor-center;
	}

	.l-footer-career__right {
		align-items: center;
		width: 100%;
	}


	/*single.php
    -----------------------------------------------------------------------*/
	.p-page-header {
		margin-bottom: 0;
	}

	.p-entry__button-more {
		padding: 0;
		min-width: 100px;
	}

	.p-entry__button-more::after {
		margin-left: -10px;
		margin-right: 10px;
	}


	/*archive.php
    -----------------------------------------------------------------------*/
	.p-archive__inner {
		margin: 0 10px;
	}

	.p-lp-news__button-more {
		padding: 5px 10px;
		min-width: 100px;
	}

	.p-lp-news__button-more::after {
		margin-left: 0;
		margin-right: 10px;
	}



	/*privacy.php
    -----------------------------------------------------------------------*/
	.p-page-content__inner {
		margin: 0 10px;
	}


}

/* @media screen and (min-width: 768px) and (max-width: 1279px) { */
@media screen and (min-width: 768px) {
	.p-career-service-card {
		display: flex;
		flex-direction: column;
		height: 100%;
	}

	.p-career-service-card__title {
		min-height: 4.5em !important;
		justify-content: flex-start;
		font-size: 20px;
	}

	/* .p-career-service-card__description {
		min-height: 26em !important;
	} */

	.p-career-service-extra {
		margin-top: 0;
	}

	.p-career-service-extra__label {
		text-align: center;
		top: -15px;
	}

	.p-career-service-extra .p-career-service-item {
		margin-top: 1rem;
	}

	.p-career-service-item {
		min-height: 14rem;
	}
}

@media (max-width: 480px) {
	.p-lp-org__leaf::before {
		bottom: 103%;
	}
}