@charset "utf-8";
.page-container {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	
	/* align-items: center; を削除、または stretch に変更 */
	/* align-items: center; */ 
	
	background-color: var(--displaydisplay-2);
}
.page-container .header-section {
	/* position: relative; を削除 */
	align-self: stretch;
	width: 100%;
	/* height: 800px; を削除または最小限に。画像の縦横比を保ちつつ、必要に応じて調整してください。 */
	/* 例: max-height: 800px; min-height: 400px; など */
	/* もしくは、padding-topでアスペクト比を維持する方法も検討できます */
	object-fit: cover;
	background: linear-gradient(0deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.4) 100%);
	/* height の代わりにアスペクト比を保つために padding-top を使う場合は以下のようにします */
	/* padding-top: 56.25%; /* 16:9 の場合。画像のアスペクト比に合わせて調整してください */
	/* height: 0; */
}
.page-container .welcome-section {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 60px;
	padding: 50px 0px;
	align-self: stretch;
	background-color: #f7ebeb;
	width: 100%;
	/* position: relative; と flex: 1; flex-grow: 1; を削除 */
}
.page-container .welcome-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	max-width: 1180px;
	width: 100%; /* 親要素に合わせる */
	padding: 0 20px; /* 左右の余白を追加し、コンテンツが端に寄りすぎないように */
	box-sizing: border-box; /* paddingを含めて幅を計算 */
	/* position: relative; と flex: 1; flex-grow: 1; を削除 */
}
.page-container .text-wrapper {
	width: fit-content;
	margin-top: -1.00px;
	font-family: "Noto Sans-Bold", Helvetica;
	font-weight: 700;
	color: var(--paragraphparagraph-1);
	font-size: 32px;
	text-align: center;
	line-height: 34.9px;
	white-space: nowrap;
}
.page-container .welcome-body-copy {
	width: 100%;
	/* position: relative; と flex: 1; align-self: stretch; flex-grow: 1; を削除 */
}
.page-container .welcome-body {
	/* position: relative; を削除 */
	/* top: 34px; left: 119px; を削除し、FlexboxやGridで配置を制御 */
	/* max-width を設定し、中央寄せにする */
	max-width: 942px;
	margin: 34px auto 0; /* top: 34px を margin-top に変更し、中央寄せ */
	text-align: center; /* div と p のテキストを中央寄せにするため */
}
.page-container .div {
	/* position: absolute; top: -1px; left: 0; を削除 */
	font-family: "Noto Sans-Bold", Helvetica;
	font-weight: 700;
	color: var(--paragraphparagraph-1);
	font-size: 24px;
	text-align: center;
	line-height: 32.4px;
	margin-bottom: 15px; /* P要素との間隔を調整 */
}
.page-container .element {
	/* position: absolute; top: 31px; left: 206px; を削除 */
	font-family: "Noto Sans-Regular", Helvetica;
	font-weight: 400;
	color: var(--paragraphparagraph-1);
	font-size: 20px;
	text-align: center;
	line-height: 27.0px;
	/* p要素自体が中央寄せされるように調整 */
	max-width: 942px; /* 必要に応じて幅を調整 */
	margin: 0 auto; /* 中央寄せ */
}
.page-container .image-breaker {
	width: 100%;
	/* height: 625px; を削除または最小限に */
	min-height: 400px; /* 最小高さを設定し、コンテンツが少ない場合でもスペースを確保 */
	background-image: url("../../img/breaker.jpg");
	background-size: cover;
	background-position: 50% 50%;
	/* position: relative; を削除 */
	align-self: stretch;
}
.page-container .image-breaker img {
	max-width: 100%;
	height: auto;
}
.page-container .offering-section {
	display: flex;
	align-items: flex-start; /* コンテンツの始まりに合わせる */
	padding: 70px 0px 50px;
	width: 100%;
	background-color: #ffffff;
	/* position: relative; と flex: 0 0 auto; を削除 */
}
.page-container .offering-content {
	display: flex;
	width: 100%; /* 親要素の幅いっぱいに広げる */
	max-width: 1158px; /* 元の幅を最大幅として設定 */
	align-items: flex-start;
	margin: auto; /* 中央寄せ */
	padding: 0 20px; /* 左右の余白を追加 */
	box-sizing: border-box; /* paddingを含めて幅を計算 */
	/* position: relative; を削除 */
}
.page-container .offering-subhead {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding-right: 74px; /* 元の padding を維持 */
	/* position: relative; と flex: 0 0 auto; を削除 */
	flex-shrink: 0; /* 縮小させない */
}
.page-container .text-wrapper-2 {
	width: fit-content;
	margin-top: -1.00px;
	font-family: "Noto Sans-Bold", Helvetica;
	font-weight: 700;
	color: #000000;
	font-size: 32px;
	letter-spacing: -1.60px;
	line-height: 34.9px;
	white-space: nowrap;
}
.page-container .offering-list {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 64px;
	flex: 1; /* 残りのスペースを埋める */
	/* position: relative; と flex-grow: 1; を削除 */
}
@media screen and (max-width: 768px){
	.page-container .offering-content {
		display: block;
	}
	.page-container .offering-subhead {
		display: block;
	}
	.page-container .offering-list {
		display: block;
	}
}
.page-container .offering-list-items {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	/* position: relative; と flex: 0 0 auto; を削除 */
}
.page-container .text-wrapper-3 {
	width: fit-content;
	margin-top: -1.00px;
	font-family: "Noto Sans-Regular", Helvetica;
	font-weight: 400;
	color: #000000;
	font-size: 16px;
	line-height: 24px;
}
.page-container .footer-section {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 84px;
	padding: 68px 0; /* 左右のpaddingをautoで中央寄せにするため0に */
	width: 100%;
	background-color: var(--backgroundbackground-1);
	/* position: relative; と flex: 0 0 auto; を削除 */
}
.page-container .group {
	display: grid; /* Gridを使用 */
	grid-template-columns: repeat(4, 1fr); /* 4つのカラムを均等に */
	gap: 26px; /* 元の width: 227px と left の差から計算 (253-227=26, 506-253-227=26) */
	max-width: 986px; /* 元の幅を最大幅として設定 */
	width: 100%; /* 親要素の幅いっぱいに広げる */
	/* height: 100px; を削除 */
	margin: auto; /* 中央寄せ */
	padding: 0 20px; /* 左右の余白を追加 */
	box-sizing: border-box;
}
@media screen and (max-width: 768px){
	.page-container .group{
		grid-template-columns: 1fr 1fr;
	}
}
@media screen and (max-width: 599px) {
	.page-container .group{
		grid-template-columns: 1fr;
	}
}
.page-container .rectangle, .page-container .rectangle-2, .page-container .rectangle-3, .page-container .rectangle-4 {
	/* left, position, width, top, height を削除 */
	height: 100px; /* 高さは残します */
	background-color: #d9d9d9;
}
.page-container .footer-copyright {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	/* position: relative; と flex: 0 0 auto; を削除 */
	margin: auto; /* 中央寄せ */
}
.page-container .p {
	/* position: relative; width: 960px; height: 40px; を削除 */
	width: 100%; /* 親要素の幅いっぱいに広げる */
	max-width: 960px; /* 元の幅を最大幅として設定 */
	margin: auto; /* 中央寄せ */
	margin-top: -1.00px;
	font-family: var(--paragraph-paragraph-3-font-family);
	font-weight: var(--paragraph-paragraph-3-font-weight);
	color: var(--paragraphparagraph-1);
	font-size: var(--paragraph-paragraph-3-font-size);
	text-align: center;
	letter-spacing: var(--paragraph-paragraph-3-letter-spacing);
	line-height: var(--paragraph-paragraph-3-line-height);
	font-style: var(--paragraph-paragraph-3-font-style);
	padding: 0 20px; /* 左右の余白を追加 */
	box-sizing: border-box;
}
.page-container .frame {
	display: flex;
	flex-direction: column;
	width: 100%; /* fixed要素なので100%に */
	align-items: flex-start;
	gap: 10px;
	padding: 20px 50px;
	position: sticky; /* fixedからstickyに変更して、スクロールに追従するように */
	top: 0;
	background-color: #ffffff80;
	z-index: 1000; /* 他のコンテンツの上に表示 */
}
@media screen and (max-width: 1024px){
	body.overflowHidden .page-container .frame{
		z-index: 99999 !important;
	}
}
.page-container .text-wrapper-4 {
	width: fit-content;
	margin-top: -0.50px;
	font-family: "Noto Sans-Medium", Helvetica;
	font-weight: 500;
	color: #1e1e1e;
	font-size: 15px;
	letter-spacing: -0.45px;
	line-height: 14.2px;
	white-space: nowrap;
}
.page-container .text-wrapper-5 {
	width: fit-content;
	margin-top: -1.00px;
	font-family: "Geist-Regular", Helvetica;
	font-weight: 400;
	color: #000000;
	font-size: 16px;
	letter-spacing: -0.48px;
	line-height: 15.2px;
	white-space: nowrap;
}
/* ========== ヘッダー ========== */
/* ヘッダー全体を包括するコンテナを追加し、幅を100%に指定 */
.header {
    width: 100%;
    position: sticky;
    top: 0;
    z-index: 10;
    background-color: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(5px);
    border-bottom: 1px solid #eee;
}

