@charset "utf-8";

/* ============================================================
   創造演習ページ専用スタイル
   既存サイトの style_common.css / style.css を前提に追加定義
   ============================================================ */


/* ------------------------------------------------------------
   共通：セクションタイトル
   ------------------------------------------------------------ */
.sz-section-ttl {
	text-align: center;
	margin: 0 0 40px 0;
}
.sz-section-ttl .jp {
	font-size: 3.0rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	display: block;
}
.sz-section-ttl .en {
	font-size: 2.0rem;
	font-weight: 700;
	color: #5acb99;
	margin: 0.2em 0 0 0;
	display: block;
}


/* ------------------------------------------------------------
   1. ファーストビュー
   ------------------------------------------------------------ */
.sz-hero {
	background-color: #eff8ff;
	padding: 60px 0 80px 0;
}
.sz-hero-inner {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 15px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	gap: 40px;
}
.sz-hero-text {
	flex: 1;
	text-align: left;
}
.sz-hero-catch {
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.5;
	color: #111f29;
	letter-spacing: 0.05em;
}
.sz-hero-lead {
	font-size: 1.6rem;
	line-height: 2.0;
	color: #454545;
	margin: 20px 0 0 0;
}
.sz-hero-cta {
	margin: 30px 0 0 0;
}
.sz-hero-cta .btn-01 {
	width: 320px;
	height: 54px;
	font-size: 1.8rem;
}
.sz-hero-img {
	width: 44%;
	flex-shrink: 0;
}
.sz-hero-img img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	display: block;
	background-color: #cedfec;
	min-height: 260px;
	object-fit: cover;
}

@media screen and (max-width: 767px) {
	.sz-hero {
		padding: 30px 0 40px 0;
	}
	.sz-hero-inner {
		display: block;
	}
	.sz-hero-catch {
		font-size: 2.4rem;
	}
	.sz-hero-lead {
		font-size: 1.4rem;
		line-height: 1.8;
		margin: 15px 0 0 0;
	}
	.sz-hero-cta {
		margin: 20px 0 0 0;
	}
	.sz-hero-cta .btn-01 {
		width: 100%;
		height: 48px;
		font-size: 1.5rem;
	}
	.sz-hero-img {
		width: 100%;
		margin: 25px 0 0 0;
	}
	.sz-hero-img img {
		min-height: 180px;
	}
}


/* ------------------------------------------------------------
   2. 創造演習とは
   ------------------------------------------------------------ */
.sz-about {
	padding: 80px 0;
}
.sz-about-body {
	display: flex;
	gap: 40px;
	align-items: flex-start;
}
.sz-about-main {
	flex: 1;
	text-align: left;
}
.sz-about-main p {
	font-size: 1.6rem;
	line-height: 2.0;
	margin: 0 0 1.4em 0;
}
.sz-about-main p:last-child {
	margin-bottom: 0;
}
.sz-about-photo {
	width: 38%;
	flex-shrink: 0;
}
.sz-about-photo img {
	width: 100%;
	height: auto;
	border-radius: 8px;
	display: block;
	background-color: #cedfec;
	min-height: 220px;
	object-fit: cover;
}

@media screen and (max-width: 767px) {
	.sz-about {
		padding: 40px 0;
	}
	.sz-about-body {
		display: block;
	}
	.sz-about-main p {
		font-size: 1.4rem;
		line-height: 1.8;
	}
	.sz-about-photo {
		width: 100%;
		margin: 25px 0 0 0;
	}
	.sz-about-photo img {
		min-height: 160px;
	}
	.sz-section-ttl {
		margin: 0 0 25px 0;
	}
	.sz-section-ttl .jp {
		font-size: 2.2rem;
	}
	.sz-section-ttl .en {
		font-size: 1.5rem;
	}
}


/* ------------------------------------------------------------
   3. 取り組みの流れ
   ------------------------------------------------------------ */
