/* CSS Document */
/*
Theme Name: eスタジアム採用サイト
Theme URI: https://example.com/your-theme-url
Description: 「XXXXXX」のオリジナルテーマ / 「XXXXXX」 original theme｜20XX年XX月のリリース版テーマファイルです。｜Designer: XXXX.XXXXXXX
Version: 1.0
Author: HARUNO design.
Author URI: https://haruno.design
Text Domain: haruno-design-original-thema
Tags: blog, e-commerce, one-column, two-columns, left-sidebar, right-sidebar, custom-menu
*/

@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Red+Hat+Display:ital,wght@0,300..900;1,300..900&display=swap');

/* Impact (通常版) */
@font-face {
  font-family: "ImpactLocal";
  src: url("./fonts/impact.ttf") format("truetype");
  font-display: swap;
}

/* Impacted */
@font-face {
  font-family: "ImpactedLocal";
  src: url("./fonts/Impacted.ttf") format("truetype");
  font-display: swap;
}

/* Unicode Impact */
@font-face {
  font-family: "UnicodeImpact";
  src: url("./fonts/unicode.impact.ttf") format("truetype");
  font-display: swap;
}

.font-en {
    font-family: "Noto Sans", sans-serif;
    font-weight: 400;
}
:root {
    --main: #0074C1;
    --sub: #D10000;
    --lightgray: #F5F6F8;
    --black: #160C1C;
    --bg_black: #1F1F1F;
    --bg-sub: rgba(182, 189, 199, 0.1);
    --grad1: linear-gradient(47deg, rgba(255, 40, 40, 1) 20%, rgba(215, 0, 0, 1) 100%);
    --bordergray: #E9EBF2;
    --borderGrad: linear-gradient(to right, #7f7fff, #7fff7f);
    --text-color: #3C3C3C;
}

.bg-sub {
    background: var(--bg-sub);
}
.bg-white {
    background: white;
}

/*--common--*/
.inner1180 {
	max-width: 1180px;
	width: 100%;
	margin: auto;
}
.container--1140 {
	max-width: 1180px;
    width: 100%;
    margin: auto;
}

.w100p {
	max-width: 100% !important;
	width: 100% !important;
}

.pt0 {
	padding-top: 0px !important;
}

.pb0 {
	padding-bottom: 0px !important;
}

.pb120 {
	padding-bottom: 120px !important;
}

.pb150 {
	padding-bottom: 150px !important;
}

.mt0 {
	margin-top: 0px !important;
}

.mb25 {
	margin-bottom: 25px !important;
}

.mb0 {
	margin-bottom: 0px !important;
}

.al_c {
	text-align: center !important;
}

.al_l {
	text-align: left !important;
}

.pc {
	display: block;
}

.sp {
	display: none;
}

@media (max-width: 1180px) {
	.inner1180 {
		width: 90%;
	}
	.container--1140 {
		width: 90%;
	}
}

@media (max-width: 768px) {
	.pc {
		display: none;
	}

	.sp {
		display: block;
	}
}

/*--ページネーション--*/
.wp-pagenavi {
    display: flex;
    justify-content: center;
    margin-top: 50px;
    gap: 15px;
}

.wp-pagenavi a,
.wp-pagenavi span {
    font-family: "Montserrat", sans-serif;
    font-size: 20px;
}

.wp-pagenavi span.current {
    background: var(--main);
    color: white;
    border: 0;
}

.wp-pagenavi span,
.wp-pagenavi a {
    border: 0;
    color: var(--main);
    width: 40px;
    height: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50px;
}

a.nextpostslink,
a.previouspostslin,
a.previouspostslink {
    border: 1px solid var(--main);
}

span.pages,
span.extend,
span.extend+a.larger {
    display: none;
}

@media screen and (max-width:667px) {

    .wp-pagenavi a,
    .wp-pagenavi span {
        font-size: 16px;
    }

    .wp-pagenavi {
        gap: 5px;
    }
}

/*----*/

/*--囲い要素--*/
article {
    padding: 60px 120px;
}
.section-padding {
    padding: 120px 0px 144px 0px;
}

.section-padding-02 {
    padding: 300px 0px 100px 0px;
}

.section-padding-03 {
    padding: 300px 0px 212px 0px;
}

.container {
    max-width: 1200px;
    margin: auto;
}
.flex-gap-110 {
    display: flex;
    flex-direction: column;
    gap: 110px;
}
.flex-gap-120 {
    display: flex;
    flex-direction: column;
    gap: 120px;
}

@media (max-width: 768px) {
	.section-padding {
		padding: 60px 0 80px !important;
	}
	.flex-gap-110 {
		gap: 50px;
	}
	.flex-gap-120 {
		gap: 60px;
	}
	.section-padding-02 {
		padding: 220px 0px 80px 0px !important;
	}
	.section-padding-03 {
		padding: 220px 0px 80px 0px !important;
	}
}

/*----*/

* {
    font-family: "Noto Sans JP", sans-serif;
    font-style: normal;
    line-height: 1.5em;
    color: #3C3C3C;
}

.header {
	position: fixed;
	left: 0;
	right: 0;
    display: flex;
	align-items: center;
    justify-content: space-between;
    padding: 58px 0px 58px 0px;
    width: 90%;
    margin: 0 auto;
	z-index: 999;
}
.header::before {
	content: '';
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	height: 100%;
	background-color: rgba(255, 255, 255, 0.8); /* ← 80% 白透過 */
  	z-index: -1;
}
body:has(.global-nav.active) .header {
	margin-right: 0px;
    padding-left: 50px;
	width: 100%;
}
.header-top-line {
    display: flex;
    position: absolute;
    width: 100vw;
    height: 9px;
    z-index: 9999;
    bottom: 0px;
    right: 50%;
    transform: translateX(50%);
}
.header-top-line span:nth-child(1) {
    width: 100%;
    height: 100%;
    background: #FFD600;
}
.header-top-line span:nth-child(2) {
    width: 100%;
    height: 100%;
    background: #AEC720;
}
.header-top-line span:nth-child(3) {
    width: 100%;
    height: 100%;
    background: #0079BE;
}
.header .header-logo img {
	position: relative;
    height: 59px;
    width: auto;
	z-index: 10001;
}
.header-menu-wrapper {
    display: flex;
    gap: 12px;
    align-items: center;
}
.header-nav {
    display: flex;
    gap: 24px;
    align-items: center;
}
.header-nav li a {
    display: flex;
    gap: 5px;
    align-items: center;
    font-size: 14px;
    letter-spacing: 0.024em;
    color: var(--text-color);
    font-weight: 700;
	transition: .3s;
}
.header-nav li:hover a {
	transition: .3s;
	color: #0074C1;
}
.header-nav li:hover p {
	transition: .3s;
	color: #0074C1;
}
.header-nav li a svg {
	fill: var(--text-color);
	transition: .3s;
}
.header-nav li:hover a svg {
	fill: #0074C1;
	transition: .3s;
}
.header-nav li a.header-nav-primary-button {
    position: relative;
    background: var(--main);
    border: 1px solid var(--main);
    color: white;
    padding: 0px 19px;
    border-radius: 100vh;
    letter-spacing: 0.06em;
    height: 40px;
    transition: color .3s;
    overflow: hidden;
	font-size: 14px;
}
.header-nav li a.header-nav-primary-button p {
    position: relative;
    z-index: 2;
	color: white;
}
.header-nav li a.header-nav-primary-button::before {
    content: "";
    position: absolute;
    left: -100%;
    top: 0;
    width: 100%;
    height: 100%;
    background: white;
    z-index: 1;
    transition: left .3s;
    border-radius: 100vh;
}

.header-nav li a.header-nav-primary-button:hover::before {
    left: 0;
}

.header-nav li a.header-nav-primary-button:hover p {
    color: var(--main);
    transition: color .3s;
}

.header-nav li a.header-nav-primary-button span {
    position: relative;
    z-index: 2;
}
.header-nav li a.header-nav-secondary-button {
    color: var(--main);
    border: 1px solid var(--main);
    font-style: italic;
    font-size: 21px;
    font-weight: 700;
    padding: 0px 19px;
    border-radius: 100vh;
    letter-spacing: 0.048em;
    height: 40px;
    margin-left: -15px;
    position: relative;
    overflow: hidden;
    transition: color .3s;
}

.header-nav li a.header-nav-secondary-button p {
    color: var(--main);
}

.header-nav li a.header-nav-secondary-button::before {
    content: "";
    position: absolute;
    left: -100%;
    top: 0;
    width: 100%;
    height: 100%;
    background: var(--main);
    z-index: 1;
    transition: left .3s;
    border-radius: 100vh;
}

.header-nav li a.header-nav-secondary-button:hover::before {
    left: 0;
}

.header-nav li a.header-nav-secondary-button:hover p {
    color: #fff;
    transition: color .3s;
}

.header-nav li a.header-nav-secondary-button span,
.header-nav li a.header-nav-secondary-button p {
    position: relative;
    z-index: 2;
}
.header-nav li img {
    width: 14px;
    height: 14px;
}

/* ハンバーガーアイコンのコンテナ */
.header-hamburger {
  	position: relative;
  	width: 48px;
  	height: 48px;
  	cursor: pointer;
  	z-index: 10000;
	display: none;
}
.header-hamburger.active::after {
	opacity: 0;
}
/* SVGアイコン */
.hamburger-icon {
  	width: 100%;
  	height: 100%;
	position: relative;
	z-index: 99999;
}

/* 線の共通スタイル */
.hamburger-icon .line {
  fill: none; /* 線の中を塗りつぶさない */
  stroke: #0074C1; /* 線の色 */
  stroke-width: 4; /* 線の太さ */
  /* アニメーションのトランジション */
  transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
              stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
}
/* activeクラスが付与された時の色を変更 */
.header-hamburger.active .line {
  stroke: #597A8E; /* クリックした時の色 */
}

/* 線の初期状態 */
.hamburger-icon .top {
  stroke-dasharray: 60 207;
}

.hamburger-icon .middle {
  stroke-dasharray: 60 60;
}

.hamburger-icon .bottom {
  stroke-dasharray: 60 207;
}

/* activeクラスが付与された時のアニメーション */
.header-hamburger.active .top {
  stroke-dasharray: 90 207;
  stroke-dashoffset: -134;
}

.header-hamburger.active .middle {
  stroke-dasharray: 1 60;
  stroke-dashoffset: -30;
}

.header-hamburger.active .bottom {
  stroke-dasharray: 90 207;
  stroke-dashoffset: -134;
}
.global-menu-bg {
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 0vw;
	height: 0vh;
	background: white;
	transition: .3s;
	z-index: -1;
}
.global-menu-bg.active {
	width: 200vw;
	height: 250vh;
	transition: .3s;
}
.global-nav {
  	position: fixed;
  	top: 259px;
  	width: 90%;
  	max-width: 1080px;
  	z-index: 99999;
  	opacity: 0;
  	pointer-events: none;
  	transition: opacity 0s 0s;
  	overflow-y: scroll; /* ← スクロールはできる */
  	height: calc(100dvh - 200px);
  	max-height: calc(100dvh - 200px);
  	-webkit-overflow-scrolling: touch;
  	padding-bottom: calc(24px + env(safe-area-inset-bottom));

  	scrollbar-width: none;   /* Firefox */
  	-ms-overflow-style: none; /* IE, Edge */
}
.global-nav::-webkit-scrollbar {
  	display: none;
}
.global-nav.active {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.3s .5s;
}
.fv-main-gallery {
    position: relative;
	padding-top: 265px;
}
.fv-main-copy-text {
    position: absolute;
    bottom: -20px;
    left: 50%;
    transform: translateX(-50%);
    max-width: 1180px;
    width: 100%;
    height: auto;

	font-family: "Red Hat Display", sans-serif;
	font-style: italic;
	font-weight: 800;
	font-size: 85px;
    line-height: 1.2;
    color: white;
	text-shadow: 4px 4px 6px rgba(0,0,0,0.5);
}
.fv-main-copy-text span {
	color: #0074C1;
}
.gallery-slider {
  overflow: hidden;
  width: 100%;
  position: relative;
  height: 60vh;
  min-height: 320px;
}

.gallery-track {
  display: flex;
  height: 100%;
}

.gallery-track img {
  width: 40vw;
  height: 100%;
  object-fit: cover;
  flex-shrink: 0;
  border-radius: 30px;
  margin-right: 15px; /* gapの代わり */
}
.top-message-block {
	display: flex;
	align-items: center;
    padding: 63px 0px 190px 0px;
    max-width: 1180px;
    width: 100%;
    margin: auto;
}
.top-message-block .motion-img {
	max-width: 30vw;
	width: 100%;
	height: auto;
}
.top-message-block .motion-img video {
	width: 100%;
	transform: translateX(10%);
}

.top-message-area {
    max-width: 30vw;
}
.top-message {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 63px;
	width: 100%;
}
.top-message-title {
    font-size: 45px;
    font-weight: 700;
    color: var(--text-color);
    letter-spacing: 0.066em;
    line-height: 1;
}
.par-normal {
    font-size: 18px;
	font-weight: 500;
    line-height: 1.6;
    color: var(--text-color);
    letter-spacing: 0.09em;
	width: 100%;
	max-width: 100%;
}

@media screen and (max-width: 1280px) {
	.header-hamburger {
		display: block;
	}
	.fv-main-copy-text {
		width: 90%;
	}
	.top-message-block {
		width: 90%;
	}
	.top-message-block {
		flex-direction: column;
		padding: 30px 0 80px;
	}
	.top-message-block .motion-img {
		order: 1;
		max-width: 100%;
	}
	.top-message-block .motion-img video {
		transform: unset;
	}
	.top-message {
		order: 2;
		gap: 30px;
	}
	.par-normal {
		max-width: 100% !important;
		width: 100%;
	}
}

@media (max-width: 768px) {
	body:has(.global-nav.active) .header {
		margin-right: auto;
		padding-left: unset;
		width: 90%;
	}
	.global-nav {
		top: 200px;
	}
	.header .header-logo img {
		height: 60px;
	}
	.fv-main-gallery {
		padding-top: 210px;
	}
  	.top-message-title {
    	font-size: 24px;
  	}
	.par-normal {
  		font-size: 14px;
    	letter-spacing: 0.09em;
    	line-height: 1.6;
  	}
	.fv-main-copy-text {
		font-size: 42px;
    	line-height: 1.3;
    	text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
	}
}

.link-button {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    font-size: 18px;
    font-weight: 700;
    font-style: italic;
    letter-spacing: 0.06em;
    line-height: 54px;
    color: var(--text-color);
    padding: 15px 33px;
    border: 1px solid var(--text-color);
    border-radius: 100vh;
    background: #F8F8F8;
    position: relative;
    overflow: hidden;
    transition: color 0.3s;
    line-height: 1;
    width: 253px;
}

@media (max-width: 768px) {
	.header {
		width: 90%;
	  	padding: 40px 0px;
	}
	.link-button {
		width: 100%;
	}
	.link-button.work {
		display: none;
	}
}

.link-button::before {
    content: "";
    position: absolute;
    left: -100%;
    top: 0;
    width: 100%;
    height: 100%;
    background: var(--main);
    z-index: 1;
    transition: left 0.3s;
    border-radius: 100vh;
}

.link-button:hover::before {
    left: 0;
}

.link-button span,
.link-button p,
.link-button svg {
    position: relative;
    z-index: 2;
    width: 100%;
    text-align: center;
}

/* SVGの色を通常時とホバー時で切り替え */
.link-button svg {
    width: 20px;
    height: 20px;
    vertical-align: middle;
}
.link-button svg path {
    fill: var(--text-color);
    transition: fill 0.3s;
}
.link-button:hover svg path {
    fill: #fff;
}

.link-button:hover {
    transition: color 0.3s;
    border: 1px solid var(--main);
}
.link-button:hover p {
    color: #fff;
}
.head2-wrapper {
    display: flex;
    position: relative;
	padding-bottom: 33px;
    max-width: 1180px;
    width: 100%;
    margin: auto;
    align-items: flex-end;
    justify-content: space-between;
}
.head2-inner {
    display: flex;
    flex-direction: column;
    gap: 15px;
    position: relative;
}
.head2-wrapper .en-label p {
    font-size: 27px;
    letter-spacing: 0.09em;
    line-height: 37px;
    font-weight: 100;
    font-style: italic;
}
.head2-wrapper .head2 {
    font-size: 45px;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 0px;
}

.contents-title_wrapper .head2 {
	font-size: 45px;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 61px;
}

@media (max-width: 1180px) {
	.head2-wrapper {
		width: 90%;
	}
}
@media (max-width: 768px) {
	.head2-wrapper {
		padding-bottom: 28px;
	}
  	.head2-wrapper .en-label p {
    	font-size: 20px;
    	line-height: 28px;
  	}
	.head2-wrapper .head2 {
		font-size: 24px;
		line-height: 1.6;
	}
}
.head2-wrapper .head2-border-bottom {
    display: flex;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 3px;
    width: 100%;
}
.head2-wrapper .head2-border-bottom span:nth-child(1) {
    background: #FFD600;
    width: 100%;
}
.head2-wrapper .head2-border-bottom span:nth-child(2) {
    background: #AEC720;
    width: 100%;
}
.head2-wrapper .head2-border-bottom span:nth-child(3) {
    background: #0079BE;
    width: 100%;
}

.pankuzu {
	font-size: 13px;
	line-height: 24px;
	letter-spacing: 0.09em;
	color: #707070;
	margin-top: 20px;
	white-space: nowrap;

	display: flex;
	align-items: center;
	gap: 9px;
}

.pankuzu a:hover  {
	color: #0074C1;
	transition: .3s;
}

.pankuzu::before {
	content: '';
	display: block;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #0074C1;
	flex-shrink: 0;
}

.en-title {
	font-family: "Red Hat Display", sans-serif;
	font-size: 150px;
	font-style: italic;
	letter-spacing: 0.12em;
	color: #F8F8F9;
	position: absolute;
	bottom: -52px;
	right: 0px;
	z-index: -9999;
}

.progress-wrapper {
    width: 100%;
    height: 2px;
    overflow: hidden;
	position: absolute;
	bottom: 0px;
}

.progress-bar {
  height: 100%;
  width: 100%;
  background: linear-gradient(
    to right,
    #FFD600 0%, #FFD600 33.333%,
    #AEC720 33.333%, #AEC720 66.666%,
    #0079BE 66.666%, #0079BE 100%
  );
  transform: scaleX(0);
  transform-origin: left;
}

.progress-bar.play {
  animation: grow .6s linear forwards;
}

@keyframes grow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

@media screen and (max-width: 1180px) {
/*
    .header {
        padding: 40px 0px;
    }
*/
	.gallery-track img {
		width: 80vw;
	}
}

@media screen and (max-width: 1280px) {
	.header-nav {
        display: none;
    }
}

@media screen and (max-width: 768px) {
	.en-title {
		font-size: 42px;
        bottom: -15px;
	}
}

/*
固定ページ
------------------------------------*/
.page {
	display: flex;
	flex-direction: column;
	gap: 30px;
	padding-block: 300px 140px;
}
.singleContents .singleTitle {
    font-size: 24px;
    line-height: 42px;
    letter-spacing: 0.1em;
    font-weight: 400;
}
.singleContents h2 {
    font-weight: 400;
    font-size: 21px;
    letter-spacing: 0.03em;
    padding: 12px 20px;
    line-height: 1.4em;
    border-left: 6px solid #0074C1;
    background: #F8F8F8;
}
.singleContents h3 {
    font-family: 'Shippori Mincho', serif;
    font-size: 21px;
    letter-spacing: 0.03em;
    padding-bottom: 12px;
    line-height: 1.4em;
    border-bottom: 2px solid #0074C1;
    font-weight: 400;
}
.singleContents p {
    font-size: 15px;
    line-height: 1.6;
    letter-spacing: 0.08em;
    font-weight: 300;
}
.singleContents ol {
    list-style: decimal;
    display: flex;
    flex-direction: column;
    line-height: 1.6;
    font-size: 15px;
    gap: 12px;
    margin-left: 20px;
}
.singleContents a {
   	color: #0000EE;
}

@media screen and (max-width: 768px) {
	.singleContents h2 {
		font-size: 20px;
	}
	.singleContents p {
		font-size: 14px;
	}
	.singleContents ol {
		font-size: 14px;
	}
	.singleContents h3 {
		font-size: 20px;
	}
	.wp-block-list {
		font-size: 14px;
	}
}


/*------   -------*/

.work-lists {
    display: flex;
    gap: 77px 48.5px;
    flex-wrap: wrap;
    width: 100%;
    max-width: 1180px;
    margin: auto;
}
.work-lists li {
    width: Calc((100% - 97px)/3);
}
.work-lists li a .work-item {
    width: 100%;
    display: flex;
    gap: 1.5px;
}
.work-lists li a .work-item .image-and-title {
    display: flex;
    flex-direction: column;
    gap: 17px;
    width: 100%;
}
.image-wrapper {
	display: flex;
	gap: 3px;
}
.image-caption {
	writing-mode: vertical-rl;
	font-weight: 600;
	font-style: italic;
	font-size: 18px;
	line-height: 24px;
	letter-spacing: 0.09em;
}
.work-lists li a .work-item .image-and-title .image {
    position: relative;
    width: 100%;
    height: auto;
    overflow: hidden;
}
.work-lists li a .work-item .image-and-title .image::before {
    display: block;
    content: "";
    padding-top: 86.48%;
}
.work-lists li a .work-item .image-and-title .image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 30px 0px 0px 0px;
	border: 1px solid #597A8E;
}
.work-lists li a .work-item .image-and-title .image img:nth-child(2) {
	transform: translateX(110%) rotate(10deg);
	opacity: 0;
	transition: .3s;
}
.work-lists li:hover a .work-item .image-and-title .image img:nth-child(2) {
	transform: translateX(0%) rotate(0deg);
	opacity: 1;
	transition: .8s;
}
.work-lists li a .work-item .image-and-title .title-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.work-lists li a .work-item .image-and-title .title-wrapper .work-title {
    position: relative;
    font-size: 18px;
    letter-spacing: 0.09em;
    line-height: 24px;
    padding-left: 59px;
	color: var(--text-color);
}
.work-lists li:nth-child(1) a .work-item .image-and-title .title-wrapper .work-title::before {
    content: "01";
}
.work-lists li:nth-child(2) a .work-item .image-and-title .title-wrapper .work-title::before {
    content: "02";
}
.work-lists li:nth-child(3) a .work-item .image-and-title .title-wrapper .work-title::before {
    content: "03";
}
.work-lists li:nth-child(4) a .work-item .image-and-title .title-wrapper .work-title::before {
    content: "04";
}
.work-lists li:nth-child(5) a .work-item .image-and-title .title-wrapper .work-title::before {
    content: "05";
}
.work-lists li:nth-child(6) a .work-item .image-and-title .title-wrapper .work-title::before {
    content: "06";
}
.work-lists li a .work-item .image-and-title .title-wrapper .work-title::before {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0px;
    font-size: 39px;
    letter-spacing: -0.04em;
    line-height: 68px;
    color: #707070;
    opacity: 0.21;
}
.work-lists li a .work-item .image-and-title .title-wrapper .button {
	position: relative;
    width: 30px;
    height: 30px;
	border-radius: 100vh;
	transition: .3s;
}
.work-lists li a .work-item .image-and-title .title-wrapper .button::before {
	position: absolute;
	content: "";
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 100%;
	height: 100%;
	border-radius: 100vh;
	background: white;
	border: 1px solid var(--text-color);
	transition: .3s;
}
.work-lists li:hover a .work-item .image-and-title .title-wrapper .button::before {
	width: 0%;
	height: 0%;
	border: 0px solid var(--text-color);
	transition: .3s;
}
.work-lists li a .work-item .image-and-title .title-wrapper .button::after {
	position: absolute;
	content: "";
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 0%;
	height: 0%;
	border-radius: 100vh;
	background: #0074C1;
	transition: .3s;
	z-index: -1;
}
.work-lists li:hover a .work-item .image-and-title .title-wrapper .button::after {
	width: 100%;
	height: 100%;
	transition: .3s;
}
.work-lists li a .work-item .image-and-title .title-wrapper .button svg {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
    width: 16px;
    height: 16px;
	transition: .3s;
}
.work-lists li:hover a .work-item .image-and-title .title-wrapper .button svg {
	transition: .3s;
	fill: white;
}
.work-lists li a .work-item .en-title {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: 18px;
    letter-spacing: 0.09em;
    line-height: 24px;
    font-weight: 600;
    font-style: italic;
    white-space: nowrap;
    margin-left: 4px; /* 写真グループの横に余白を追加 */
    transform: none; /* rotateは不要 */
    display: flex;
    align-items: center;
}

