@charset "utf-8";

/*カスタムフォントの読み込み*/
@font-face {
    font-family: 'Zen Maru Gothic';
    src: url('../Zen_Maru_Gothic/ZenMaruGothic-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'Zen Maru Gothic';
    src: url('../Zen_Maru_Gothic/ZenMaruGothic-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}

/*slide.cssの読み込み*/
@import url(slide.css);

/*inview.cssの読み込み*/
@import url(inview.css);


/*全端末（PC・タブレット・スマホ）共通設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/

/*全体の設定
---------------------------------------------------------------------------*/
* {
	-webkit-overflow-scrolling: touch; /* iOS スムーズスクロール */
}
html {
	width: 100%;
	height: 100%;
}
body {
	margin: 0px;
	padding: 0px;
	width: 100%;
	min-height: 100%; /* height: 100%を削除し、min-heightに変更 */
	color: #fff;	/*全体の文字色*/
	font-family:"Zen Maru Gothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;	/*フォント種類*/
	font-size: 16px;	/*文字サイズ*/
	line-height: 2;		/*行間*/
	background: #000;	/*背景色*/
	-webkit-text-size-adjust: 100%;	/* iOS Safari対応 */
	position: relative;
	overflow-x: hidden; /* 横スクロールを防ぐ */
	-webkit-font-smoothing: antialiased; /* iOS フォント最適化 */
	-moz-osx-font-smoothing: grayscale; /* macOS フォント最適化 */
	-webkit-tap-highlight-color: rgba(0,0,0,0); /* タップハイライト削除 */
	touch-action: manipulation; /* タッチ操作最適化 */
}
/* 動的背景コンテナ */
#dynamic-background {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 0 !important;
	pointer-events: none !important;
}
h1,h2,h3,h4,h5,p,ul,ol,li,dl,dt,dd,form,figure,form,input,textarea {margin: 0px;padding: 0px;font-size: 100%;font-weight: normal;}
ul {list-style-type: none;}
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}
table {border-collapse:collapse;font-size: 100%;border-spacing: 0;}
iframe {width: 100%;}

/*リンク（全般）設定
---------------------------------------------------------------------------*/
a {
	color: #fff;		/*リンクテキストの色*/
	transition: 0.4s;	/*マウスオン時の移り変わるまでの時間設定。0.4秒。*/
	/* タップ領域を拡大（モバイル最適化） */
	position: relative;
}
a:hover {
	color: #29acef;			/*マウスオン時の文字色*/
	text-decoration: none;	/*マウスオン時に下線を消す設定。残したいならこの１行削除。*/
}
/* モバイル用のタップ領域拡大 */
@media (hover: none) and (pointer: coarse) {
	a::before {
		content: '';
		position: absolute;
		top: -10px;
		right: -10px;
		bottom: -10px;
		left: -10px;
	}
}

/*トップページのcontainerとcontentsとmain
---------------------------------------------------------------------------*/
.home #container,.home #contents,.home #main{
	min-height: 100%; /* height→min-heightに変更 */
}

/*container。サイト全体を囲むブロック
---------------------------------------------------------------------------*/
#container {
	max-width: 1600px;	/*最大幅。これ以上幅が広くならないように。*/
	margin: 0 auto;
	position: relative;
	z-index: 1;
}

/*トップページのSVGロゴアニメーション設定
---------------------------------------------------------------------------*/
#svg-logo {
	display: none;
}

/*ヒーローアニメーション設定
---------------------------------------------------------------------------*/
#hero-animation {
	position: relative;
	width: 100%;
	min-height: 100vh; /* min-heightに変更 */
	min-height: 100svh; /* スマホ対応：Small Viewport Height */
	height: auto; /* autoに変更して自然な高さに */
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: #000; /* 完全な黒背景 */
}

/* 背景キャンバスレイヤー */
#globe-canvas,
#sakura-canvas {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: auto; /* タッチ/マウス操作を有効化 */
	/* モバイルパフォーマンス最適化 */
	transform: translateZ(0);
	-webkit-transform: translateZ(0);
	will-change: transform;
}

#globe-canvas {
	z-index: 1;
}

#sakura-canvas {
	z-index: 3;
}

/* bridge-particles（青いネットワーク）を完全削除 */
#bridge-particles {
	display: none !important;
}

/* 山のシルエットレイヤー - 非表示 */
.mountain-layer {
	display: none !important; /* 山を完全に非表示 */
}

/* SENロゴコンテナ */
#sen-logo-container {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 10;
	text-align: center;
	opacity: 0;
	width: 100%; /* 完全な幅を確保 */
	max-width: 100%;
	padding: 0 20px; /* 左右に均等な余白 */
	display: flex;
	justify-content: center; /* 中央揃え */
	align-items: center;
}

.home #sen-logo-container {
	animation: fadeIn 1s ease-out 1.5s forwards;
}

/* SENテキスト */
.logo-text-main {
	font-size: clamp(60px, 15vw, 180px);
	font-weight: 900;
	font-family: 'Arial Black', sans-serif;
	color: #fff;
	text-shadow:
		0 0 40px rgba(41, 172, 239, 0.8),
		0 0 80px rgba(41, 172, 239, 0.6),
		0 0 120px rgba(41, 172, 239, 0.4),
		0 10px 40px rgba(0, 0, 0, 0.9);
	letter-spacing: 0;
	opacity: 0;
	transform: scale(0.5);
	white-space: nowrap;
	-webkit-text-size-adjust: 100%;
	text-align: center;
	margin: 0 auto;
	padding: 0;
	display: block;
	width: 100%;
}

.home .logo-text-main {
	animation: senAppear 1.5s cubic-bezier(0.34, 1.56, 0.64, 1) 2s forwards;
}

/* アニメーション定義 */
@keyframes senAppear {
	0% {
		opacity: 0;
		transform: scale(0.5) rotateY(90deg);
	}
	60% {
		opacity: 1;
		transform: scale(1.05) rotateY(-5deg);
	}
	100% {
		opacity: 1;
		transform: scale(1) rotateY(0deg);
	}
}

@keyframes fadeInSlide {
	from {
		opacity: 0;
		transform: translateY(100px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeIn {
	to {
		opacity: 1;
	}
}



/* アクセシビリティ: prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
	#sen-logo-container,
	.logo-text-main,
	.mountain-layer {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}

/*header
「top: -80px」の「80」の数字は、headerのheight(高さ)に合わせる。
---------------------------------------------------------------------------*/
/*アニメーションフレーム*/
@keyframes header {
0% {opacity: 0;top: -80px;}
100% {opacity: 1;top: 0px;}
}
/*headerブロック*/
header {
	position: fixed;	/*固定表示*/
	left: 0px;top: 0px;
	z-index: 100;
	width: 100%;		/*幅*/
	height: 80px;		/*高さ*/
	background: #000;	/*背景色*/
	box-shadow: 0px 0px 30px 30px #000;
}
/*headerブロック（トップページへの追加設定）*/
.home header {
	animation-name: header;		/*上で設定しているキーフレーム（keyframes）の名前*/
	animation-delay: 5s;		/*アニメーションを遅れて開始させる。「s」は秒の事。*/
	animation-duration: 0.2s;	/*アニメーションの実行時間。「s」は秒の事。*/
	animation-fill-mode: both;	/*アニメーションの待機中は最初のフレームを、アニメーションの完了後は最後のフレームを維持する。*/
	animation-timing-function: ease-in-out;
	background: #000;	/*背景色（古いブラウザ用）*/
	background: rgba(0,0,0,0.9);	/*背景色。0,0,0は黒の事で0.9は色が90%出た状態の事。*/
	box-shadow: none;
}
/*ロゴテキスト*/
header #logo {
	position: absolute;
	left: 3%;		/*ヘッダーブロックに対して左から3%の場所に配置*/
	bottom: 10px;	/*ヘッダーブロックに対して下から10pxの場所に配置*/
}
header #logo a {
	font-family: "Zen Maru Gothic", sans-serif;
	font-size: 24px;
	font-weight: bold;
	color: #fff;
	text-decoration: none;
	letter-spacing: 2px;
}
header #logo a:hover {
	color: #29acef;
}

