css

/* 全体のリセット（余白を無くして綺麗に配置する設定） */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

/* ヘッダー全体のデザイン（画面上部に固定） */
.home-header {
	background-color: #ffffff;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
	/* 下部に薄い影 */
	position: sticky;
	top: 0;
	z-index: 100;
	padding: 10px 0;
	display: flex;
	justify-content: space-between;
	/* 文字を左、メニューを右に */
	align-items: center;
	/* 上下の高さを中央で揃える */
	font-size: 20px;
}

footer {
	text-align: center;
	background-color: #84C98B;
	color: #ffffff;
	padding: 20px 0;
}

/* メニューのリストを中央に横並びにする */
.menu-bar ul {
	display: flex;
	justify-content: right;
	/* メニューを画面の右に寄せる */
	list-style: none;
	gap: 30px;
	/* メニュー項目同士の間隔 */
}

/* リンクボタンのデザイン */
.menu-bar a {
	display: block;
	padding: 10px 15px;
	color: #333333;
	/* 文字色（濃いグレー） */
	text-decoration: none;
	/* デフォルトの下線を消す */
	font-size: 16px;
	font-weight: 500;
	position: relative;
	/* 下線の位置を決める基準 */
	transition: color 0.3s ease;
	/* 文字色が変わるスピード */
}

/* 動く下線の初期状態（透明・幅ゼロ） */
.menu-bar a::after {
	content: '';
	position: absolute;
	bottom: 0;
	/* ボタンの一番下 */
	left: 15px;
	/* 文字の位置に合わせる（paddingの左幅） */
	right: 15px;
	/* 文字の位置に合わせる（paddingの右幅） */
	height: 2px;
	/* 下線の太さ */
	background-color: #007bff;
	/* 下線の色（青） */
	transform: scaleX(0);
	/* 最初は幅を0にする */
	transition: transform 0.3s ease;
	/* 線が伸びるスピード */
	transform-origin: left;
	/* 左から広がる */
}

/* マウスカーソルを乗せたとき（ホバー時） */
.menu-bar a:hover {
	color: #007bff;
	/* 文字色を青に */
}

/* マウスを乗せたときに下線を幅100%に伸ばす */
.menu-bar a:hover::after {
	transform: scaleX(1);
}

/* 見出しの共通・個別設定 */
h1,
h2 {
	text-align: center;
}

h1 {
	font-size: 70px;
}

.questionnaire-title {
	font-size: 30px;
}

h2 {
	font-size: 50px;
}

.menber-h2 {
	font-size: 40px;
}

/* HTMLのインラインスタイルから移行したクラス */
.main-title {
	/* h1のサイズが大きすぎる場合はここを調整してください */
	font-size: 70px;
}

.intro-container {
	margin: auto;
	width: 75%;
}

.venue-title {
	text-align: center;
}

.qr-container {
	margin: auto;
	width: 25%;
}

#ip-address {
	text-align: right;
}

/* 背景画像・メニューエリアの設定 */
.home-title {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image1.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 200px 0;
}

.menu {
	background-image: url(images/image2.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	text-align: center;
	padding: 20px 0 80px 0;
}

.menu a {
	color: #333333;
	text-decoration: none;
	font-size: 50px;
	display: inline-block;
	padding: 5px 0;
	position: relative;
}

.menu a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 3px;
	background-color: black;
	transform: scaleX(0);
	transition: transform 0.3s ease;
	transform-origin: left;
}

.menu a:hover {
	color: black;
}

.menu a:hover::after {
	transform: scaleX(1);
}

.schedule-div {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image3.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 240px 50px;
}

.schedule-div h3 {
	font-size: 80px;
	text-align: right;
}

.schedule-div2 {
	background-color: #ffffe6;
	font-size: 35px;
	text-align: left;
	padding: 50px 100px;
}

.service-h1 {
	font-size: 80px;
	text-align: right;
}

.product-div {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image4.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 240px 50px;
}