@media (max-width: 1180px) {
	.work-lists {
		width: 90%;
	}
}

@media (max-width: 768px) {
	.page {
		padding-block: 220px 140px;
	}
	.work-lists {
		gap: 32px;
	}
}

@media (max-width: 1024px) {
  	.work-lists li {
    	flex: 1 1 calc((100% - 48.5px) / 2);
  	}
}

@media (max-width: 640px) {
  	.work-lists li {
    	flex: 1 1 100%;
  	}
}
.interview-slider {
    position: relative;
    width: 100%;
    max-width: 1180px;
    margin: auto;
}
.interview-gallery {
    display: flex;
    gap: 24px;
    padding: 0px 50px;
}
.interview-gallery li a {
    display: flex;
    flex-direction: column;
    gap: 44px;
    justify-content: center;
	align-items: center;
}
.interview-gallery li a .interview-image {
    position: relative;
    width: 100%;
}
.interview-gallery li a .interview-image::before {
    content: "";
    display: block;
    padding-top: 120%;
}
.interview-gallery li a .interview-image .person-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: bottom;
}
.interview-gallery li a .interview-image .arrow {
    position: absolute;
    left: 50%;
    bottom: 0px;
    transform: translate(-50%,50%);
    height: 39px;
    width: 39px;
}
.interview-gallery li a .interview-image .arrow::before {
	content: "";
	position: absolute;
	top: 50%;
    left: 50%;
	transform: translate(-50%,-50%);
	height: 39px;
    width: 39px;
	background: white;
	border: 1px solid var(--text-color);
	border-radius: 100vh;
	transition: .3s;
}
.interview-gallery li:hover a .interview-image .arrow::before {
	transition: .3s;
	height: 0px;
    width: 0px;
}
.interview-gallery li a .interview-image .arrow::after {
	content: "";
	position: absolute;
	top: 50%;
    left: 50%;
	transform: translate(-50%,-50%);
	height: 0px;
    width: 0px;
	background: #0074C1;
	border-radius: 100vh;
	transition: .3s;
}
.interview-gallery li:hover a .interview-image .arrow::after {
	height: 39px;
    width: 39px;
	transition: .3s;
}
.interview-gallery li a .interview-image .arrow svg {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 16px;
	height: 16px;
	z-index: 10;
}
.interview-gallery li:hover a .interview-image .arrow svg {
	transform: .3s;
	fill: white;
}
.interview-gallery li a .interview-text {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    text-align: center;
}
.interview-gallery li a .interview-text .interview-post {
    font-size: 15px;
    letter-spacing: 0.048em;
    line-height: 24px;
    font-weight: 400;
    color: #707070;
}
.interview-gallery li a .interview-text .interview-name {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.048em;
    line-height: 49px;
}
@media (max-width: 768px) {
	.interview-gallery {
		padding: 0px;
		width: 90%;
		margin: auto;
	}
	.interview-gallery li a .interview-text .interview-name {
		font-size: 20px;
		line-height: 1.4;
	}
}
.interview-gallery li:hover a .interview-text .interview-post,
.interview-gallery li:hover a .interview-text .interview-name {
	color: #0074C1;
	transition: .3s;
}
.slider-prev-button {
    position: absolute;
    left: 0px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
}
.slider-next-button {
    position: absolute;
    right: 0px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
}
.slider-prev-button img,
.slider-next-button img {
    width: 100%;
    height: 100%;
}
.cover-section {
    position: relative;
    display: flex;
    gap: 0;
    width: 100%;
}
.cover-section.reversible {
    margin-top: 140px;
}
.cover-section .cover-section-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 40%;
    height: 100%;
    flex-shrink: 0;
    border-radius: 30px 0px 0px 30px;
    overflow: hidden;
}
.cover-section.reversible .cover-section-img {
    position: absolute;
    top: 0;
    left: auto;
    right: 0;
    width: 40%;
    height: 100%;
    flex-shrink: 0;
    border-radius: 30px 0px 0px 30px;
    overflow: hidden;
}
.cover-section .cover-section-img img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.cover-section .cover-section-contents {
    width: 100%;
    max-width: 1180px;
    margin: auto;
}
.cover-section .cover-section-contents .cover-section-inner {
    display: flex;
    flex-direction: column;
    gap: 60px;
    padding: 70px 0px 85px 0px;
    width: 55%;
    margin: auto 0px auto auto;
}
.cover-section.reversible .cover-section-contents .cover-section-inner {
    display: flex;
    flex-direction: column;
    gap: 60px;
    padding: 70px 0px 85px 0px;
    width: 55%;
    margin: auto auto auto 0px;
}
.sp_image {
	aspect-ratio: 1 / 1;
    width: 100%;
}
.cover-section-contents .head2-wrapper {
    width: 100%;
}
.cover-section-desc {
    font-size: 16px;
    letter-spacing: 0.09em;
    line-height: 32px;
    font-weight: 500;
}
.link-buttons {
    display: flex;
	flex-wrap: wrap;
    gap: 58px;
}
@media (max-width: 1180px) {
	.cover-section .cover-section-contents {
		width: 90%;
	}
}
@media (max-width: 768px) {
	.cover-section-desc {
		font-size: 14px;
	}
	.cover-section .cover-section-img {
		display: none;
	}
	.cover-section .cover-section-contents .cover-section-inner {
		margin: 0px;
		width: 100%;
		align-items: center;
		padding: 60px 0 80px;
		gap: 50px;
	}
	.cover-section.reversible {
		margin: 0px;
	}
	.cover-section.reversible .cover-section-contents .cover-section-inner {
		gap: 50px;
		align-items: center;
		margin: 0px;
		width: 100%;
		padding: 60px 0 80px;
	}
	.link-buttons {
		justify-content: center;
		gap: 28px;
	}
	.slider-prev-button {
		left: 15px;
	}
	.slider-next-button {
		right: 15px;
	}
}
.main-cta-button {
	position: relative;
    display: flex;
    flex-direction: column;
	align-items: center;
    gap: 13px;
    width: 100%;
    max-width: 1180px;
    margin: 150px auto 140px;
    padding: 38px;
    color: white;
    border-radius: 100vh;
    text-align: center;
    text-decoration: none;
	background: linear-gradient(90deg, #0074c1 16%, #34b9c8 84%);
}
.main-cta-button::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 100vh;
	background: linear-gradient(90deg, #34b9c8 16%, #0074c1 84%);
	transition: .6s;
}
.main-cta-button:hover::before {
	opacity: 0;
	transition: .6s;
}
.main-cta-button p {
	position: relative;
}
.main-cta-button p:nth-child(1) {
    font-size: 48px;
    font-weight: 700;
    font-style: italic;
    letter-spacing: 0.06em;
    line-height: 36px;
	color: white;
	width: 100%;
}
.main-cta-button p:nth-child(2) {
    font-size: 18px;
    font-weight: 300;
    letter-spacing: 0.111em;
    line-height: 24px;
	color: white;
}
@media (max-width: 1180px) {
	.main-cta-button {
		width: 90%;
	}
}
@media (max-width: 768px) {
	.main-cta-button {
		margin: 80px auto;
    	padding: 20px 16px;
		margin-top: 0px;
	}
  	.main-cta-button p:nth-child(1) {
    	font-size: 13px;
    	line-height: 1.4;
    	letter-spacing: 0.05em;
  	}
	.main-cta-button p:nth-child(2) {
		font-size: 13px;
    	line-height: 1.4;
    	letter-spacing: 0.05em;
	}
	.main-cta-button__ja {
		line-height: 6px !important;
	}
}
.global-nav .main-cta-button {
	position: relative;
    display: flex;
    flex-direction: column;
    gap: 7px;
    width: 100%;
    max-width: 593px;
    margin: 83px auto 27px 0px;
    padding: 19px;
    color: white;
    border-radius: 100vh;
    text-align: center;
    text-decoration: none;
	background: linear-gradient(90deg, #0074c1 16%, #34b9c8 84%);
}
.global-nav .main-cta-button::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 100vh;
	background: linear-gradient(90deg, #34b9c8 16%, #0074c1 84%);
	transition: .6s;
}
.global-nav .main-cta-button:hover::before {
	opacity: 0;
	transition: .6s;
}
.global-nav .main-cta-button p {
	position: relative;
}
.global-nav .main-cta-button p:nth-child(1) {
    font-size: 24px;
    font-weight: 700;
    font-style: italic;
    letter-spacing: 0.096em;
    line-height: 33px;
}
.global-nav .main-cta-button p:nth-child(2) {
    font-size: 8px;
    font-weight: 300;
    letter-spacing: 0.111em;
    line-height: 11px;
}
.global-description {
    font-size: 16px;
    line-height: 28px;
	color: #597A8E;
}
.global-description span {
    font-size: 20px;
    line-height: 28px;
    letter-spacing: 0em;
    font-weight: 500;
	color: #597A8E;
}

.global-social {
	display: flex;
	gap: 20px;
	margin-top: 46px;
}


/*
interview
------------------------------------*/

.interview-gallery-grid {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 63px 73px;
}

.w_unset li {
	width: unset !important;
}

@media (max-width: 768px) {
	.interview-gallery-grid {
		grid-template-columns: 1fr 1fr;
		gap: 25px 28px;
	}
}

/*
interview-single.php
------------------------------------*/

.interview {
	display: flex;
	gap: 130px;
	margin-bottom: 48px;
}

.interview .pankuzu {
	margin-bottom: 137px;
}

.interview  img {
	max-width: 767px;
	width: 100%;
	min-height: 653px;
	border-radius: 66px;
	object-fit: cover;
}

.interview__position {
	display: flex;
	flex-direction: column;
	gap: 15px;
	margin-bottom: 25px;
}

.interview__position-ja {
	font-size: 21px;
	font-weight: 300;
	line-height: 35px;
	letter-spacing: 0.09em;
	color: #707070;
}

.interview__name-ja {
	font-size: 57px;
	font-weight: 700;
	line-height: 78px;
	letter-spacing: 0.09em;
	margin-bottom: 26px;
}

.interview__name-en {
	font-size: 30px;
	font-style: italic;
	font-weight: 200;
	line-height: 75px;
	letter-spacing: 0.09em;
	color: #707070;
}

#interview .head2-wrapper {
	padding-bottom: 0px;
	justify-content: flex-end;
	width: 100%;
	margin-bottom: 114px;
}

#interview .en-title {
	line-height: 1.0;
	position: unset;
	margin-bottom: -15px;
}