/*headerアイコン（facebookやtwitterなどのアイコンブロック）
---------------------------------------------------------------------------*/
/*アイコンを囲むブロック全体の設定*/
header .icon {
	position: absolute;
	right: 3%;		/*ヘッダーブロックに対して右から3%の場所に配置*/
	bottom: 10px;	/*ヘッダーブロックに対して下から10pxの場所に配置*/
	display: flex;
	align-items: center;
	gap: 10px; /* アイコン間のスペース */
}
/*アイコン１個あたりの設定*/
header .icon li {
	display: inline-block;	/*横並びにさせる指定*/
	margin: 0; /* gap で制御するため0に */
}
/*SVGアイコンの設定*/
header .icon .icon-link {
	display: inline-block;
	transition: all 0.3s ease;
}
header .icon svg {
	width: 28px;
	height: 28px;
	stroke: #fff;
	fill: none;
	stroke-width: 2;
	transition: all 0.3s ease;
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
	display: block;
}
header .icon .icon-link:hover {
	transform: translateY(-3px) scale(1.1);
}
header .icon .icon-link:hover svg {
	stroke: #29acef;
	filter: drop-shadow(0 5px 15px rgba(41, 172, 239, 0.6));
}
/*アイコン画像の設定（後方互換）*/
header .icon img {
	width: 30px;		/*画像の幅*/
	margin-left: 5px;	/*画像同士の余白*/
	transition: all 0.3s ease;
}
header .icon a:hover img {
	transform: translateY(-3px) scale(1.1);
	filter: brightness(1.3) drop-shadow(0 5px 10px rgba(41, 172, 239, 0.5));
}
/*言語切り替えボタン*/
#lang-toggle {
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.15), rgba(41, 172, 239, 0.05));
	border: 1.5px solid rgba(41, 172, 239, 0.5);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	padding: 6px 14px;
	border-radius: 20px;
	cursor: pointer;
	transition: all 0.3s ease;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	letter-spacing: 1px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
#lang-toggle:hover {
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.3), rgba(41, 172, 239, 0.15));
	border-color: #29acef;
	transform: translateY(-2px);
	box-shadow: 0 5px 15px rgba(41, 172, 239, 0.5);
	color: #29acef;
}
#lang-toggle:active {
	transform: translateY(0);
	box-shadow: 0 2px 5px rgba(41, 172, 239, 0.3);
}
/*ボタン共通スタイル*/
header .icon button {
	transition: all 0.3s ease;
}

/*メインメニュー
---------------------------------------------------------------------------*/
/*メニューブロック*/
#menubar {
	overflow: hidden;clear: both;
	position: absolute;
	left: 250px;	/*ヘッダーブロックに対して左から300pxの場所に配置*/
	bottom: 10px;	/*ヘッダーブロックに対して下から10pxの場所に配置*/
}
/*メニュー１個あたりの設定*/
#menubar li {
	overflow: hidden;
	float: left;		/*左に回り込み*/
	text-align: center;	/*文字をセンタリング*/
	padding: 0px 10px;	/*上下、左右へのメニュー内の余白*/
}
#menubar li a {
	display:  block;text-decoration: none;
	padding-top: 3px;	/*下のブロックの「border-bottom」と「bottom」の数字と合わせる。*/
}
/*下線のアニメーション設定*/
#menubar li::after {
	transition: 0.3s;	/*0.3秒かけてアニメーションを実行する。*/
	content: "";
	display: block;
	border-bottom: 3px solid #fff;	/*下線の幅、線種、色。上のブロックの「padding-top」と、下の行の「bottom」の数字と合わせる。*/
	position: relative;left: 0px;bottom: -3px;	/*bottomの数字は上のブロックの「padding-top」と、上の行の「border-bottom」の数字と合わせる。※マイナス記号は残したまま。*/
}
/*マウスオン時、現在表示中(current)、共通設定*/
#menubar li:hover::after,#menubar li.current::after {
	bottom: 0px;
}
/*スマホ用メニューを表示させない*/
#menubar-s {display: none;}
/*３本バーアイコンを表示させない*/
#menubar_hdr {display: none;}

/*contentsブロック。mainとsubを囲むブロック。
---------------------------------------------------------------------------*/
#contents {
	padding: 150px 3% 0;	/*上、左右、下へのコンテンツ内の余白*/
	position: relative;
	z-index: 1;
}
/*トップページのcontentsへの追加指定。余白をリセット。*/
.home #contents {
	padding: 0;
}

/*mainブロック
---------------------------------------------------------------------------*/
/*mainブロック*/
#main {
	overflow: hidden;
	width: 75%;		/*幅*/
	float: right;	/*右に回り込み*/
}
/*トップページのmainブロックの指定*/
.home #main {
	width: 100%;
	float: none;
}
/*１カラム時のmainブロックの指定*/
.c1 #main {
	width: 100%;
	float: none;
}
/*h2タグ*/
#main h2 {
	clear: both;
	margin-bottom: 30px;
	font-size: 56px;	/*文字サイズ*/
	border-bottom: 1px solid #fff;	/*下線の幅、線種、色*/
	padding: 0 20px 10px;	/*上、左右、下へのタグ内の余白*/
	line-height: 1.2;	/*行間を少し狭くする。デフォルト指定は冒頭のbody内にあります。*/
}
/*h2タグ内のspanタグ（小文字）*/
#main h2 span {
	display: block;
	font-size: 18px;		/*文字サイズ*/
	letter-spacing: 0.2em;	/*文字間隔を少し広くとる指定*/
	padding-left: 3px;		/*左に空ける余白*/
	padding-bottom: 10px;	/*下に空ける余白*/
}
/*h3タグ*/
#main h3 {
	clear: both;
	margin-bottom: 15px;
	padding-left: 7px;	/*左に空ける余白*/
	font-size: 24px;	/*文字サイズ*/
	color: #fff;		/*文字色*/
}
/*h3タグの左のアクセントライン*/
#main h3::first-letter {
	border-left: 3px solid #fff;	/*左側の線の幅、線種、色*/
	padding-left: 10px;		/*ラインと文字との間の余白*/
}
/*段落(p)タグ*/
#main p {
	padding: 0 20px 20px;	/*上、左右、下への余白*/
}
/*他。微調整。*/
#main p + p {
	margin-top: -5px;
}
#main h2 + p,
#main h3 + p {
	margin-top: -10px;
}
#main section + section {
	clear: both;
	padding-top: 40px;
}
.fl + .fr {
	clear: none !important;
	padding-top: 0 !important;
}

/*subブロック
---------------------------------------------------------------------------*/
/*subブロック*/
#sub {
	width: 20%;		/*幅*/
	float: left;	/*左に回り込み*/
}
/*１カラム時のsubブロック。非表示にする指定。*/
.c1 #sub {
	display: none;
}
/*h2タグ*/
#sub h2 {
	border: 1px solid #fff;	/*枠線の幅、線種、色*/
	text-align: center;		/*文字をセンタリング*/
}

/*サブメニュー
---------------------------------------------------------------------------*/
/*メニュー全体のブロック*/
.submenu {
	margin-bottom: 20px;	/*下に空けるスペース*/
}
/*メニュー１個あたりの指定*/
.submenu a {
	display: block;text-decoration: none;
	text-align: center;	/*文字をセンタリング*/
	padding: 5px;		/*メニュー内の余白*/
	border-bottom: 1px solid #fff;	/*下線の幅、線種、色*/
}

/*footerブロック
---------------------------------------------------------------------------*/
/*footerブロック*/
footer {
	clear: both;
	text-align: center;
	padding: 40px 20px 20px;
	position: relative;
	z-index: 1;
	background: rgba(0, 0, 0, 0.9);
}
footer a {text-decoration: none;}
footer .pr {display: block;}
.footer-content {
	display: none !important; /* SEO対策テキストを非表示 */
}
.footer-info {
	display: none !important; /* SEO対策テキストを非表示 */
}
/*トップページのfooterブロック*/
.home footer {
	position: absolute;
	bottom: 0px;
	width: 100%;
	z-index: 10;
}

/*listブロック（index2.htmlで使用）
---------------------------------------------------------------------------*/
/*listブロック*/
.list {
	overflow: hidden;
	padding: 10px 20px;	/*上下、左右へのブロック内の余白*/
	border-bottom: 1px solid #555;	/*下線の幅、線種、色*/
}
/*画像*/
.list figure img {
	float: left;	/*左に回り込み*/
	width: 15%;		/*画像の幅*/
	border-radius: 50%;	/*丸くする指定。10pxなどにすると角が丸い四角形になります。完全な四角形がいいならこの１行削除。*/
}
/*画像にtextブロックが続いた場合*/
figure + .text {
	float: right;	/*textブロックを右に回り込み*/
	width: 83%;		/*ブロック幅*/
}
/*h4見出し*/
.list h4 {
	font-size: 16px;	/*文字サイズを少し大きく*/
}
/*段落(p)タグ*/
.list p {
	padding: 0 !important;
	line-height: 1.5;	/*行間を少し狭く*/
}