.product-div2 {
	background-image: url(images/background1.jpg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 50px 50px;
}

.product-p {
	text-align: center;
	font-size: 20px;
}

.product-h3 {
	text-align: center;
	font-size: 30px;
}

.product-div3 {
	background-color: #ADD8E6;
	padding: 50px;
}

.product-div3-1 {
	text-align: center;
	font-size: 35px;
}

.product-div3-2 {
	text-align: center;
	font-size: 25px;
}

.product-div3-3 p {
	text-align: left;
	font-size: 18px;
	padding: 0px 46px;
}

.product-div4 {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image5.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 200px 50px;
}

.product-div5 {
	font-size: 30px;
	padding: 100px 120px 400px 100px;
	position: relative;
}

.product-div5 img {
	position: absolute;
	top: 50px;
	left: 30px;
	z-index: -1;
	height: 450px;
	width: auto;
}

.product-div6 {
	display: grid;
	grid-template-columns: auto 1fr;
	background-color: #b3b3b3;
	padding: 40px 30px 60px 0;
	font-family: sans-serif;
}

.product-div6-1 {
	grid-column: 1;
	grid-row: 1 / span 2;
	font-size: 30px;
	white-space: nowrap;
	padding: 50px 390px 200px 100px;
	box-sizing: border-box;
}

.product-div6-2 {
	grid-column: 2;
	margin: 50px 0 0 0;
}

.product-div6-2 p {
	margin: 0 0 10px 0;
	font-size: 19px;
}

.product-div6-list {
	grid-column: 2;
	list-style: none;
	padding: 0;
	margin: 0;
}

.product-div6-list li {
	font-size: 19px;
	line-height: 1.6;
	position: relative;
	padding-left: 15px;
}

.product-div6-list li::before {
	content: "・";
	position: absolute;
	left: 0;
}

.product-div7 {
	display: grid;
	grid-template-columns: auto 1fr;
	padding: 40px 30px 60px 0;
	font-family: sans-serif;
}

.product-div7-1 {
	grid-column: 1;
	grid-row: 1 / span 2;
	font-size: 30px;
	white-space: nowrap;
	padding: 50px 370px 100px 100px;
	box-sizing: border-box;
}


.product-div7-2 {
	grid-column: 2;
	margin: 50px 0 0 0;
}

.product-div7-2 p {
	margin: 0 0 10px 0;
	font-size: 19px;
}

.product-div7-list {
	grid-column: 2;
	list-style: none;
	padding: 0;
	margin: 0;
	counter-reset: item;
}

.product-div7-list li {
	font-size: 19px;
	line-height: 1.6;
	margin-bottom: 8px;
	position: relative;
	padding-left: 25px;
}

.product-div7-list li::before {
	counter-increment: item;
	content: counter(item) ". ";
	position: absolute;
	left: 0;
	top: 0;
}

.product-div8 {
	display: grid;
	grid-template-columns: auto 1fr;
	background-color: #b3b3b3;
	padding: 40px 30px 40px 0;
	font-family: sans-serif;
}

.product-div8-1 {
	grid-column: 1;
	grid-row: 1 / span 2;
	font-size: 30px;
	white-space: nowrap;
	padding: 50px 370px 100px 100px;
	box-sizing: border-box;
}

.product-div8-2 {
	grid-column: 2;
	margin: 50px 0 0 0;
}

.product-div8-2 p {
	font-size: 18px;
	line-height: 1.7;
	margin: 0 0 40px 0;
	color: #333;
}

.product-div8-2 p br {
	margin-bottom: 5px;
}

.product-div9 {
	display: grid;
	grid-template-columns: auto 1fr;
	padding: 40px 30px 60px 0;
	font-family: sans-serif;
}

.product-div9-1 {
	grid-column: 1;
	grid-row: 1 / span 3;
	font-size: 30px;
	font-weight: bold;
	white-space: nowrap;
	padding: 50px 370px 100px 100px;
	box-sizing: border-box;
}

.product-div9-2 {
	grid-column: 2;
	margin: 50px 0 0 0;
}

.product-div9-2 p {
	margin: 0 0 15px 0;
	font-size: 19px;
}

.product-div9-3 {
	grid-column: 2;
}

.product-div9-3 p {
	font-size: 19px;
	line-height: 1.8;
	margin: 0 0 20px 0;
	color: #333;
}

.menber-div {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image11.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 200px 0;
}

.menber-div p {
	text-align: center;
	font-size: 20px;
}

.menber-div1-1 {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image7.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 100px 0;
	margin: 5px 0;
}

.menber-div1-2 {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image8.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 110px 0;
	margin: 5px 0;
}

.menber-div1-3 {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image9.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 110px 0;
	margin: 5px 0;
}

.menber-div1-4 {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/image10.png);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 80px 0;
	margin: 5px 0;
}

.grid-container {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
}

.grid-container .card:first-child {
	grid-column: 1 / -1;
	justify-self: center;
	width: calc(50% - 10px);
}

.grid-container .card {
	background-color: rgba(255, 255, 255, 0.95);
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	min-height: 100px;
	box-sizing: border-box;
}

.grid-container .card-left {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-align: left;
}

.grid-container .name-link {
	font-size: 1.5rem;
	font-weight: bold;
	color: #111111;
	text-decoration: none;
	display: inline-block;
}

.grid-container .name-link:hover {
	text-decoration: underline;
}

.grid-container .process {
	font-size: 0.85rem;
	color: #666666;
}

.grid-container .card-right {
	font-size: 1.2rem;
	color: #333333;
	text-align: right;
	line-height: 1.4;
}

.service-div {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/mbr-4-1920x1280.jpg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	padding: 240px 50px;
}

.service-div1 p {
	text-align: center;
	font-size: 30px;
}

.service-div1 {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)),
		url(images/mbr-1920x1276.jpg);
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;

	padding: 50px 0 100px 0;
}

.service-div3 {
	text-align: center;
	font-size: 20px;
	background-color: #84C98B;
	margin: 5px 300px;
}

.service-div4 {
	text-align: center;
	font-size: 20px;
	background-color: #84C98B;
	margin: 5px 400px;
}

.system-container {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
}

.system-container .card {
	background-color: rgba(255, 255, 255, 0.95);
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 24px;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	min-height: 100px;
	box-sizing: border-box;

}

.system-container .card-left {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.system-container .system-link {
	font-size: 1.5rem;
	font-weight: bold;
	color: #111111;
	text-decoration: none;
	display: inline-block;
}


.system-container .card-left span a {
	font-size: 25px;
	color: #4da6ff;
	font-weight: normal;
}

.system-container .card-right .multi-line {
	display: block;
	text-align: right;
	line-height: 1.4;
}

/* スマホ対応：画面が狭いときはすべて1列にする */
@media (max-width: 768px) {
	.grid-container {
		grid-template-columns: 1fr;
		padding: 0 10px;
		/* スマホ時の画面端の余白 */
	}

	@media (max-width: 768px) {
		.sysytem-container {
			grid-template-columns: 1fr;
			padding: 0 10px;
		}
	}

	/* スマホの時はリーダーも他のカードと同じく横幅いっぱいに広げる */
	.grid-container .card:first-child {
		width: 100%;
	}
}