#interview main {
	display: flex;
	flex-direction: column;
	gap: 90px;
}

.interview-wrapper {
	display: flex;
	flex-direction: column;
	gap: 90px;
}

.interview-section {
	display: flex;
	flex-direction: column;
	gap: 55px;
}

.interview-section__content {
	display: flex;
	align-items: flex-start;
	gap: 67px;
}

/* 既定（right）= 画像右・テキスト左 */
.interview-section__content--image-right .interview-section__image-wrap{ order:2; }
.interview-section__content--image-right .interview-section__text{ order:1; }

/* left = 画像左・テキスト右 */
.interview-section__content--image-left .interview-section__image-wrap{ order:1; }
.interview-section__content--image-left .interview-section__text{ order:2; }

/* SPでは縦積みで自然に */
@media (max-width: 768px){
  	.interview-section__content {
	  	flex-direction: column;
		align-items: center;
		gap: 27px;
	}
	#interview .en-title {
		margin-bottom: unset;
	}
  .interview-section__image-wrap,
  .interview-section__text{ order: initial; }
}

.interview-section__q {
	font-size: 32px;
	font-weight: 700;
	line-height: 37px;
	letter-spacing: 0.09em;
	color: #0074C1;
}

.interview-section__a {
	font-size: 16px;
	font-weight: 500;
	line-height: 32px;
	letter-spacing: 0.039em;
	max-width: 510px;
	width: 100%;
	white-space: pre-line;
}