/*NEWSブロック
---------------------------------------------------------------------------*/
/*日付設定*/
.news dt {
	clear: both;
	letter-spacing: 0.1em;	/*文字間隔を少し広くとる指定*/
	font-weight: bold;		/*太字にする*/
	padding: 10px 20px 0px;	/*上、左右、下への余白*/
	font-size: 20px;	/*文字サイズ*/
}
/*記事設定*/
.news dd {
	overflow: hidden;
	border-bottom: 1px solid #333;	/*下線の幅、線種、色*/
	padding: 0px 20px 10px;	/*上、左右、下への余白*/
	font-size: 18px;	/*文字サイズ*/
}
/*右に回り込みの小さな画像*/
.news dd .img {
	width: 100px;	/*画像の幅*/
	float: right;	/*右に回り込み*/
}

/*NEWSブロック内のアイコン（INFORMATION,EVENT,MEDIAなどのアイコン）
---------------------------------------------------------------------------*/
/*アイコン共通*/
.news .icon {
	display: inline-block;
	background: #333;		/*背景色*/
	border: 1px solid #999;	/*枠線の幅、線種、色*/
	font-size: 10px;		/*文字サイズ*/
	padding: 0px 10px;		/*上下、左右へのアイコン内の余白*/
	margin-left: 10px;		/*左に空けるスペース。日付との間の余白です。*/
}
/*リンク設定した場合*/
.news .icon a {
	text-decoration: none;display: block;
	color: #fff;	/*文字色*/
}
/*EVENT*/
.news .icon.event {
	border: none;			/*枠線を消す設定*/
	background: #ff0000;	/*背景色*/
}
/*MEDIA*/
.news .icon.media {
	border: none;			/*枠線を消す設定*/
	background: #1908ff;	/*背景色*/
}

/*テーブル
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	border: 1px solid #fff;	/*テーブルの枠線の幅、線種、色*/
	border-bottom: none;	/*下線だけ消す*/
	text-align: left;		/*文字を左寄せ*/
	background: #fff;		/*背景色*/
	color: #000;			/*文字色*/
	font-weight: bold;		/*太字に*/
	padding: 10px;			/*ボックス内の余白*/
}
/*テーブルの見出し（※tamidashi）*/
.ta1 th.tamidashi {
	width: auto;
	text-align: left;	/*左よせ*/
	background: #fff;	/*背景色*/
	color: #000;		/*文字色*/
}
/*caption、tamidashiにリンクを指定した場合の文字色*/
.ta1 caption a, .ta1 th.tamidashi a {
	color: #000;		/*文字色*/
}
/*ta1設定*/
.ta1 {
	table-layout: fixed;
	width: 100%;
	margin: 0 auto 30px;
}
.ta1, .ta1 td, .ta1 th {
	word-break: break-all;
	border: 1px solid #fff;	/*テーブルの枠線の幅、線種、色*/
	padding: 10px;	/*ボックス内の余白*/
}
/*ta1の左側ボックス*/
.ta1 th {
	width: 140px;		/*幅*/
	text-align: center;	/*センタリング*/
}

/*フォーム関連
---------------------------------------------------------------------------*/
/*ボタン（btn）*/
input[type="submit"].btn,
input[type="button"].btn,
input[type="reset"].btn {
	padding: 5px 20px;		/*上下、左右へのボックス内の余白*/
	border-radius: 3px;		/*角丸のサイズ*/
	background: #111;	/*背景色（古いブラウザ用）*/
	background: linear-gradient(#222, #000);/*背景グラデーション*/
	color: #fff;	/*文字色*/
}
/*マウスオン時のボタン（btn）設定*/
input[type="submit"].btn:hover,
input[type="button"].btn:hover,
input[type="reset"].btn:hover {
	background: #000;	/*背景色*/
	color: #fff;		/*文字色*/
}
/*input,textarea共通*/
input,textarea {
	outline: none;background: transparent;
	border: 1px solid #444;	/*枠線の幅、線種、色*/
	color: #fff;			/*文字色*/
}
/*input,textareaのフォーカス時*/
input:focus,textarea:focus {
	border: 1px solid #fff;	/*枠線の幅、線種、色*/
}

/*checkブロック。赤い注意書きブロックです。
---------------------------------------------------------------------------*/
p.check {
	background: #ff0000;
	color:#fff;
	padding: 10px 25px !important;
	margin-bottom: 20px;
}
p.check a {color: #fff;}

/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
@keyframes scroll {
0% {opacity: 0;}
100% {opacity: 1;}
}
/*通常時のボタンは非表示*/
body .nav-fix-pos-pagetop a {
	display: none;
}
/*fixmenu_pagetop.jsで設定している設定値になったら出現するボタンスタイル*/
body.is-fixed-pagetop .nav-fix-pos-pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 100;position: fixed;animation-name: scroll;animation-duration: 1s;animation-fill-mode: forwards;
	width: 40px;		/*ボタンの幅*/
	line-height: 40px;	/*ボタンの高さ*/
	bottom: 20px;		/*ウィンドウの下から20pxの場所に配置*/
	right: 3%;			/*ウィンドウの右から3%の場所に配置*/
	background: #555;	/*背景色*/
	border-radius: 50%;
}
/*マウスオン時の背景色*/
body.is-fixed-pagetop .nav-fix-pos-pagetop a:hover {
	background: #999;
}

/*トップページのNEWアイコン
---------------------------------------------------------------------------*/
.newicon {
	background: #F00;	/*背景色*/
	color: #FFF;		/*文字色*/
	font-size: 70%;		/*文字サイズ*/
	line-height: 1.5;
	padding: 2px 5px;
	border-radius: 2px;
	margin: 0px 5px;
	vertical-align: text-top;
}

/*ul.disc,olタグ
---------------------------------------------------------------------------*/
ul.disc {
	list-style: disc;
	padding: 0 20px 20px 45px;
}
ol {
	padding: 0 20px 20px 45px;
}

/*新規セクションの共通設定
---------------------------------------------------------------------------*/
.section-padding {
	padding: 80px 0;
}
.section-padding .inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.section-title {
	text-align: center;
	font-size: 56px;
	font-weight: 700;
	margin-bottom: 70px;
	position: relative;
	padding-bottom: 25px;
	text-transform: uppercase;
	text-shadow: 0 0 30px rgba(41, 172, 239, 0.6), 0 5px 15px rgba(0, 0, 0, 0.8);
	animation: titleGlow 3s ease-in-out infinite;
	letter-spacing: 3px;
	background: linear-gradient(135deg, #29acef 0%, #1d8abf 50%, #29acef 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	background-size: 200% auto;
	animation: shimmer 3s linear infinite;
}
@keyframes shimmer {
	0% { background-position: 0% center; }
	100% { background-position: 200% center; }
}
.section-title::before {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: -15px;
	width: 60px;
	height: 4px;
	background: linear-gradient(90deg, transparent, #29acef, transparent);
}
.section-title::after {
	content: "";
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 0;
	width: 120px;
	height: 4px;
	background: linear-gradient(90deg, #29acef, #1d8abf, #29acef);
	box-shadow:
		0 0 20px rgba(41, 172, 239, 0.8),
		0 0 40px rgba(41, 172, 239, 0.4);
	animation: expandWidth 2s ease-in-out infinite;
}
@keyframes expandWidth {
	0%, 100% { width: 120px; }
	50% { width: 180px; }
}
.bg-light {
	background: rgba(255, 255, 255, 0.03);
	position: relative;
}
.bg-light::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, #29acef, transparent);
	animation: scanLine 3s linear infinite;
}
@keyframes scanLine {
	0% { left: -100%; }
	100% { left: 100%; }
}

/*スクロールアニメーション
---------------------------------------------------------------------------*/
[data-aos] {
	opacity: 0;
	transition-property: transform, opacity;
	transition-duration: 1s;
	transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
	/* モバイル対応：ハードウェアアクセラレーション */
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	will-change: transform, opacity;
}
[data-aos].aos-animate {
	opacity: 1;
}
/* モバイルでprefers-reduced-motionが無効の場合のみアニメーション */
@media (prefers-reduced-motion: reduce) {
	[data-aos] {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
[data-aos="fade-up"] {
	transform: translateY(50px);
}
[data-aos="fade-up"].aos-animate {
	transform: translateY(0);
}
[data-aos="fade-right"] {
	transform: translateX(-50px);
}
[data-aos="fade-right"].aos-animate {
	transform: translateX(0);
}
[data-aos="fade-left"] {
	transform: translateX(50px);
}
[data-aos="fade-left"].aos-animate {
	transform: translateX(0);
}
[data-aos="zoom-in"] {
	transform: scale(0.8);
}
[data-aos="zoom-in"].aos-animate {
	transform: scale(1);
}
[data-aos="flip-left"] {
	transform: perspective(1000px) rotateY(-45deg);
}
[data-aos="flip-left"].aos-animate {
	transform: perspective(1000px) rotateY(0);
}
[data-aos-delay="100"] { transition-delay: 0.1s; }
[data-aos-delay="150"] { transition-delay: 0.15s; }
[data-aos-delay="200"] { transition-delay: 0.2s; }
[data-aos-delay="250"] { transition-delay: 0.25s; }
[data-aos-delay="300"] { transition-delay: 0.3s; }
[data-aos-delay="350"] { transition-delay: 0.35s; }
[data-aos-delay="400"] { transition-delay: 0.4s; }
[data-aos-delay="500"] { transition-delay: 0.5s; }

/*企業理念セクション
---------------------------------------------------------------------------*/
#vision {
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.15) 0%, rgba(0, 0, 0, 0) 100%);
	position: relative;
	overflow: hidden;
	padding: 100px 20px !important;
}
#vision::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -10%;
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, rgba(41, 172, 239, 0.15) 0%, transparent 70%);
	border-radius: 50%;
	animation: pulse 8s ease-in-out infinite;
}
@keyframes pulse {
	0%, 100% { transform: scale(1); opacity: 0.3; }
	50% { transform: scale(1.2); opacity: 0.5; }
}
.vision-box {
	max-width: 900px;
	margin: 0 auto;
	padding: 70px 60px;
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.15) 0%, rgba(0, 0, 0, 0.5) 100%);
	border: 4px solid transparent;
	border-radius: 30px;
	box-shadow:
		0 30px 80px rgba(41, 172, 239, 0.3),
		0 10px 30px rgba(0, 0, 0, 0.6),
		inset 0 1px 0 rgba(255, 255, 255, 0.15);
	position: relative;
	backdrop-filter: blur(20px);
	overflow: hidden;
	transform: translateZ(0);
	transition: all 0.5s ease;
}
.vision-box:hover {
	transform: translateY(-10px) scale(1.02);
	box-shadow:
		0 40px 100px rgba(41, 172, 239, 0.5),
		0 15px 40px rgba(0, 0, 0, 0.8),
		inset 0 2px 0 rgba(255, 255, 255, 0.2);
}
.vision-box::before {
	content: '"';
	position: absolute;
	top: 20px;
	left: 30px;
	font-size: 120px;
	color: rgba(41, 172, 239, 0.2);
	font-family: Georgia, serif;
	line-height: 1;
	text-shadow: 0 0 30px rgba(41, 172, 239, 0.5);
}
.vision-box::after {
	content: '';
	position: absolute;
	top: -2px;
	left: -2px;
	right: -2px;
	bottom: -2px;
	background: linear-gradient(45deg, #29acef, #1d8abf, #29acef);
	border-radius: 20px;
	z-index: -1;
	background-size: 200% 200%;
	animation: borderGlow 3s ease infinite;
}
@keyframes borderGlow {
	0%, 100% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
}
@keyframes titleGlow {
	0%, 100% { text-shadow: 0 0 30px rgba(41, 172, 239, 0.6), 0 5px 15px rgba(0, 0, 0, 0.8); }
	50% { text-shadow: 0 0 50px rgba(41, 172, 239, 0.9), 0 5px 20px rgba(0, 0, 0, 1); }
}
.vision-glow {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 400px;
	height: 400px;
	background: radial-gradient(circle, rgba(41, 172, 239, 0.3) 0%, transparent 70%);
	border-radius: 50%;
	animation: glowPulse 4s ease-in-out infinite;
	pointer-events: none;
}
@keyframes glowPulse {
	0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.3; }
	50% { transform: translate(-50%, -50%) scale(1.3); opacity: 0.6; }
}
.vision-text {
	font-size: 26px;
	line-height: 2.2;
	text-align: center;
	font-weight: 600;
	letter-spacing: 0.08em;
	padding: 0 !important;
	color: #fff;
	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
	position: relative;
	z-index: 1;
}

