@charset "Shift_JIS";
/* 色定義 ----------------------------------------------------------*/
:root {
	--bg-dark-blue: #4877BF;
	--brand-cyan: #00ADEE; 
	--choice-width: 160px;
}

/* HTML5の標準的なリセット -----------------------------------------*/
*, *::before, *::after {
	box-sizing: border-box;
}
body, h1, h2, h3, h4, p, figure, blockquote, dl, dd {
	margin: 0;
}
ul[class], ol[class] {
	list-style: none;
	padding: 0;
}
img {
	max-width: 100%;
	display: block;
}

/* 共通 ------------------------------------------------------------*/
body {
	margin: 0;
	padding: 0;
	background-color: var(--bg-dark-blue);
	font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	color: #333;
	line-height: 1.6;
}

/* メインコンテナ */
.main-container {
	max-width: 620px;
	margin: 20px auto 0;
	background-color: #FFFFFF;
	border-radius: 8px;
	padding-bottom: 30px;
	box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

/* 画像のレスポンシブ設定 */
img {
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

.header-area {
	text-align: center;
	padding: 10px;
}

/* EAPヘッダー全体のコンテナ */
.eap-header {
	display: flex;
	align-items: center;  /* 垂直中央揃え */
	justify-content: flex-start; /* 左寄せ */
	padding: 10px 20px;
	background-color: #F8B400; /* 元画像に近い鮮やかなオレンジイエロー */
	border-radius: 4px;   /* 緩やかな角丸 */
	margin-bottom: 10px;
}

/* BUDDYロゴ画像 */
.buddy-logo-img {
	height: 80px; /* ロゴの高さを指定 */
	width: auto;  /* アスペクト比を維持 */
	margin-right: 20px; /* テキストとの間隔 */
}

/* テキストエリアとドット線 */
.eap-text-area {
	flex-grow: 1; /* 残りの幅を全て占める */
	position: relative;
}

/* 働く人のメンタルヘルスを応援します（CSSテキスト） */
.eap-slogan {
	font-size: 18px;
	font-weight: bold;
	color: #ffffff; /* 白抜き文字 */
	text-align: left;
	margin: 0;
	letter-spacing: 1px;
}

/* ドット線をCSSで再現 */
.dashed-line {
	position: absolute;
	top: -10px; /* テキストの上に配置 */
	left: 0;
	width: 100%;
	border-top: 2px dashed #ffffff; /* 白いドット線 */
}

.eap-logo-text {
	display: block;
	font-family: "Arial Black", "Hiragino Sans", sans-serif; /* 太めのフォントを指定 */
	font-size: 24px;	  /* 画像に近いサイズ */
	font-weight: 900;
	color: #00ADEE;	   /* 画像から抽出した鮮やかな水色 */
	text-align: center;
	margin: 10px 0;
	letter-spacing: 1px;
	word-break: keep-all; /* 途中で改行されないようにする */
}

/* 「-EAP-」の部分だけ少し強調 */
.eap-prefix {
	margin-right: 10px;
	font-size: 28px;
}

/* タイトル外枠（水色の角丸） */
.title-banner {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 360px;
	margin: 10px auto;
	padding: 10px 20px;
	border: 3px solid #add8e6; /* 画像から判別した淡い水色 */
	border-radius: 12px;	   /* 画像同様の大きな角丸 */
	background-color: #ffffff;
	text-align: center;
}

/* タイトルテキスト */
.title-text {
	font-size: 20px;
	font-weight: bold;
	color: #333;
	letter-spacing: 2px;
}

/* クリップボードアイコン (icon-clipboard) */
.icon-clipboard {
	display: inline-block;
	width: 20px;
	height: 26px;
	border: 2px solid #ff8c00; /* アイコンのオレンジ枠 */
	border-radius: 3px;
	position: relative;
	vertical-align: middle;
	margin-left: 18px; /* 文字との間隔 */
	background: #fff;
	/* 右に20度回転させる */
	transform: rotate(20deg);
	/* 回転しても文字の高さがずれないように基準点を中心にする */
	transform-origin: center center;
}

/* クリップボードの上の「留め具」部分 */
.icon-clipboard::before {
	content: "";
	position: absolute;
	top: -6px;
	left: 4px;
	width: 9px;
	height: 4px;
	background: #add8e6; /* 水色の留め具 */
	border: 1px solid #888;
	border-radius: 2px;
}

/* クリップボードの中の「線」 */
.icon-clipboard::after {
	content: "";
	position: absolute;
	top: 6px;
	left: 4px;
	width: 9px;
	height: 1px;
	background: #ccc;
	box-shadow: 0 6px 0 #ccc, 0 12px 0 #ccc; /* 3本の横線 */
}

.info-text {
	width: 90%;
	margin: 0 auto 20px;
	font-size: 15px;
}

.info-text p{
	margin: 0;
}

/* エラーメッセージ */
.error-msg {
	text-align: center;
	margin-bottom: 15px;
}

.error-msg p{
	color: #d93025;
	font-size: 15px;
	margin: 0;
	padding: 0;
}

.error-msg p::before{
	display: inline-block;
	content: "\26A0";
	font-size: 1.1em;
	margin: 0px 8px 0px 0px;
	vertical-align: middle;
}


/* ログインページ --------------------------------------------------*/
/* ログインボックス */
.login-box {
	width: 90%;
	max-width: 450px;
	margin: 0 auto 30px;
	border: 1px solid #b3d7ff;
	border-radius: 6px;
	overflow: hidden;
}

.login-header {
	background-color: #BAE2FF;
	padding: 12px;
	text-align: center;
	font-weight: bold;
	font-size: 16px;
}

.login-body {
	background-color: #f9f9f9;
	padding: 25px;
}

/* 入力レイアウト */
.form-group {
	margin-bottom: 15px;
}
.form-group label {
	display: block;
	margin-bottom: 5px;
	font-weight: bold;
	font-size: 14px;
}
.form-group input {
	width: 100%;
	padding: 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 16px; /* スマホのズーム防止のため16px以上推奨 */
}

/* ボタン */
/* ボタンを横に並べるコンテナ */
.button-group {
	display: flex;
	justify-content: center;
	gap: 15px;	  /* ボタン同士の間隔 */
	margin-top: 25px;
}

.button-group a {
	flex: 1;
	text-align: center;
}

.btn-base {
	display: inline-block;
	width: 120px;		  /* 画像より少し大きく、押しやすく設定 */
	padding: 10px 0;
	font-size: 14px;
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	border-radius: 4px;	/* 緩やかな角丸 */
	border: none;
	cursor: pointer;
	transition: background-color 0.2s;
}

/* キャンセルボタン（グレー） */
.btn-cancel {
	background-color: #90A4AE; /* 少しだけ青みがかったグレー */
	color: #ffffff !important;
}
.btn-cancel:hover {
	background-color: #78909c; /* 少し暗く */
}

/* ログイン・送信ボタン（メインカラーに合わせる） */
.btn-submit {
	background-color: var(--brand-cyan);
	color: #ffffff !important;
}
.btn-submit:hover {
	background-color: #666666;
}

/* メニューページ --------------------------------------------------*/
/* ユーザー情報エリア */
.user-info {
	padding: 15px 25px;
	background-color: #f0faff; /* ほんのり水色 */
	color: #008FCA;
	font-weight: bold;
	border-bottom: 1px solid #E0F4F9;
	line-height: 1.6;
}
/* ガイドテキスト */
.guide-text {
	margin: 20px 0;
	padding-left: 10px;
	border-left: 4px solid #00ADEE;
	font-size: 15px;
	color: #555;
}
.menu-container {
	padding: 10px 20px 30px; /* 上・左右・下 */
}

/* メニューカード形式のボタン */
.menu-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.menu-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 18px 15px;
	margin-bottom: 12px; /* ボタン同士の隙間 */
	background-color: #fff;
	border: 1px solid #ddd;
	border-left: 6px solid #00ADEE; /* 左端のアクセントカラー */
	border-radius: 8px; /* 角を丸くして柔らかい印象に */
	text-align: left;
	cursor: pointer;
	transition: all 0.2s;
	-webkit-tap-highlight-color: transparent; /* スマホタップ時の青い枠を消す */
	/* buttonタグ特有のスタイルをリセット */
	appearance: none;
	-webkit-appearance: none;
	font-family: inherit;
}

button.menu-card:hover {
	background-color: #F0F9FF;
	border-color: #00ADEE;
	box-shadow: 0 4px 10px rgba(0, 173, 238, 0.1);
	transform: translateY(-1px);
}

.menu-content {
	flex: 1;			  /* 利用可能な幅をすべて使う */
	padding-right: 15px;  /* 「回答する」との間に最低限の隙間を作る */
	display: flex;
	align-items: flex-start; /* 2行になっても数字と位置が合うように */
}

.menu-number {
	font-size: 18px;
	font-weight: bold;
	color: #00ADEE;
	margin-right: 8px;
}

.menu-name {
	font-size: 16px;
	font-weight: bold;
	color: #333;
}

.menu-arrow {
	flex-shrink: 0;	   /* 文字が長くてもこのエリアを潰さない */
	font-size: 13px;
	color: #00ADEE;
	font-weight: bold;
	white-space: nowrap;
}

/* 回答済みのカード（クリック不可） */
.menu-card.is-completed {
	background-color: #f9f9f9; /* 少し薄いグレー */
	border-left: 6px solid #ccc; /* 左の線もグレーに */
	cursor: default; /* カーソルを矢印のままにする */
	pointer-events: none; /* クリックを無効化 */
}
.menu-card.is-completed .menu-number,
.menu-card.is-completed .menu-name {
	color: #888; /* 文字色を薄く */
}

/* 「回答済み(日付)」のテキスト */
.status-text {
	font-size: 12px;
	color: #999;
	font-weight: normal;
	text-align: right;
}

/* 回答ページ ------------------------------------------------------*/
/* セクションごとのまとまり */
.question-section {
	margin-bottom: 40px;
	padding: 0 15px;
}

/* セクションタイトルの装飾 */
.section-title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 18px;
	font-weight: bold;
	color: #333;
	margin: 0;
	padding: 15px 0px;
	background-color: #ffffff;
}