.interview-section__image {
	max-width: 600px;
	width: 100%;
	height: auto;
	border-radius: 66px;
	object-fit: cover;
}

.interview__full-image {
	width: 100%;
	border-radius: 66px;
}

.interview-footer {
	text-align: center;
	display: flex;
	justify-content: center;
	position: relative;
	margin: 120px auto auto!important;
	width: fit-content;
	padding-bottom: 15px;
}

.interview-footer::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #0074C1;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s;
}

.interview-footer p {
	font-size: 30px;
	font-weight: 700;
	line-height: 41px;
	letter-spacing: 0.057em;
	color: #0074C1;

	display: flex;
    align-items: center;
    gap: 111px;
	width: fit-content;
}

.interview-footer p::after {
	content: '';
	display: block;
	width: 12px;
	height: 15px;
	background-image: url("./image/Icon material-play-arrow.svg");
	background-repeat: no-repeat;
}

.interview-footer__link {
	position: absolute;
	width: 100%;
	height: 100%;
}

.interview-footer:hover::after {
  transform: scaleX(1);
}

.para_logo {
  	position: absolute;
  	top: 220vh;
  	right: 0px;
  	will-change: transform;
	z-index: -999;
	max-width: 852px;
	width: 100%;
	height: auto;
}

#representative .para_logo {
  	position: absolute;
    top: 2650px;
    left: 0px;
    will-change: transform;
    max-width: 852px;
    width: 100%;
    height: auto;
    z-index: -1;
}
@media (max-width: 1180px) {
	.interview {
		flex-direction: column;
		gap: 27px;
	}
	#representative .para_logo {
		top: 2950px;
	}
}

