@charset "UTF-8";
/* ========================================================================== 
 * Responsive 
 * ========================================================================== */ 

/*PCのみ表示(640px以下非表示)*/
@media screen and (max-width: 640px) {
	.visible-pc {
		display: none !important;
	}
	.navi--visible-pc {
		display: none !important;
	}
}
/*SPのみ表示(641px以上非表示)*/
@media screen and (min-width: 641px) {
	.visible-sp {
		display: none !important;
	}
	.navi--visible-sp {
		display: none !important;
	}
}

/* ==========================================================================
 * Font face
 * ========================================================================== */
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Medium");
	font-weight: 100;
}
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Medium");
	font-weight: 200;
}
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Medium");
	font-weight: 300;
}
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Medium");
	font-weight: 400;
}
@font-face {
	font-family: "Yu Gothic";
	src: local("Yu Gothic Bold");
	font-weight: bold;
}

@font-face {
	font-family: "bahnschrift", sans-serif;
	font-weight: 400;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift", sans-serif;
	font-weight: 700;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift-condensed", sans-serif;
	font-weight: 400;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift-condensed", sans-serif;
	font-weight: 700;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift-semicondensed", sans-serif;
	font-weight: 400;
	font-style: normal;
}
@font-face {
	font-family: "bahnschrift-semicondensed", sans-serif;
	font-weight: 700;
	font-style: normal;
}
.bahnschrift {
	font-family: "bahnschrift-semicondensed", sans-serif;
	font-weight: 400;
	font-style: normal;
}
.bahnschrift-b {
	font-family: "bahnschrift-semicondensed", sans-serif;
	font-weight: 700;
	font-style: normal;
}

/* ==========================================================================
 * Root
 * ========================================================================== */
*,
::before,
::after {
	background-repeat: no-repeat;
	box-sizing: border-box;
}
html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-size: 62.5%;
}
body {
	margin: 0;
	font-family: "Noto Sans JP", sans-serif,"Yu Gothic", "Hiragino Kaku Gothic Pro", Meiryo, Osaka;
	font-size: 1.6em;
	font-size: 1.6rem;
	line-height: 1.5;
	background-color: #fff;
}

/* ==========================================================================
 * HTML5 display definitions
 * ========================================================================== */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
	display: block;
}
audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline;
}
audio:not([controls]) {
	display: none;
	height: 0;
}

/* ==========================================================================
 * Anchor
 * ========================================================================== */
a:link,
a:visited {
	background-color: transparent;
	color: #4f7aac;
	text-decoration: none;
}
a:active,
a:hover {
	outline: 0;
	text-decoration: underline;
}

/* ==========================================================================
 * Embedded
 * ========================================================================== */
img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: bottom;
}
svg:not(:root) {
	overflow: hidden;
}

/* ==========================================================================
 * Grouping
 * ========================================================================== */
figure {
	margin: 0;
}
hr {
	box-sizing: content-box;
	height: 0;
	border: none;
	border-top: 1px solid #bbb;
}
dd {
	margin-left: 0;
}

/* ==========================================================================
 * Float
 * ========================================================================== */
.clear {
	clear: both;
}
.clearfix:before,
.clearfix:after {
	content: " ";
	display: table;
}
.clearfix:after {
	clear: both;
}

/* ==========================================================================
 * List
 * ========================================================================== */
ul,
ol {
	padding: 0;
}
ul {
	margin: 0;
	list-style: none;
}
ul.list-disc {
	margin-left: 1.55em;
	list-style: disc;
}
ul.list-annotation {
	margin-left: 1.3em;
}
ul.list-annotation li::before {
	margin-left: -1.3em;
	content: "※\0020";
}
ol {
	margin-left: 1.3em;
}
ol.list-annotation {
	margin-left: 2em;
	padding: 0;
	counter-reset: number;
	list-style: none;
}
ol.list-annotation li::before {
	margin-left: -2em;
	counter-increment: number;
	content: "※"counter(number)"\0020";
}
ul.list-disc li,
ul.list-annotation li,
ol li {
	margin-bottom: 8px;
}

/* ==========================================================================
 * Text
 * ========================================================================== */
b,
strong {
	font-weight: bold;
}
mark {
	background: #ff0;
	color: #000;
}
small,
.txt-small{
	font-size: 80%;
}
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}
address {
	font-style: normal;
}
h1,
.h1 {
	font-size: 10rem;
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
}
h2,
.h2 {
	font-size: 6rem;
	line-height: 1.2;
	margin: 0;
	color: #0d264a;
}
h3,
.h3 {
	font-size: 4.8rem;
	line-height: 1.2;
	margin: 0;
}
h4,
.h4 {
	font-size: 3.2rem;
	line-height: 1.2;
	margin: 0;
}
p {
	margin: 0;
	color: #333;
}
p + p {

	margin-bottom: 0;
}
.txt-left {
	text-align: left;
}
.txt-center {
	text-align: center;
}
.txt-right {
	text-align: right;
}
.txt-unbold {
	font-weight: normal;
}
.txt-bold {
	font-weight: bold;
}
.txt-emphasis {
	color: #e74c3c;
}
.txt-notes {
	color: #7f8c8d;
}
.palt {
	font-feature-settings: "palt";
}
.txt25 {
	font-size: 2.5rem;
}
.txt36 {
	font-size: 3.6rem;
}
.txt40 {
	font-size: 4rem;
}
.txt60 {
	font-size: 60%;
}
.txt80 {
	font-size: 80%;
}
.txt125 {
	font-size: 125%;
}
.txt130 {
	font-size: 130%;
}
.txt150 {
	font-size: 150%;
}
.txt190 {
	font-size: 190%;
}
.txt-yellow {
	color: #ffe65e;
}
.txt-orange {
	color: #e1601c;
}