/* バッジ風に装飾 */
.section-title span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	background-color: var(--brand-cyan);
	color: #ffffff;
	border-radius: 4px;
	font-family: Arial, sans-serif;
	font-size: 16px;
	flex-shrink: 0;
}

/* 小見出し行 */
.q-sub-header td {
	width: 100% !important;
	background-color: #ffffff !important;
	color: #333;
	padding: 20px 15px 10px 32px!important; /* 上の余白を少し広げて区切りを明確に */
	font-weight: bold;
	font-size: 15px;
	border-bottom: 1px solid #eee !important;
	background-image: url(../images/icon_arrow.png);
	background-repeat: no-repeat;
	background-position: 12px 20px;
	background-size: 14px auto;
}

/* 凡例チップ */
.section-desc {
	background-color: #f8fafc;
	padding: 12px 15px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	border-bottom: 2px solid #edf2f7;
}

.desc-item {
	display: inline-flex;
	align-items: center;
	background: #fff;
	border: 1px solid #cbd5e0;
	border-radius: 4px;
	padding: 3px 10px;
	font-size: 13px;
	color: #333;
}

.desc-item b {
	color: #333; 
	font-family: Arial, sans-serif;
	font-size: 15px;
	margin-right: 8px;
	padding-right: 8px;
	border-right: 1px solid #eee; /* 区切り線は薄く */
}