/*会社メッセージセクション
---------------------------------------------------------------------------*/
#message {
	padding: 120px 20px !important;
	position: relative;
	overflow: hidden;
}
#message::before {
	content: '';
	position: absolute;
	top: -50%;
	left: -50%;
	width: 200%;
	height: 200%;
	background: radial-gradient(circle, rgba(41, 172, 239, 0.15) 0%, transparent 70%);
	animation: pulse 15s ease-in-out infinite;
}
@keyframes pulse {
	0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.3; }
	50% { transform: scale(1.2) rotate(180deg); opacity: 0.6; }
}

.ceo-message-title {
	position: relative;
	margin-bottom: 60px !important;
}
.title-badge {
	display: inline-block;
	background: linear-gradient(135deg, #29acef 0%, #1e88e5 100%);
	color: #fff;
	padding: 8px 25px;
	border-radius: 30px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 2px;
	margin-bottom: 15px;
	box-shadow: 0 4px 15px rgba(41, 172, 239, 0.4);
	text-transform: uppercase;
}

.ceo-message-wrapper {
	max-width: 1200px;
	margin: 0 auto;
	position: relative;
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.1) 0%, rgba(0, 0, 0, 0.5) 100%);
	border-radius: 30px;
	padding: 60px 50px;
	backdrop-filter: blur(20px);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(41, 172, 239, 0.3);
	border: 2px solid rgba(41, 172, 239, 0.3);
}

.ceo-quote-mark {
	position: absolute;
	top: -20px;
	left: 40px;
	font-size: 150px;
	font-family: Georgia, serif;
	color: rgba(41, 172, 239, 0.2);
	line-height: 1;
	font-weight: bold;
	z-index: 0;
}

.message-content-enhanced {
	position: relative;
	z-index: 1;
}

.message-block {
	margin-bottom: 40px;
	position: relative;
	padding-left: 80px;
}
.message-block:last-child {
	margin-bottom: 0;
}

.message-icon {
	position: absolute;
	left: 0;
	top: 0;
	width: 60px;
	height: 60px;
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.2) 0%, rgba(41, 172, 239, 0.05) 100%);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid rgba(41, 172, 239, 0.4);
	box-shadow: 0 5px 20px rgba(41, 172, 239, 0.3);
}

.message-block p {
	color: #fff;
	font-size: 18px;
	line-height: 2;
	margin-bottom: 20px !important;
	padding: 0 !important;
}

.mission-statement {
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.25) 0%, rgba(41, 172, 239, 0.1) 100%);
	border-left: 4px solid #29acef;
	padding: 30px 40px;
	margin: 30px 0;
	border-radius: 15px;
	position: relative;
	box-shadow: 0 10px 30px rgba(41, 172, 239, 0.2);
}
.mission-statement::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(90deg, transparent, rgba(41, 172, 239, 0.1), transparent);
	animation: shimmer 3s ease-in-out infinite;
	border-radius: 15px;
}
@keyframes shimmer {
	0%, 100% { opacity: 0; }
	50% { opacity: 1; }
}
.mission-statement p {
	font-size: 22px !important;
	font-weight: 700;
	color: #29acef !important;
	text-shadow: 0 0 20px rgba(41, 172, 239, 0.5);
	margin: 0 !important;
	position: relative;
	z-index: 1;
}

.message-divider {
	width: 80%;
	height: 2px;
	background: linear-gradient(90deg, transparent, rgba(41, 172, 239, 0.5), transparent);
	margin: 50px auto;
	position: relative;
}
.message-divider::after {
	content: '◆';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #29acef;
	font-size: 20px;
	background: #000;
	padding: 0 15px;
}

.ceo-signature {
	margin-top: 50px;
	text-align: right;
	position: relative;
}
.signature-line {
	width: 100%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(41, 172, 239, 0.5));
	margin-bottom: 20px;
}
.ceo-signature p {
	color: #fff;
	font-size: 16px;
	font-weight: 300;
	letter-spacing: 1px;
	margin: 0 !important;
	padding: 0 !important;
}
.ceo-name {
	font-size: 20px;
	font-weight: 700;
	color: #29acef;
	margin-left: 10px;
	text-shadow: 0 0 15px rgba(41, 172, 239, 0.6);
}