/* ヘッダーのラッパー：画面幅いっぱいの背景と追従機能を担当 */
.header-nav-wrapper {
}

/* ヘッダーのコンテンツ部分：ロゴとナビを囲む */
.header-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 20px 0;
}

/* ロゴ画像のサイズを指定 */
.logo img {
    display: block;
    width: 365px;
    height: 68px;
    object-fit: cover;
}

/* PC用グローバルナビゲーション */
.global-nav ul {
    display: flex;
    align-items: center;
    gap: 15px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.global-nav a {
    text-decoration: none;
    color: #000000;
    font-size: 16px;
    font-weight: 400;
}

.global-nav a:hover {
    text-decoration: underline;
}


/* ========== ハンバーガーメニューの制御 ========== */

/* PCではハンバーガーメニューを非表示にする */
.navToggle {
    display: none;
}
/* 注：ハンバーガーメニューのアイコン自体のデザイン
   （三本線や「MENU」の文字色など）は、別途CSSで指定が必要です。
*/


/* ========== ヘッダーのレスポンシブ対応 ========== */

@media screen and (max-width: 1024px) {
    .header-nav {
        /* スマホ表示では左右に少し余白を持たせる */
        padding: 10px 20px; 
    }
    
    /* PC用ナビゲーションを非表示にする */
    .global-nav {
        display: none; 
    }
    
    /* ハンバーガーメニューを表示する */
    .navToggle {
        display: block; 
        cursor: pointer;
    }
}

/*追記
************************************************************************************/
.textCenter{
	text-align: center;
}
.textRight{
	text-align: right;
}