/* タイトルと説明文をセットで固定 */
/* 固定用ラッパー */
.sticky-header-wrapper {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 102;
	background-color: #ffffff;
	border-bottom: 3px solid #4877BF !important;
}

.sticky-table {
	width: 100%;
	border-collapse: separate; /* collapseよりsticky時のボーダーが安定 */
	border-spacing: 0;
	table-layout: fixed; /* 列の幅を固定 */
}

/* テーブルヘッダー（質問内容/1234）をその下に固定 */
.sticky-table thead th {
	position: static; 
	background-color: #ffffff;
	border-bottom: none !important;
}

.sticky-table tbody tr:nth-child(odd) {
	background-color: #f0faff; 
}
/* シマシマ模様 */
/* 全体 */
.sticky-table tbody tr {
	background-color: #F7F8F8;
}

/* 奇数行 */
.sticky-table tbody tr:nth-child(odd) {
	background-color: #E0F0FF;
}

/* ホバー時濃いめ */
.sticky-table tbody tr:nth-child(even):hover {
	background-color: #ECECEC;
}

.sticky-table tbody tr:nth-child(odd):hover {
	background-color: #D1E7FC;
}

.sticky-table tbody tr {
	transition: background-color 0.15s ease;
}

/* 回答済み半透明 --- */
.sticky-table tbody tr:has(input[type="radio"]:checked) {
    opacity: 0.6; /* 半透明にして存在感を薄くする */
}