/* Legacy styles for backward compatibility */
.message-content {
	max-width: 1100px;
	margin: 0 auto;
	font-size: 18px;
	line-height: 2;
	display: grid;
	gap: 35px;
}
.message-content > div {
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.08) 0%, rgba(0, 0, 0, 0.4) 100%);
	border-radius: 20px;
	padding: 50px 40px;
	backdrop-filter: blur(10px);
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
	border: 2px solid rgba(41, 172, 239, 0.2);
	transition: all 0.4s ease;
	position: relative;
	overflow: hidden;
}
.message-content > div::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(41, 172, 239, 0.2), transparent);
	transition: left 0.6s ease;
}
.message-content > div:hover::before {
	left: 100%;
}
.message-content > div:hover {
	transform: translateY(-8px);
	border-color: rgba(41, 172, 239, 0.6);
	box-shadow: 0 20px 60px rgba(41, 172, 239, 0.4);
}
.message-content p {
	padding: 0 !important;
	margin: 0 !important;
	color: #fff;
	font-size: 19px;
	line-height: 2;
}

/*事業内容セクション
---------------------------------------------------------------------------*/
#business {
	position: relative;
	padding: 100px 20px !important;
}
#business::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image:
		radial-gradient(circle at 20% 30%, rgba(41, 172, 239, 0.03) 1px, transparent 1px),
		radial-gradient(circle at 60% 70%, rgba(41, 172, 239, 0.03) 1px, transparent 1px),
		radial-gradient(circle at 80% 20%, rgba(41, 172, 239, 0.03) 1px, transparent 1px);
	background-size: 50px 50px, 80px 80px, 100px 100px;
	animation: particleFloat 20s linear infinite;
	pointer-events: none;
	opacity: 0.5;
}
@keyframes particleFloat {
	0% { background-position: 0 0, 0 0, 0 0; }
	100% { background-position: 50px 50px, 80px 80px, 100px 100px; }
}
.business-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 35px;
	max-width: 1100px;
	margin: 0 auto;
}
.business-card {
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.12) 0%, rgba(0, 0, 0, 0.5) 100%);
	border: 3px solid rgba(41, 172, 239, 0.35);
	border-radius: 20px;
	padding: 50px 25px;
	text-align: center;
	transition: all 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
	position: relative;
	overflow: hidden;
	cursor: pointer;
	backdrop-filter: blur(10px);
	transform-style: preserve-3d;
	perspective: 1000px;
}
.business-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(41, 172, 239, 0.3), transparent);
	transition: left 0.6s ease;
}
.card-shine {
	position: absolute;
	top: -50%;
	right: -50%;
	width: 200%;
	height: 200%;
	background: conic-gradient(
		from 0deg,
		transparent 0deg,
		rgba(41, 172, 239, 0.4) 45deg,
		transparent 90deg
	);
	opacity: 0;
	transition: opacity 0.5s, transform 0.5s;
	pointer-events: none;
}
.business-card:hover {
	transform: translateY(-15px) scale(1.05);
	border-color: #29acef;
	box-shadow:
		0 25px 60px rgba(41, 172, 239, 0.4),
		0 0 40px rgba(41, 172, 239, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.2);
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.15) 0%, rgba(0, 0, 0, 0.3) 100%);
}
.business-card:hover::before {
	left: 100%;
}
.business-card:hover .card-shine {
	opacity: 1;
	transform: rotate(180deg);
}
.card-number {
	position: absolute;
	top: 15px;
	right: 20px;
	font-size: 48px;
	font-weight: bold;
	color: rgba(41, 172, 239, 0.15);
	font-family: 'Arial Black', sans-serif;
	line-height: 1;
	transition: all 0.5s;
}
.business-card:hover .card-number {
	color: rgba(41, 172, 239, 0.4);
	transform: scale(1.2);
}
.business-card .card-icon {
	font-size: 70px;
	margin-bottom: 25px;
	filter: drop-shadow(0 8px 15px rgba(0, 0, 0, 0.5));
	transition: all 0.5s;
	display: inline-block;
}
.business-card:hover .card-icon {
	transform: scale(1.2) rotateY(360deg);
	filter: drop-shadow(0 10px 25px rgba(41, 172, 239, 0.6));
}
.business-card h3 {
	font-size: 18px;
	font-weight: bold;
	line-height: 1.7;
	padding: 0 !important;
	color: #fff;
	text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
	transition: all 0.3s;
	position: relative;
	z-index: 1;
}
.business-card:hover h3 {
	color: #29acef;
	text-shadow: 0 0 20px rgba(41, 172, 239, 0.8);
}

/*会社概要セクション
---------------------------------------------------------------------------*/
#company-info {
	padding: 100px 20px !important;
}
.company-table {
	max-width: 950px;
	margin: 0 auto;
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.08) 0%, rgba(0, 0, 0, 0.4) 100%);
	border-radius: 20px;
	overflow: hidden;
	border: 3px solid rgba(41, 172, 239, 0.3);
	box-shadow:
		0 15px 50px rgba(0, 0, 0, 0.6),
		0 5px 20px rgba(41, 172, 239, 0.2),
		inset 0 1px 0 rgba(255, 255, 255, 0.15);
	backdrop-filter: blur(15px);
	transition: all 0.4s ease;
	position: relative;
}
.company-table::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background:
		linear-gradient(90deg, transparent 0%, rgba(41, 172, 239, 0.03) 50%, transparent 100%);
	pointer-events: none;
}
.company-table dl {
	display: flex;
	border-bottom: 1px solid rgba(41, 172, 239, 0.2);
	transition: all 0.4s ease;
	position: relative;
	overflow: hidden;
}
.company-table dl:last-child {
	border-bottom: none;
}
.company-table dl::before {
	content: '';
	position: absolute;
	left: -100%;
	top: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(41, 172, 239, 0.15), transparent);
	transition: left 0.6s ease;
}
.company-table dl:hover {
	background: linear-gradient(90deg, rgba(41, 172, 239, 0.2) 0%, rgba(41, 172, 239, 0.1) 100%);
	transform: translateX(8px) scale(1.01);
}
.company-table dl:hover::before {
	left: 100%;
}
.company-table dt {
	width: 220px;
	padding: 28px 35px;
	background: rgba(41, 172, 239, 0.1);
	font-weight: bold;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	position: relative;
	font-size: 16px;
	letter-spacing: 0.05em;
}
.company-table dt::after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 60%;
	background: linear-gradient(180deg, transparent, #29acef, transparent);
	opacity: 0;
	transition: opacity 0.3s;
}
.company-table dl:hover dt::after {
	opacity: 1;
}
.company-table dd {
	padding: 28px 35px;
	flex: 1;
	display: flex;
	align-items: center;
	font-size: 15px;
}
.company-table a {
	color: #29acef;
	text-decoration: none;
	transition: all 0.3s ease;
	position: relative;
	display: inline-block;
	font-weight: 500;
}
.company-table a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -2px;
	width: 0;
	height: 2px;
	background: linear-gradient(90deg, #29acef, #1d8abf);
	transition: width 0.3s ease;
}
.company-table a:hover {
	color: #fff;
	text-shadow: 0 0 10px rgba(41, 172, 239, 0.8);
	transform: translateX(3px);
}
.company-table a:hover::after {
	width: 100%;
}