@media (max-width: 768px) {
	.interview .pankuzu {
		margin-top: 0px;
		margin-bottom: 28px;
	}
	.interview__position {
		gap: 8px;
	}
	.interview__position-ja {
		font-size: 16px;
    	line-height: 26px;
    	letter-spacing: 0.05em;
	}
	.interview__name-ja {
		font-size: 24px;
    	line-height: 40px;
    	letter-spacing: 0.05em;
    	margin-bottom: 16px;
	}
	.interview__name-en {
		font-size: 16px;
		line-height: 28px;
		letter-spacing: 0.05em;
	}
	.interview img {
		min-height: unset;
    	aspect-ratio: 1 / 1;
	}
	.interview-section__q {
		font-size: 20px;
    	line-height: 30px;
    	letter-spacing: 0.05em;
	}
	.interview-footer p {
		font-size: 18px;
    	line-height: 28px;
		gap: 24px;
	}
	#interview .head2-wrapper {
		margin-bottom: 50px;
	}
	.interview-section {
		gap: 30px;
	}
	.interview-wrapper {
		gap: 60px;
	}
	.interview__full-image {
		position: relative;
    	transform: translateX(-50%);
    	left: 50%;
    	width: 100vw;
    	border-radius: 0px;
	}
	#representative .para_logo {
		top: 2660px;
	}
	.interview-section__a {
		font-size: 14px;
	}
}

/*
仕事を知る
------------------------------------*/

.work-section-wrapper {
	display: flex;
	flex-direction: column;
	gap: 60px;
	padding-bottom: 200px;
}

#corporate_planning {
	gap: 21px;
}

.work-section {
	display: flex;
	align-items: flex-start;
	align-items: stretch;
}

.work-section.gap60 {
	gap: 60px !important;
}

.work-section.gap100 {
	gap: 100px !important;
}

.work-content {
	display: flex;
	flex-direction: column;
	gap: 60px;
	width: 50%;
}

.work-title {
	font-size: 31px;
	font-weight: 700;
	line-height: 54px;
	letter-spacing: 0.09em;
}

.work-summary {
	font-size: 16px;
	font-weight: 400;
	line-height: 32px;
	letter-spacing: 0.03em;
}
@media (max-width: 768px) {
	.work-summary {
		font-size: 14px !important;
	}
}
#corporate_planning .work-summary {
	font-size: 16px;
	font-weight: 400;
	line-height: 32px;
	letter-spacing: 0.09em;
}

.work-role-wrapper {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.work-role {
	display: flex;
	flex-direction: column;
	padding: 36px 30px;
	border: solid 1px #707070;
	background: white;
	border-radius: 30px;
}

.work-role__title {
	font-size: 21px;
	font-weight: 700;
	line-height: 45px;
	letter-spacing: 0.09em;
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: solid 1px #707070;
}

.work-role__desc {
	font-size: 16px;
	font-weight: 400;
	line-height: 32px;
	letter-spacing: 0.039em;
}

.work-visual {
	width: 100%;
	max-width: 611px;
	border-radius: 30px;
	object-fit: cover;
}

.work-profile {
	padding: 42px 137px;
	border: solid 1px #707070;
	border-radius: 30px;
	position: relative;
}

.work-profile ul {
	display: flex;
}

.work-profile ul li {
	display: flex !important;
	align-items: center;
	gap: 43px;
	width: 100% !important;
}

.work-profile__image {
	max-width: 240px;
	width: 100%;
	max-height: 240px;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
}

.work-profile__column {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.work-profile__position {
	font-size: 15px;
	line-height: 24px;
	letter-spacing: 0.09em;
}

.work-profile__name-ja {
	font-size: 36px;
	font-weight: 700;
	line-height: 49px;
	letter-spacing: 0.09em;
}

.work-profile__name-en {
	font-size: 21px;
	font-style: italic;
	font-weight: 300;
	line-height: 49px;
	letter-spacing: 0.09em;
}

.work-profile__des {
	font-size: 16px;
	font-weight: 400;
	line-height: 32px;
	letter-spacing: 0.09em;
	margin-bottom: 21px;
}

.work-profile__link {
	font-size: 15px;
	font-weight: 700;
	line-height: 54px;
	letter-spacing: 0.06em;
	padding: 17px 49px;
	background: #F8F8F8;
	border: solid 1px #707070;
	border-radius: 70px;
	margin-bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	height: 48px;
	position: relative;
	overflow: hidden;
	z-index: 999999;
}

.work-profile__link::before {
    content: "";
    position: absolute;
    left: -100%;
    top: 0;
    width: 100%;
    height: 100%;
    background: var(--main);
    z-index: -2;
    transition: left 0.3s;
    border-radius: 100vh;
}

.work-profile__link:hover::before {
    left: 0;
}

.work-profile__link:hover {
	transition: color 0.3s;
    border: 1px solid var(--main);
	color: white;
}

/*ボタン*/
.prev_btn {
	width: 30px;
	height: 30px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: 27px;
	cursor: pointer;
}

.next_btn {
	width: 30px;
	height: 30px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 27px;
	cursor: pointer;
}

.work-wide-image {
	width: 100%;
	margin-top: 60px;
}

.bg-gray-section {
	padding: 120px 0px;
	position: relative;
}

.bg-gray-section::before {
	content: '';
	display: block;
	position: absolute;
	width: 100vw;
	height: 100%;
	background: #F8F8F9;
	z-index: -999;
	top: 0px;
	left: 50%;
	transform: translateX(-50%);
}

.bg-white-section {
	padding: 313px 0px 120px;
}

.slick-track {
	display: flex !important;
}

.slick-prev, .slick-next {
	display: none !important;
}

@media screen and (max-width: 768px) {
	.work-title__wrapper .head2 {
		font-size: 20px;
		line-height: 1.6;
	}
	.work-title {
		font-size: 18px;
		line-height: 1.6;
		letter-spacing: 0.06em;
	 }
	.work-section {
		flex-direction: column;
		gap: 50px;
	}
	.work-role {
		padding: 24px;
	}
	.work-role__title {
		font-size: 17px;
    	line-height: 30px;
	}
	.work-role__desc {
		font-size: 14px;
	}
	.work-content {
		width: 100%;
		gap: 30px;
	}
	.work-section-wrapper {
		padding-bottom: 45px;
	}
	.work-visual {
		width: 100vw;
		left: 50%;
		transform: translateX(-50%);
		height: 300px;
		object-fit: cover;
		position: relative;
		border-radius: 0px;
	}
	.work-profile__des {
		font-size: 14px;
	}
	.work-profile {
		padding: 32px 20px;
	}
	.work-profile__column {
		align-items: center;
	}
	.work-profile ul li {
		flex-direction: column;
	}
	.work-profile__position {
		font-size: 14px;
		text-align: center;
	}
	.work-profile__text {
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.prev_btn {
		left: -15px;
	}
	.next_btn {
		right: -15px;
	}
	.bg-gray-section {
		padding:  45px 0px;
	}
	.bg-white-section {
		padding: 45px 0px;
	}
	.work-profile__name-ja {
		font-size: 24px;
		line-height: 1.6;
	}
	.work-profile__name-en {
		font-size: 20px;
	}
}

/*
インターンシップ
------------------------------------*/

.internship-intro__eyebrow {
	font-size: 27px;
	font-style: italic;
	font-weight: 900;
	line-height: 68px;
	letter-spacing: 0.027em;
	text-align: center;
	margin-bottom: 32px;
}

.internship-head {
	display: flex !important;
	justify-content: center;
	gap: 12px;
	margin-bottom: 62px;
}


/* 共通：文字アニメーション */
.internship-intro__headline-char {
  	font-weight: 400;
}

.internship-intro__headline-group:nth-child(1) .internship-intro__headline-char,
.internship-intro__headline-char {
	font-family: "ImpactLocal", sans-serif;
	font-size: 77px;
	line-height: 94px;
	letter-spacing: 0.018em;
  	color: transparent;
  	paint-order: stroke fill;
}

.letter-group:nth-child(1) {
	-webkit-text-stroke: 1px #333;
  	text-stroke: 2px #333;
}

.internship-intro__headline-group:nth-child(2) .internship-intro__headline-char,
.internship-intro__headline-group:nth-child(3) .internship-intro__headline-char {
	font-family: "ImpactLocal", sans-serif;
	font-size: 78px;
	line-height: 95px;
	letter-spacing: 0.018em;
  	color: #3C3C3C;
}

#program {
	display: flex;
	flex-direction: column;
	gap: 90px;
	padding: 150px 0px 120px;
}

.internship-intro__lead {
	font-size: 24px;
	font-weight: 400;
	line-height: 54px;
	letter-spacing: 0.03em;
	text-align: center;
}

#program .head2-wrapper .head2-inner {
	width: 100%;
}

.internship-program__description {
	font-size: 24px;
	font-weight: 400;
	line-height: 60px;
	letter-spacing: 0.03em;
	text-align: center;
	margin-bottom: 90px;
}

.internship-program__note {
	font-size: 16px;
	font-weight: 400;
	line-height: 60px;
	letter-spacing: 0.03em;
	text-align: center;
}

.internship-program__imageblock {
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.internship-program__image {
	width: 100%;
}

#voice {
	background: #F8F8F9;
	padding: 120px 0px;
	display: flex;
	flex-direction: column;
	gap: 90px;
}

.internship-details {
	display: flex;
	gap: 16px;
}

.internship-details__block {
	display: flex;
	align-items: center;
	gap: 42px;
	padding: 62px 35px;
	border-radius: 10px;
	border: solid 1px #707070;
}

.internship-details__image {
	max-width: 150px;
	max-height: 150px;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.internship-visual {
	width: 100%;
}

#guideline {
	padding: 120px 0px;
}

.guidelineList {
	display: flex;
    flex-direction: column;
    width: 100%;
}

.guidelineList__item {
    position: relative;
    display: flex;
	align-items: center;
    padding: 30px 0px;
    border-top: 1px solid #707070;
}

.guidelineList li:nth-child(5) {
	border-bottom: 1px solid #707070;
}

.guidelineList .guidelineList__label {
    font-size: 15px;
	font-weight: 500;
    line-height: 27px;
    width: 21%;
    min-width: 120px;
    flex-shrink: 0;
}

.guidelineList__value {
	font-size: 18px;
	font-weight: 500;
	line-height: 27px;
}

#process {
	padding: 120px 0px;
	background: #F8F8F9;
}