.sz-process {
	padding: 80px 0;
	background-color: #eff8ff;
}
.sz-process-lead {
	font-size: 1.6rem;
	line-height: 1.8;
	text-align: center;
	color: #454545;
	margin: -20px 0 50px 0;
}
.sz-process-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.sz-step {
	background-color: #fff;
	border-radius: 10px;
	padding: 30px 24px;
	text-align: left;
	position: relative;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.sz-step-num {
	width: 40px;
	height: 40px;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 40px;
	text-align: center;
	color: #fff;
	background-color: #5acb99;
	border-radius: 50%;
	display: block;
	margin: 0 0 14px 0;
}
.sz-step-ttl {
	font-size: 1.8rem;
	font-weight: 700;
	color: #111f29;
	margin: 0 0 10px 0;
}
.sz-step-desc {
	font-size: 1.4rem;
	line-height: 1.8;
	color: #454545;
}

@media screen and (max-width: 1000px) {
	.sz-process-steps {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media screen and (max-width: 767px) {
	.sz-process {
		padding: 40px 0;
	}
	.sz-process-lead {
		font-size: 1.4rem;
		text-align: left;
		margin: -10px 0 25px 0;
	}
	.sz-process-steps {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.sz-step {
		padding: 20px 18px;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0 14px;
	}
	.sz-step-num {
		width: 34px;
		height: 34px;
		font-size: 1.5rem;
		line-height: 34px;
		margin: 0;
	}
	.sz-step-ttl {
		font-size: 1.6rem;
		margin: 0;
		flex: 1;
	}
	.sz-step-desc {
		width: 100%;
		font-size: 1.3rem;
		margin: 8px 0 0 0;
	}
}


/* ------------------------------------------------------------
   4. テーマの広がり
   ------------------------------------------------------------ */
.sz-themes {
	padding: 80px 0;
}
.sz-themes-lead {
	font-size: 1.6rem;
	line-height: 1.8;
	text-align: center;
	color: #454545;
	margin: -20px 0 40px 0;
}
.sz-themes-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}
.sz-theme-card {
	background-color: #fff;
	border: 1px solid #e0e8ef;
	border-radius: 10px;
	padding: 28px 24px;
	text-align: left;
}
.sz-theme-cat {
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	padding: 6px 16px;
	border-radius: 999px;
	display: inline-block;
	margin: 0 0 16px 0;
}
.sz-cat-green  { background-color: #7ac143; }
.sz-cat-blue   { background-color: #00a78e; }
.sz-cat-orange { background-color: #f47721; }
.sz-cat-red    { background-color: #d20962; }

.sz-theme-card ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.sz-theme-card li {
	font-size: 1.5rem;
	line-height: 1.6;
	color: #454545;
	padding: 6px 0 6px 18px;
	border-bottom: dashed 1px #e0e8ef;
	position: relative;
}
.sz-theme-card li:last-child {
	border-bottom: none;
}
.sz-theme-card li::before {
	content: '';
	width: 8px;
	height: 8px;
	background-color: #5acb99;
	border-radius: 50%;
	display: block;
	position: absolute;
	top: 0.85em;
	left: 0;
}
.sz-themes-note {
	font-size: 1.5rem;
	text-align: center;
	color: #888;
	margin: 30px 0 0 0;
}

@media screen and (max-width: 767px) {
	.sz-themes {
		padding: 40px 0;
	}
	.sz-themes-lead {
		font-size: 1.4rem;
		text-align: left;
		margin: -10px 0 25px 0;
	}
	.sz-themes-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.sz-theme-card {
		padding: 20px 18px;
	}
	.sz-theme-card li {
		font-size: 1.3rem;
	}
	.sz-themes-note {
		font-size: 1.3rem;
		text-align: left;
	}
}


/* ------------------------------------------------------------
   5. 成果事例セクション
   ------------------------------------------------------------ */
.sz-cases {
	padding: 80px 0;
	background-color: #eff8ff;
}
.sz-cases-lead {
	font-size: 1.6rem;
	line-height: 1.8;
	text-align: center;
	color: #454545;
	margin: -20px 0 40px 0;
}
.sz-cases-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}
.sz-case-card {
	background-color: #fff;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
	text-align: left;
}
.sz-case-img a {
	display: block;
	overflow: hidden;
	cursor: zoom-in;
}
.sz-case-img img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
	background-color: #cedfec;
	transition: transform 0.3s ease;
}
.sz-case-img a:hover img {
	transform: scale(1.03);
}
.sz-case-ttl {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.5;
	color: #111f29;
	padding: 14px 16px 0 16px;
}
.sz-case-desc {
	font-size: 1.3rem;
	line-height: 1.7;
	color: #666;
	padding: 8px 16px 16px 16px;
}

@media screen and (max-width: 1000px) {
	.sz-cases-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media screen and (max-width: 767px) {
	.sz-cases {
		padding: 40px 0;
	}
	.sz-cases-lead {
		font-size: 1.4rem;
		text-align: left;
		margin: -10px 0 25px 0;
	}
	.sz-cases-grid {
		grid-template-columns: 1fr 1fr;
		gap: 14px;
	}
	.sz-case-ttl {
		font-size: 1.3rem;
		padding: 10px 12px 0 12px;
	}
	.sz-case-desc {
		font-size: 1.2rem;
		padding: 6px 12px 12px 12px;
	}
}


/* ------------------------------------------------------------
   6. パートナーになるメリット
   ------------------------------------------------------------ */
.sz-merits {
	padding: 80px 0;
}
.sz-merits-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 20px;
}
.sz-merit-card {
	background-color: #fff;
	border: 1px solid #e0e8ef;
	border-radius: 10px;
	padding: 28px 18px;
	text-align: center;
}
.sz-merit-icon {
	margin: 0 0 14px 0;
}
.sz-merit-icon span {
	width: 48px;
	height: 48px;
	font-size: 2.0rem;
	font-weight: 700;
	line-height: 48px;
	text-align: center;
	color: #fff;
	background-color: #5acb99;
	border-radius: 50%;
	display: inline-block;
}
.sz-merit-card h3 {
	font-size: 1.6rem;
	font-weight: 700;
	color: #111f29;
	margin: 0 0 10px 0;
}
.sz-merit-card p {
	font-size: 1.4rem;
	line-height: 1.7;
	color: #666;
	text-align: left;
}

@media screen and (max-width: 1000px) {
	.sz-merits-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}
@media screen and (max-width: 767px) {
	.sz-merits {
		padding: 40px 0;
	}
	.sz-merits-grid {
		grid-template-columns: 1fr 1fr;
		gap: 14px;
	}
	.sz-merit-card {
		padding: 20px 14px;
	}
	.sz-merit-icon span {
		width: 40px;
		height: 40px;
		font-size: 1.6rem;
		line-height: 40px;
	}
	.sz-merit-card h3 {
		font-size: 1.4rem;
	}
	.sz-merit-card p {
		font-size: 1.2rem;
	}
}


/* ------------------------------------------------------------
   7. ご協力いただきたいこと
   ------------------------------------------------------------ */
.sz-cooperation {
	padding: 80px 0;
	background-color: #eff8ff;
}
.sz-cooperation-body > p {
	font-size: 1.6rem;
	line-height: 2.0;
	text-align: center;
	color: #454545;
	margin: 0 0 30px 0;
}
.sz-cooperation-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
.sz-cooperation-item {
	background-color: #fff;
	border-radius: 10px;
	padding: 24px;
	text-align: left;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.sz-cooperation-item h3 {
	font-size: 1.7rem;
	font-weight: 700;
	color: #111f29;
	padding: 0 0 0 16px;
	border-left: 4px solid #5acb99;
	margin: 0 0 10px 0;
}
.sz-cooperation-item p {
	font-size: 1.4rem;
	line-height: 1.8;
	color: #666;
}
.sz-cooperation-note {
	margin: 40px 0 0 0;
	padding: 28px 30px;
	background-color: #fff;
	border-left: 5px solid #5acb99;
	border-radius: 0 10px 10px 0;
	text-align: left;
}
.sz-cooperation-note p {
	font-size: 1.5rem;
	line-height: 2.0;
	color: #454545;
}

@media screen and (max-width: 767px) {
	.sz-cooperation {
		padding: 40px 0;
	}
	.sz-cooperation-body > p {
		font-size: 1.4rem;
		text-align: left;
		line-height: 1.8;
	}
	.sz-cooperation-list {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.sz-cooperation-item {
		padding: 18px;
	}
	.sz-cooperation-item h3 {
		font-size: 1.5rem;
	}
	.sz-cooperation-item p {
		font-size: 1.3rem;
	}
	.sz-cooperation-note {
		margin: 25px 0 0 0;
		padding: 20px;
	}
	.sz-cooperation-note p {
		font-size: 1.3rem;
		line-height: 1.8;
	}
}


/* ------------------------------------------------------------
   8. 新規パートナー募集CTA
   ------------------------------------------------------------ */
.sz-contact {
	padding: 80px 0 100px 0;
	background-color: #111f29;
	color: #fff;
}
.sz-contact-ttl {
	font-size: 3.0rem;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	margin: 0 0 20px 0;
}
.sz-contact-lead {
	font-size: 1.6rem;
	line-height: 2.0;
	text-align: center;
	color: rgba(255, 255, 255, 0.8);
	margin: 0 0 40px 0;
}
.sz-contact-actions {
	display: flex;
	gap: 30px;
	justify-content: center;
	max-width: 800px;
	margin: 0 auto;
}
.sz-contact-action {
	flex: 1;
	background-color: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 10px;
	padding: 30px;
	text-align: center;
}
.sz-contact-action h3 {
	font-size: 1.8rem;
	font-weight: 700;
	margin: 0 0 12px 0;
}
.sz-contact-action p {
	font-size: 1.4rem;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.75);
	margin: 0 0 20px 0;
}
.sz-contact-btn {
	display: inline-block;
	width: 100%;
	max-width: 280px;
	height: 50px;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 50px;
	text-align: center;
	text-decoration: none;
	color: #111f29;
	background-color: #5acb99;
	border-radius: 999px;
	transition: opacity 0.3s ease;
}
.sz-contact-btn:hover {
	color: #111f29;
	opacity: 0.8;
}
.sz-contact-tel {
	font-size: 2.0rem;
	font-weight: 700;
	color: #fff;
}
.sz-contact-tel a {
	font-size: 2.6rem;
	text-decoration: none;
	color: #5acb99;
	margin: 0 0 0 0.2em;
}
.sz-contact-tel a:hover {
	text-decoration: underline;
	color: #5acb99;
}
.sz-contact-note {
	font-size: 1.3rem;
	line-height: 1.8;
	text-align: center;
	color: rgba(255, 255, 255, 0.5);
	margin: 40px 0 0 0;
}

@media screen and (max-width: 767px) {
	.sz-contact {
		padding: 40px 0 50px 0;
	}
	.sz-contact-ttl {
		font-size: 2.2rem;
	}
	.sz-contact-lead {
		font-size: 1.4rem;
		line-height: 1.8;
		margin: 0 0 25px 0;
	}
	.sz-contact-actions {
		display: block;
	}
	.sz-contact-action {
		padding: 24px 20px;
	}
	.sz-contact-action + .sz-contact-action {
		margin: 16px 0 0 0;
	}
	.sz-contact-action h3 {
		font-size: 1.6rem;
	}
	.sz-contact-action p {
		font-size: 1.3rem;
	}
	.sz-contact-btn {
		font-size: 1.5rem;
		height: 46px;
		line-height: 46px;
	}
	.sz-contact-tel {
		font-size: 1.6rem;
	}
	.sz-contact-tel a {
		font-size: 2.2rem;
	}
	.sz-contact-note {
		font-size: 1.2rem;
		margin: 25px 0 0 0;
	}
}


/* ------------------------------------------------------------
   ライトボックス
   ------------------------------------------------------------ */
.sz-lightbox {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 9999;
	justify-content: center;
	align-items: center;
}
.sz-lightbox.is-open {
	display: flex;
}
.sz-lightbox-overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.8);
	cursor: pointer;
}
.sz-lightbox-content {
	position: relative;
	max-width: 90vw;
	max-height: 90vh;
	z-index: 1;
}
.sz-lightbox-content img {
	max-width: 90vw;
	max-height: 85vh;
	display: block;
	border-radius: 4px;
	background-color: #fff;
}
.sz-lightbox-close {
	position: absolute;
	top: -40px;
	right: 0;
	width: 36px;
	height: 36px;
	font-size: 2.8rem;
	line-height: 36px;
	text-align: center;
	color: #fff;
	background: none;
	border: none;
	cursor: pointer;
	transition: opacity 0.3s ease;
}
.sz-lightbox-close:hover {
	opacity: 0.7;
}