/*サービスページ（event.html）専用スタイル
---------------------------------------------------------------------------*/
.service-section {
	padding: 0 20px 60px;
}
.page-title {
	text-align: center;
	font-size: 48px;
	font-weight: bold;
	margin-bottom: 60px;
	padding-top: 40px;
	position: relative;
	background: linear-gradient(135deg, #29acef 0%, #1d8abf 50%, #29acef 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	background-size: 200% auto;
	animation: shimmer 3s linear infinite;
}
.page-title::after {
	content: "";
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: -15px;
	width: 120px;
	height: 4px;
	background: linear-gradient(90deg, #29acef, #1d8abf, #29acef);
	box-shadow: 0 0 20px rgba(41, 172, 239, 0.8);
}
.service-block {
	margin-bottom: 80px;
	padding: 40px;
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.05) 0%, rgba(0, 0, 0, 0.3) 100%);
	border: 2px solid rgba(41, 172, 239, 0.2);
	border-radius: 20px;
	backdrop-filter: blur(10px);
	transition: all 0.3s ease;
}
.service-block:hover {
	border-color: rgba(41, 172, 239, 0.5);
	box-shadow: 0 10px 40px rgba(41, 172, 239, 0.3);
}
.service-title {
	font-size: 32px;
	font-weight: bold;
	margin-bottom: 20px;
	color: #29acef;
	display: flex;
	align-items: center;
	gap: 15px;
	padding-left: 0 !important;
}
.service-title::first-letter {
	border: none !important;
	padding-left: 0 !important;
}
.service-icon {
	font-size: 40px;
	filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3));
}
.service-description {
	font-size: 18px;
	line-height: 1.8;
	margin-bottom: 40px;
	padding: 0 20px 20px !important;
	color: rgba(255, 255, 255, 0.9);
}
.service-items {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 30px;
	margin-top: 30px;
}
.service-item {
	background: rgba(0, 0, 0, 0.3);
	border: 2px solid rgba(41, 172, 239, 0.2);
	border-radius: 16px;
	padding: 30px;
	transition: all 0.4s ease;
	position: relative;
	overflow: hidden;
}
.service-item::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(90deg, transparent, rgba(41, 172, 239, 0.15), transparent);
	transition: left 0.6s ease;
}
.service-item:hover {
	transform: translateY(-10px);
	border-color: #29acef;
	box-shadow: 0 15px 40px rgba(41, 172, 239, 0.4);
}
.service-item:hover::before {
	left: 100%;
}
.service-item-icon {
	width: 80px;
	height: 80px;
	margin: 0 auto 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(41, 172, 239, 0.1);
	border-radius: 50%;
	transition: all 0.4s ease;
}
.service-item:hover .service-item-icon {
	transform: scale(1.1) rotate(360deg);
	background: rgba(41, 172, 239, 0.2);
	box-shadow: 0 0 30px rgba(41, 172, 239, 0.5);
}
.service-item h4 {
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 15px;
	text-align: center;
	color: #fff;
	padding: 0 !important;
}
.service-item p {
	font-size: 15px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.85);
	text-align: center;
	padding: 0 !important;
}

/*代表挨拶スタイル（readme.html）
---------------------------------------------------------------------------*/
.ceo-message {
	display: grid;
	grid-template-columns: 300px 1fr;
	gap: 40px;
	align-items: start;
}
.ceo-info {
	text-align: center;
}
.ceo-icon {
	width: 150px;
	height: 150px;
	margin: 0 auto 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(41, 172, 239, 0.1);
	border-radius: 50%;
	border: 3px solid rgba(41, 172, 239, 0.3);
}
.ceo-text {
	flex: 1;
}
@media screen and (max-width:900px) {
	.ceo-message {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

/*その他
---------------------------------------------------------------------------*/
.look {background: #222;padding: 5px 10px;border-radius: 4px;border: 1px solid #333;color: #fff;}
.mb15,.mb1em {margin-bottom: 15px !important;}
.mb30 {margin-bottom: 30px !important;}
.mb50 {margin-bottom: 50px !important;}
.p0 {padding:0 !important;}
.clear {clear: both;}
.color1, .color1 a {color: #29acef !important;}
.pr {font-size: 10px;}
.wl {width: 96%;}
.ws {width: 50%;}
.c {text-align: center;}
.r {text-align: right;}
.l {text-align: left;}
.fl {float: left;}
.fr {float: right;}
.w25 {width: 25%;}
.w70 {width: 70%;}
.w48 {width: 48%;}
.big1 {font-size: 50px;}
.mini1 {font-size: 11px;display: inline-block;line-height: 1.5;}
.dn {display: none;}
.sh {display: none;}
.border1 {border: 1px solid #fff;}
#sh-sub {display: none;}
.sp-only {display: none;}



/*画面を横向きにした場合の高さが500px以下の場合の設定。
※小さな端末用メニューを２列にします。
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (orientation: landscape) and (max-height:500px){

/*メインメニュー
---------------------------------------------------------------------------*/
/*メニュー１個あたりの設定*/
#menubar-s li a {
	float: left;		/*左に回り込み*/
	width: 44%;			/*幅*/
	line-height: 1.2;	/*行間*/
}

}



/*画面幅901px以上の設定（PC・タブレット）
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (min-width:901px){
/* スマホナビゲーションボタンを非表示 */
#mobile-nav-buttons {
	display: none !important;
}
}

/*画面幅900px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:900px){

/*header
---------------------------------------------------------------------------*/
header {
	border-bottom: 1px solid #fff;	/*下線の幅、線種、色*/
	box-shadow: none;
}
/*ロゴテキスト（スマホ用）*/
header #logo {
	top: 10px;	/*ヘッダーブロックに対して上から10pxの場所に配置*/
	left: 10px;	/*ヘッダーブロックに対して左から10pxの場所に配置*/
	bottom: auto;
}
header #logo a {
	font-size: 20px;
}

/* ヒーローアニメーションのタブレット対応 */
/* clampが自動調整するため削除 */

/* セクションのタブレット対応 */
.section-padding {
	padding: 50px 20px;
}

/* 事業内容カード */
.business-grid {
	grid-template-columns: repeat(2, 1fr);
	gap: 25px;
}

/*headerアイコン（facebookやtwitterなどのアイコンブロック）
---------------------------------------------------------------------------*/
/*アイコンを囲むブロック全体の設定*/
header .icon {
	display: none !important; /* スマホではヘッダーアイコンを非表示 */
}

/*メインメニュー
---------------------------------------------------------------------------*/
/*アニメーションのフレーム設定。全100コマアニメーションだと思って下さい。
透明(opacity: 0;)から色をつける(opacity: 1;)までの指定。*/
@keyframes menubar {
	0% {opacity: 0;}
	100% {opacity: 1;}
}
/*スマホ用メニューブロック*/
#menubar-s {
	display: block;overflow: hidden;
	position: fixed;
	z-index: 3;
	top: 81px;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(0, 0, 0, 0.95) 0%, rgba(0, 20, 40, 0.98) 100%);	/*背景色*/
	backdrop-filter: blur(20px);
	animation-name: menubar;		/*上のkeyframesの名前*/
	animation-duration: 0.5s;		/*アニメーションの実行時間。0.5秒。*/
	animation-fill-mode: both;		/*待機中は最初のキーフレームを、完了後は最後のキーフレームを維持*/
}
/*メニュー１個あたりの設定*/
#menubar-s li a {
	display: block;
	text-decoration: none;
	padding: 18px 5%;	/*メニュー内の余白。上下、左右。*/
	border-bottom: 1px solid rgba(41, 172, 239, 0.2);	/*下の線の幅、線種、色*/
	color: #fff;		/*文字色*/
	font-size: 18px;	/*文字サイズ*/
	font-weight: 500;
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
}
#menubar-s li a:hover {
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.1) 0%, rgba(41, 172, 239, 0.05) 100%);
	color: #29acef;
	padding-left: 7%;
	border-left: 3px solid #29acef;
}
#menubar-s li a::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 0;
	background: linear-gradient(90deg, rgba(41, 172, 239, 0.2) 0%, transparent 100%);
	transition: width 0.3s ease;
}
#menubar-s li a:hover::before {
	width: 100%;
}
/*説明表記（飾り文字）*/
#menubar-s li a span {
	display: block;
	font-size: 11px;/*文字サイズ*/
	opacity: 0.8;
	font-weight: 400;
}
/*PC用メニューを非表示にする*/
#menubar {display: none;}

/*３本バーアイコン設定
---------------------------------------------------------------------------*/
/*３本バーブロック*/
#menubar_hdr {
	display: block;
	position: fixed;
	z-index: 50;
	top: 13px;		/*上から10pxの場所に配置*/
	right: 10px;	/*右から10pxの場所に配置*/
	width: 50px;
	height: 50px;
	cursor: pointer;
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.2) 0%, rgba(0, 0, 0, 0.3) 100%);
	border: 2px solid rgba(41, 172, 239, 0.3);
	border-radius: 10px;
	backdrop-filter: blur(10px);
	transition: all 0.3s ease;
}
#menubar_hdr:hover {
	background: linear-gradient(135deg, rgba(41, 172, 239, 0.3) 0%, rgba(0, 0, 0, 0.4) 100%);
	border-color: #29acef;
	box-shadow: 0 5px 20px rgba(41, 172, 239, 0.4);
	transform: translateY(-2px);
}
/*アイコン共通設定*/
#menubar_hdr.close,
#menubar_hdr.open {
	width: 50px;	/*幅*/
	height: 50px;	/*高さ*/
}
/*三本バーアイコン*/
#menubar_hdr.close {
	background-image: url(../images/icon_menu.png);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: 50px;
}
/*閉じるアイコン*/
#menubar_hdr.open {
	background-image: url(../images/icon_menu.png);
	background-repeat: no-repeat;
	background-position: center bottom;
	background-size: 50px;
	transform: rotate(90deg);
}
/* Better fallback if icon_menu.png doesn't exist - create pure CSS hamburger */
#menubar_hdr.close::before,
#menubar_hdr.close::after,
#menubar_hdr.open::before,
#menubar_hdr.open::after {
	content: '';
	display: none;  /* Hide by default, will show if background image fails */
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 30px;
	height: 3px;
	background: #29acef;
	border-radius: 2px;
	transition: all 0.3s ease;
}