.internship-process__image {
	width: 100%;
}

.internship-message {
	padding: 170px 0px 220px;
}

.internship-message__text {
	font-size: 33px;
	font-weight: 700;
	line-height: 65px;
	letter-spacing: 0.06em;
	text-align: center;
}

@media screen and (max-width: 1180px) {
	.internship-intro__headline-group:nth-child(1) .internship-intro__headline-char {
		font-size: 38px;
    	line-height: 46px;
    	letter-spacing: 0.01em;
	}
	.internship-intro__headline-group:nth-child(2) .internship-intro__headline-char,
	.internship-intro__headline-group:nth-child(3) .internship-intro__headline-char {
		font-size: 38px;
    	line-height: 44px;
    	letter-spacing: 0.01em;
	}
}

@media screen and (max-width: 768px) {
	.internship-intro__eyebrow {
		font-size: 17px;
		line-height: 30px;
		text-align: left;
		margin-bottom: 25px;
	 }
	.internship-head {
		flex-direction: column;
		margin-bottom: 27px;
		gap: 0px;
	}
	.letter-group:nth-child(1) {
		margin-bottom: 10px;
		line-height: 0;
	}
	.letter-group:nth-child(2) {
		line-height: 0;
	}
	.letter-group:nth-child(3) {
		line-height: 0;
	}
	.internship-intro__headline-group:first-child .internship-intro__headline-char {
		font-size: 42px;
    	line-height: 46px;
    	letter-spacing: 0.018em;
	}
	.internship-intro__headline-group:last-child .internship-intro__headline-char {
		font-size: 43px;
    	line-height: 44px;
    	letter-spacing: 0.018em;
	}
	.internship-intro__headline-group:nth-child(2) .internship-intro__headline-char,
	.internship-intro__headline-group:nth-child(3) .internship-intro__headline-char {
		font-size: 43px;
    	line-height: 44px;
    	letter-spacing: 0.018em;
	}
	.internship-intro__lead {
		font-size: 14px;
    	line-height: calc(28/14);
    	letter-spacing: 0.03em;
		text-align: left;
	}
	#program {
		padding: 90px 0px 45px;
		gap: 50px;
	}
	.internship-program__description {
		font-size: 14px;
    	line-height: 32px;
    	letter-spacing: 0.02em;
	}
	.internship-program__description {
		margin-bottom: 27px;
	}
	.internship-program__imageblock {
		gap: 27px;
	}
	.internship-program__note {
		font-size: 14px;
    	line-height: 32px;
    	letter-spacing: 0.02em;
	}
	#voice {
		padding: 45px 0px 90px;
		gap: 50px;
	}
	.internship-details {
		flex-direction: column;
	}
	.internship-details__block {
		flex-direction: column;
	}
	.internship-visual {
		height: 300px;
		object-fit: cover;
		object-position: right;
	}
	#guideline {
		padding: 90px 0px 45px;
	}
	.guidelineList__value {
		font-size: 14px;
    	line-height: 32px;
    	letter-spacing: 0.02em;
	}
	#process {
		padding: 45px 0px;
	}
	.internship-message {
		padding: 45px 0px 80px;
	}
	.internship-message__text {
		font-size: 20px;
    	line-height: 36px;
    	letter-spacing: 0.04em;
		text-align: left;
	}
	.internship-details__text {
		font-size: 14px;
	}
}

/*
環境を知る
------------------------------------*/

#work-style {
	padding: 120px 0px;
}

.work-style__items {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
}

.work-style__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 42px 70px;
	border: solid 1px #707070;
	border-radius: 18px;
}

.work-style__title {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 27px;
	font-weight: 700;
	line-height: 39px;
	letter-spacing: 0.05em;
	margin-bottom: -40px;
}

.work-style__value {
	font-size: 150px;
	font-weight: 700;
	line-height: 204px;
	color: #0079BE;
	white-space: nowrap;
}

.work-style__unit {
	font-size: 30px;
	line-height: 41px;
	color: #0079BE;
}

.work-style__image {
	max-width: 430px;
	width: 100%;
	height: auto;
	margin-bottom: 24px;
}

.work-style__note {
	font-size: 18px;
	font-weight: 400;
	line-height: 26px;
	letter-spacing: 0.05em;
}

#welfare {
	padding: 120px 0px;
	position: relative;
}

#welfare::before {
	content: '';
	display: block;
	width: 100vw;
	height: 100%;
	position: absolute;
	background: #F8F8F9;
	top: 0px;
	left: 50%;
	transform: translateX(-50%);
	z-index: -999;
}

.benefits {
	display: flex;
	justify-content: space-between;
}

.benefits_02 {
    display: flex;
    justify-content: center;
    gap: 185px;
}

.benefits__item {
	max-width: 230px;
	width: 100%;
	height: auto;
}

.benefits__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
}

.benefits__icon img {
	max-width: 220px;
	width: 100%;
	height: auto;
}

.benefits__card figcaption {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.benefits__title {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 18px;
	font-weight: 700;
	line-height: 26px;
	letter-spacing: 0.05em;
	text-align: center;
}

.benefits__text {
	font-size: 15px;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: 0.05em;
	text-align: center;
}

.welfare__message {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	font-size: 24px;
	line-height: 45px;
	letter-spacing: 0.03em;
	text-align: center;
	margin-top: 130px;
}

@media (max-width: 1180px) {
	.work-style__items {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	#work-style {
		padding: 50px 0px 45px;
	}
	.work-style__title {
		font-size: 19px;
    	line-height: 28px;
    	letter-spacing: 0.04em;
	}
	.work-style__value {
		font-size: 56px;
		line-height: 130px;
	 }
	.work-style__item {
		padding: 24px 20px;
	}
	.work-style__unit {
		font-size: 25px;
	}
	#welfare {
		padding: 45px 0px;
		display: flex;
		flex-direction: column;
		gap: 30px;
	}
	.benefits {
		flex-direction: column;
		align-items: center;
		gap: 30px;
		margin-bottom: 0px;
	}
	.benefits__title {
		font-size: 20px;
    	line-height: 1.6;
	}
	.benefits_02 {
		flex-direction: column;
		align-items: center;
		gap: 30px;
		margin-bottom: 0px !important;
	}
	.welfare__message {
		margin-top: 60px;
		font-size: 16px;
    	line-height: 28px;
	}
	.work-style__note {
		font-size: 14px;
	}
	.benefits__text {
		font-size: 14px;
		line-height: 1.4;
	}
}

/*
募集要項
------------------------------------*/

.recruit-wrapper {
	display: flex;
	flex-direction: column;
	gap: 48px;
}

.recruit-filter {
	display: flex;
	gap: 24px;
	margin-top: 120px;
}

.recruit-filter__item {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 0px 52px;
    color: #597A8E;
    background: #F8F8F8;
    border: solid 1px #597A8E;
    border-radius: 20px;
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.recruit-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 90px;
	position: relative;
}

.recruit-card {
	display: flex;
	flex-direction: column;
	padding: 38px 66px;
	background: #F8F8F8;
	border: solid 1px #707070;
	border-radius: 30px;
	width: 50%;
	cursor: pointer;
	width: 100%;
	height: fit-content;
}

.recruit-card__title {
	font-size: 24px;
	font-weight: 500;
	line-height: 38px;
	letter-spacing: 0.05em;
	margin-bottom: 19px;
}

.recruit-card__desc {
	font-size: 15px;
	font-weight: 400;
	line-height: 30px;
	letter-spacing: 0.018em;
	margin-bottom: 33px;
}

.recruit-card__tags {
	display: flex;
	align-items: center;
	gap: 9px;
}

.recruit-card__tag {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	padding: 6px 27px;
	color: #597A8E;
	background: #F8F8F8;
	border: solid 1px #597A8E;
	border-radius: 20px;
	height: 23px;
	display: flex;
    align-items: center;
    justify-content: center;
}

.recruit-message {
	font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-size: 24px;
    line-height: 45px;
    letter-spacing: 0.03em;
    text-align: center;
}