/* 回答済み行にホバー/タップ時は元に戻す --- */
.sticky-table tbody tr:has(input[type="radio"]:checked):hover {
    opacity: 1;
}

/* 小見出し行は効果除外する */
.sticky-table tbody tr.q-sub-header,
.sticky-table tbody tr.q-sub-header:hover {
	background-color: #ffffff !important;
    opacity: 1!important;
}

/* 質問文エリア */
.q-text {
	padding:12px 15px 12px 40px; /* 左側に番号分の余白（40px）を作る */
    position: relative;           /* 番号の配置基準にする */
	font-size: 14px;
	text-align: left;
	word-break: break-all;
	width: calc(100% - var(--choice-width)) !important;
}

.sticky-table th.q-text {
	min-width: 200px;
}

/* 質問番号 <span> の装飾 */
.q-text span {
    position: absolute;
    left: 4px;            /* 左端から少し浮かす */
    top: 12px;            /* テキストの開始位置に合わせる */
    width: 30px;          /* 番号エリアの幅を固定 */
    text-align: right;    /* 数字を右寄せにしてドットの位置を揃える */
    font-family: Arial, sans-serif;
    font-weight: bold;
    color: #666;          /* 番号は少し控えめな色に */
}

/* 選択肢エリア */
.q-choice, 
.sticky-table thead th.q-choice {
	width: var(--choice-width) !important;
	min-width: var(--choice-width) !important;
	max-width: var(--choice-width) !important;
	padding: 12px 15px; 
	box-sizing: border-box;
	text-align: center;
}

/* 1 2 3 4 の数字の並び */
.flex-justify {
	display: flex;
	justify-content: space-between;
	width: 100%;
	font-size: 14px;
	padding: 0 5px;  /* 下のボタンとラベルの padding 0 5px と合わせる */
	box-sizing: border-box;
}

.flex-justify span {
	width: 20px;
	text-align: center;
	display: inline-block;
	color: #333; /* ここを#333に指定 */
	font-weight: bold;
	font-family: Arial, sans-serif;
}

/* ラジオボタン行の調整 */
.q-choice {
	white-space: nowrap;
	font-size: 0; /* inline-blockの隙間を消す */
}

/* ボタンとラベルを1つの塊として均等に並べる */
.q-choice .button-wrapper {
	display: flex;
	justify-content: space-between;
	width: 100%;
	padding: 0 5px; /* 上の数字の padding 0 5px と合わせる */
	box-sizing: border-box;
}