.marker-yellow {
	background-color: #ffe65e;
	padding: 1px;
	line-height: 1.8em;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
.marker-yellow-thin {
	background: linear-gradient(transparent 70%, #ffe65e 60%);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

@media screen and (max-width: 640px) {
	h1,
	.h1 {
		font-size: 14.7vw;
		font-weight: 500;
		line-height: 1.1em;
		margin: 0;
		letter-spacing: .08em;
	}
	h2,
	.h2 {
		font-size: 10vw;
		line-height: 1.2;
		margin: 0;
		color: #0d264a;
	}
	h3,
	.h3 {
		font-size: 7.5vw;
		line-height: 1.2;
		margin: 0;
	}
	h4,
	.h4 {
		font-size: 7.5vw;
		line-height: 1.2;
		margin: 0;
	}
	p {
		margin: 0;
		color: #333;
	}
	p + p {

		margin-bottom: 0;
	}
	.txt-left {
		text-align: left;
	}
	.txt-center {
		text-align: center;
	}
	.txt-right {
		text-align: right;
	}
	.txt-unbold {
		font-weight: normal;
	}
	.txt-bold {
		font-weight: bold;
	}
	.txt-emphasis {
		color: #e74c3c;
	}
	.txt-notes {
		color: #7f8c8d;
	}
	.palt {
		font-feature-settings: "palt";
	}
	.txt25 {
		font-size: 5vw;
	}
	.txt36 {
		font-size: 7.2vw;
	}
	.txt40 {
		font-size: 6.3vw;
	}
	.txt60 {
		font-size: 60%;
	}
	.txt80 {
		font-size: 80%;
	}
	.txt125 {
		font-size: 125%;
	}
	.txt130 {
		font-size: 130%;
	}
	.txt150 {
		font-size: 150%;
	}
	.txt190 {
		font-size: 190%;
	}
	.txt-yellow {
		color: #ffe65e;
	}
	.txt-orange {
		color: #e1601c;
	}

	.marker-yellow {
		background-color: #ffe65e;
	}
	.marker-yellow-thin {
		background: linear-gradient(transparent 70%, #ffe65e 60%);
	  box-decoration-break: clone;
	  -webkit-box-decoration-break: clone;
	}
}
/* ==========================================================================
 * Table
 * ========================================================================== */
table {
	border-collapse: collapse;
	border-spacing: 0;
}
td,
th {
	padding: 0;
}

/* ==========================================================================
 * Form
 * ========================================================================== */
button,
input,
optgroup,
select,
textarea {
	color: inherit;
	font: inherit;
	margin: 0;
}
button {
	overflow: visible;
}
button,
select {
	text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}
button[disabled],
html input[disabled] {
	cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}
input {
	line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	height: auto;
}
input[type="search"] {
	-webkit-appearance: textfield;
	box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}
textarea {
	overflow: auto;
}

/* ==========================================================================
 * Spacing
 * ========================================================================== */
.margin-none  {margin:           0 !important;}
.padding-none {padding:          0 !important;}

.margin-T0    {margin-top:       0 !important;}
.margin-T5    {margin-top:       5px !important;}
.margin-T10   {margin-top:      10px !important;}
.margin-T15   {margin-top:      15px !important;}
.margin-T20   {margin-top:      20px !important;}
.margin-T25   {margin-top:      25px !important;}
.margin-T30   {margin-top:      30px !important;}
.margin-T35   {margin-top:      35px !important;}
.margin-T40   {margin-top:      40px !important;}

.margin-T45   {margin-top:      45px !important;}
.margin-T50   {margin-top:      50px !important;}
.margin-T60   {margin-top:      60px !important;}
.margin-T70   {margin-top:      70px !important;}
.margin-T80   {margin-top:      80px !important;}
.margin-T90   {margin-top:      90px !important;}
.margin-T100  {margin-top:     100px !important;}

.margin-R0    {margin-right:     0 !important;}
.margin-R5    {margin-right:     5px !important;}
.margin-R10   {margin-right:    10px !important;}
.margin-R15   {margin-right:    15px !important;}
.margin-R20   {margin-right:    20px !important;}

.margin-B0    {margin-bottom:    0 !important;}
.margin-B5    {margin-bottom:    5px !important;}
.margin-B10   {margin-bottom:   10px !important;}
.margin-B15   {margin-bottom:   15px !important;}
.margin-B20   {margin-bottom:   20px !important;}

.margin-L0    {margin-left:      0 !important;}
.margin-L5    {margin-left:      5px !important;}
.margin-L10   {margin-left:     10px !important;}
.margin-L15   {margin-left:     15px !important;}
.margin-L20   {margin-left:     20px !important;}

.padding-T0   {padding-top:      0 !important;}
.padding-T5   {padding-top:      5px !important;}
.padding-T10  {padding-top:     10px !important;}
.padding-T15  {padding-top:     15px !important;}
.padding-T20  {padding-top:     20px !important;}
.padding-T25  {padding-top:     25px !important;}
.padding-T30  {padding-top:     30px !important;}
.padding-T35  {padding-top:     35px !important;}
.padding-T40  {padding-top:     40px !important;}
.padding-T45  {padding-top:     45px !important;}
.padding-T50  {padding-top:     50px !important;}
.padding-T60  {padding-top:     60px !important;}
.padding-T70  {padding-top:     70px !important;}
.padding-T80  {padding-top:     80px !important;}
.padding-T90  {padding-top:     90px !important;}
.padding-T100 {padding-top:    100px !important;}

.padding-R0   {padding-right:    0 !important;}
.padding-R5   {padding-right:    5px !important;}
.padding-R10  {padding-right:   10px !important;}
.padding-R15  {padding-right:   15px !important;}
.padding-R20  {padding-right:   20px !important;}

.padding-B0   {padding-bottom:   0 !important;}
.padding-B5   {padding-bottom:   5px !important;}
.padding-B10  {padding-bottom:  10px !important;}
.padding-B15  {padding-bottom:  15px !important;}
.padding-B20  {padding-bottom:  20px !important;}

.padding-L0   {padding-left:     0 !important;}
.padding-L5   {padding-left:     5px !important;}
.padding-L10  {padding-left:    10px !important;}
.padding-L15  {padding-left:    15px !important;}
.padding-L20  {padding-left:    20px !important;}

/* ==========================================================================
 * Common
 * ========================================================================== */
#page_container {
	max-width: 2000px;
	margin: 0 auto;
}
.inner-width {
	max-width: 920px;
	width: 90%;
	margin: 0 auto;
}
@media screen and (max-width: 640px) {
	.inner-width {
		width: 90%;
		margin: 0 auto;
	}
	.inner-width-sp {
		width: 90%;
		margin: 0 auto;
	}
	#page--container {
		max-width: 640px;
		overflow: hidden;
		min-width: unset;
	}
}
/*-------------------- Back to Top --------------------*/
a.backtotop {
	position: fixed;
	bottom: 30px;
	right: 5%;
	width: 40px;
	height: 40px;
	padding: 38px 0 0;
	background-color: #ccc;
	color: #fff;
	text-align: center;
	font-size: 14px;
	cursor: pointer;
	opacity: .5;
	border-radius: 50%;
	z-index: 9999;
}
a.backtotop::before {
	content: "";
	position: absolute;
	top: 10px;
	left: 10px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 10px 17.3px 10px;
	border-color: transparent transparent #ffffff transparent;
}
@media screen and (max-width: 640px) {
	a.backtotop {
		position: fixed;
		bottom: 35vw;
		right: 5%;
		width: 40px;
		height: 40px;
		padding: 38px 0 0;
		background-color: #ccc;
		color: #fff;
		text-align: center;
		font-size: 14px;
		cursor: pointer;
		opacity: .5;
		border-radius: 50%;
	}
	a.backtotop::before {
		content: "";
		position: absolute;
		top: 10px;
		left: 10px;
		width: 0;
		height: 0;
		border-style: solid;
		border-width: 0 10px 17.3px 10px;
		border-color: transparent transparent #ffffff transparent;
	}
}

/* ==========================================================================
 * Header
 * ========================================================================== */
.nav {
	justify-items: center;
	position: fixed;
	z-index: 9000;
	max-width: 2000px;
	width: 100%;
}
.hd__conteiner {
	background-color: #fff;
	box-shadow: 0 2px 2px rgba(0,0,0,0.1);
	padding: 5px 0;
	width: 100%;
}
.hd__flex {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.hd__gnav--left {
	width: 20%;
}
.hd__right--flex .hd__right-list + ul {
	width: 40%;
	text-align: center;
}

.hd__right--flex {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	width: 100%;
}
.hd__right--flex .hd__right-list {
	display: flex;
    justify-content: space-evenly;
    width: 100%;
	align-items: center;
	line-height: 1.4em;
}
.hd__right--flex .hd__right-list a {
	color: #333;
	font-size: 1.8rem;
	font-weight: 500;
	text-align: center;
}

.hd__right-list li.active a,
.hd__right-list li.hover-active a,
.hd__right-list li a:hover {
	background-color: #0d264a;
	color: #fff;
	text-decoration: none;
}

.hd__right-list li a {
	transition: all 0.3s ease;
	display: inline-block;
	padding: 8px 11px; /* 常にpaddingを適用 */
	border-radius: 20px;
}

/* ホバー時のスタイル */
.hd__right-list li a:hover {
	background-color: #0d264a;
	color: #fff;
	text-decoration: none;
}

.hd__cta:hover {
	transform: scale(1.02);
}
.hd__cta--button {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 5px 23px 5px 12px;
	background: linear-gradient(170deg, #f6aa60 0%, #e97132 65%, #e1601c 100%);
	border: none;
	border-radius: 50px;
	cursor: pointer;
	text-decoration: none !important;
	box-shadow: 
		0 3px 0 #934d09,
		0 0 0 rgba(0, 0, 0, 0),
		inset 0 2px 3px rgba(255, 255, 255, 0);
	transition: all 0.2s ease;
	position: relative;
}

.hd__cta--button:hover {
	transform: translateY(1px);
	box-shadow: 
	0 2px 0 #c45c00,
	0 4px 6px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}

.hd__cta--button:active {
	transform: translateY(4px);
	box-shadow: 
	0 0 0 #c45c00,
	0 2px 4px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}
.hd__cta--text {
	color: #fff;
	font-size: 1.7rem;
	font-weight: bold;
	align-items: end;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
	position: relative;
	line-height: 1.2em;
}

.hd__cta--text::before {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: -10%;
	right: -6%;
	width: 10px;
	height: 10px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(45deg);
}

@media screen and (max-width: 640px) {
	.nav {
        position: static;
    }
	.hd__conteiner {
		background-color: #fff;
        box-shadow: none;
		border-radius: 0;
		margin: 0;
        padding: 10px 5%;
		width: 100%;
	}
	.hd__gnav--left {
		width: 70%;
	}
	.hd__right--flex + div {
		text-align: right;
		padding: 0 6% 0 0;
		width: 30%;
	}
	.hd__flex {
		align-items: center;
		display: flex;
		width: 100%;
	}
	.gnavi__link {
		color: #085599;
		font-weight: 700;
		background-color: #fff;
		text-decoration: none;
	}
	
	/* hamburger menu */
	.menu__btn {
		align-items: center;
		height: 50px;
		justify-content: center;
		position: fixed;
		z-index: 10000;
		width: 30px;
	}
	.menu__btn:before {
		content: "";
        background-color: #e1601c;
        border-radius: 5px;
        width: 33px;
        height: 33px;
        display: block;
        position: absolute;
        top: -15px;
        right: 1px;
	}	
	.menu__btn span,
	.menu__btn span:before,
	.menu__btn span:after {
		content: '';
		background: #fff;
		border-radius: 3px;
		display: block;
		height: 3px;
		position: absolute;
		width: 25px;
	}
	.menu__btn span:before {
		bottom: 8px;
	}
	.menu__btn span:after {
		top: 8px;
	}
	#menu__btn--check:checked ~ .menu__btn span {
		background-color: rgba(255, 255, 255, 0);
	}
	#menu__btn--check:checked ~ .menu__btn span::before {
		bottom: 0;
		transform: rotate(45deg);
	}
	#menu__btn--check:checked ~ .menu__btn span::after {
		top: 0;
		transform: rotate(-45deg);
	}
	#menu__btn--check {
		display: none;
	}
	.gnavi__hamburger-menu {
		background: #fff;
		height: 100%;
		position: fixed;
		top: 0;
		left: 100%;
		z-index: 9999;
		transition: all 0.5s;
		width: 100%;
	}
	#menu__btn--check:checked ~ .gnavi__hamburger-menu {
		left: 0;
	}
	.gnavi__hamburger-menu ul {
		padding: 70px 10px 0;
	}
	.gnavi__hamburger-menu ul li {
		border-bottom: solid 1px #e1601c;
		list-style: none;
		padding: 0 0 0 3%;
		width: 100%;
	}
	.gnavi__hamburger-menu ul li a {
		box-sizing: border-box;
		color: #000;
		display: block;
		font-size: 15px;
		padding: 18px 0 15px 0;
		position: relative;
		text-decoration: none;
		text-align: left;
		width: 100%;
	}
	.gnavi__hamburger-menu ul li.main__cta a {
		margin: 0 auto;
		width: 90%;
	}
	
	.gnavi__hamburger-menu ul li a::before {
		border-top: solid 2px #e1601c;
		border-right: solid 2px #e1601c;
		content: "";
		height: 7px;
		transform: rotate(45deg);
		position: absolute;
		right: 11px;
		top: 26px;
		width: 7px;
	}
	.gnavi__hamburger-menu ul li:last-child {
		border-bottom: none;
		margin: 20px 0 0;
		padding: 0;
		text-align: center;
	}
	.gnavi__hamburger-menu ul li:last-child a::before {
		border-top: none;
		border-right: none;
		display: none;
	}
	.navi__link {
		background: none;
	}
	.navi__link a {
		color: #000 !important;
		text-align: center !important;
	}
	.navi__link a::before {
		border-top: solid 2px #000 !important;
		border-right: solid 2px #000 !important;
	}
	.hd__cta--button {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 5px 23px 5px 12px;
		background: linear-gradient(170deg, #f6aa60 0%, #e97132 65%, #e1601c 100%);
		border: none;
		border-radius: 50px;
		cursor: pointer;
		text-decoration: none !important;
		box-shadow: 
			0 3px 0 #934d09,
			0 0 0 rgba(0, 0, 0, 0),
			inset 0 2px 3px rgba(255, 255, 255, 0);
		transition: all 0.2s ease;
		position: relative;
	}

	.hd__cta--button:hover {
		transform: translateY(1px);
		box-shadow: 
		0 2px 0 #c45c00,
		0 4px 6px rgba(0, 0, 0, 0.3),
		inset 0 2px 3px rgba(255, 255, 255, 0.4);
	}

	.hd__cta--button:active {
		transform: translateY(4px);
		box-shadow: 
		0 0 0 #c45c00,
		0 2px 4px rgba(0, 0, 0, 0.3),
		inset 0 2px 3px rgba(255, 255, 255, 0.4);
	}
	.hd__cta--text {
		color: #fff;
		font-size: 1.7rem;
		font-weight: bold;
		align-items: end;
		text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
		position: relative;
		line-height: 1.2em;
	}

	.hd__cta--text::before {
		content: "";
		margin: auto;
		position: absolute;
		top: 0;
		bottom: -10%;
		right: 10%;
		width: 10px;
		height: 10px;
		border-top: 3px solid #fff;
		border-right: 3px solid #fff;
		transform: rotate(45deg);
	}
}


/* ==========================================================================
 * KV
 * ========================================================================== */
.keyVisual {
    background: url("../images/pc/fv_bg.jpg") no-repeat center center / cover;
    padding: 135px 0;
	height: 875px;
}
.kv__copy {
	letter-spacing: .7em;
	font-weight: 500;
}
.kv__copy--sub {
	display: inline-block;
    background-color: #fff;
    color: #0d264a;
	font-size: 5.2rem;
    font-weight: bold;
	letter-spacing: .1em;
    padding: 0 30px;
    clip-path: polygon(20px 0, /* 左上：少し右から開始 */ 100% 0, /* 右上 */ 100% calc(100% - 20px), /* 右下：少し上で終わる */ calc(100% - 20px) 100%, /* 右下：斜めカット */ 0 100%, /* 左下 */ 0 20px /* 左上：斜めカット */);
}
h1 {
	color: #fff;
	margin: 10px 0 40px 0;
}
.kv__award {
	color: #fff;
	display: flex;
	justify-content: space-between;
    align-items: flex-end;
	width: 650px;
}
.kv__award--box1 {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 120px;
	text-align: center;
	color: #fff;
  	background: url("../images/pc/fv_award_img.png") no-repeat center center;
	background-size: contain;
	padding: 0 0 35px;
}
.kv__award--box {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 200px;
	height: 120px;
	text-align: center;
	color: #fff;
  	background: url("../images/pc/fv_award_img.png") no-repeat center center;
	background-size: contain;
	padding: 0 0 10px;
}
.kv__award--ttl {
	font-size: 1.8rem;
	line-height: 1.3em;
	font-weight: 500;
	color: #fff;
}
.kv__award--value60 {
	font-size: 6rem;
	line-height: .4em;
	margin-top: 12px;
	color: #fff;
}
.kv__award--value60 small {
	font-size: 50%;
}
.kv__award--value {
	font-size: 5.3rem;
	line-height: .3em;
	margin-top: 17px;
	color: #fff;
}
.kv__award--value small {
	font-size: 50%;
}
.kv__annotation {
	color: #fff;
	font-size: 1.4rem;
	font-weight: 400;
	margin-top: 8px;
}

@media screen and (max-width: 640px) {
	.keyVisual {
		background: url("../images/sp/fv_bg@2x.jpg") no-repeat center center / cover;
		padding: 9% 0;
		height: 178vw;
		text-align: center;
	}
	.kv__copy {
		letter-spacing: .7em;
		font-weight: 500;
	}
	.kv__copy--sub {
		display: inline-block;
		background-color: #fff;
		color: #0d264a;
		font-size: 8.1vw;
		font-weight: bold;
		letter-spacing: .1em;
		padding: 0 13.9%;
		clip-path: polygon(3% 0, /* 左上：少し右から開始 */ 100% 0, /* 右上 */ 100% calc(100% - 25%), /* 右下：少し上で終わる */ calc(100% - 3%) 100%, /* 右下：斜めカット */ 0 100%, /* 左下 */ 0 25% /* 左上：斜めカット */);
	}
	h1 {
		color: #fff;
		margin: 3% 0 8% 0;
	}
	.kv__award {
		color: #fff;
		display: block;
		justify-content: space-between;
		align-items: flex-end;
		width: 50%;
	}
	.kv__award--box1 {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 90%;
		height: 23vw;
		text-align: center;
		color: #fff;
		background: url("../images/sp/fv_award_img@2x.png") no-repeat center center;
		background-size: contain;
		padding: 0 0 12%;
	}
	.kv__award--box {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 90%;
		height: 23vw;
		text-align: center;
		color: #fff;
		background: url("../images/sp/fv_award_img@2x.png") no-repeat center center;
		background-size: contain;
		padding: 0 0 4%;
	}
	.kv__award--ttl {
		font-size: 3.7vw;
		line-height: 1.3em;
		font-weight: 500;
		color: #fff;
	}
	.kv__award--value60 {
		font-size: 12.5vw;
		line-height: .4em;
		margin-top: 3%;
		color: #fff;
	}
	.kv__award--value60 small {
		font-size: 50%;
	}
	.kv__award--value {
		font-size: 11vw;
		line-height: .3em;
		margin-top: 9%;
		color: #fff;
	}
	.kv__award--value small {
		font-size: 50%;
	}
	.kv__annotation {
		color: #fff;
		font-size: 3.5vw;
		font-weight: 300;
		margin-top: 3%;
		text-align: left;
	}
}