/*contentsブロック。mainとsubを囲むブロック。
---------------------------------------------------------------------------*/
#contents {
	padding: 100px 3% 0;	/*上、左右、下へのコンテンツ内の余白*/
}

/*main,subコンテンツ
---------------------------------------------------------------------------*/
#main, #sub {
	float: none;
	width: auto;
	clear: both;
}
#main {
	padding-bottom: 20px;
}

/*listブロック（index2.htmlで使用）
---------------------------------------------------------------------------*/
.fl.w48, .fr.w48 {
	float: none;
	width: auto;
}
.fl + .fr {
	padding-top: 30px !important;
}

/*セクションのレスポンシブ設定（900px以下）
---------------------------------------------------------------------------*/
.section-padding {
	padding: 50px 0;
}
.section-title {
	font-size: 32px;
	margin-bottom: 40px;
}
.vision-box {
	padding: 40px 25px;
}
.vision-text {
	font-size: 18px;
	line-height: 1.8;
}
.business-grid {
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 20px;
}
.business-card {
	padding: 30px 15px;
}
.business-card .card-icon {
	font-size: 50px;
}
.business-card h3 {
	font-size: 16px;
}
.company-table dl {
	flex-direction: column;
}
.company-table dt {
	width: 100%;
	padding: 15px 20px;
}
.company-table dd {
	padding: 15px 20px;
}

/*その他
---------------------------------------------------------------------------*/
body.s-n #sub,body.s-n #footermenu,.m-n {display: none;}
.big1 {font-size: 24px;}
.sh {display:block;}
.pc {display:none;}
.sp-only {display: inline;}

}



/*画面幅480px以下の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*タブレット端末（768px～960px）の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (min-width:768px) and (max-width:960px){

/* ヒーローアニメーション */
#hero-animation {
	min-height: 100vh;
	height: auto;
}

/* SENロゴのタブレット対応 */
.logo-text-main {
	font-size: clamp(80px, 12vw, 140px);
	letter-spacing: clamp(10px, 1.5vw, 16px);
}

/* セクションパディング */
.section-padding {
	padding: 60px 40px;
}

/* ビジネスカードのタブレットレイアウト */
.business-grid {
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
}

/* 会社概要テーブル */
.company-table dl {
	grid-template-columns: 180px 1fr;
}

}


/*スマートフォン（480px以下）の設定
------------------------------------------------------------------------------------------------------------------------------------------------------*/
@media screen and (max-width:480px){

/*全体の設定
---------------------------------------------------------------------------*/
body {
	font-size: 13px;	/*文字サイズ*/
	line-height: 1.5;	/*行間*/
}

/* ヘッダーのスマホ対応 */
header {
	height: 60px !important;
	position: fixed !important;
	width: 100% !important;
	top: 0 !important;
	left: 0 !important;
	z-index: 1000 !important;
	background: rgba(0, 0, 0, 0.95) !important;
	backdrop-filter: blur(10px) !important;
}

header #logo {
	top: 15px !important;
	left: 15px !important;
	font-size: 18px !important;
}

header #logo a {
	font-size: 18px !important;
	color: #fff !important;
}

/* スマホ用ナビゲーションボタン - 地球の周りに円形配置 */
#mobile-nav-buttons {
	display: block !important;
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	pointer-events: none;
	z-index: 50;
}

.orbit-btn {
	position: absolute;
	width: 80px;
	height: 80px;
	pointer-events: all;
	text-decoration: none;
	animation: orbitPulse 3s ease-in-out infinite;
}

/* 円形配置の位置指定 - 地球の周り */
.orbit-btn[data-position="top"] {
	top: 15vh;
	left: 50%;
	transform: translateX(-50%);
	animation-delay: 0s;
}

.orbit-btn[data-position="top-right"] {
	top: 25vh;
	right: 8%;
	animation-delay: 0.5s;
}

.orbit-btn[data-position="right"] {
	top: 50%;
	right: 3%;
	transform: translateY(-50%);
	animation-delay: 1s;
}

.orbit-btn[data-position="bottom-right"] {
	bottom: 25vh;
	right: 8%;
	animation-delay: 1.5s;
}

.orbit-btn[data-position="bottom-left"] {
	bottom: 25vh;
	left: 8%;
	animation-delay: 2s;
}

.orbit-btn[data-position="left"] {
	top: 50%;
	left: 3%;
	transform: translateY(-50%);
	animation-delay: 2.5s;
}

/* ボタン内部のデザイン */
.nav-btn-inner {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: radial-gradient(circle, rgba(41, 172, 239, 0.25), rgba(41, 172, 239, 0.05));
	border: 2px solid rgba(41, 172, 239, 0.6);
	border-radius: 50%;
	padding: 10px;
	box-shadow:
		0 0 20px rgba(41, 172, 239, 0.4),
		inset 0 0 15px rgba(41, 172, 239, 0.1);
	backdrop-filter: blur(8px);
	transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.orbit-btn:active .nav-btn-inner,
.orbit-btn:hover .nav-btn-inner {
	background: radial-gradient(circle, rgba(41, 172, 239, 0.5), rgba(41, 172, 239, 0.2));
	border-color: #29acef;
	box-shadow:
		0 0 30px rgba(41, 172, 239, 0.8),
		inset 0 0 20px rgba(41, 172, 239, 0.3);
	transform: scale(1.15);
}

.nav-btn-icon {
	font-size: 28px;
	margin-bottom: 3px;
	filter: drop-shadow(0 0 5px rgba(41, 172, 239, 0.8));
}

.nav-btn-text {
	font-size: 9px;
	text-align: center;
	font-weight: 700;
	line-height: 1.1;
	color: #fff;
	text-shadow: 0 0 8px rgba(41, 172, 239, 0.8);
	letter-spacing: 0.3px;
}

/* 脈動アニメーション */
@keyframes orbitPulse {
	0%, 100% {
		opacity: 0.85;
	}
	50% {
		opacity: 1;
	}
}

/* ヒーローアニメーション（モバイル） */
#sen-logo {
	width: 80%;
	max-width: 400px;
}

/* 迷路キャンバスのモバイル対応 */
#maze-background,
#maze-foreground {
	image-rendering: auto;
}

/* ヒーローコンテナのモバイル最適化 */
#hero-animation {
	min-height: 100vh !important;
	min-height: 100svh !important; /* Small Viewport Height対応 */
	height: auto !important; /* 固定高さを解除 */
	max-height: none !important; /* 最大高さ制限を解除 */
}

/* SENロゴのモバイル対応 - 完全中央配置 */
.home #sen-logo-container {
	position: fixed !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	display: block !important;
	text-align: center !important;
	z-index: 10 !important;
}

.home .logo-text-main {
	font-size: 80px !important;
	text-align: center !important;
	width: 100% !important;
	padding: 0 !important;
	margin: 0 auto !important;
	letter-spacing: 0 !important;
	display: block !important;
	font-weight: 900 !important;
	font-family: 'Arial Black', sans-serif !important;
}

/* グローブキャンバスのモバイル対応 */
.home #globe-canvas {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	z-index: 1 !important;
	pointer-events: auto !important;
}

/* セクションのモバイル対応 */
.section-padding {
	padding: 40px 20px !important; /* 左右の余白を統一 */
}

.inner {
	padding: 0 !important; /* 二重余白を防ぐ */
	max-width: 100% !important;
}

/* 企業理念セクション */
.vision-box {
	padding: 25px 20px !important; /* 統一された余白 */
	margin: 0 !important;
}

.vision-text {
	font-size: 14px !important;
	line-height: 1.9 !important;
	text-align: left !important; /* 左揃えで読みやすく */
	padding: 0 !important;
	word-break: keep-all !important; /* 日本語の単語を途中で切らない */
	overflow-wrap: break-word !important; /* 長い単語のみ折り返し */
}