/*モーダル*/
.recruit-modal {
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

.recruit-modal.is-open {
  display: flex;
}

.recruit-modal__overlay {
  	position: fixed;
  	inset: 0;
    width: 100vw;
	height: 100vh;
    left: 50%;
    transform: translateX(-50%);
	z-index: -999;
	background: white;
    opacity: 0.3;
}

.recruit-modal__content {
  	position: absolute;
  	background: rgba(248, 248, 248, 0.9);
  	max-width: 1180px;
    width: 100%;
    margin: auto;
  	padding: 67px 143px 60px 75px;
	border: solid 1px #707070;
 	border-radius: 30px;
  	z-index: 1;
	top: 0px;
	left: 0px;
}

.recruit-modal__close {
  	position: absolute;
  	top: 36px;
  	right: 36px;
	width: 18px;
	height: 18px;
  	cursor: pointer;
	background-image: url("./image/close.svg");
	background-repeat: no-repeat;
}

.recruit-detail__title {
  	font-weight: 700;
  	font-size: 24px;
	line-height: 33px;
	letter-spacing: 0.05em;
	color: #597A8E;
	margin-bottom: 64px;
}

.recruit-detail__table {
  border-top: 1px solid #e5e7eb;
}

.recruit-detail__row {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 12px;
  padding: 27px 0;
  border-bottom: 1px solid #707070;
  align-items: center;
}

.recruit-detail__row:nth-child(1) {
  	border-top: 1px solid #707070;
}

.recruit-detail__th {
	font-size: 15px;
	font-weight: 400;
	line-height: 54px;
}

.recruit-detail__td {
	font-size: 18px;
	font-weight: 400;
	line-height: 27px;
}

@media (max-width: 768px) {
	.recruit-filter {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 16px;
		margin-top: 50px;
		justify-content: center;
	}
	.recruit-filter__item {
		width: 100%;
		padding: 0 8px;
		font-size: 12px;
	}
	.recruit-list {
		grid-template-columns: 1fr;
	}
	.recruit-card {
		padding: 24px 20px;
	}
	.recruit-card__title {
		font-size: 18px;
    	line-height: 28px;
	}
	.recruit-card__tags {
		flex-direction: column;
		align-items: flex-start;
	}
	.recruit-message {
        font-size: 14px;
        line-height: 28px;
		margin-bottom: 90px;
	}
	.recruit-modal__content {
		padding: 24px 20px 32px 20px;
	}
	.recruit-detail__title {
		font-size: 18px;
    	line-height: 26px;
    	margin-bottom: 32px;
		width: 80%;
	}
	.recruit-detail__row {
		padding: 12px 0px;
		grid-template-columns: 90px 1fr;
	}
	.recruit-detail__th {
		font-size: 14px;
	}
	.recruit-detail__td {
		font-size: 14px;
	}
}

/*
フォーム
------------------------------------*/

.form-card {
	display: flex;
	flex-direction: column;
	gap: 30px;
	margin: 120px 0px 148px;
	padding: 106px 243px;
	background: #F8F8F8;
	border: solid 1px #707070;
	border-radius: 30px;
	position: relative;
}

.form-row {
	display: flex;
}

.label {
	font-size: 16px;
	font-weight: 400;
	line-height: 32px;
	letter-spacing: 0.09em;
	width: 22%;
    min-width: 120px;
	display: flex;
	align-items: center;
	gap: 6px;
}

.label.al_fs {
	align-items: flex-start;
}

.req {
	font-size: 11px;
	font-family: "Roboto", sans-serif;
  	font-weight: 300;
	color: #D30000;
}

.field {
	display: flex;
	align-items: center;
}

.radio-group{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}

/* ネイティブの丸は隠す（アクセシブルな視覚非表示） */
.radio-group input[type="radio"]{
  position:absolute;
  width:1px; height:1px;
  margin:0; padding:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path: inset(50%);
  white-space:nowrap;
  border:0;
}

/* ラベル本体は inline-flex にして高さを確保 */
.radio-group .radio-label{
  position:relative;
  display:inline-flex;
  align-items:center;
  padding-left:30px;        /* 丸 + 余白 */
  font-size:16px;
  line-height:1.6;
  cursor:pointer;
  isolation:isolate;        /* 他要素のz-index干渉を避ける保険 */
}

/* 外側の丸 */
.radio-group .radio-label::before{
  	content:"";
  	position:absolute;
  	left:0;
  	top:50%;
  	width:24px;
	height:24px;
  	box-sizing:border-box;
  	border:2px solid #CDD6DD;
  	border-radius:50%;
  	transform:translateY(-50%);
  	transition:border-color .15s cubic-bezier(.215,.61,.355,1);
  	pointer-events:none;
}

/* 内側の点 */
.radio-group .radio-label::after{
  	content:"";
  	position:absolute;
  	left:6px;                 /* 外円とのバランスで */
  	top:50%;
  	width:12px;
	height:12px;
  	background:#0074C1;
  	border-radius:50%;
  	transform:translateY(-50%) scale(0);
  	transition:transform .15s cubic-bezier(.215,.61,.355,1);
  	pointer-events:none;
}

.radio-group input[type="radio"]:checked + .radio-label::after{
  transform:translateY(-50%) scale(1);
}

/* キーボードフォーカス見やすく（任意） */
.radio-group input[type="radio"]:focus-visible + .radio-label::before{
  outline:2px solid #0074C1;
  outline-offset:2px;
}

.inner {
	max-width: 540px;
	width: 100%;
	position: relative;
}

.drop {
	width: 100%;
}

.control {
    width: 100%;
    height: 100%;
    background: #FFFFFF;
    padding: 12px 20px;
    border: solid 1px #707070;
    border-radius: 8px;
}

.message {
	min-height: 132px;
}

.note {
	font-size: 16px;
	font-weight: 300;
	line-height: 24px;
	letter-spacing: 0.09em;
	margin-bottom: 12px;
}

.file_wrapper {
	padding: 37px 40px !important;
	background: #EAF0F2 !important;
	border-radius: 8px !important;
}

.file_wrapper input {
	width: 100%;
}

.agree{
  	display:inline-flex;
  	align-items:center;
	justify-content: center;
  	gap:8px;
  	cursor:pointer;
  	font-size:16px;
  	font-weight:400;
  	line-height:22px;
  	letter-spacing:.09em;
	margin-top: 30px;
}
.agree a{ text-decoration: underline; }

/* ネイティブチェックは視覚的に非表示（アクセシブル） */
.agree input[type="checkbox"]{
  position:absolute;
  width:1px; height:1px;
  overflow:hidden;
  clip:rect(1px,1px,1px,1px);
}

.agree span{
  	position:relative;
  	padding-left: 40px;
  	line-height:1.6;
}

/* 枠（span::before） */
.agree span::before{
  	content:"";
  	position:absolute;
  	left:0;
  	top:50%;
  	width: 30px;
	height: 30px;
  	border:2px solid #CDD6DD;
  	border-radius:3px;
  	background:#fff;
  	transform:translateY(-50%);
  	transition:all .125s ease-in-out;
  	box-sizing:border-box;
}

.agree span::after{
  	content: "";
    position: absolute;
    left: 10px;
    top: 63%;
    width: 14px;
    height: 9px;
    border-left: 2px solid #0074C1;
    border-bottom: 2px solid #0074C1;
    transform: translateY(-50%) rotate(-45deg) scaleX(0);
    transform-origin: left;
    transition: transform .125s ease-in-out;
}

.agree input[type="checkbox"]:checked + span::after{
  transform:translateY(-50%) rotate(-45deg) scaleX(1);
}

/* キーボード操作時のフォーカス見やすく（任意） */
.agree input[type="checkbox"]:focus-visible + span::before{
  outline:2px solid #074DBF;
  outline-offset:2px;
}

.form-card .cta-section {
	margin-top: 60px;
}

.main-cta-link {
	width: 100%;
	cursor: pointer;
}

.form-card .cta-section .main-cta-button {
	padding: 27px;
	margin: 0;
	width: 100%;
}

.form-card .cta-section .main-cta-button__subtitle {
	font-size: 24px;
    font-weight: 400;
    letter-spacing: 0.111em;
    line-height: 33px;
	font-style: normal;
	text-align: center;
}

.select::after {
	content: '';
	display: block;
	background-image: url("./image/select-arrow.png");
	background-repeat: no-repeat;
	background-size: contain;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	position: absolute;
    right: 21px;
}

.privacy-header {
	display: flex;
	align-items: center;
	gap: 15px;
	padding-bottom: 60px;
	border-bottom: solid 1px #707070;
	margin-bottom: 60px;
}

.privacy-content {
	display: flex;
	flex-direction: column;
	gap: 65px;
}

.privacy-header__title {
	font-size: 45px;
	font-weight: 700;
	line-height: 61px;
	color: #597A8E;
}

.privacy-header__subtitle {
	font-size: 27px;
	font-weight: 200;
	font-style: italic;
	line-height: 37px;
	letter-spacing: 0.09em;
}

.privacy-section__title {
	font-size: 27px;
	font-weight: 700;
	line-height: 37px;
	letter-spacing: 0.018em;
	color: #597A8E;
	padding-bottom: 18px;
}

.dotted {
	display: block;
	width: 100%;
	margin-bottom: 18px;
	object-fit: none;
}

.check-table {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

::placeholder {
  	color: #B9C9D5;
	font-size: 16px;
	font-weight: 200;
	line-height: 32px;
	letter-spacing: 0.09em;
}

.complete-wrapper {
	padding: 81px 200px;
	background: #F8F8F8;
    border: solid 1px #707070;
    border-radius: 30px;
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 120px;
}

.complete-h2 {
	font-size: 38px;
	font-weight: 700;
	line-height: 68px;
	letter-spacing: 0.2em;
	margin-bottom: 51px;
}

.complete-mail__label {
	font-size: 18px;
	font-weight: 300;
	letter-spacing: 0.09em;
	text-align: center;
}

.complete-mail {
	display: flex;
	flex-direction: column;
	gap: 17px;
	width: 100%;
	margin-bottom: 40px;
}

.complete-mail__value {
	padding: 15px 0px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #F2F2F2;
	border-radius: 8px;
}

.complete-message {
	font-size: 16px;
	font-weight: 200;
	line-height: 28px;
	letter-spacing: 0.09em;
	width: 100%;
	text-align: center;
}

.complete-wrapper .cta-section {
	width: 100%;
}

.complete-wrapper .main-cta-button {
	margin: 0;
	width: 100%;
}

.complete-wrapper .cta-section .contact-cta-button__subtitle {
	font-size: 24px;
    font-weight: 400;
    letter-spacing: 0.111em;
    line-height: 33px;
    font-style: normal;
}

@media (max-width: 1180px) {
  	.form-card {
    	padding: 80px 60px;
  	}
	.form-row {
		flex-direction: column;
	}
	.form-row {
		gap: 14px;
	}
	.inner {
		max-width: 100%;
		width: 100% !important;
	}
}

@media (max-width: 768px) {
	.form-card {
    	padding: 40px 20px;
		margin-top: 50px;
		margin-bottom: 0px;
  	}
	.inner {
		padding: 12px 0px !important;
	}
	.agree {
		font-size: 14px;
    	line-height: 20px;
	}
	.agree span::before {
		width: 25px;
		height: 25px;
	}
	.agree span::after {
		left: 7px;
    	top: 59%;
	}
	.form-card .cta-section .main-cta-button {
		padding: 20px 16px;
	}
	.form-card .cta-section .main-cta-button__subtitle {
		font-size: 20px;
    	line-height: 28px;
    	letter-spacing: 0.09em;
	}
	.privacy-header__title {
		font-size: 18px;
        line-height: 26px;
	}
	#privacy-modal .recruit-modal__close {
		top: 30px;
		right: 18px;
	}
	.privacy-header {
		flex-direction: column;
		padding-bottom: 30px;
		margin-bottom: 30px;
	}
	.privacy-header__subtitle {
		font-size: 18px;
    	line-height: 26px;
    	letter-spacing: 0.08em;
	}
	.privacy-section__title {
		font-size: 18px;
        line-height: 26px;
        letter-spacing: 0.08em;
	}
	.label {
		width: 100%;
	}
	.complete-wrapper {
		padding: 40px 20px;
		margin-top: 50px;
	}
	.complete-wrapper .cta-section .contact-cta-button__subtitle {
		font-size: 20px;
        line-height: 28px;
        letter-spacing: 0.09em;
	}
	.complete-mail__value {
		padding: 15px;
		word-break: break-all;
	}
}

/*
footer
------------------------------------*/

footer {
    display: flex;
    flex-direction: column;
    gap: 0px;
    padding: 79px 0px 0px 0px;
    border-top: 1px solid #707070;
    background: white;
    color: var(--text-color);
	position: relative;
}
.page-top {
	background-image: url("./image/page-top.png");
	background-repeat: no-repeat;
	background-size: contain;
	width: 85px;
	height: 85px;
	position: absolute;
	top: -35px;
	right: 100px;
	cursor: pointer;

}
.page-top:hover {
	transform: scale(1.08);
	transition: .3s;
}
.footer-main-content {
    width: 85%;
    max-width: 1180px;
    margin: auto;
    display: flex;
    gap: 120px;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 72px;
}
@media (max-width: 768px) {
	.page-top {
		right: 50px;
		width: 50px;
		height: 50px;
		top: -25px;
	}
	.footer-main-content {
		flex-direction: column;
		gap: 60px;
	}
	.company-info {
		order: 2;
	}
}
footer .footer-main-content .company-info {
    display: flex;
    flex-direction: column;
    gap: 40px;
	align-items: flex-start;
}
footer .footer-main-content .company-info img {
    height: 60px;
    width: auto;
}
footer .footer-main-content .company-info-text-wrap p {
    font-size: 16px;
    line-height: 28px;
}
footer .footer-main-content .company-info-text-wrap p span {
    font-size: 20px;
    font-weight: 600;
}
footer .footer-main-content .footer-sns {
    display: flex;
    gap: 20px;
}
footer .footer-main-content .footer-sns li {
	cursor: pointer;
}
footer .footer-main-content .footer-sns li svg {
    width: 34px;
    height: 34px;
    fill: var(--text-color);
	transition: .3s;
}
footer .footer-main-content .footer-sns li:hover svg {
	fill: #0074C1;
	transition: .3s;
}
footer .sitemap {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
footer .sitemap .sitemap-title {
    font-family: "Red Hat Display", sans-serif;
    font-size: 26px;
    letter-spacing: 0.07em;
    line-height: 31px;
    opacity: 0.46;
}
footer .sitemap .sitemap-wrrap,
.global-nav .global-nav-lists {
    display: flex;
	flex-wrap: wrap;
    gap: 40px;
	width: 100%;
    max-width: 463px;
}
/* ===== 共通リンクスタイル (a と p) ===== */
.sitemap-list li a,
.global-nav .global-nav-lists .list li a,
.global-nav .global-nav-lists .list li p,
footer .sub-link-list li a {
  position: relative;
  display: inline-block;
  transition: color 0.5s ease;
  color: inherit;
}

/* ===== 下線アニメーション（aのみ・線が下からふわっと） ===== */
.sitemap-list li a::after,
.global-nav .global-nav-lists .list li a::after,
footer .sub-link-list li a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 2px;
  background: #0074C1;
  transform: scaleY(0);
  transform-origin: bottom;
  transition: transform 0.5s ease;
}

.sitemap-list li:hover p {
	color: #0074C1;
}

.sitemap-list li a:hover::after,
.global-nav .global-nav-lists .list li a:hover::after,
footer .sub-link-list li a:hover::after {
  transform: scaleY(1);
}

/* ===== hover時の文字色 ===== */
.sitemap-list li a:hover,
.global-nav .global-nav-lists .list li a:hover,
.global-nav .global-nav-lists .list li p:hover,
footer .sub-link-list li a:hover {
  color: #0074C1;
}

/* ===== hover時の色変更 (a と p 共通) ===== */
.sitemap-list li a:hover,
.global-nav .global-nav-lists .list li a:hover,
.global-nav .global-nav-lists .list li p:hover,
footer .sub-link-list li a:hover {
  color: #0074C1;
}

/* ===== sitemap / global-nav リスト共通の見た目 ===== */
footer .sitemap .sitemap-wrrap .sitemap-list,
.global-nav .global-nav-lists .list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-left: 20px;
  border-left: 1px solid var(--text-color);
}
footer .sitemap .sitemap-wrrap .sitemap-list li a,
.global-nav .global-nav-lists .list li a {
	display: flex;
	gap: 3px;
	justify-content: flex-start;
	align-items: center;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.04em;
    line-height: 26px;
}
footer .sitemap .sitemap-wrrap .sitemap-list li a svg,
.global-nav .global-nav-lists .list li a svg {
	width: 14px;
	height: 14px;
	fill: var(--text-color);
}
footer .sitemap .sitemap-wrrap .sitemap-list li:hover a svg,
.global-nav .global-nav-lists .list li:hover a svg {
	fill: #0074C1;
}
footer .sitemap .sitemap-wrrap .sitemap-list li.sub,
.global-nav .global-nav-lists .list li.sub {
    margin-top: -4px;
}
footer .sitemap .sitemap-wrrap .sitemap-list li.sub a,
.global-nav .global-nav-lists .list li.sub a {
    font-size: 15px;
    font-weight: 400;
    line-height: 21px;
    margin-top: -2px;
}
footer .sub-link-block {
    padding: 16px 0px;
    border-top: 1px solid #707070;
    border-bottom: 1px solid #707070;
}
footer .sub-link-list {
    display: flex;
	flex-wrap: wrap;
    gap: 32px;
    justify-content: center;
}
footer .sub-link-list li {
    position: relative;
}
footer .sub-link-list li::after {
    content:"";
    position: absolute;
    right: -16px;
    top: 50%;
    transform: translateY(-50%);
    height: 60%;
    width: 1px;
    background: var(--text-color);
}
footer .sub-link-list li:last-child::after {
    display: none;
}
footer .sub-link-list li a {
    font-family: "Lato", sans-serif;
    font-size: 15px;
    font-weight: 300;
    letter-spacing: 0.111em;
    line-height: 18px;
}
footer .copyright {
    font-family: "Lato", sans-serif;
    font-weight: 300;
    padding: 15px 0px;
    width: 100%;
    text-align: center;
    font-size: 15px;
    letter-spacing: 0.111em;
    line-height: 18px;
}
@media (max-width: 768px) {
	footer .sub-link-list {
		gap: 0px 32px;
	}
	footer .sub-link-list li a {
    	font-size: 12px;
    	letter-spacing: 0.03em;
    	line-height: 1.6;
  	}
	footer .copyright {
    	font-size: 12px;
    	letter-spacing: 0.03em;
	}
	footer .footer-main-content .company-info-text-wrap p {
		font-size: 14px;
	}
}