/* --- ラジオボタンの押しやすさ調整 --- */
.q-choice input[type="radio"] {
	display: inline-block;
	width: 20px;
	height: 20px;
	margin: 0;
	vertical-align: middle;
	cursor: pointer;
}

.q-choice label {
	display: inline-block;
	width: 20px; /* 数字の真下にボタンが来るように */
	height: 20px;
	margin: 0;
	vertical-align: middle;
}
/* 一番右の余白は不要 */
.q-choice label:last-child {
	width: 0;
}

/* 自由入力欄のコンテナ */
.free-input-container {
	margin: 40px 15px;
	padding: 20px;
	background-color: #f8fafc;
	border-radius: 8px;
	border: 1px solid #e2e8f0;
}

.free-input-label {
	display: block;
	font-size: 15px;
	font-weight: bold;
	margin-bottom: 12px;
	color: #333;
	cursor: pointer;
}

.free-textarea {
	width: 100%;
	height: 120px;
	padding: 12px;
	border: 1px solid #cbd5e0;
	border-radius: 6px;
	font-size: 16px; /* iOSの自動ズーム防止 **/
	font-family: inherit;
	line-height: 1.6;
	box-sizing: border-box;
	resize: vertical; /* PCでは縦方向に伸ばせる */
	-webkit-appearance: none;
}

/* フォーカス時の色替え */
.free-textarea:focus {
	outline: none;
	border-color: var(--brand-cyan);
	background-color: #fff;
	box-shadow: 0 0 0 3px rgba(0, 173, 238, 0.1);
}

/* 回答画面専用の送信ボタン調整 */
.submit-area {
	text-align: center;
	padding: 30px;
	background-color: #fff9f0; /* 少し注意を引く背景色 */
}

.submit-area .btn-submit {
	display: inline-block;
	width: auto;
	min-width: 250px;
	padding: 15px 40px;
	font-size: 18px;
	border-radius: 50px; /* 丸みのある大きなボタン */
}

/* 完了画面 --------------------------------------------------------*/
.close-area {
	text-align: center;
	padding: 40px 20px;"
	background-color: #f8fafc;
}

.btn-close-window {
	display: inline-block;
	min-width: 180px;
	padding: 12px 30px;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	margin-bottom: 10px;

	background-color: #90A4AE; 
	color: #ffffff !important;
	border-radius: 4px; /* ログイン画面のボタンと形状を統一 */
	border: none;
	transition: background-color 0.2s;
	cursor: pointer;
}

.btn-close-window:hover {
	background-color: #78909c; /* ホバーで少し暗く */
}

.close-area p{
	font-size: 14px;
	color: #999;
}

/* フッター --------------------------------------------------------*/
footer {
	text-align: center;
	padding: 15px 20px 30px;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.7);
	letter-spacing: 0.5px;
}

/* -----------------------------------------------------------------*/
.mt70{margin-top: 70px!important;}
	
.pt0{padding-top: 0!important;}
.pl10{padding-left: 10px!important;}

.alignCenter{text-align:center!important;}
.alignLeft{text-align:left!important;}
.alignRight{text-align:right!important;}

.hide_largeOnly{display: none!important;}
.hide_smallOnly{display: block;}

/* スマートフォン向け調整 */
@media (max-width: 480px) {
	.hide_largeOnly{display: block!important;}
	.hide_smallOnly{display: none!important;}
	
	.main-container { margin: 10px; }
	.login-body { padding: 15px; }
	.eap-header {
		flex-direction: column; /* 縦並びにする */
		text-align: center;
	}
	.buddy-logo-img {
		margin-right: 0;
		margin-bottom: 15px;
	}
	.eap-slogan {
		font-size: 15px;
	}
	.eap-logo-text {
		font-size: 18px; /* 画面が狭いときは少し小さく */
	}
	.eap-prefix {
		font-size: 22px;
	}
}
