Johnny0619 commited on
Commit
a7ec7fe
·
verified ·
1 Parent(s): 0346e04

Upload 2 files

Browse files
Files changed (2) hide show
  1. script.js +72 -0
  2. style.css +415 -0
script.js ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ document.addEventListener('DOMContentLoaded', () => {
2
+ // ==========================================================================
3
+ // モーダル表示処理 (entry_info.html用)
4
+ // ==========================================================================
5
+ const modal = document.getElementById('imageModal');
6
+ // モーダル要素が存在する場合のみ実行
7
+ if (modal) {
8
+ const modalImg = document.getElementById('modalImg');
9
+ const closeBtn = document.getElementById('modalClose');
10
+ const triggers = document.querySelectorAll('.js-modal-trigger');
11
+
12
+ // リンククリックでモーダル表示
13
+ triggers.forEach(trigger => {
14
+ trigger.addEventListener('click', (e) => {
15
+ e.preventDefault();
16
+ const imgSrc = trigger.getAttribute('href');
17
+ modalImg.src = imgSrc;
18
+ modal.classList.add('active');
19
+ document.body.style.overflow = 'hidden'; // 背景スクロール禁止
20
+ });
21
+ });
22
+
23
+ // 閉じる処理
24
+ const closeModal = () => {
25
+ modal.classList.remove('active');
26
+ document.body.style.overflow = ''; // スクロール解除
27
+ setTimeout(() => { modalImg.src = ''; }, 300);
28
+ };
29
+
30
+ if (closeBtn) {
31
+ closeBtn.addEventListener('click', closeModal);
32
+ }
33
+
34
+ modal.addEventListener('click', (e) => {
35
+ // 画像以外の領域クリックで閉じる
36
+ if (e.target === modal || e.target.classList.contains('modal-content')) {
37
+ closeModal();
38
+ }
39
+ });
40
+ }
41
+
42
+ // ==========================================================================
43
+ // スクロール連動ナビゲーション (guide.html用)
44
+ // ==========================================================================
45
+ const sections = document.querySelectorAll('.section');
46
+ const navLinks = document.querySelectorAll('.side-nav a, .mobile-nav a');
47
+
48
+ // セクション要素が存在する場合のみ実行
49
+ if (sections.length > 0 && navLinks.length > 0) {
50
+ window.addEventListener('scroll', () => {
51
+ let current = '';
52
+ // スクロール位置に合わせてアクティブなセクションを判定
53
+ // ヘッダーの高さなどを考慮してオフセット値を調整してください
54
+ const offset = 150;
55
+
56
+ sections.forEach(sec => {
57
+ const sectionTop = sec.offsetTop;
58
+ if (window.pageYOffset >= sectionTop - offset) {
59
+ current = sec.getAttribute('id');
60
+ }
61
+ });
62
+
63
+ navLinks.forEach(link => {
64
+ link.classList.remove('active');
65
+ // アンカーリンクのhref属性と現在のセクションIDを比較
66
+ if (current && link.getAttribute('href').includes(`#${current}`)) {
67
+ link.classList.add('active');
68
+ }
69
+ });
70
+ });
71
+ }
72
+ });
style.css ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* ==========================================================================
2
+ ベーススタイル・共通
3
+ ========================================================================== */
4
+ :root {
5
+ --theme-green: #29a745;
6
+ --theme-green-dark: #1e7e34;
7
+ --theme-green-light: #f0f9f2;
8
+ --theme-accent: #e67e22;
9
+ --bg-color: #ffffff;
10
+ --text-color: #333;
11
+ --gray-bg: #f8f9fa;
12
+ --header-height: 60px; /* guide.html用 */
13
+ }
14
+
15
+ body {
16
+ margin: 0; padding: 0;
17
+ background-color: var(--bg-color);
18
+ font-family: "Helvetica Neue", "Arial", sans-serif;
19
+ color: var(--text-color);
20
+ line-height: 1.6;
21
+ font-size: 16px;
22
+ }
23
+
24
+ /* リンクの基本スタイル */
25
+ a { color: var(--theme-green); text-decoration: none; }
26
+ a:hover { text-decoration: underline; }
27
+
28
+ /* ==========================================================================
29
+ entry_info.html 用スタイル
30
+ ========================================================================== */
31
+ /* メインコンテンツ枠 */
32
+ .container { max-width: 900px; margin: 0 auto; padding: 40px 20px 80px; }
33
+
34
+ /* 1. 挨拶エリア */
35
+ .welcome-box { text-align: center; margin-bottom: 40px; }
36
+ .page-title { font-size: 28px; font-weight: 800; margin-bottom: 10px; color: var(--theme-green-dark); }
37
+ .status-message {
38
+ background: #f0f9f2; border-left: 5px solid var(--theme-green);
39
+ padding: 20px; border-radius: 4px; text-align: left; margin-top: 20px;
40
+ box-shadow: 0 2px 5px rgba(0,0,0,0.05);
41
+ }
42
+
43
+ /* 2. マイナンバー登録エリア */
44
+ .pweb-section {
45
+ background: #fff;
46
+ border: 2px solid var(--theme-green);
47
+ border-radius: 12px;
48
+ padding: 40px 30px;
49
+ margin-bottom: 60px;
50
+ box-shadow: 0 5px 15px rgba(41, 167, 69, 0.1);
51
+ position: relative;
52
+ overflow: hidden;
53
+ }
54
+ .pweb-section::before {
55
+ content: "必須対応";
56
+ position: absolute; top: 0; left: 0;
57
+ background: var(--theme-accent); color: #fff;
58
+ padding: 5px 20px; font-weight: bold; font-size: 14px;
59
+ border-bottom-right-radius: 12px;
60
+ }
61
+ .pweb-header { text-align: center; margin-bottom: 30px; }
62
+ .pweb-title { font-size: 26px; font-weight: 800; color: #333; margin-bottom: 10px; }
63
+ .pweb-desc { color: #666; font-size: 16px; }
64
+
65
+ /* ログイン情報カード */
66
+ .login-card {
67
+ background: #f8fcf9;
68
+ border: 2px solid #c3e6cb;
69
+ border-radius: 8px;
70
+ padding: 25px;
71
+ max-width: 600px;
72
+ margin: 0 auto 40px auto;
73
+ box-shadow: 0 4px 10px rgba(0,0,0,0.05);
74
+ }
75
+ .card-head {
76
+ font-weight: bold; font-size: 20px; margin-bottom: 20px;
77
+ padding-bottom: 10px; border-bottom: 1px dashed #aaa;
78
+ color: var(--theme-green-dark); display: flex; align-items: center; gap: 10px;
79
+ }
80
+ .login-grid {
81
+ display: grid; grid-template-columns: 1fr; gap: 20px;
82
+ }
83
+ .login-field { margin-bottom: 0; }
84
+ .field-label { display: block; font-size: 13px; color: #555; margin-bottom: 5px; font-weight: bold; }
85
+ .field-value {
86
+ background: #fff; border: 1px solid #ccc; border-radius: 4px;
87
+ padding: 10px 15px; font-family: monospace; font-size: 18px; font-weight: bold; color: #333;
88
+ display: block; box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
89
+ }
90
+ .field-helper {
91
+ font-size: 13px; color: #666; margin-top: 5px; text-align: right;
92
+ }
93
+ .note-red {
94
+ font-size: 15px; color: #e74c3c; margin-top: 20px; font-weight: bold;
95
+ background: #fff5f5; padding: 15px; border-radius: 6px; border: 1px dashed #e74c3c;
96
+ text-align: center;
97
+ }
98
+
99
+ /* 手順フロー */
100
+ .flow-area { margin-bottom: 40px; }
101
+ .flow-title {
102
+ text-align: center; font-size: 18px; font-weight: bold; margin-bottom: 20px;
103
+ color: #444; position: relative; display: inline-block; left: 50%; transform: translateX(-50%);
104
+ background: #fff; padding: 0 15px; z-index: 2;
105
+ }
106
+ .flow-container {
107
+ display: flex; gap: 15px; justify-content: space-between;
108
+ counter-reset: step;
109
+ }
110
+ .flow-step {
111
+ flex: 1;
112
+ background: #fff; border: 1px solid #ddd; border-radius: 8px;
113
+ padding: 20px 10px; text-align: center;
114
+ position: relative;
115
+ box-shadow: 0 2px 5px rgba(0,0,0,0.05);
116
+ }
117
+ .flow-step::before {
118
+ counter-increment: step;
119
+ content: "STEP " counter(step);
120
+ display: block;
121
+ background: var(--theme-green); color: #fff;
122
+ font-size: 12px; font-weight: bold;
123
+ padding: 2px 10px; border-radius: 10px;
124
+ width: fit-content; margin: 0 auto 10px auto;
125
+ }
126
+ .flow-step:not(:last-child)::after {
127
+ content: "\f054"; /* chevron-right */
128
+ font-family: "Font Awesome 6 Free"; font-weight: 900;
129
+ position: absolute; top: 50%; right: -15px; transform: translateY(-50%);
130
+ color: #ccc; font-size: 18px; z-index: 1;
131
+ background: #fff; height: 20px; line-height: 20px;
132
+ }
133
+ .step-icon { font-size: 28px; color: var(--theme-green); margin-bottom: 10px; display: block; }
134
+ .step-text { font-weight: bold; font-size: 14px; line-height: 1.4; }
135
+ .step-highlight { color: #d35400; font-weight: 800; display: block; margin-top: 4px;}
136
+
137
+ /* アクションボタン */
138
+ .action-area {
139
+ text-align: center;
140
+ margin-bottom: 30px; /* 下のマージンを少し調整 */
141
+ margin-top: 40px; /* 【改修】上にマージンを追加 */
142
+ }
143
+ .btn-pweb-main {
144
+ display: inline-block;
145
+ background-color: var(--theme-accent); color: #fff;
146
+ font-size: 22px; font-weight: bold;
147
+ padding: 20px 60px; border-radius: 50px;
148
+ text-decoration: none;
149
+ box-shadow: 0 4px 6px rgba(0,0,0,0.2);
150
+ transition: all 0.3s;
151
+ width: 100%; max-width: 500px;
152
+ word-break: break-all;
153
+ }
154
+ .btn-pweb-main:hover {
155
+ background-color: #d35400; transform: translateY(-2px);
156
+ box-shadow: 0 8px 16px rgba(0,0,0,0.25);
157
+ text-decoration: none;
158
+ }
159
+ .url-text {
160
+ font-size: 14px; color: #fff; display: block; font-weight: normal; margin-top: 5px; opacity: 0.9;
161
+ }
162
+
163
+ /* 画像マニュアル表示エリア */
164
+ .manual-vertical-area {
165
+ margin-top: 40px;
166
+ border-top: 1px dashed #ddd;
167
+ padding-top: 40px;
168
+ }
169
+ .manual-label {
170
+ text-align: center; font-size: 18px; font-weight: bold; color: #333; margin-bottom: 25px;
171
+ display: flex; align-items: center; justify-content: center; gap: 8px;
172
+ }
173
+ .manual-grid-vertical {
174
+ display: grid;
175
+ grid-template-columns: 1fr;
176
+ gap: 40px;
177
+ width: 100%;
178
+ }
179
+ .manual-item { text-align: center; }
180
+
181
+ .manual-link {
182
+ display: block; width: 100%;
183
+ border: 2px solid #eee; border-radius: 12px;
184
+ overflow: hidden; position: relative; transition: all 0.3s;
185
+ background: #fff; cursor: pointer;
186
+ }
187
+ .manual-link:hover {
188
+ border-color: var(--theme-green);
189
+ box-shadow: 0 10px 25px rgba(0,0,0,0.15);
190
+ transform: translateY(-2px);
191
+ }
192
+ .manual-img { width: 100%; height: auto; display: block; }
193
+
194
+ .zoom-hint {
195
+ position: absolute; bottom: 20px; right: 20px;
196
+ background: rgba(41, 167, 69, 0.9); color: #fff;
197
+ padding: 10px 20px; border-radius: 30px;
198
+ font-size: 15px; font-weight: bold;
199
+ box-shadow: 0 2px 5px rgba(0,0,0,0.2);
200
+ pointer-events: none;
201
+ display: flex; align-items: center; gap: 8px;
202
+ }
203
+ .manual-caption {
204
+ margin-top: 15px; font-weight: bold; color: var(--theme-green-dark); font-size: 18px;
205
+ }
206
+
207
+ /* モーダル用スタイル */
208
+ .modal-overlay {
209
+ display: none;
210
+ position: fixed; top: 0; left: 0; width: 100%; height: 100%;
211
+ background: rgba(0, 0, 0, 0.9); z-index: 2000;
212
+ overflow-y: auto;
213
+ -webkit-overflow-scrolling: touch;
214
+ box-sizing: border-box;
215
+ padding: 20px 0;
216
+ }
217
+ .modal-overlay.active {
218
+ display: flex;
219
+ align-items: flex-start;
220
+ justify-content: center;
221
+ opacity: 1;
222
+ }
223
+ .modal-content {
224
+ position: relative;
225
+ width: 95%;
226
+ max-width: 1400px;
227
+ margin: auto;
228
+ background: transparent;
229
+ border-radius: 4px;
230
+ box-shadow: 0 10px 30px rgba(0,0,0,0.5);
231
+ }
232
+ .modal-img {
233
+ display: block;
234
+ width: 100%;
235
+ height: auto;
236
+ background: #fff;
237
+ border-radius: 4px;
238
+ }
239
+ .modal-close-btn {
240
+ position: fixed; top: 20px; right: 20px;
241
+ background: rgba(0,0,0,0.6); color: #fff;
242
+ border: 2px solid #fff; border-radius: 50%;
243
+ width: 50px; height: 50px; font-size: 24px; cursor: pointer;
244
+ display: flex; align-items: center; justify-content: center;
245
+ z-index: 2010;
246
+ transition: background 0.2s;
247
+ }
248
+ .modal-close-btn:hover { background: rgba(0,0,0,0.9); transform: scale(1.1); }
249
+
250
+ /* メニューエリア (entry_info.html下部) */
251
+ .menu-header { text-align: center; margin-bottom: 30px; position: relative; margin-top: 50px; }
252
+ .menu-header h2 { font-size: 22px; color: #555; background: #fff; display: inline-block; padding: 0 15px; z-index: 1; position: relative; }
253
+ .menu-header::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; border-top: 1px solid #ddd; z-index: 0; }
254
+ .menu-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 15px; }
255
+ .menu-card {
256
+ display: flex; align-items: center; background: #fff; border: 1px solid #eee; border-radius: 8px;
257
+ padding: 20px; text-decoration: none; color: #333; transition: all 0.2s; box-shadow: 0 2px 5px rgba(0,0,0,0.05);
258
+ }
259
+ .menu-card:hover {
260
+ border-color: var(--theme-green); background-color: #f9fff9;
261
+ transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0,0,0,0.1);
262
+ text-decoration: none;
263
+ }
264
+ .menu-icon { font-size: 24px; color: var(--theme-green); width: 50px; text-align: center; margin-right: 15px; }
265
+ .menu-content { flex: 1; }
266
+ .menu-title { font-weight: bold; font-size: 18px; display: block; }
267
+ .menu-desc { font-size: 13px; color: #666; }
268
+ .menu-arrow { color: #ccc; }
269
+
270
+ /* ==========================================================================
271
+ guide.html 用スタイル
272
+ ========================================================================== */
273
+ html { scroll-behavior: smooth; }
274
+
275
+ /* レイアウト */
276
+ .layout-wrapper {
277
+ max-width: 900px; margin: 0 auto;
278
+ /* WordPressのヘッダー高さに合わせて調整が必要な場合があります */
279
+ padding-top: 20px;
280
+ display: flex; gap: 30px;
281
+ position: relative;
282
+ }
283
+
284
+ /* サイドナビ(PC用) */
285
+ .side-nav {
286
+ width: 200px; flex-shrink: 0;
287
+ /* WordPressのヘッダー高さに合わせて top を調整してください */
288
+ position: sticky; top: 80px; height: calc(100vh - 100px); overflow-y: auto;
289
+ display: none;
290
+ }
291
+ .side-nav ul { list-style: none; padding: 0; margin: 0; }
292
+ .side-nav li { margin-bottom: 10px; }
293
+ .side-nav a {
294
+ display: block; padding: 10px; color: #555; text-decoration: none; font-size: 14px; border-radius: 4px;
295
+ transition: background 0.2s;
296
+ }
297
+ .side-nav a:hover, .side-nav a.active {
298
+ background-color: var(--theme-green-light); color: var(--theme-green); font-weight: bold;
299
+ }
300
+ .main-content { flex: 1; padding: 0 15px 50px; min-width: 0; }
301
+
302
+ /* セクション */
303
+ .section {
304
+ margin-bottom: 60px; padding-top: 20px; border-top: 1px dashed #eee;
305
+ scroll-margin-top: 80px; /* スクロール時の位置調整 */
306
+ }
307
+ .sec-header {
308
+ border-left: 6px solid var(--theme-green); padding-left: 15px; margin-bottom: 20px;
309
+ display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px;
310
+ }
311
+ .sec-title { font-size: 24px; font-weight: bold; margin: 0; }
312
+ .sec-sub { font-size: 13px; color: #666; background: #eee; padding: 2px 8px; border-radius: 4px; }
313
+
314
+ /* 画像・情報カード */
315
+ .img-box {
316
+ border: 1px solid #ddd; border-radius: 8px; overflow: hidden; margin-bottom: 20px;
317
+ box-shadow: 0 2px 8px rgba(0,0,0,0.05);
318
+ }
319
+ .img-caption { background: #f5f5f5; padding: 8px 15px; font-weight: bold; font-size: 14px; border-bottom: 1px solid #ddd; }
320
+ .img-box img { width: 100%; height: auto; display: block; }
321
+
322
+ .info-card {
323
+ background: #f8fcf9; border: 1px solid #c3e6cb; padding: 15px; border-radius: 6px; margin-bottom: 20px;
324
+ }
325
+ .info-row { margin-bottom: 8px; font-size: 15px; }
326
+ .label { font-weight: bold; margin-right: 10px; color: #444; }
327
+ .val { font-family: monospace; font-weight: bold; background: #fff; padding: 2px 6px; border: 1px solid #ccc; border-radius: 3px; }
328
+ .video-wrap {
329
+ position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; background: #000; border-radius: 8px; margin-bottom: 10px;
330
+ }
331
+ .video-wrap iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
332
+
333
+ /* 【改修】追加テキストリンクリストのスタイル */
334
+ .text-link-list {
335
+ list-style: none;
336
+ padding: 15px;
337
+ margin: 10px 0 30px; /* 画像の下、次の要素との間隔 */
338
+ background: #f9f9f9;
339
+ border-radius: 8px;
340
+ border: 1px solid #eee;
341
+ font-size: 14px;
342
+ }
343
+ .text-link-list li {
344
+ margin-bottom: 10px;
345
+ word-break: break-all; /* 長いURLの折り返し */
346
+ line-height: 1.5;
347
+ }
348
+ .text-link-list li:last-child {
349
+ margin-bottom: 0;
350
+ }
351
+ .text-link-list a {
352
+ color: var(--theme-green);
353
+ text-decoration: underline;
354
+ font-weight: bold;
355
+ }
356
+ .text-link-list .sub-item {
357
+ margin-left: 1.2em;
358
+ font-size: 0.95em;
359
+ color: #555;
360
+ margin-bottom: 5px;
361
+ }
362
+ .text-link-list i {
363
+ margin-right: 6px;
364
+ color: var(--theme-green);
365
+ }
366
+
367
+ /* ==========================================================================
368
+ レスポンシブ対応
369
+ ========================================================================== */
370
+ @media (min-width: 769px) {
371
+ .side-nav { display: block; }
372
+ }
373
+
374
+ @media (max-width: 768px) {
375
+ .page-title { font-size: 24px; }
376
+ .pweb-section { padding: 30px 15px; }
377
+
378
+ .flow-container { flex-direction: column; gap: 15px; }
379
+ .flow-step { text-align: left; display: flex; align-items: center; gap: 15px; padding: 15px; }
380
+ .flow-step::before { margin: 0; flex-shrink: 0; }
381
+ .flow-step:not(:last-child)::after {
382
+ content: "\f078"; /* chevron-down */
383
+ top: auto; bottom: -22px; right: 50%; transform: translateX(50%);
384
+ width: 20px; height: 20px; line-height: 20px;
385
+ background: transparent; color: #ccc; font-size: 14px;
386
+ display: block;
387
+ }
388
+ .step-icon { font-size: 24px; margin-bottom: 0; width: 30px; text-align: center; }
389
+
390
+ .btn-pweb-main { font-size: 18px; padding: 15px 20px; }
391
+ .url-text { font-size: 11px; }
392
+
393
+ .manual-label { font-size: 16px; }
394
+ .manual-caption { font-size: 16px; }
395
+
396
+ /* guide.html用スマホナビ */
397
+ .layout-wrapper { display: block; padding-top: 0; }
398
+ .mobile-nav {
399
+ /* WordPressのヘッダーの下に来るように調整が必要です */
400
+ position: sticky; top: 0; z-index: 99;
401
+ background: rgba(255,255,255,0.98); border-bottom: 1px solid #eee;
402
+ white-space: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
403
+ padding: 12px 10px;
404
+ box-shadow: 0 2px 5px rgba(0,0,0,0.05);
405
+ margin-bottom: 20px;
406
+ }
407
+ .mobile-nav a {
408
+ display: inline-block; padding: 6px 15px; margin: 0 4px;
409
+ color: #555; text-decoration: none; border-radius: 20px; font-size: 13px; border: 1px solid #ddd;
410
+ background: #fff;
411
+ }
412
+ .mobile-nav a.active {
413
+ background: var(--theme-green); color: #fff; border-color: var(--theme-green);
414
+ }
415
+ }