/* ==========================================================================
 * main
 * ========================================================================== */
main {
	overflow-x: hidden;
	vertical-align: bottom;
}
picture {
	display: block;
}

/* ==========================================================================
 * CTA
 * ========================================================================== */
.cta {
    background: url("../images/pc/cta_bg.jpg") no-repeat center center / cover;
    padding: 40px 0 50px;
	text-align: center;
}

.cta__container {
    text-align: center;
	display: inline-block;
}

/* 上部のテキスト */
.cta-label {
    color: white;
    font-size: 3.2rem;
    margin-bottom: 30px;
}

.cta-label::before {
    content: '＼';
    margin-right: 4px;
}

.cta-label::after {
    content: '／';
    margin-left: 4px;
}

/* メインボタン */
.cta-button {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 23px 67px 25px;
	background: linear-gradient(170deg, #f6aa60 0%, #e97132 65%, #e1601c 100%);
	border: none;
	border-radius: 50px;
	cursor: pointer;
	text-decoration: none !important;
	box-shadow: 
		0 6px 0 #011c05,
		0 0 0 rgba(0, 0, 0, 0),
		inset 0 2px 3px rgba(255, 255, 255, 0);
	transition: all 0.2s ease;
	position: relative;
}

.cta-button:hover {
	transform: translateY(2px);
	box-shadow: 
	0 2px 0 #c45c00,
	0 4px 6px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}

.cta-button:active {
	transform: translateY(4px);
	box-shadow: 
	0 0 0 #c45c00,
	0 2px 4px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}
.cta__sub--label {
	background-color: white;
	color: #ff8c00;
	font-size: 2.3rem;
	font-weight: bold;
	padding: 1px 25px;
    border-radius: 20px;
    margin-bottom: 6px;
    position: absolute;
    top: -18px;
}

/* メインテキスト */
.main-text {
	color: #fff;
	font-size: 3.5rem;
	font-weight: bold;
	align-items: end;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
	position: relative;
	letter-spacing: .04em;
}

.main-text::before {
	content: "";
	margin: auto;
    position: absolute;
    top: 0;
    bottom: -10%;
    right: -5%;
    width: 17px;
    height: 17px;
	border-top: 4px solid #fff;
    border-right: 4px solid #fff;
    transform: rotate(45deg);
}


.cta__materials {
    background: url("../images/pc/cta_materials_bg.jpg") no-repeat center center / cover;
    padding: 40px 0 50px;
	text-align: center;
}

.cta__container {
    text-align: center;
	display: inline-block;
}


/* メインボタン */
.cta-button-materials {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 23px 67px 25px;
	background: linear-gradient(170deg, #60d5f6 0%, #32a6e9 65%, #1c90e1 100%);
	border: none;
	border-radius: 50px;
	cursor: pointer;
	text-decoration: none !important;
	box-shadow: 
		0 6px 0 #003d4c,
		0 0 0 rgba(0, 0, 0, 0),
		inset 0 2px 3px rgba(255, 255, 255, 0);
	transition: all 0.2s ease;
	position: relative;
}
.cta-button-materials img {
	position: absolute;
	top: -27px;
    left: -100px;
}

.cta-button-materials:hover {
	transform: translateY(2px);
	box-shadow: 
	0 2px 0 #1c90e1,
	0 4px 6px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}

.cta-button-materials:active {
	transform: translateY(4px);
	box-shadow: 
	0 0 0 #1c90e1,
	0 2px 4px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}
.cta__materials .cta__sub--label {
	background-color: #fff;
	color: #0c8fc6;
	font-size: 2.3rem;
	padding: 0 25px 0 10px; /* 左側のpaddingを調整 */
    border-radius: 20px;
    margin-bottom: 6px;
    position: absolute;
    top: -18px;
    display: inline-flex;
    align-items: center;
    gap: 10px; /* 「無料」ラベルとテキストの間隔 */
    font-weight: 500;
}

/* 無料ラベル */
.free-label {
	position: relative;
	display: inline-block;
	padding: 3px 15px 3px 9px;
	color: #ffe65e;
	font-weight: bold;
	font-size: 2rem;
	z-index: 1;
}

/* 斜めの青い背景 */
.free-label::before {
	content: "";
	position: absolute;
    top: 0;
    left: -12px;
    right: 0;
    bottom: 0;
    background-color: #1f3d68;
    transform: skew(-17deg);
    border-radius: 10px 0 0 27px;
    z-index: -1;
}

/* メインテキスト */
.main-text-materials {
	color: #fff;
	font-size: 3.5rem;
	font-weight: bold;
	align-items: end;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
	position: relative;
	letter-spacing: .04em;
}

.main-text-materials::before {
	content: "";
	margin: auto;
    position: absolute;
    top: 0;
    bottom: -10%;
    right: -5%;
    width: 17px;
    height: 17px;
	border-top: 4px solid #fff;
    border-right: 4px solid #fff;
    transform: rotate(45deg);
}

@media screen and (max-width: 640px) {
	.cta {
		background: url("../images/sp/cta_bg@2x.jpg") no-repeat center center / cover;
		padding: 9% 0 10%;
		text-align: center;
	}

	.cta__container {
		text-align: center;
		display: inline-block;
	}

	/* 上部のテキスト */
	.cta-label {
		color: #fff;
		font-size: 5.6vw;
		margin-bottom: 7%;
	}

	.cta-label::before {
		content: '＼';
		margin-right: 4px;
	}

	.cta-label::after {
		content: '／';
		margin-left: 4px;
	}

	/* メインボタン */
	.cta-button {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 6% 10% 3%;
		background: linear-gradient(170deg, #f6aa60 0%, #e97132 65%, #e1601c 100%);
		border: none;
		border-radius: 50px;
		cursor: pointer;
		text-decoration: none !important;
		box-shadow: 
			0 1.3vw 0 #011c05,
			0 0 0 rgba(0, 0, 0, 0),
			inset 0 2px 3px rgba(255, 255, 255, 0);
		transition: all 0.2s ease;
		position: relative;
	}

	.cta-button:hover {
		transform: translateY(2px);
		box-shadow: 
		0 2px 0 #c45c00,
		0 4px 6px rgba(0, 0, 0, 0.3),
		inset 0 2px 3px rgba(255, 255, 255, 0.4);
	}

	.cta-button:active {
		transform: translateY(4px);
		box-shadow: 
		0 0 0 #c45c00,
		0 2px 4px rgba(0, 0, 0, 0.3),
		inset 0 2px 3px rgba(255, 255, 255, 0.4);
	}
	.cta__sub--label {
		background-color: #fff;
		color: #ff8c00;
		font-size: 3.8vw;
		font-weight: bold;
		padding: 1% 4%;
		border-radius: 20px;
		margin-bottom: 6px;
		position: absolute;
		top: -17%;
	}

	/* メインテキスト */
	.main-text {
		color: #fff;
		font-size: 6.3vw;
		font-weight: bold;
		align-items: end;
		text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
		position: relative;
		letter-spacing: .04em;
		line-height: 1.1em;
	}

	.main-text::before {
		content: "";
		margin: auto;
		position: absolute;
		top: 0;
		bottom: 9%;
		right: -5%;
		width: 3vw;
		height: 3vw;
		border-top: 1vw solid #fff;
		border-right: 1vw solid #fff;
		transform: rotate(45deg);
	}


	.cta__materials {
		background: url("../images/sp/cta_materials_bg@2x.jpg") no-repeat center center / cover;
		padding: 9% 0 10%;
		text-align: center;
	}

	.cta__container {
		text-align: center;
		display: inline-block;
		width: 100%;
	}

	/* メインボタン */
	.cta-button-materials {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 6% 10% 3% 27%;
		background: linear-gradient(170deg, #60d5f6 0%, #32a6e9 65%, #1c90e1 100%);
		border: none;
		border-radius: 50px;
		cursor: pointer;
		text-decoration: none !important;
		box-shadow: 
			0 6px 0 #003d4c,
			0 0 0 rgba(0, 0, 0, 0),
			inset 0 2px 3px rgba(255, 255, 255, 0);
		transition: all 0.2s ease;
		position: relative;
		width: 100%;
	}
	.cta-button-materials img {
		position: absolute;
		top: 0;
		left: 0;
		width: 28vw;
	}

	.cta-button-materials:hover {
		transform: translateY(2px);
		box-shadow: 
		0 2px 0 #1c90e1,
		0 4px 6px rgba(0, 0, 0, 0.3),
		inset 0 2px 3px rgba(255, 255, 255, 0.4);
	}

	.cta-button-materials:active {
		transform: translateY(4px);
		box-shadow: 
		0 0 0 #1c90e1,
		0 2px 4px rgba(0, 0, 0, 0.3),
		inset 0 2px 3px rgba(255, 255, 255, 0.4);
	}
	.cta__materials .cta__sub--label {
		background-color: #fff;
		color: #0c8fc6;
		font-size: 3.8vw;
		padding: 0;
		margin-bottom: 6px;
		position: absolute;
		top: -16%;
		display: inline-flex;
		align-items: center;
		gap: 3%;
		font-weight: 500;
		width: 83%;
		left: 8%;
	}

	/* 無料ラベル */
	.free-label {
		position: relative;
		display: inline-block;
		padding: 1% 3% 2% 4%;;
		color: #ffe65e;
		font-weight: bold;
		font-size: 3.4vw;
		z-index: 1;
	}

	/* 斜めの青い背景 */
	.free-label::before {
		content: "";
		position: absolute;
		top: 0;
		left: -2%;
		right: 0;
		bottom: 0;
		background-color: #1f3d68;
		transform: skew(-17deg);
		border-radius: 10px 0 0 27px;
		z-index: -1;
	}

	/* メインテキスト */
	.main-text-materials {
		color: #fff;
		font-size: 6.3vw;
		font-weight: bold;
		align-items: end;
		text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
		position: relative;
		letter-spacing: .04em;
		line-height: 1.1em;
	}

	.main-text-materials::before {
		content: "";
		margin: auto;
		position: absolute;
		bottom: 9%;
        right: -14%;
        width: 3vw;
        height: 3vw;
		border-top: 1vw solid #fff;
		border-right: 1vw solid #fff;
		transform: rotate(45deg);
	}
}

/* ==========================================================================
 * Recruitment
 * ========================================================================== */
.recruitment {
	background: url("../images/pc/recruitment_bg.jpg") no-repeat center center / cover;
    padding: 80px 0 100px;
	text-align: center;
}
.recruitment__ttl {
	letter-spacing: .06em;
}
.recruitment__flex {
	display: flex;
	gap: 30px;
	margin-top: 55px;
	align-items: center;
}
.recruitment__txt {
	font-size: 2.2rem;
	width: 495px;
	text-align: justify;
}
@media screen and (max-width: 640px) {
	.recruitment {
		background: url("../images/sp/recruitment_bg@2x.jpg") no-repeat center center / cover;
		padding: 11% 0 15%;
		text-align: center;
	}
	.recruitment__ttl {
		letter-spacing: .06em;
	}
	.recruitment__flex {
		display: block;
		gap: 30px;
		margin-top: 8%;
		align-items: center;
	}
	.recruitment__txt {
		font-size: 5vw;
		width: 100%;
		text-align: justify;
		margin-bottom: 10%;
	}
}

/* ==========================================================================
 * Project
 * ========================================================================== */
.project {
	background: url("../images/pc/project_bg.jpg") no-repeat center center / cover;
    padding: 80px 0 0;
	text-align: center;
}
.project h3 {
    font-size: 48px;
    font-weight: 800;
    line-height: 1.3em;
    position: relative;
	color: #0d264a;
	display: inline-block;
}

.project h3::before {
    content: '';
    position: absolute;
    left: -60px;
    top: -5px;
    width: 50%;
    height: 50%;
    background-image: url(../images/pc/ttl_icon.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: bottom left;
}
.project__ttl {
	margin: 45px 0 20px;
}
.diagonal_back {
	display: inline-block;
    background-color: #16657c;
    color: #fff;
    font-weight: bold;
    padding: 10px 25px;
	margin: 85px 0 30px;
    clip-path: polygon(
        10px 0,                  /* 左上：少し右から開始 */
        100% 0,                  /* 右上 */
        100% calc(100% - 10px),  /* 右下：少し上で終わる */
        calc(100% - 10px) 100%,  /* 右下：斜めカット */
        0 100%,                  /* 左下 */
        0 10px                   /* 左上：斜めカット */
    );
}
.project__flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.project__box {
	width: 440px;
	margin-bottom: 40px;
}
.project__box--ttl {
  position: relative;
  font-size: 2.8rem;
  color: #fff;
  background-color: #0d264a;
  padding: 10px 0;
  font-weight: 500;
  text-align: center;
}
.project__box--ttl p {
	color: #fff;
}
.project__box--ttl::before {
  content: '';
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 100%;
  background-color: #e1601c;
}

.project__box--flex {
	position: relative;
	margin: 20px 0 0;
}
.project__box--txt {
	text-align: justify;
}
.project__box--txt .txt-orange {
	font-weight: 500;
}
.project__box--txt dt {
	font-size: 1.8rem;
	background-color: #616161;
	width: 100px;
	padding: 2px 0;
	text-align: center;
	color: #fff;
	display: inline-block;
}
.project__box--txt dd {
	font-size: 1.6rem;
	margin: 5px 0 13px 0;
	color: #333;
	font-weight: 400;
}
.project__box--img {
	position: absolute;
    top: 0;
    right: 0;
}

/* ===== ロゴマーキー ===== */
.logo-marquee {
	width: 100%;
	overflow: hidden;
	background: #fff;
	padding: 20px 0;
}

.logo-marquee__track {
	display: flex;
	width: max-content;
	animation: marqueeScroll 100s linear infinite; /* 50s → 100sに変更（画像が2倍になったため） */
}

.logo-marquee__logos {
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.logo-marquee__logos img {
	height: 110px;
	width: auto;
	flex-shrink: 0;
	padding: 0 20px;
}

@keyframes marqueeScroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

@media screen and (max-width: 640px) {
	.project {
		background: url("../images/sp/project_bg@2x.jpg") no-repeat top center / cover;
		padding: 11% 0 5%;
		text-align: center;
	}
	.project h3 {
		font-size: 7.5vw;
		font-weight: 800;
		line-height: 1.3em;
		position: relative;
		color: #0d264a;
		display: inline-block;
	}

	.project h3::before {
		content: '';
		position: absolute;
		left: -4%;
		top: -10px;
		width: 50%;
		height: 60%;
		background-image: url(../images/pc/ttl_icon.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom left;
	}
	.project__ttl {
		margin: 10% 0 3%;
		width: 65%;
		display: inline-block;
	}
	.diagonal_back {
		display: inline-block;
		background-color: #16657c;
		color: #fff;
		font-weight: bold;
		padding: 4% 10%;
		margin: 7% 0 12%;
		clip-path: polygon(
			5% 0,                  /* 左上：少し右から開始 */
			100% 0,                  /* 右上 */
			100% calc(100% - 20%),  /* 右下：少し上で終わる */
			calc(100% - 5%) 100%,  /* 右下：斜めカット */
			0 100%,                  /* 左下 */
			0 20%                   /* 左上：斜めカット */
		);
	}
	.project__flex {
		display: block;
		justify-content: space-between;
		flex-wrap: wrap;
	}
	
    
    .project__box {
        width: 100% !important; /* Slick内で幅を確保 */
        margin-bottom: 20px;
    }
	.project__box--ttl {
	  position: relative;
	  font-size: 6.3vw;
	  color: #fff;
	  background-color: #0d264a;
	  padding: 2% 0;
	  font-weight: 500;
	  text-align: center;
	}
	.project__box--ttl p {
		color: #fff;
	}
	.project__box--ttl::before {
	  content: '';
	  position: absolute;
	  left: 10px;
	  top: 50%;
	  transform: translateY(-50%);
	  width: 10px;
	  height: 100%;
	  background-color: #e1601c;
	}

	.project__box--flex {
		position: relative;
		margin: 20px 0 0;
	}
	.project__box--txt {
		text-align: justify;
	}
	.project__box--txt .txt-orange {
		font-weight: 500;
	}
	.project__box--txt dt {
		font-size: 5vw;
		background-color: #616161;
		width: 30vw;
		padding: 1% 0;
		text-align: center;
		color: #fff;
		display: inline-block;
	}
	.project__box--txt dd {
		font-size: 4.4vw;
		margin: 1% 0 4% 0;
		color: #333;
		font-weight: 400;
	}
	.project__box--img {
		position: absolute;
		margin-top: 0;
        width: 45%;
		top: 0;
	}

	/* ===== ロゴマーキー ===== */
	.logo-marquee {
		width: 100%;
		overflow: hidden;
		background: #fff;
		padding: 20px 0;
	}

	.logo-marquee__track {
		display: flex;
		width: max-content;
		animation: marqueeScroll 150s linear infinite;
    }

	.logo-marquee__logos {
		display: flex;
		align-items: center;
		flex-shrink: 0;
		gap: 0;
	}

	.logo-marquee__logos img {
		height: 25vw;
		width: auto;
		flex-shrink: 0;
		padding: 0 20px;
	}
}



/* ==========================================================================
 * Frontline
 * ========================================================================== */
.frontline {
	background: url("../images/pc/frontline_bg.jpg") no-repeat center center / cover;
    padding: 190px 0 162px;
	text-align: center;
}
.frontline__ttl {
	color: #fff;
	font-size: 4rem;
	font-weight: 500;
}
.frontline__flex {
	display: flex;
	justify-content: space-between;
	padding: 0 35px;
}
.frontline__box {
	display: inline-block;
    background-color: #fff;
	width: 270px;
    color: #fff;
    font-weight: bold;
    padding: 20px 5px;
	margin: 40px 0 50px;
    clip-path: polygon(
        20px 0,                  /* 左上：少し右から開始 */
        100% 0,                  /* 右上 */
        100% calc(100% - 20px),  /* 右下：少し上で終わる */
        calc(100% - 20px) 100%,  /* 右下：斜めカット */
        0 100%,                  /* 左下 */
        0 20px                   /* 左上：斜めカット */
    );
}
.frontline__box p {
	font-size: 2.2rem;
	color: #0d264a;
	margin-top: 10px;
	line-height: 1.3em;
}
.frontline__summary {
	position: relative;
	background-color: #ffe65e;
	width: 850px;
	display: inline-block;
}
.frontline__summary::before {
  content: '';
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translate(-50%, -100%) rotate(180deg);  /* 上に移動 */
  
  /* 三角形をborderで作成 */
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 20px solid #fff;  /* 黄色（背景と同じ色） */
}
.frontline__summary p {
	color: #0d264a;
	font-weight: 900;
	font-size: 5.2rem;
	padding: 16px 0;
}
.frontline__summary--img {
	position: absolute;
	top: -80px;
	right: -96px;
}

@media screen and (max-width: 640px) {
	.frontline {
		background: url("../images/sp/frontline_bg@2x.jpg") no-repeat center center / cover;
		padding: 25% 0 25%;
		text-align: center;
	}
	.frontline__ttl {
		color: #fff;
		font-size: 6.3vw;
		font-weight: 500;
	}
	.frontline__flex {
		display: block;
		justify-content: space-between;
		padding: 0 3%;
	}
	.frontline__box {
		display: flex;
		background-color: #fff;
		width: 100%;
		color: #fff;
		font-weight: bold;
		padding: 9% 6%;
		margin: 5% 0;
		clip-path: polygon(
			20px 0,                  /* 左上：少し右から開始 */
			100% 0,                  /* 右上 */
			100% calc(100% - 20px),  /* 右下：少し上で終わる */
			calc(100% - 20px) 100%,  /* 右下：斜めカット */
			0 100%,                  /* 左下 */
			0 20px                   /* 左上：斜めカット */
		);
		gap: 5%;
	}
	.frontline__box img {
		width: 18%;
	}
	.frontline__box p {
		font-size: 5vw;
		color: #0d264a;
		margin-top: 0;
		line-height: 1.3em;
		text-align: left;
		align-items: center;
		display: flex;
	}
	.frontline__summary {
		position: relative;
		background-color: #ffe65e;
		width: 94%;
		display: inline-block;
		margin-top: 4%;
	}
	.frontline__summary::before {
		content: '';
		position: absolute;
		top: 10%;
		left: 50%;
		transform: translate(-50%, -100%) rotate(180deg);
		width: 0;
		height: 0;
		border-left: 5vw solid transparent;
		border-right: 5vw solid transparent;
		border-bottom: 5vw solid #fff;
	}
	.frontline__summary p {
		color: #0d264a;
		font-weight: 900;
		font-size: 7.5vw;
		padding: 5% 0;
		line-height: 1.1em;
	}
	.frontline__summary--img {
		position: absolute;
		top: 5%;
        right: -10%;
        width: 23%;
	}
}
/* ==========================================================================
 * Accompaniment01
 * ========================================================================== */
.accompaniment__step01 {
	background: url("../images/pc/accompaniment_bg.jpg") no-repeat center center / cover;
    padding: 80px 0 50px;
	text-align: center;
}
.accompaniment__ttl--sub {
	font-size: 3.2rem;
}
.accompaniment__step01 h3 {
    font-size: 4.8rem;
    font-weight: 800;
    position: relative;
	color: #0d264a;
	display: inline-block;
}

.accompaniment__step01 h3::before {
	content: '';
	position: absolute;
	left: 75px;
	top: -5px;
	width: 50%;
	height: 50%;
	background-image: url(../images/pc/ttl_icon.png);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: bottom left;
}
.accompaniment__step01--ttl {
	margin: 60px 0 35px;
}
.accompaniment__step01--flex {
	display: flex;
	justify-content: space-between;
	position: relative;
}
.accompaniment__step01--flex::before {
	content: '';
	position: absolute;
	top: 135px;
	left: 10%;
	right: 10%;
	height: 20px;
	background: #cccccc;
	z-index: 0;
}
.accompaniment__step01--flex dl {
	width: 250px;
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
}
.accompaniment__step01--flex dt {
	font-size: 2.5rem;
	font-weight: 600;
	line-height: 1.2em;
	margin-top: 20px;
	min-height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.accompaniment__step01--flex dd {
	font-size: 1.6rem;
	margin-top: 15px;
	text-align: justify;
}

.accompaniment__step01--flex picture img {
	position: relative;
	z-index: 1;
}

.accompaniment__step01--flex .marker-yellow-thin {
	font-weight: 500;
}
.accompaniment__step01--recording {
	margin: 40px 0 80px;
}

@media screen and (max-width: 640px) {
	.accompaniment__step01 {
		background: url("../images/sp/accompaniment_bg@2x.jpg") no-repeat center center / cover;
		padding: 13% 0 13%;
		text-align: center;
	}
	.accompaniment__ttl--sub {
		font-size: 5vw;
	}
	.accompaniment__step01 h3 {
		font-size: 7.5vw;
		font-weight: 800;
		position: relative;
		color: #0d264a;
		display: inline-block;
	}

	.accompaniment__step01 h3::before {
		content: '';
		position: absolute;
		left: 11%;
        top: -10px;
        width: 50%;
        height: 60%;
		background-image: url(../images/pc/ttl_icon.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom left;
	}
	.accompaniment__step01--ttl {
		margin: 13% 0 5%;
	}
	.accompaniment__step01--flex {
		display: block;
		justify-content: space-between;
		position: relative;
	}
	.accompaniment__step01--flex::before {
		content: '';
		position: absolute;
		top: 15%;
        left: 19%;
        right: 75%;
        height: 70%;
		background: #cccccc;
		z-index: 0;
	}
	.accompaniment__step01--flex dl {
		width: 100%;
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: row;
		gap: 5%;
		align-items: center;
		margin-top: 10%;
	}
	.accompaniment__step01--flex dt {
		font-size: 5.6vw;
		font-weight: 600;
		line-height: 1.2em;
		margin-top: 0;
		min-height: 0;
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.accompaniment__step01--flex dd {
		font-size: 4.4vw;
		margin-top: 5%;
		text-align: justify;
	}

	.accompaniment__step01--flex picture img {
		position: relative;
		z-index: 1;
		width: 168vw;
	}

	.accompaniment__step01--flex .marker-yellow-thin {
		font-weight: 500;
	}
	.accompaniment__step01--recording {
		margin: 15% 0;
	}
	.accompaniment__step01--txt {
		width: 200vw;
	}
}

/* ==========================================================================
 * Accompaniment02
 * ========================================================================== */
.accompaniment__step02 {
	background: url("../images/pc/accompaniment_step02_bg.jpg") no-repeat center center / cover;
    padding: 80px 0 40px;
	text-align: center;
}

.accompaniment__sb {
	position: relative;
	display: inline-block;
	margin-bottom: 10px;
}

.sb__box {
	background-color: #16657c;
	padding: 15px 20px;
	text-align: center;
	font-size: 3.2rem;
	font-weight: bold;
	line-height: 1.3em;
	margin: 40px 0 0;
	letter-spacing: .06em;
}
.sb__box p {
  color: #fff;
}

.arrow__down {
  position: relative;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 15px solid #16657c;
}
.accompaniment__step02--flex {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0 30px;
}
/* ラッパー（影を担当） */
.accompaniment__step02--flex .dl-wrapper {
  position: relative;
  display: inline-block;
  margin: 0 0 10px;
}

/* 影（ラッパーの疑似要素） */
.accompaniment__step02--flex .dl-wrapper::before {
	content: '';
    position: absolute;
    top: 21px;
    left: 5px;
    width: 101%;
    height: 89%;
    background-color: #0d2549;
    clip-path: polygon(20px 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%, 0 20px);
    z-index: 0;
}
.accompaniment__step02--flex dl {
	position: relative;
	display: inline-block;
	background-color: #f8f8f8;
	width: 250px;
	height: 220px;
	font-weight: bold;
	padding: 25px 15px;
	clip-path: polygon(20px 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%, 0 20px);
	z-index: 1;
}
.accompaniment__step02--flex dt {
	color: #0d264a;
	font-size: 2.2rem;
}
.accompaniment__step02--flex p {
	color: #fff;
	font-size: 1.8rem;
	background-color: #e1601c;
	width: 110px;
	display: inline-block;
	margin: 15px 0 10px;
	padding: 2px;
}
.accompaniment__step02--flex dd {
	color: #333333;
	font-size: 1.6rem;
}

.accompaniment__skill {
	background: url("../images/pc/accompaniment_skill_bg.jpg") no-repeat center center / cover;
    padding: 55px 0;
	text-align: center;
}
.accompaniment__skill h4 {
	background-color: #fff;
	padding: 30px;
	display: inline-block;
	line-height: 1.2em;
}
@media screen and (max-width: 640px) {
	.accompaniment__step02 {
		background: url("../images/sp/accompaniment_step02_bg@2x.jpg") no-repeat center center / cover;
		padding: 13% 0 13%;
		text-align: center;
	}

	.accompaniment__sb {
		position: relative;
		display: inline-block;
		margin-bottom: 0;
	}

	.sb__box {
		background-color: #16657c;
		padding: 4% 14px;
		text-align: center;
		font-size: 5.6vw;
		font-weight: bold;
		line-height: 1.3em;
		margin: 40px 0 0;
		letter-spacing: .06em;
	}
	.sb__box p {
	  color: #fff;
	}

	.arrow__down {
	  position: relative;
	  left: 50%;
	  bottom: 0;
	  transform: translateX(-50%);
	  width: 0;
	  height: 0;
	  border-left: 12px solid transparent;
	  border-right: 12px solid transparent;
	  border-top: 15px solid #16657c;
	}
	.accompaniment__step02--flex {
		display: block;
		justify-content: center;
		flex-wrap: wrap;
		gap: 0 30px;
	}
	/* ラッパー（影を担当） */
	.accompaniment__step02--flex .dl-wrapper {
	  position: relative;
	  display: inline-block;
	  margin: 0 0 0;
	}

	/* 影（ラッパーの疑似要素） */
	.accompaniment__step02--flex .dl-wrapper::before {
		content: '';
		position: absolute;
		top: 19%;
		left: 4%;
		width: 98%;
		height: 74%;
		background-color: #0d2549;
		clip-path: polygon(20px 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%, 0 20px);
		z-index: 0;
	}
	.accompaniment__step02--flex dl {
		position: relative;
		display: inline-block;
		background-color: #f8f8f8;
		width: 80vw;
		height: 100%;
		font-weight: bold;
		padding: 5%;
		clip-path: polygon(20px 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%, 0 20px);
		z-index: 1;
	}
	.accompaniment__step02--flex dt {
		color: #0d264a;
		font-size: 5.6vw;
	}
	.accompaniment__step02--flex p {
		color: #fff;
		font-size: 5vw;
		background-color: #e1601c;
		width: 25vw;
		display: inline-block;
		margin: 15px 0 10px;
		padding: 2%;
	}
	.accompaniment__step02--flex dd {
		color: #333333;
		font-size: 4.4vw;
		text-align: left;
	}

	.accompaniment__skill {
		background: url("../images/sp/accompaniment_skill_bg@2x.jpg") no-repeat center center / cover;
		padding: 11% 0;
		text-align: center;
	}
	.accompaniment__skill h4 {
		background-color: #fff;
		padding: 5%;
		display: inline-block;
		line-height: 1.4em;
		font-size: 5.6vw;
		width: 100%;
	}
	.accompaniment__step02--skill {
		display: flex;
		justify-content: left;
		align-items: center;
		gap: 5%;
	}
}



/* ==========================================================================
 * Case
 * ========================================================================== */
.case {
	background: url("../images/pc/case_bg.jpg") no-repeat center center / cover;
    padding: 65px 0;
	text-align: center;
}
.case__ttl {
	display: flex;
	justify-content: center;
	gap: 17px;
}

.case__flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin-top: 40px;
}
.case__box {
	background-color: #fff;
	width: 440px;
	height: 220px;
	font-weight: bold;
	padding: 20px 20px;
	clip-path: polygon(15px 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%, 0 15px);
	gap: 19px;
	margin: 0 0 50px;
}
.case__box--flex {
	display: flex;
	font-weight: bold;
	gap: 19px;
}

/* 左側：人物セクション */
.case__section--person {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
}
.case__img--info {
	font-size: 1.6rem;
	font-weight: 500;
}

/* 右側：キャリアセクション */
.case__section--career {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

/* 前職 */
.case__before {
	display: flex;
	align-items: center;
	gap: 7px;
}
.case__label {
	background-color: #333;
	color: #fff;
	padding: 8px 14px;
	font-size: 1.6rem;
	font-weight: 500;
}
.case__content {
	text-align: left;
	line-height: 1.1em;
}
.case__content--title {
	font-size: 2.3rem;
	font-weight: bold;
}
.case__content--salary {
	font-size: 1.8rem;
	margin-top: 5px;
	display: inline-block;
}
/* 矢印 */
.case__arrow {
	width: 0;
	height: 0;
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-top: 10px solid #333;
	text-align: center;
    display: inline-block;
	margin: 0 auto;
}

/* 現職 */
.case__job {
	display: flex;
	align-items: center;
	gap: 7px;
}
.case__year {
	background-color: #e1601c;
	color: #fff;
	padding: 8px 10px;
	font-size: 1.6rem;
	font-weight: 500;
}
.case__content--job {
	font-size: 2.3rem;
	font-weight: bold;
	line-height: .6em;
	text-align: left;
}
.case__content--job p {
	color: #ff6b35;
}
.case__content--job span {
	color: #333;
}
.case__job--title04 {
	font-size: 2rem;
	line-height: 1em;
}
.case__job--title04 .case__content--salary {
	margin-top: 0;
}

/* 業務内容 */
.case__job--detail {
	background-color: #16657c;
	padding: 10px;
	text-align: center;
	line-height: 1.3em;
	min-height: 45px;
    align-items: center;
    display: grid;
}
.case__job--detail p {
	font-size: 1.8rem;
	color: #fff;
	font-weight: 500;
}

@media screen and (max-width: 640px) {
	.case {
		background: url("../images/sp/case_bg@2x.jpg") no-repeat center center / cover;
		padding: 13% 0;
		text-align: center;
	}
	.case__ttl {
		display: flex;
		justify-content: center;
		gap: 3%;
		align-items: center;
	}
	.case__ttl img {
		width: 21%;
	}

	.case__flex {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		margin-top: 10%;
	}

	.case__box {
		background-color: #fff;
		width: 100%;
		height: 72vw;
		font-weight: bold;
		padding: 5%;
		clip-path: polygon(15px 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%, 0 15px);
		margin: 0 0 9%;
	}
	.case__box:nth-child(2) .case__box--flex,
    .case__box:nth-child(4) .case__box--flex {
		flex-direction: row-reverse;
    }
	.case__box:nth-child(4) {
		height: 80%;
	}
	.case__box--flex {
		display: flex;
		font-weight: bold;
		gap: 3%;
	}

	/* 左側：人物セクション */
	.case__img {
		width: 31vw;
	}
	.case__section--person {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 5px;
	}
	.case__img--info {
		font-size: 3.8vw;
		font-weight: 500;
	}

	/* 右側：キャリアセクション */
	.case__section--career {
		flex: 1;
		display: flex;
		flex-direction: column;
		gap: 0;
		position: relative;
	}

	/* 前職 */
	.case__before {
		display: block;
		align-items: center;
		gap: 8px;
	}
	.case__label {
		background-color: #333;
		color: #fff;
		padding: .3%;
		font-size: 4.4vw;
		font-weight: 500;
	}
	.case__content {
		text-align: center;
		line-height: 1.1em;
		margin: 3% 0 0;
	}
	.case__content--title {
		font-size: 5.6vw;
		font-weight: bold;
	}
	.case__content--salary {
		font-size: 5.5vw;
		margin-top: 4%;
		display: inline-block;
	}
	/* 矢印 */
	.case__arrow {
		width: 0;
		height: 0;
		border-left: 10px solid transparent;
		border-right: 10px solid transparent;
		border-top: 10px solid #333;
		text-align: center;
		display: inline-block;
		margin: 2% auto;
	}

	/* 現職 */
	.case__job {
		display: block;
		align-items: center;
		gap: 8px;
	}
	.case__year {
		background-color: #e1601c;
		color: #fff;
		padding: .3%;
		font-size: 4.4vw;
		font-weight: 500;
	}
	.case__content--job {
		font-size: 5.6vw;
		font-weight: bold;
		line-height: .6em;
		text-align: center;
		margin: 3% 0 0;
	}
	.case__content--job .case__content--salary {
		margin-top: 4%;
	}
	.case__content--job p {
		color: #ff6b35;
	}
	.case__content--job span {
		color: #333;
	}
	.case__job--title04 {
		font-size: 2rem;
		line-height: 1em;
	}
	.case__job--title04 .case__content--salary {
		margin-top: 0;
	}

	/* 業務内容 */
	.case__job--detail.visible-sp {
		background-color: #16657c;
		padding: 2%;
		text-align: center;
		line-height: 6vw;
		min-height: 23%;
		align-items: center;
		display: grid;
		position: static;
		bottom: 0;
		margin-top: 4%;
	}
	
	.case__job--detail p {
		font-size: 5vw;
		color: #fff;
		font-weight: 500;
	}
}

/* ==========================================================================
 * Accompaniment03
 * ========================================================================== */
.accompaniment__step03 {
	background: url("../images/pc/accompaniment_step03_bg.jpg") no-repeat center center / cover;
    padding: 100px 0 40px;
	text-align: center;
}
.accompaniment__movie--ttl {
	margin: 30px 0 40px;
}
.accompaniment__movie--ttl .txt130 {
	background-color: #e1601c;
	color: #fff;
	padding: 5px 20px;
}
.accompaniment__movie--ttl h4 {
	margin: 25px 0 0;
}
.accompaniment__step03 iframe {
	margin-bottom: 40px;
}

.accompaniment__training .inner-width-sp {
	display: flex;
	justify-content: flex-start;   /* ← 左寄せに変更 */
	align-items: center;
	gap: 50px;
	margin-top: 30px;
	overflow: hidden;              /* ← 追加：はみ出した部分を隠す */
	padding-left: calc((100% - 920px) / 2);  /* ← inner-widthと同じ左余白 */
}
.accompaniment__training dl {
	background-color: #0d264a;
	width: 420px;
	min-width: 420px;              /* ← 追加：縮小しない */
	flex-shrink: 0;                /* ← 追加：縮小しない */
	padding: 35px 40px;
	clip-path: polygon(15px 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%, 0 15px);
	gap: 19px;
	color: #fff;
}
.accompaniment__training dt {
	font-size: 3rem;
	margin-bottom: 15px;
	font-weight: 600;
}
.accompaniment__training dd {
	font-size: 1.8rem;
	border-top: 2px solid #fff;
	padding-top: 15px;
	text-align: justify;
}
.accompaniment__training picture {
	flex-shrink: 0;          /* ← 追加：縮小しない */
}
.accompaniment__training picture img {
	width: auto;
	height: auto;
	max-width: none;         /* ← 追加：画像の最大幅制限を解除 */
}
.accompaniment__training:nth-of-type(3) .inner-width-sp {
	flex-direction: row-reverse;
	justify-content: flex-start;            /* row-reverseでは右端から配置 */
	padding-left: 0;
	padding-right: calc((100% - 920px) / 2);
}

.accompaniment__skillUp {
	background: url("../images/pc/accompaniment_skillup_bg.jpg") no-repeat center center / cover;
    padding: 55px 0 100px;
	text-align: center;
}
.accompaniment__skillUp--ttl {
	font-weight: 600;
	margin-bottom: 35px;
}
.accompaniment__skillUp--flex {
	display: flex;
	justify-content: center;
	gap: 20px;
}
.accompaniment__skillUp--circle {
	border: 3px solid #16657c;
	border-radius: 100px;
	width: 200px;
	height: 200px;
	padding: 15px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.accompaniment__skillUp--circle img {
	height: 60px;
	width: auto;
	object-fit: contain;
	margin-bottom: 10px;
}
.accompaniment__skillUp--circle p {
	font-size: 2.2rem;
	line-height: 1.4em;
	font-weight: 600;
	color: #16657c;
}
.accompaniment__skillUp--annotation {
	font-size: 1.4rem;
    font-weight: 400;
    margin: 8px 0 10px 30px;
	text-align: left;
}

@media screen and (max-width: 640px) {
	.accompaniment__step03 {
		background: url("../images/sp/accompaniment_step03_bg@2x.jpg") no-repeat top center / cover;
		padding: 13% 0 5%;
		text-align: center;
	}
	.accompaniment__movie--ttl {
		margin: 8% 0 5%;
	}
	.accompaniment__movie--ttl .txt130 {
		background-color: #e1601c;
		color: #fff;
		padding: 1% 4%;
		line-height: 1.8em;
	}
	.accompaniment__movie--ttl h4 {
		margin: 1% 0 0;
		font-size: 6.3vw;
		line-height: 1.4em;
	}
	.accompaniment__step03 iframe {
		margin-bottom: 5%;
		width: 100%;
		height: 60vw;
	}

	.accompaniment__training {
		display: flex;
		justify-content: flex-start;   /* ← 左寄せに変更 */
		align-items: center;
		gap: 50px;
		margin-top: 27%;
		overflow: visible;              /* ← 追加：はみ出した部分を隠す */
		padding-left: calc((100% - 920px) / 2);  /* ← inner-widthと同じ左余白 */
		position: relative;
		z-index: 1;
	}
	.accompaniment__training dl {
		background-color: #0d264a;
		width: 100%;
		min-width: 0;              /* ← 追加：縮小しない */
		flex-shrink: 0;                /* ← 追加：縮小しない */
		padding: 5% 8%;
		clip-path: polygon(15px 0, 100% 0, 100% calc(100% - 15px), calc(100% - 15px) 100%, 0 100%, 0 15px);
		gap: 19px;
		color: #fff;
	}
	.accompaniment__training dt {
		font-size: 5.6vw;
		margin-bottom: 5%;
		font-weight: 600;
	}
	.accompaniment__training dd {
		font-size: 4.4vw;
		border-top: 2px solid #fff;
		padding-top: 4%;
		text-align: justify;
	}
	.accompaniment__training picture {
		flex-shrink: 0;          /* ← 追加：縮小しない */
	}
	.accompaniment__training picture img {
		width: 80%;
		height: auto;
		max-width: none;
		position: absolute;
		z-index: -1;
		top: -30%;
		right: 0;
	}
	.accompaniment__training:nth-of-type(3) {
		flex-direction: row-reverse;
		justify-content: flex-start;            /* row-reverseでは右端から配置 */
		padding-left: 0;
		padding-right: calc((100% - 920px) / 2);
	}
	.accompaniment__training--img02 img {
		left: 0;
	}

	.accompaniment__skillUp {
		background: url("../images/sp/accompaniment_skillup_bg@2x.jpg") no-repeat center center / cover;
		padding: 13% 0;
		text-align: center;
	}
	.accompaniment__skillUp--ttl {
		font-weight: 600;
		margin-bottom: 1%;
	}
	.accompaniment__skillUp--flex {
		display: flex;
		justify-content: center;
		gap: 5%;
		flex-wrap: wrap;
	}
	.accompaniment__skillUp--circle {
		border: 3px solid #16657c;
		border-radius: 100px;
		width: 39%;
		height: 39%;
		padding: 5% 2%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		margin-top: 5%;
	}
	.accompaniment__skillUp--circle img {
		height: 12vw;
		width: auto;
		object-fit: contain;
		margin-bottom: 3%;
	}
	.accompaniment__skillUp--circle p {
		font-size: 4.1vw;
		line-height: 1.4em;
		font-weight: 600;
		color: #16657c;
	}
	.accompaniment__skillUp--annotation {
		font-size: 3.4vw;
		font-weight: 400;
		margin: 4% 0 10% 9%;
		text-align: left;
	}
}

/* ==========================================================================
 * Voice
 * ========================================================================== */
.voice {
	background: url("../images/pc/voice_bg.jpg") no-repeat center center / cover;
    padding: 80px 0 100px;
	text-align: center;
}
.voice h3 {
	color: #0d264a;
	position: relative;
	font-weight: 800;
	display: inline-block;
	margin-bottom: 40px;
}
.voice h3::before {
	content: '';
	position: absolute;
	left: -60px;
	top: -20px;
	width: 50%;
	height: 130%;
	background-image: url(../images/pc/ttl_icon.png);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: bottom left;
}
.voice__flex {
	display: flex;
	justify-content: center;
	gap: 20px;
	align-items: center;
}
.voice__box:nth-of-type(2) .voice__flex {
	flex-direction: row-reverse;
}
.voice__box:nth-of-type(2) p {
	text-align: right;
}
.voice__flex dl {
	text-align: justify;
}
.voice__flex dt {
	font-size: 2.8rem;
	font-weight: 600;
	color: #fff;
	background-color: #0d264a;
	display: inline;
	padding: 3px 15px;
	line-height: 1.8em;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone; /* Safari対応 */
}
.voice__flex dd {
	background-color: #f3f3f3;
	padding: 8px 15px;
	font-size: 1.6rem;
	width: 496px;
	margin-top: 10px;
	min-height: 110px;
	display: flex;
	align-items: center;
}
.voice__flex .txt-orange {
	font-weight: 500;
}
.voice__box {
	display: inline-block;
	margin-bottom: 30px;
}
.voice__box p {
	text-align: left;
	margin-top: -9px;
}
.voice__box01, .voice__box02, .voice__box03 {
	position: relative;
	z-index: 1;
}
.voice__box01::before {
	content: '';
	position: absolute;
	top: -13px;
	left: -30px;
	width: 60px;
	height: 60px;
	background-color: #e1601c;  /* オレンジ */
	z-index: -1;
}
.voice__box02::before {
	content: '';
	position: absolute;
	top: 7px;
	right: -30px;
	width: 60px;
	height: 60px;
	background-color: #16657c;  /* オレンジ */
	z-index: -1;
}
.voice__box03::before {
	content: '';
	position: absolute;
	top: -25px;
	left: -30px;
	width: 60px;
	height: 60px;
	background-color: #0d264a;  /* オレンジ */
	z-index: -1;
}

@media screen and (max-width: 640px) {
	.voice {
		background: url("../images/sp/voice_bg@2x.jpg") no-repeat center center / cover;
		padding: 13% 0 0;
		text-align: center;
	}
	.voice h3 {
		color: #0d264a;
		position: relative;
		font-weight: 800;
		display: inline-block;
		margin-bottom: 10%;
	}
	.voice h3::before {
		content: '';
		position: absolute;
		left: -16%;
		top: -35%;
		width: 50%;
		height: 130%;
		background-image: url(../images/pc/ttl_icon.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom left;
	}
	.voice__flex {
		display: block;
		justify-content: center;
		gap: 20px;
		align-items: center;
	}
	.voice__box:nth-of-type(2) .voice__flex {
		flex-direction: row-reverse;
	}
	.voice__box:nth-of-type(2) p {
		text-align: center;
	}
	.voice__flex dl {
		text-align: justify;
		margin-top: 5%;
	}
	.voice__flex dt {
		font-size: 5.6vw;
		font-weight: 600;
		color: #fff;
		background-color: #0d264a;
		display: inline;
		padding: 1% 3%;
		line-height: 2em;
		box-decoration-break: clone;
		-webkit-box-decoration-break: clone; /* Safari対応 */
	}
	.voice__flex dd {
		background-color: #f3f3f3;
		padding: 4% 5%;
		font-size: 4.4vw;
		width: 100%;
		margin-top: 3%;
		min-height: 0;
		display: flex;
		align-items: center;
	}
	.voice__flex .txt-orange {
		font-weight: 500;
	}
	.voice__box {
		display: inline-block;
		margin-bottom: 10%;
	}
	.voice__box p {
		text-align: center;
		margin-top: 2%;
		font-size: 3.8vw;
	}
	.voice__box01, .voice__box02, .voice__box03 {
		position: relative;
		z-index: 1;
	}
	.voice__box01::before {
		content: '';
		position: absolute;
		top: -2%;
		left: -6%;
		width: 40px;
		height: 40px;
		background-color: #e1601c;  /* オレンジ */
		z-index: -1;
	}
	.voice__box02::before {
		content: '';
		position: absolute;
		top: -5%;
		right: -3%;
		width: 40px;
		height: 40px;
		background-color: #16657c;  /* オレンジ */
		z-index: -1;
	}
	.voice__box03::before {
		content: '';
		position: absolute;
		top: -3%;
		left: -3%;
		width: 40px;
		height: 40px;
		background-color: #0d264a;  /* オレンジ */
		z-index: -1;
	}
}

/* ==========================================================================
 * Information
 * ========================================================================== */
.information {
	background: url("../images/pc/information_bg.jpg") no-repeat center center / cover;
    padding: 80px 0 90px;
	text-align: center;
}
.information h3 {
	color: #fff;
	position: relative;
	font-weight: 800;
	display: inline-block;
	margin-bottom: 60px;
	letter-spacing: 0.1em;
}
.information h3::before {
	content: '';
	position: absolute;
	left: 30px;
	top: -26px;
	width: 50%;
	height: 70%;
	background-image: url(../images/pc/ttl_icon_another.png);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: bottom left;
}
.information__box {
	background-color: #fff;
	width: 640px;
	padding: 40px 40px 35px;
	display: inline-block;
	position: relative;
	z-index: 1;
}
.information__image--male {
	position: absolute;
	top: -47px;
	left: -38px;
}
.information__image--female {
	position: absolute;
	top: -60px;
	right: -39px;
}
.information__recommendation {
	display: inline-block;
}
.information__itemName--recommendation {
	background-color: #0d264a;
	color: #fff;
	font-weight: 500;
	font-size: 2rem;
	padding: 6px 10px;
	display: inline-block;
	margin-bottom: 5px;
}

.information__star {
    position: relative;
    z-index: 0;
    display: inline-block;
    white-space: nowrap;
    color: #dfdfdf;
}

.information__star:before, .information__star:after{
    content: '★★★★★';
	font-size: 40px;
}

.information__star:after {
    position: absolute;
	width: 92%; /* 4.6 */
    z-index: 1;
    top: 0;
    left: 0;
    overflow: hidden;
    white-space: nowrap;
    color: #e1601c;
}
.information__recommendation--value {
	font-size: 5rem;
	margin-top: -18px;
}
.information__annotation {
	font-size: 1.4rem;
	font-weight: 400;
	text-align: left;
}
.information__graph--flex {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.information__itemName {
	background-color: #0d264a;
	color: #fff;
	font-weight: 500;
	font-size: 2rem;
	padding: 6px 10px;
	display: inline-block;
	margin: 35px 0 20px;
	width: 260px;
}
.information__pie--chart {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 200px;
    height: 200px;
    margin: 0 auto;
    border-radius: 50%;
    background-image: radial-gradient(#fff 39%, transparent 40%), conic-gradient(#e1601c 95%, #dfdfdf 95% 100%);
	font-size: 4rem;
    font-weight: 600;
}


/* information__graph */
.information__graph {
	position: relative;
	width: 200px;
	height: 200px;
	margin: 0 auto;
}
/* 円グラフ本体 */
.information__multiple--graph {
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: conic-gradient(
		#e1601c 0% 48%,       /* 営業 48% */
		#f99c6e 48% 69%,      /* 事務 21%（48+21=69）*/
		#f4814e 69% 83%,      /* 公務員 14%（69+14=83）*/
		#f2a96d 83% 92%,      /* 販売員 9%（83+9=92）*/
		#dfdfdf 92% 100%      /* その他 8%（92+8=100）*/
	);
}
/* ラベルのコンテナ */
.information__graph--labels {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
/* 共通ラベルスタイル */
.information__graph--labels .label {
	position: absolute;
	font-size: 1.6rem;
	text-align: center;
}
/* 各ラベルの位置 */
.label--sales {
	top: 32%;
	right: 12%;
	color: #fff;
	line-height: 1.7em;
}
.label--sales .bahnschrift-b {
	font-size: 3rem;
}

.label--office {
	bottom: 9%;
	left: 22%;
	color: #fff;
	line-height: 1.7em;
}
.label--office .bahnschrift-b {
	font-size: 3rem;
}

.label--public {
	bottom: 38%;
	left: -1%;
	color: #fff;
	line-height: 1.5em;
	text-shadow:
    1px 1px 0 #f4814e,
    -1px 1px 0 #f4814e,
    1px -1px 0 #f4814e,
    -1px -1px 0 #f4814e,
    1px 0 0 #f4814e,
    -1px 0 0 #f4814e,
    0 1px 0 #f4814e,
    0 -1px 0 #f4814e;
}
.label--public .bahnschrift-b {
	font-size: 2.6rem;
}

.label--retail {
	top: 4%;
	left: 5%;
	color: #fff;
	line-height: 1.5em;
	text-shadow:
    1px 1px 0 #f2a96d,
    -1px 1px 0 #f2a96d,
    1px -1px 0 #f2a96d,
    -1px -1px 0 #f2a96d,
    1px 0 0 #f2a96d,
    -1px 0 0 #f2a96d,
    0 1px 0 #f2a96d,
    0 -1px 0 #f2a96d;
}
.label--retail .bahnschrift-b {
	font-size: 2.6rem;
}

.label--other {
	top: -4%;
	right: 50%;
	color: #6d6d6d;
	line-height: 1.2em;
}
.label--other .bahnschrift-b {
	font-size: 2.2rem;
}


.information__age--value {
	font-size: 5rem;
	margin-top: -23px;
	font-weight: 700;
}
.information__out--flex {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: -10px;
}
.information__out--flex p {
	font-size: 5rem;
	font-weight: 700;
}
.information__environment--ttl {
	margin: 40px 0 5px;
	font-size: 4rem;
}
.information__environment--ttl p {
	color: #fff;
	font-weight: 600;
	letter-spacing: .06em;
}
.information__environment--mark {
	background-color: #e1601c;
	font-size: 2.5rem;
	display: inline-block;
	padding: 0 8px;
}
.information__flex--value {
	display: flex;
	justify-content: center;
	gap: 13px;
	font-weight: 600;
}

.information__flex--value dl {
	width: 150px;
	display: flex;
	flex-direction: column;    /* 縦並び */
}

.information__flex--value dt {
	color: #fff;
	background-color: #16657c;
	font-size: 2rem;
	padding: 5px 5px;          /* 上下左右の余白 */
	text-align: center;
}

/* dd共通スタイル */
.information__flex--value dd {
	flex: 1;                   /* 残りの高さを均等に */
	display: flex;
	flex-direction: column;
	justify-content: center;   /* 上下中央 */
	align-items: center;       /* 左右中央 */
	padding: 0 5px;
}

/* 個別のdd背景 */
.information__environment--holiday dd {
	background: url("../images/pc/information_decoration_icon_calendar.jpg") no-repeat center center / cover;
	font-size: 2rem;
	color: #0d264a;
	line-height: 1.6em;
}

.information__environment--overtime dd {
	background: url("../images/pc/information_decoration_icon_clock.jpg") no-repeat center center / cover;
}

.information__environment--paid dd {
	background: url("../images/pc/information_decoration_icon_paid.jpg") no-repeat center center / cover;
}

/* 育休取得率（特殊なレイアウト） */
.information__childCare--flex {
	flex: 1;                   /* 残りの高さを埋める */
	display: flex;
	justify-content: center;   /* 左右中央 */
	align-items: center;       /* 上下中央 */
	background: url("../images/pc/information_decoration_icon_childcare.jpg") no-repeat center center / cover;
	font-size: 2rem;
	color: #0d264a;
	padding: 15px 5px;
	line-height: 1.6em;
}

.information__childCare--flex dd {
	flex: none;                /* 自動伸縮を解除 */
	padding: 5px;
}

/* フォントサイズ */
.information__environment--holiday .txt-orange, 
.information__environment--overtime .txt-orange, 
.information__environment--paid .txt-orange {
	font-size: 5rem;
}

.information__environment--childCare .txt-orange {
	font-size: 4rem;
}

@media screen and (max-width: 640px) {
	.information {
		background: url("../images/sp/information_bg@2x.jpg") no-repeat top center / cover;
		padding: 13% 0 7%;
		text-align: center;
	}
	.information h3 {
		color: #fff;
		position: relative;
		font-weight: 800;
		display: inline-block;
		margin-bottom: 10%;
		letter-spacing: 0.1em;
	}
	.information h3::before {
		content: '';
		position: absolute;
		left: 6%;
		top: -25%;
		width: 50%;
		height: 70%;
		background-image: url(../images/pc/ttl_icon_another.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom left;
	}
	.information__box {
		background-color: #fff;
		width: 100%;
		padding: 11% 5% 10%;
		display: inline-block;
		position: relative;
		z-index: 1;
	}
	.information__image--male {
		position: absolute;
		top: -6%;
		left: -12%;
		width: 21vw;
	}
	.information__image--female {
		position: absolute;
		top: -7%;
		right: -12%;
		width: 21vw;
	}
	.information__recommendation {
		display: inline-block;
	}
	.information__itemName--recommendation {
		background-color: #0d264a;
		color: #fff;
		font-weight: 500;
		font-size: 4.4vw;
		padding: 3% 5%;
		display: inline-block;
		margin-bottom: 0;
	}

	.information__star {
		position: relative;
		z-index: 0;
		display: inline-block;
		white-space: nowrap;
		color: #dfdfdf;
	}

	.information__star:before, .information__star:after{
		content: '★★★★★';
		font-size: 9vw;
	}

	.information__star:after {
		position: absolute;
		width: 92%; /* 4.6 */
		z-index: 1;
		top: 0;
		left: 0;
		overflow: hidden;
		white-space: nowrap;
		color: #e1601c;
	}
	.information__recommendation--value {
		font-size: 7.5vw;
		margin-top: -4%;
	}
	.information__annotation {
		font-size: 3.4vw;
		font-weight: 400;
		text-align: left;
		letter-spacing: -.02em;
		margin-top: 2%
	}
	.information__graph--flex {
		display: flex;
		justify-content: space-between;
		flex-wrap: wrap;
		align-items: baseline;
	}
	.information__itemName {
		background-color: #0d264a;
		color: #fff;
		font-weight: 500;
		font-size: 4.4vw;
		padding: 3% 5%;
		display: inline-block;
		margin: 15% 0 10%;
		width: 38vw;
	}
	.information__pie--chart {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 34vw;
		height: 34vw;
		margin: 0 auto;
		border-radius: 50%;
		background-image: radial-gradient(#fff 39%, transparent 40%), conic-gradient(#e1601c 95%, #dfdfdf 95% 100%);
		font-size: 7.5vw;
		font-weight: 600;
	}


	/* information__graph */
	.information__graph {
		position: relative;
		width: 34vw;
		height: 34vw;
		margin: 0 auto;
	}
	/* 円グラフ本体 */
	.information__multiple--graph {
		width: 100%;
		height: 100%;
		border-radius: 50%;
		background: conic-gradient(
			#e1601c 0% 48%,       /* 営業 48% */
			#f99c6e 48% 69%,      /* 事務 21%（48+21=69）*/
			#f4814e 69% 83%,      /* 公務員 14%（69+14=83）*/
			#f2a96d 83% 92%,      /* 販売員 9%（83+9=92）*/
			#dfdfdf 92% 100%      /* その他 8%（92+8=100）*/
		);
	}
	/* ラベルのコンテナ */
	.information__graph--labels {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
	/* 共通ラベルスタイル */
	.information__graph--labels .label {
		position: absolute;
		font-size: 3.4vw;
		text-align: center;
	}
	/* 各ラベルの位置 */
	.label--sales {
		top: 27%;
		right: 6%;
		color: #fff;
		line-height: 1.7em;
	}
	.label--sales .bahnschrift-b {
		font-size: 6.3vw;
	}

	.label--office {
		bottom: 6%;
		left: 21%;
		color: #fff;
		line-height: 1.7em;
	}
	.label--office .bahnschrift-b {
		font-size: 5.6vw;
	}

	.label--public {
		bottom: 35%;
		left: -4%;
		color: #fff;
		line-height: 1.5em;
		text-shadow:
		1px 1px 0 #f4814e,
		-1px 1px 0 #f4814e,
		1px -1px 0 #f4814e,
		-1px -1px 0 #f4814e,
		1px 0 0 #f4814e,
		-1px 0 0 #f4814e,
		0 1px 0 #f4814e,
		0 -1px 0 #f4814e;
	}
	.label--public .bahnschrift-b {
		font-size: 5vw;
	}

	.label--retail {
		top: -4%;
		left: -4%;
		color: #fff;
		line-height: 1.5em;
		text-shadow:
		1px 1px 0 #f2a96d,
		-1px 1px 0 #f2a96d,
		1px -1px 0 #f2a96d,
		-1px -1px 0 #f2a96d,
		1px 0 0 #f2a96d,
		-1px 0 0 #f2a96d,
		0 1px 0 #f2a96d,
		0 -1px 0 #f2a96d;
	}
	.label--retail .bahnschrift-b {
		font-size: 5vw;
	}

	.label--other {
		top: -7%;
		right: 44%;
		color: #6d6d6d;
		line-height: 1.2em;
	}
	.label--other .bahnschrift-b {
		font-size: 4.8vw;
	}


	.information__age--value {
		font-size: 7.5vw;
		margin-top: -10%;
		font-weight: 700;
	}
	.information__out--flex {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 2%;
		margin-top: -3%;
	}
	.information__out--flex img {
		width: 3.8vw;
	}
	.information__out--flex p {
		font-size: 7.5vw;
		font-weight: 700;
	}
	.information__environment--ttl {
		margin: 8% 0 5%;
		font-size: 6.3vw;
	}
	.information__environment--ttl p {
		color: #fff;
		font-weight: 600;
		letter-spacing: .06em;
	}
	.information__environment--mark {
		background-color: #e1601c;
		font-size: 4.4vw;
		display: inline-block;
		padding: 0 8px;
	}
	.information__flex--value {
		display: flex;
		justify-content: space-between;
		gap: 5%;
		font-weight: 600;
		flex-wrap: wrap;
	}

	.information__flex--value dl {
		width:42vw;
		display: flex;
		flex-direction: column;    /* 縦並び */
		margin-top: 0;
	}

	.information__flex--value dt {
		color: #fff;
		background-color: #16657c;
		font-size: 4.4vw;
		padding: 3%;          /* 上下左右の余白 */
		text-align: center;
		
	}

	/* dd共通スタイル */
	.information__flex--value dd {
		flex: 1;                   /* 残りの高さを均等に */
		display: flex;
		flex-direction: column;
		justify-content: center;   /* 上下中央 */
		align-items: center;       /* 左右中央 */
		padding: 0 5px;
	}

	/* 個別のdd背景 */
	.information__environment--holiday dd {
		background: url("../images/sp/information_decoration_icon_calendar@2x.jpg") no-repeat center center / cover;
		font-size: 4.4vw;
		color: #0d264a;
		line-height: 1.6em;
		min-height: 25vw;
	}

	.information__environment--overtime dd {
		background: url("../images/sp/information_decoration_icon_clock@2x.jpg") no-repeat center center / cover;
	}

	.information__environment--paid dd {
		background: url("../images/sp/information_decoration_icon_paid@2x.jpg") no-repeat center center / cover;
	}

	/* 育休取得率（特殊なレイアウト） */
	.information__childCare--flex {
		flex: 1;                   /* 残りの高さを埋める */
		display: flex;
		justify-content: center;   /* 左右中央 */
		align-items: center;       /* 上下中央 */
		background: url("../images/sp/information_decoration_icon_childcare@2x.jpg") no-repeat center center / cover;
		font-size: 4.4vw;
		color: #0d264a;
		padding: 7% 0;
		line-height: 1.6em;
	}

	.information__childCare--flex dd {
		flex: none;                /* 自動伸縮を解除 */
		padding: 5px;
	}

	/* フォントサイズ */
	.information__environment--holiday .txt-orange, 
	.information__environment--overtime .txt-orange, 
	.information__environment--paid .txt-orange {
		font-size: 12.5vw;
	}

	.information__environment--childCare .txt-orange {
		font-size: 10.9vw;
	}
}

/* ==========================================================================
 * Faq
 * ========================================================================== */
.faq {
	background: url("../images/pc/faq_bg.jpg") no-repeat top center;
	padding: 80px 0 70px;
	text-align: center;
}
.faq .inner-width {
	max-width: 700px;
	width: 90%;
	margin: 0 auto;
}
.faq h3 {
	color: #0d264a;
	position: relative;
	font-weight: 800;
	display: inline-block;
	margin-bottom: 40px;
}
.faq h3::before {
	content: '';
	position: absolute;
	left: -60px;
	top: -20px;
	width: 50%;
	height: 130%;
	background-image: url(../images/pc/ttl_icon.png);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: bottom left;
}
#faq ul {
	margin-top: 30px;
	text-align: justify;
}
#faq ul li+li{
	margin-top: 30px;
}

.faq__qaList dt {
	background: url("../images/sp/q@2x.png") 3% 50%/6% no-repeat;
	background-color: #0d264a;
	font-size: 2.4rem;
	font-weight: bold;
	color: #fff;
	padding: 17px 35px 17px 75px;
	position: relative;
	cursor: pointer;
}
.faq__qaList dt.open::before {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: 10%;
	right: 5%;
    width: 20px;
    height: 20px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(135deg);
}
.faq__qaList dt.close::after {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: -10%;
	right: 5%;
    width: 20px;
    height: 20px;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform: rotate(-45deg);
}
.faq__qaList dd {
	background: url("../images/sp/a@2x.png") 3% 50%/6% no-repeat;
	color: #333333;
	font-size: 1.8rem;
	font-weight: 500;
	padding: 25px 20px 25px 75px;
	display: none;
	text-align: justify;
}


@media screen and (max-width: 640px) {
	.faq {
		background: url("../images/sp/faq_bg@2x.jpg") no-repeat top center / 100%;
		padding: 13% 0 13%;
	}
	.faq__ttl {
		text-align: center;
		margin-bottom: -10%;
	}
	.faq h3 {
		color: #0d264a;
		position: relative;
		font-weight: 800;
		display: inline-block;
		margin-bottom: 40px;
	}
	.faq h3::before {
		content: '';
		position: absolute;
		left: -22%;
		top: -35%;
		width: 50%;
		height: 130%;
		background-image: url(../images/pc/ttl_icon.png);
		background-size: contain;
		background-repeat: no-repeat;
		background-position: bottom left;
	}
	#faq ul {
		margin-top: 6%;
	}
	#faq ul li+li{
		margin-top: 30px;
	}
	.faq__qaList dt {
		background: url("../images/sp/q@2x.png") 4% 50%/9% no-repeat;
		font-size: 4.6vw;
		font-weight: bold;
		color: #fff;
		padding: 4% 12% 4% 15%;
		position: relative;
		cursor: pointer;
		background-color: #0d264a;
	}
	.faq__qaList dt.open::before {
		content: "";
		margin: auto;
		position: absolute;
		top: 0;
		bottom: 10%;
		right: 0.9em;
		width: 12px;
		height: 12px;
		border-top: 2px solid #fff;
		border-right: 2px solid #fff;
		transform: rotate(135deg);
	}
	.faq__qaList dt.close::after {
		content: "";
        margin: auto;
        position: absolute;
        top: 0;
        bottom: -10%;
        right: 0.9em;
        width: 12px;
        height: 12px;
        border-top: 2px solid #fff;
        border-right: 2px solid #fff;
        transform: rotate(-45deg);
	}
	.faq__qaList dd {
		background: url("../images/sp/a@2x.png") 4% 42%/9% no-repeat;
		color: #333333;
		font-size: 4.6vw;
		font-weight: 500;
		padding: 4% 5% 7% 15%;
		display: none;
		text-align: justify;
	}
	.precautions {
		background-color: #eaeaea;
		text-align: center;
		padding: 5%;
		margin-top: 10%;
	}
	.precautions strong {
		font-size: 5vw;
	}
	.precautions__txt {
		text-align: justify;
	}
}


/* ==========================================================================
 * About
 * ========================================================================== */
.about {
	background: url("../images/pc/about_bg.jpg") no-repeat center center / cover;
	padding: 80px 0 65px;
	text-align: center;
	color: #fff;
}
.about h3 {
	color: #fff;
	position: relative;
	font-weight: 800;
	display: inline-block;
	margin-bottom: 40px;
}
.about h3::before {
	content: '';
	position: absolute;
	left: -60px;
	top: -20px;
	width: 50%;
	height: 130%;
	background-image: url(../images/pc/ttl_icon_another.png);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: bottom left;
}
.about__box dl {
	text-align: left;
}

.about__box.link {
	justify-content: center;
	gap: 20px;
	margin-top: 30px;
}
.about__txt {
	color: #fff;
	font-size: 1.6rem;
	font-weight: 300;
	display: inline-block;
	margin: 0 auto;
}
.about__txt dl {
	display: flex;
	margin: 10px 0;
}
.about__txt dt {
	padding-right: 15px;
	margin-right: 15px;
	width: 9.5em;
	border-right: 2px solid #ffe65e;
}
.privacyPolicy {
	display: block;
	margin-top: 30px;
	font-weight: 300;
}
.privacyPolicy a:link,
.privacyPolicy a:visited {
	color: #fff;
	text-decoration: underline
}

@media screen and (max-width: 640px) {
    .about {
        background: url("../images/sp/about_bg@2x.jpg") no-repeat top center /cover;
        padding: 13% 0 12%;
    }
    .about h3 {
        color: #fff;
        position: relative;
        font-weight: 800;
        display: inline-block;
        margin-bottom: 5%;
    }
    .about h3::before {
        content: '';
        position: absolute;
        left: -32%;
        top: -35%;
        width: 50%;
        height: 130%;
        background-image: url(../images/pc/ttl_icon_another.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: bottom left;
    }
    .about__box.content {
        flex-wrap: wrap;
    }
    .about__box.link {
        margin-top: 8vw;
    }
    .about__txt {
        color: #fff;
        font-size: 4.4vw;
        font-weight: 300;
        display: inline-block;
        margin: 0 auto;
        width: 100%;
    }
    .about__txt dl {
        display: flex;
        align-items: flex-start;
        margin: 4% 0;
    }
    .about__txt dt {
        flex-shrink: 0;
        width: 6em;
        padding-right: 4%;
        margin-right: 0;
        border-right: none;
        text-align: left;
    }
    .about__txt dd {
        flex: 1;
        text-align: left;
        border-left: 2px solid #ffe65e;
        padding-left: 4%;
    }
    .privacyPolicy {
        font-size: 3.8vw;
        padding: 0;
        margin-top: 4%;
    }
    .privacyPolicy a:link,
    .privacyPolicy a:visited {
        color: #fff;
        text-decoration: underline;
    }
}

footer {
	background-color: #16657c;
	color: #fff;
	text-align: center;
	padding: 5px;
	font-size: 1.4rem;
	font-weight: 300;
}

@media screen and (max-width: 640px) {
	footer {
		background-color: #16657c;
		color: #fff;
		text-align: center;
		padding: 2%;
		font-size: 3.8vw;
		font-weight: 300;
	}
}

.ft__cta {
	background: url("../images/sp/ft_cta_bg@2x.jpg") no-repeat top center / cover;
	padding: 6% 6%;
	position: fixed;
	bottom: 0;
	z-index: 9997;
	width: 100%;
}

.ft__cta .cta-button {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 8% 7% 6%;
	background: linear-gradient(170deg, #f6aa60 0%, #e97132 65%, #e1601c 100%);
	border: none;
	border-radius: 50px;
	cursor: pointer;
	text-decoration: none !important;
	box-shadow: 0 1.3vw 0 #011c05, 0 0 0 rgba(0, 0, 0, 0), inset 0 2px 3px rgba(255, 255, 255, 0);
	transition: all 0.2s ease;
	position: relative;
	width: 92vw;
	right: 8%;
}

.ft__cta .cta-button:hover {
	transform: translateY(2px);
	box-shadow: 
	0 2px 0 #c45c00,
	0 4px 6px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}

.ft__cta .cta-button:active {
	transform: translateY(4px);
	box-shadow: 
	0 0 0 #c45c00,
	0 2px 4px rgba(0, 0, 0, 0.3),
	inset 0 2px 3px rgba(255, 255, 255, 0.4);
}
.ft__cta .cta__sub--label {
	background-color: #fff;
	color: #ff8c00;
	font-size: 3.8vw;
	font-weight: bold;
	padding: 0 4%;
	border-radius: 20px;
	margin-bottom: 6px;
	position: absolute;
	top: -16%;
	}
.ft__cta .main-text {
	color: #fff;
	font-size: 5vw;
	font-weight: bold;
	align-items: end;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
	position: relative;
	letter-spacing: .04em;
	line-height: 1.1em;
}

.ft__cta  .main-text::before {
	content: "";
	margin: auto;
	position: absolute;
	top: 0;
	bottom: 9%;
	right: -5%;
	width: 3vw;
	height: 3vw;
	border-top: 1vw solid #fff;
	border-right: 1vw solid #fff;
	transform: rotate(45deg);
}
/* ==========================================================================
 * slick
 * ========================================================================== */

@media (max-width:640px) {
	/* スライダーの基本設定 */
	.project__flex.voice-slider {
		display: block !important;
	}
  

  
	.voice-slider .project__box {
		width: 100% !important;
		margin-bottom: 20px;
	}
  

  
	/* project__box--flexの高さ確保 */
	.voice-slider .project__box--flex {
		position: relative;
		display: block;
		overflow: visible;
	}
  
	/* slick-trackの高さを自動に */
	.voice-slider .slick-track {
		display: flex !important;
	}
  
	.voice-slider .slick-slide {
		height: auto !important;
	}

	/* スライダー全体のコンテナ */
	.voice-slider.slick-initialized {
		position: relative;
		padding-bottom: 6%; /* ナビゲーション用のスペース確保 */
	}
	
	/* ★追加：スライド間に間隔を設定 */
	.voice-slider.slick-initialized .slick-slide {
		padding: 0 10px; /* 左右に10pxの余白 */
	}
	
	/* スライドトラックの幅を調整（余白分を考慮） */
	.voice-slider.slick-initialized .slick-list {
		margin: 0 -10px; /* paddingの分だけ外側に広げる */
	}
	
	/* カードの幅を100%に保つ */
	.voice-slider.slick-initialized .project__box {
		width: 100% !important;
		margin-bottom: 20px;
	}
	
	.voice-slider.slick-initialized::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 60vw;
        height: 30vw;
        background-image: url(../images/sp/project_ex_icon@2x.png);
        background-size: contain;
        background-repeat: no-repeat;
        background-position: center;
        z-index: 10;
        pointer-events: none;
        animation: pulse 2s infinite;
    }
	.voice-slider.slick-initialized.slider-used::before {
		display: none;
	}
  
	/* ナビゲーションコンテナ（矢印+ドットを横一列に） */
	.voice-slider .slick-dots {
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		display: flex !important;
		justify-content: center;
		align-items: center;
		gap: 2%;
		padding: 10px 0;
		margin: 0;
		list-style: none;
	}
  
	/* ドットのスタイル */
	.voice-slider .slick-dots li {
		width: 12px;
		height: 12px;
		margin: 0 4px;
		padding: 0;
	}
  
	.voice-slider .slick-dots li .dot {
		display: block;
		width: 12px;
		height: 12px;
		padding: 0;
		border-radius: 50%;
		background-color: #cccccc;
		border: none;
		cursor: pointer;
		transition: background-color 0.3s ease;
	}
  
	/* slickデフォルトのbuttonスタイルを上書き */
	.voice-slider .slick-dots li button {
		width: 12px;
		height: 12px;
		padding: 0;
		border-radius: 50%;
		background-color: #cccccc;
		border: none;
		cursor: pointer;
		font-size: 0;
		line-height: 0;
	}
  
	.voice-slider .slick-dots li button::before {
		display: none !important;
	}
  
	/* アクティブなドット（青色） */
	.voice-slider .slick-dots li.slick-active .dot {
		background-color: #0d264a;
	}
  
	.voice-slider .slick-dots li.slick-active button {
		background-color: #0d264a;
	}
  
	/* 矢印ボタン共通スタイル */
	.voice-slider .slick-prev,
	.voice-slider .slick-next {
		position: absolute;
		bottom: -1%;
		top: auto;
		width: 40px;
		height: 40px;
		border: 2px solid #cccccc;
		border-radius: 50%;
		background-color: #fff;
		cursor: pointer;
		z-index: 10;
		display: flex !important;
		align-items: center;
		justify-content: center;
		transition: all 0.3s ease;
		transform: none;
	}
  
	/* 左矢印の位置 */
	.voice-slider .slick-prev {
		left: calc(50% - 100px);
	}
  
	/* 右矢印の位置 */
	.voice-slider .slick-next {
		right: calc(50% - 100px);
	}
  
	.voice-slider .slick-prev:hover,
	.voice-slider .slick-next:hover {
		border-color: #0d264a;
	}
  
	.voice-slider .slick-prev:focus,
	.voice-slider .slick-next:focus {
		outline: none;
	}
  
	/* 矢印ボタン内の画像を非表示にして、CSSで矢印を作成 */
	.voice-slider .slick-prev img,
	.voice-slider .slick-next img {
		display: none;
	}
  
	.voice-slider .slick-prev::before,
	.voice-slider .slick-next::before {
		content: '';
		display: block;
		width: 10px;
		height: 10px;
		border-top: 2px solid #666;
		border-right: 2px solid #666;
		background: transparent;
		font-size: 0;
		line-height: 0;
		opacity: 1;
		color: transparent;
	}
  
	/* 左矢印 */
	.voice-slider .slick-prev::before {
		transform: rotate(-135deg);
		margin-left: 4px;
	}
  
	/* 右矢印 */
	.voice-slider .slick-next::before {
		transform: rotate(45deg);
		margin-right: 4px;
	}

	.voice-slider .slick-prev:hover::before,
	.voice-slider .slick-next:hover::before {
		border-color: #0d264a;
	}
}