.vision-text br {
	display: none !important; /* スマホでは自動改行 */
}

/* セクションタイトル */
.section-title {
	font-size: 24px !important;
	padding: 0 !important;
	margin-bottom: 20px !important;
	text-align: center !important;
}

/* CEO メッセージ */
.ceo-message-title {
	font-size: 22px !important;
	line-height: 1.4 !important;
	padding: 0 !important;
	margin-bottom: 15px !important;
}

.title-badge {
	font-size: 12px !important;
	padding: 4px 12px !important;
	display: inline-block !important;
	margin-bottom: 10px !important;
}

.message-content-enhanced {
	padding: 15px !important; /* 均等な余白 */
}

.message-block {
	margin-bottom: 20px !important;
	padding: 0 !important;
}

.message-block p {
	font-size: 14px !important; /* 読みやすいサイズに */
	line-height: 1.9 !important;
	margin-bottom: 15px !important;
	text-align: left !important;
	word-break: keep-all !important; /* 日本語の単語を途中で切らない */
	overflow-wrap: break-word !important;
}

.message-block br {
	display: none !important; /* スマホでは自動改行 */
}

.message-icon {
	margin-bottom: 10px !important;
}

.message-icon svg {
	width: 40px !important;
	height: 40px !important;
}

.mission-statement {
	background: rgba(41, 172, 239, 0.1) !important;
	padding: 15px !important;
	margin: 15px 0 !important;
	border-radius: 8px !important;
}

.mission-statement p {
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.7 !important;
	text-align: center !important;
}

.ceo-signature {
	margin-top: 25px !important;
	padding-top: 20px !important;
	text-align: right !important;
}

.ceo-signature p {
	font-size: 13px !important;
}

.ceo-name {
	font-size: 15px !important;
	font-weight: bold !important;
}

/* 事業内容カード */
.business-grid {
	grid-template-columns: 1fr !important;
	gap: 20px !important;
	padding: 0 !important;
}

.business-card {
	padding: 25px 20px !important; /* 統一された余白 */
	text-align: center !important;
}

.card-number {
	font-size: 28px !important;
	margin-bottom: 10px !important;
}

.card-icon {
	font-size: 45px !important;
	margin: 10px 0 !important;
}

.business-card h3 {
	font-size: 17px !important;
	line-height: 1.5 !important;
	margin: 15px 0 10px 0 !important;
}

.card-desc {
	font-size: 13px !important;
	line-height: 1.6 !important;
	opacity: 0.9 !important;
}

/* 会社概要テーブル */
.company-table {
	padding: 0 !important;
}

.company-table dl {
	grid-template-columns: 1fr !important;
	padding: 20px !important; /* 統一された余白 */
	margin-bottom: 0 !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
}

.company-table dt {
	font-size: 12px !important;
	margin-bottom: 8px !important;
	opacity: 0.8 !important;
	font-weight: 600 !important;
}

.company-table dd {
	font-size: 14px !important;
	padding-left: 0 !important;
	line-height: 1.8 !important;
	word-break: keep-all !important;
	overflow-wrap: break-word !important;
}

.company-table dd a {
	word-break: break-all !important; /* 長いURLも折り返す */
}

.company-table dd br {
	display: inline !important; /* 住所は改行を保持 */
}

/* ヘッダーのスマホ対応 */
header {
	height: auto !important;
	min-height: 60px !important;
	padding: 10px 0 !important;
}

header #logo {
	top: 50% !important;
	transform: translateY(-50%) !important;
	left: 15px !important;
}

header #logo a {
	font-size: 18px !important;
}

/* アイコン調整 */
header .icon {
	right: 60px !important; /* ハンバーガーメニュー分スペース */
	bottom: 50% !important;
	transform: translateY(50%) !important;
	flex-wrap: nowrap !important;
	gap: 6px !important;
}

header .icon li {
	margin: 0 !important;
}

header .icon svg {
	width: 22px !important;
	height: 22px !important;
}

#lang-toggle {
	font-size: 11px !important;
	padding: 4px 10px !important;
	border-radius: 12px !important;
}

/* フッター */
footer {
	padding: 20px 15px !important;
	text-align: center !important;
}

footer small {
	font-size: 11px !important;
	line-height: 1.6 !important;
	display: block !important;
}

/* スマホメニュー */
#menubar-s {
	top: 60px !important; /* ヘッダー高さに合わせる */
}

/* スマホ用ナビゲーションボタン - デフォルトで非表示 */
#mobile-nav-buttons {
	display: none !important;
}

#menubar-s li a {
	padding: 15px 20px !important; /* 統一された余白 */
	font-size: 16px !important;
}

/* ページトップボタン */
.nav-fix-pos-pagetop {
	right: 15px !important;
	bottom: 15px !important;
}

.nav-fix-pos-pagetop a {
	width: 45px !important;
	height: 45px !important;
	font-size: 20px !important;
	line-height: 45px !important;
}

/*mainブロック
---------------------------------------------------------------------------*/
/*h2タグ*/
#main h2 {
	font-size: 24px !important;
	margin-bottom: 20px !important;
	padding: 0 !important; /* 二重余白を防ぐ */
	text-align: center !important;
}
/*h3タグ*/
#main h3 {
	font-size: 16px !important;
	margin: 10px 0 !important;
	padding: 0 !important;
}
/*段落(p)タグ*/
#main p {
	padding: 0 !important; /* 二重余白を防ぐ */
	margin-bottom: 15px !important;
}
/*他。微調整。*/
#main section + section {
	padding-top: 0 !important; /* section-paddingで制御 */
}

/*NEWSブロック
---------------------------------------------------------------------------*/
/*右に回り込みの小さな画像*/
.news dd .img {
	width: 50px;	/*画像の幅*/
}

/*listブロック（index2.htmlで使用）
---------------------------------------------------------------------------*/
/*listブロック*/
.list {
	padding: 10px;	/*ブロック内の余白*/
}

/*テーブル（ta1）
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
	padding: 5px;	/*ボックス内の余白*/
}
/*ta1設定*/
.ta1, .ta1 td, .ta1 th {
	padding: 5px;	/*ボックス内の余白*/
}
/*ta1の左側ボックス*/
.ta1 th {
	width: 100px;
}

/*ul.disc,olタグ
---------------------------------------------------------------------------*/
ul.disc {
	list-style: disc;
	padding: 0 10px 20px 30px;
}
ol {
	padding: 0 10px 20px 30px;
}

/*セクションのレスポンシブ設定（480px以下）
---------------------------------------------------------------------------*/
.section-padding {
	padding: 40px 0;
}
.section-title {
	font-size: 24px;
	margin-bottom: 30px;
}
.vision-box {
	padding: 30px 20px;
	border-radius: 10px;
}
.vision-box::before {
	font-size: 50px;
	top: 15px;
	left: 20px;
}
.vision-text {
	font-size: 15px;
	line-height: 1.8;
}
.message-content {
	font-size: 14px;
}
.message-content p {
	padding: 0 10px 20px !important;
}

/* CEO Message Responsive */
.ceo-message-wrapper {
	padding: 40px 25px;
	border-radius: 20px;
}
.ceo-quote-mark {
	font-size: 80px;
	top: -10px;
	left: 20px;
}
.title-badge {
	font-size: 12px;
	padding: 6px 20px;
}
.message-block {
	padding-left: 0;
	margin-bottom: 30px;
}
.message-icon {
	position: relative;
	margin: 0 auto 20px;
	width: 50px;
	height: 50px;
}
.message-icon svg {
	width: 40px;
	height: 40px;
}
.message-block p {
	font-size: 15px !important;
	line-height: 1.8;
}
.mission-statement {
	padding: 20px 25px;
	margin: 20px 0;
}
.mission-statement p {
	font-size: 17px !important;
}
.message-divider {
	margin: 30px auto;
}
.ceo-signature p {
	font-size: 14px;
	text-align: center;
}
.ceo-name {
	font-size: 16px;
	display: block;
	margin: 10px 0 0 0;
}
.business-grid {
	grid-template-columns: 1fr;
	gap: 20px;
}
.business-card {
	padding: 30px 20px;
}
.business-card .card-icon {
	font-size: 45px;
}
.business-card h3 {
	font-size: 14px;
}
.company-table dt,
.company-table dd {
	padding: 12px 15px;
	font-size: 13px;
}

/*その他
---------------------------------------------------------------------------*/
.ws,.wl {width: 94%;}
.big1 {font-size: 16px;}

}