PageSourceSearch

https://www.atsugicci.or.jp/_administrator/css/default/js/contents.js

js atsugicci.or.jp collected 2026-10-02 12:01:28 UTC 132,088 bytes, 2,890 lines download raw bytes

1/* ----------------------------------------------------------------------------------------
2
3https://cdnjs.cloudflare.com/ajax/libs/protonet-jquery.inview/1.1.2/jquery.inview.min.js(カウンターパーツで使用)
4
5---------------------------------------------------------------------------------------- */
6!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){function i(){var b,c,d={height:f.innerHeight,width:f.innerWidth};return d.height||(b=e.compatMode,(b||!a.support.boxModel)&&(c="CSS1Compat"===b?g:e.body,d={height:c.clientHeight,width:c.clientWidth})),d}function j(){return{top:f.pageYOffset||g.scrollTop||e.body.scrollTop,left:f.pageXOffset||g.scrollLeft||e.body.scrollLeft}}function k(){if(b.length){var e=0,f=a.map(b,function(a){var b=a.data.selector,c=a.$element;return b?c.find(b):c});for(c=c||i(),d=d||j();e<b.length;e++)if(a.contains(g,f[e][0])){var h=a(f[e]),k={height:h[0].offsetHeight,width:h[0].offsetWidth},l=h.offset(),m=h.data("inview");if(!d||!c)return;l.top+k.height>d.top&&l.top<d.top+c.height&&l.left+k.width>d.left&&l.left<d.left+c.width?m||h.data("inview",!0).trigger("inview",[!0]):m&&h.data("inview",!1).trigger("inview",[!1])}}}var c,d,h,b=[],e=document,f=window,g=e.documentElement;a.event.special.inview={add:function(c){b.push({data:c,$element:a(this),element:this}),!h&&b.length&&(h=setInterval(k,250))},remove:function(a){for(var c=0;c<b.length;c++){var d=b[c];if(d.element===this&&d.data.guid===a.guid){b.splice(c,1);break}}b.length||(clearInterval(h),h=null)}},a(f).bind("scroll resize scrollstop",function(){c=d=null}),!g.addEventListener&&g.attachEvent&&g.attachEvent("onfocusin",function(){d=null})});
7  
8/* ---------------------------------------------------------------------------------------- 
9
10	共通使用可能アニメーションclass(要素に下記のclassをそれぞれ追加するとアニメーションとして動きます)
11
12---------------------------------------------------------------------------------------- */
13
14(function($){
15  
16  // I~Lの疑似要素(::before)に設定された色が伸びて出現するアニメーションを動かすための子要素をJavascripで追加
17	$(function(){
18		$( '.cparts-animation--bgextend' ).each(function(){
19			$(this).wrapInner('<div class="cparts-animation--bgappearTrigger"></div>');
20		});
21	});
22    
23	// 要素を出現させるための様々なアニメーション
24  function fadeAnime(){
25
26    // A:その場でフェードイン
27    $('.cparts-animation--fadeInTrigger').each(function(){ //cparts-animation--fadeInTriggerというクラス名が要素に入っている場合
28      var elemPos = $(this).offset().top-50;
29      var scroll = $(window).scrollTop();
30      var windowHeight = $(window).height();
31      if (scroll >= elemPos - windowHeight){
32      $(this).addClass('cparts-animation--fadeIn');// 画面内に入ったらcparts-animation--fadeInというクラス名をその要素の追記して動かす
33      }
34      });
35
36    // B:下からフェードイン
37    $('.cparts-animation--fadeUpTrigger').each(function(){ //cparts-animation--fadeUpTriggerというクラス名が要素に入っている場合
38      var elemPos = $(this).offset().top-50;
39      var scroll = $(window).scrollTop();
40      var windowHeight = $(window).height();
41      if (scroll >= elemPos - windowHeight){
42      $(this).addClass('cparts-animation--fadeUp');// 画面内に入ったらcparts-animation--fadeUpというクラス名をその要素の追記して動かす
43      }
44      });
45
46    // C:上からフェードイン
47    $('.cparts-animation--fadeDownTrigger').each(function(){ //cparts-animation--fadeDownTriggerというクラス名が要素に入っている場合
48      var elemPos = $(this).offset().top-50;
49      var scroll = $(window).scrollTop();
50      var windowHeight = $(window).height();
51      if (scroll >= elemPos - windowHeight){
52      $(this).addClass('cparts-animation--fadeDown');// 画面内に入ったらcparts-animation--fadeDownというクラス名をその要素の追記して動かす
53      }
54      });
55
56    // D:左からフェードイン
57    $('.cparts-animation--fadeLeftTrigger').each(function(){ //cparts-animation--fadeLeftTriggerというクラス名が要素に入っている場合
58      var elemPos = $(this).offset().top-50;
59      var scroll = $(window).scrollTop();
60      var windowHeight = $(window).height();
61      if (scroll >= elemPos - windowHeight){
62      $(this).addClass('cparts-animation--fadeLeft');// 画面内に入ったらcparts-animation--fadeLeftというクラス名をその要素の追記して動かす
63      }
64      });
65
66    // E:右からフェードイン
67    $('.cparts-animation--fadeRightTrigger').each(function(){ //cparts-animation--fadeRightTriggerというクラス名が要素に入っている場合
68      var elemPos = $(this).offset().top-50;
69      var scroll = $(window).scrollTop();
70      var windowHeight = $(window).height();
71      if (scroll >= elemPos - windowHeight){
72      $(this).addClass('cparts-animation--fadeRight');// 画面内に入ったらcparts-animation--fadeRightというクラス名をその要素の追記して動かす
73      }
74      });
75
76    // F:拡大しながら表示
77    $('.cparts-animation--zoomInTrigger').each(function(){ //cparts-animation--zoomInTriggerというクラス名が要素に入っている場合
78      var elemPos = $(this).offset().top-50;
79      var scroll = $(window).scrollTop();
80      var windowHeight = $(window).height();
81      if (scroll >= elemPos - windowHeight){
82      $(this).addClass('cparts-animation--zoomIn');// 画面内に入ったらcparts-animation--zoomInというクラス名をその要素の追記して動かす
83      }
84      });
85
86    // G:縮小しながら表示
87    $('.cparts-animation--zoomOutTrigger').each(function(){ //cparts-animation--zoomOutTriggerというクラス名が要素に入っている場合
88      var elemPos = $(this).offset().top-50;
89      var scroll = $(window).scrollTop();
90      var windowHeight = $(window).height();
91      if (scroll >= elemPos - windowHeight){
92      $(this).addClass('cparts-animation--zoomOut');// 画面内に入ったらcparts-animation--zoomOutというクラス名をその要素の追記して動かす
93      }
94      }); 
95
96    // H:ぼかしから徐々に表示
97    $('.cparts-animation--blurTrigger').each(function(){ //cparts-animation--blurTriggerというクラス名がが要素に入っている場合
98      var elemPos = $(this).offset().top-50;
99      var scroll = $(window).scrollTop();
100      var windowHeight = $(window).height();
101      if (scroll >= elemPos - windowHeight){
102      $(this).addClass('cparts-animation--blur');// 画面内に入ったらcparts-animation--blurというクラス名を追記
103      }
104      }); 
105
106    // I:疑似要素(::before)に設定された色が左から右に伸びて出現
107    $( '.cparts-animation--bgLRextendTrigger' ).each(function() { //cparts-animation--bgLRextendTriggerというクラス名がが要素に入っている場合
108      var elemPos = $(this).offset().top-50;
109      var scroll = $(window).scrollTop();
110      var windowHeight = $(window).height();
111      if (scroll >= elemPos - windowHeight) {
112        $(this).addClass( 'cparts-animation--bgLRextend' );// 画面内に入ったらcparts-animation--bgLRextendというクラス名を追記
113      }
114    }); 
115
116    // J:疑似要素(::before)に設定された色が右から左に伸びて出現
117    $( '.cparts-animation--bgRLextendTrigger' ).each(function() { //cparts-animation--bgRLextendTriggerというクラス名がが要素に入っている場合
118      var elemPos = $(this).offset().top-50;
119      var scroll = $(window).scrollTop();
120      var windowHeight = $(window).height();
121      if (scroll >= elemPos - windowHeight) {
122        $(this).addClass( 'cparts-animation--bgRLextend' );// 画面内に入ったらcparts-animation--bgRLextendというクラス名を追記
123      }
124    });
125
126    // K:疑似要素(::before)に設定された色が下から上に伸びて出現
127    $( '.cparts-animation--bgDUextendTrigger' ).each(function() { //cparts-animation--bgDUextendTriggerというクラス名がが要素に入っている場合
128      var elemPos = $(this).offset().top-50;
129      var scroll = $(window).scrollTop();
130      var windowHeight = $(window).height();
131      if (scroll >= elemPos - windowHeight) {
132        $(this).addClass( 'cparts-animation--bgDUextend' );// 画面内に入ったらcparts-animation--bgDUextendというクラス名を追記
133      }
134    });
135
136    // L:疑似要素(::before)に設定された色が上から下に伸びて出現
137    $( '.cparts-animation--bgUDextendTrigger' ).each(function() { //cparts-animation--bgUDextendTriggerというクラス名がが要素に入っている場合
138      var elemPos = $(this).offset().top-50;
139      var scroll = $(window).scrollTop();
140      var windowHeight = $(window).height();
141      if (scroll >= elemPos - windowHeight) {
142        $(this).addClass( 'cparts-animation--bgUDextend' );// 画面内に入ったらcparts-animation--bgUDextendというクラス名を追記
143      }
144    }); 
145
146      // I~Lのアニメーションを動かすための文字列を囲う子要素の動き
147      $( '.cparts-animation--bgappearTrigger' ).each(function() { //cparts-animation--bgappearTriggerというクラス名がが要素に入っている場合
148        var elemPos = $(this).offset().top-50;
149        var scroll = $(window).scrollTop();
150        var windowHeight = $(window).height();
151        if (scroll >= elemPos - windowHeight) {
152          $(this).addClass( 'cparts-animation--bgappear' );// 画面内に入ったらcparts-animation--bgappearというクラス名を追記
153        }
154      });
155  }
156  
157	// 画面をスクロールをしたら動かす
158	$(window).scroll(function () {
159		fadeAnime();
160	});
161	
162	// 画面が読み込まれたらすぐに動かす
163	$(window).on('load', function() {
164		fadeAnime();
165	});
166	
167	
168  // -------------------------------------------------
169  // 文字を1文字づつ出すアニメーション
170  // -------------------------------------------------
171  
172  // 文字を1文字づつ出すアニメーションを動かすための子要素をJavascripで追加
173  $(window).on('load', function () {
174    $('.cparts-animation--appeartextchild').each(function () {
175      $(this).children().addClass('cparts-animation--appeartext');
176    });
177  });
178    
179	// eachTextAnimeにcparts-animation--appeartextというクラス名を付ける定義
180  function EachTextAnimeControl() {
181    $('.cparts-animation--appeartext').each(function () {
182      var elemPos = $(this).offset().top - 50;
183      var scroll = $(window).scrollTop();
184      var windowHeight = $(window).height();
185      if (scroll >= elemPos - windowHeight) {
186        $(this).addClass('cparts-animation--appeartext__text');
187
188      }
189    });
190  }
191
192  // 画面をスクロールをしたら動かす
193  $(window).on('scroll',function () {
194    EachTextAnimeControl();
195  });
196
197  // 画面が読み込まれたらすぐに動かす
198  $(window).on('load', function () {
199    $('.cparts-animation--appeartextchild').each(function () {
200      $(this).addClass('cparts-animation--appeartext__text');
201    });
202    //spanタグを追加する
203    var element = $('.cparts-animation--appeartext');
204    element.each(function () {
205      var text = $(this).text();
206      var textbox = "";
207      text.split('').forEach(function (t, i) {
208        if (t !== " ") {
209          if (i < 10) {
210            textbox += '<span style="animation-delay:.' + i + 's;">' + t + '</span>';
211          } else {
212            var n = i / 10;
213            textbox += '<span style="animation-delay:' + n + 's;">' + t + '</span>';
214          }
215
216        } else {
217          textbox += t;
218        }
219      });
220      $(this).html(textbox);
221    });
222
223    EachTextAnimeControl();
224  });
225
226}(jQuery));
227
228
229
230/* ---------------------------------------------------------------------------------------- 
231
232	個別Japascript
233
234---------------------------------------------------------------------------------------- */
235(function($) {$(function(){
236  
237  $(window).on('load', function() {
238    
239    /* -------------------------------------------------------
240      2017年リニューアル
241    -------------------------------------------------------- */
242    // 画像とテキスト(スクロール付き)
243    var boxheight = $('.parts_img_type47_photo').height();
244    $('.parts_img_type47_text_scrBox').css('height', boxheight - 72);
245
246    $(window).resize(function(){
247      var w = $(window).width();
248      var x = 767;
249      var boxheight = $('.parts_img_type47_photo').height();
250
251      if (w <= x) {
252        $('.parts_img_type47_text_scrBox').css('height', '');
253      } else {
254        $('.parts_img_type47_text_scrBox').css('height', boxheight - 72);
255      }
256
257    });
258
259    // よくある質問(クリックで回答を表示)
260    $('.parts_text_type17 dd').css('display', 'none');
261    $('.parts_text_type17 dt').on('click', function() {
262      $(this).next().slideToggle();
263    });
264
265    // Indeed募集一覧
266    $(function(){
267      $('.cms_col_3').eq(0);
268      $('.cms_col_3').eq($('.cms_col_3').length-1);
269
270      for(var i=0; i<$('.cms_col_3').length; i++){
271          if(i%3===0){
272              $('.cms_col_3').eq(i).addClass('rigth_ntn');
273          }else if(i%3===2){
274              $('.cms_col_3').eq(i).addClass('left_ntn');
275          }
276      }
277    });
278    
279    /* -------------------------------------------------------
280      2020年追加
281    -------------------------------------------------------- */
282    // テーブルブロック追加
283    $('.cparts-cell-block').not('.cparts-cell-block + .cparts-cell-block').each(function(){
284      const $targets = $(this).nextUntil(':not(.cparts-cell-block)').addBack(); // 2025年jQueryのバージョンアップに伴う修正
285      if ($targets.length > 1) {
286        $targets.wrapAll('<div class="cparts-table-block"></div>'); // 2025年jQueryのバージョンアップに伴う修正
287      }
288    });
289    $(".cparts-table-block:empty").remove();
290
291    // インライン親ブロック追加
292    $('.cparts-inline-block').not('.cparts-inline-block + .cparts-inline-block').each(function(){
293      const $targets = $(this).nextUntil(':not(.cparts-inline-block)').addBack(); // 2025年jQueryのバージョンアップに伴う修正
294      if ($targets.length > 1) {
295        $targets.wrapAll('<div class="cparts-col-block"></div>'); // 2025年jQueryのバージョンアップに伴う修正
296      }
297    });
298    $(".cparts-col-block:empty").remove();
299
300    // 公開サイトのみ適用
301    if($('#published').length>0){
302      
303      $('html').css('overflow-x','hidden');
304
305      // タイトルをクリックして詳細が開くパーツ
306      $('.cparts-var03-type12a').each(function(){
307          $(this).nextAll().each(function(){
308              if($(this).hasClass('cparts-var03-type12c')) return false;
309              $(this).addClass('cparts-var03-type12b');
310              $(this).hide();
311          });
312      });
313      $('.cparts-var03-type12a').next('.cparts-var03-type12b').addClass('cparts-var03-type12b-first');
314      $('.cparts-var03-type12c').prev('.cparts-var03-type12b').addClass('cparts-var03-type12b-last');
315      $('.cparts-var03-type12c').hide();
316      $('.cparts-var03-type12a').off().on('click', function() {
317          $(this).find('.cparts-icon-block').toggleClass('cparts-icon-block-open');
318          $(this).nextAll().each(function(){
319              if($(this).hasClass('cparts-var03-type12c')) return false;
320              $(this).slideToggle(500);
321              setTimeout(function() {
322              $('.cparts-var03-type12b').css('overflow','visible');
323              }, 2000);
324          $('.cparts-var03-type12a').toggleClass('cparts-var03-type12a-open');
325          });
326      });
327
328
329      // 列1個のコンテンツパーツ
330      var left = 0;
331      var maxHeight = 0;
332      $('.cparts-col2-block').each(function(i, box) {
333          if(i===0){
334              left = $(this).offset().left;
335              start = 0;
336          } else {
337            if(left === $(this).offset().left || $('.cparts-col2-block').length == i+1) {
338                    if( $('.cparts-col2-block').length == i+1 ){
339                        i++;
340                        if(maxHeight < $(this).find('.col2-height').height()) maxHeight = $(this).find('.col2-height').height();
341                    }
342                    var count = i - start;
343                for(ii=(i-1);ii>=start;ii--) {
344                    $('.cparts-col2-block').eq(ii).find('.col2-height').height(maxHeight);
345                    if (window.matchMedia( "(min-width: 992px)" ).matches) {
346                        if(count === 1) $('.cparts-col2-block').eq(ii).addClass('cparts-left-ntn');
347                        if(count === 2) $('.cparts-col2-block').eq(ii).addClass('cparts-rigth-ntn');
348                        count--;
349                    }
350                    if (window.matchMedia( "(max-width: 991px) and (min-width: 768px)" ).matches) {
351                        if(count === 1) $('.cparts-col2-block').eq(ii).addClass('cparts-left-ntn');
352                        if(count === 2) $('.cparts-col2-block').eq(ii).addClass('cparts-rigth-ntn');
353                        count--;
354                    }
355                }
356                maxHeight=0;
357                start = i;
358            }
359        }
360        if(maxHeight < $(this).find('.col2-height').height()) maxHeight = $(this).find('.col2-height').height();
361      });
362
363      var left = 0;
364      var maxHeight = 0;
365      $('.cparts-col3-block').each(function(i, box) {
366        //最初の1つ目
367        if(i===0){
368            left = $(this).offset().left;
369            start = 0;
370        } else {
371            // 1つめと同じLeftt値か最後のエレメントなら
372            if(left === $(this).offset().left || $('.cparts-col3-block').length == i+1) {
373                if (left === $(this).offset().left && $('.cparts-col3-block').length == i+1) $('.cparts-col3-block').eq(i).addClass('cparts-left-ntn');
374                    if( $('.cparts-col3-block').length == i+1 ){
375                        if(maxHeight < $(this).find('.cparts-col3-height').height()) maxHeight = $(this).find('.cparts-col3-height').height();
376                        i++;
377                   }
378                var count = i - start;
379                for(ii=(i-1);ii>=start;ii--) {
380                    $('.cparts-col3-block').eq(ii).find('.cparts-col3-height').height(maxHeight);
381                    if (window.matchMedia( "(min-width: 992px)" ).matches) {
382                        if(count === 1) $('.cparts-col3-block').eq(ii).addClass('cparts-left-ntn');
383                        if(count === 2) $('.cparts-col3-block').eq(ii).addClass('cparts-center-ntn');
384                        if(count === 3) $('.cparts-col3-block').eq(ii).addClass('cparts-rigth-ntn');
385                        count--;
386                    }
387                    if (window.matchMedia( "(max-width: 991px) and (min-width: 768px)" ).matches) {
388                        if(count === 1) $('.cparts-col3-block').eq(ii).addClass('cparts-left-ntn');
389                        if(count === 2) $('.cparts-col3-block').eq(ii).addClass('cparts-rigth-ntn');
390                        count--;
391                    }
392                }
393                maxHeight=0;
394                start = i;
395            }
396        }
397        if(maxHeight < $(this).find('.cparts-col3-height').height()) maxHeight = $(this).find('.cparts-col3-height').height();
398      });
399
400      var left = 0;
401      var maxHeight = 0;
402      $('.cparts-col4-block').each(function(i, box) {
403          if(i===0){
404              left = $(this).offset().left;
405              start = 0;
406          } else {
407            if(left === $(this).offset().left || $('.cparts-col4-block').length == i+1) {
408                    if( $('.cparts-col4-block').length == i+1 ){
409                        i++;
410                        if(maxHeight < $(this).find('.col4-height').height()) maxHeight = $(this).find('.col4-height').height();
411                    }
412                    var count = i - start;
413                for(ii=(i-1);ii>=start;ii--) {
414                    $('.cparts-col4-block').eq(ii).find('.col4-height').height(maxHeight);
415                    if (window.matchMedia( "(min-width: 992px)" ).matches) {
416                        if(count === 1) $('.cparts-col4-block').eq(ii).addClass('cparts-left-ntn');
417                        if(count === 2) $('.cparts-col4-block').eq(ii).addClass('cparts-l-center-ntn');
418                        if(count === 3) $('.cparts-col4-block').eq(ii).addClass('cparts-r-center-ntn');
419                        if(count === 4) $('.cparts-col4-block').eq(ii).addClass('cparts-rigth-ntn');
420                        count--;
421                    }
422                    if (window.matchMedia( "(max-width: 991px) and (min-width: 768px)" ).matches) {
423                        if(count === 1) $('.cparts-col4-block').eq(ii).addClass('cparts-left-ntn');
424                        if(count === 2) $('.cparts-col4-block').eq(ii).addClass('cparts-rigth-ntn');
425                        count--;
426                    }
427                }
428                maxHeight=0;
429                start = i;
430            }
431        }
432        if(maxHeight < $(this).find('.col4-height').height()) maxHeight = $(this).find('.col4-height').height();
433      });
434
435      var left = 0;
436      var maxHeight = 0;
437      $('.cparts-col5-block').each(function(i, box) {
438          if(i===0){
439              left = $(this).offset().left;
440              start = 0;
441          } else {
442            if(left === $(this).offset().left || $('.cparts-col5-block').length == i+1) {
443                    if( $('.cparts-col5-block').length == i+1 ){
444                        i++;
445                        if(maxHeight < $(this).find('.col5-height').height()) maxHeight = $(this).find('.col5-height').height();
446                    }
447                    var count = i - start;
448                for(ii=(i-1);ii>=start;ii--) {
449                    $('.cparts-col5-block').eq(ii).find('.col5-height').height(maxHeight);
450                    if (window.matchMedia( "(min-width: 992px)" ).matches) {
451                        if(count === 1) $('.cparts-col5-block').eq(ii).addClass('cparts-left-ntn');
452                        if(count === 2) $('.cparts-col5-block').eq(ii).addClass('cparts-l-center-ntn');
453                        if(count === 3) $('.cparts-col5-block').eq(ii).addClass('cparts-center-ntn');
454                        if(count === 4) $('.cparts-col5-block').eq(ii).addClass('cparts-r-center-ntn');
455                        if(count === 5) $('.cparts-col5-block').eq(ii).addClass('cparts-rigth-ntn');
456                        count--;
457                    }
458                    if (window.matchMedia( "(max-width: 991px) and (min-width: 768px)" ).matches) {
459                        if(count === 1) $('.cparts-col5-block').eq(ii).addClass('cparts-left-ntn');
460                        if(count === 2) $('.cparts-col5-block').eq(ii).addClass('cparts-rigth-ntn');
461                        count--;
462                    }
463                }
464                maxHeight=0;
465                start = i;
466            }
467        }
468        if(maxHeight < $(this).find('.col5-height').height()) maxHeight = $(this).find('.col5-height').height();
469      });
470
471      if (window.matchMedia( "(max-width: 991px)" ).matches) {
472        $('.cparts-img-type12a').each(function(i, box) {
473                var maxHeight = 0;
474                $(box).find('.cparts-txt-block').each(function() {
475                    if ($(this).height() > maxHeight) maxHeight = $(this).height();
476                });
477                $(box).find('.cparts-txt-block').height(maxHeight);
478        });
479        $('.cparts-img-type12b').each(function(i, box) {
480                var maxHeight = 0;
481                $(box).find('.cparts-txt-block').each(function() {
482                    if ($(this).height() > maxHeight) maxHeight = $(this).height();
483                });
484                $(box).find('.cparts-txt-block').height(maxHeight);
485        });
486      }
487
488      // マウスオーバーでテキスト表示
489      $('.cparts-var03-type19a').children('div').each(function(){
490          var k = $(this).find('.cparts-img-block').height();
491      $(this).find('.cparts-body-block').css('height',k+'px');
492      });
493      $('.cparts-var03-type19b').children('div').each(function(){
494          var k = $(this).find('.cparts-img-block').height();
495      $(this).find('.cparts-body-block').css('height',k+'px');
496      });
497
498      // メインビジュアル
499      $(".cparts-var03-type22").find(".cparts-body-block").each(function(){
500          $(this).addClass('cparts-move');
501          $(this).parents('.cparts-var03-type22').find('.cparts-img-block img').addClass('cparts-img-in');
502      });
503      $(".cparts-var03-type23 .cparts-body-block").each(function(){
504          $(this).addClass('cparts-fade-in');
505      });
506
507    }// 公開サイトのみ適用終了
508    
509    // 流れ(ライン)ブロック追加
510    var connectorBlock = $('<div class="cparts-connector-block"></div>');
511    $('.cparts-connector--curve').not('.cparts-connector--curve+.cparts-connector--curve').each(function(){
512      $(this).nextUntil(':not(.cparts-connector--curve)').addBack() // 2025年jQueryのバージョンアップに伴う修正.wrapAll(connectorBlock);
513    });
514    $(".cparts-connector-block:empty").remove();
515    
516    var $items = $('.cparts-var03-type24');
517    var group = [];
518
519    $items.each(function(i, el) {
520      var $el = $(el);
521
522      // 直前が同じクラスかどうかでグループ判定
523      if (i > 0 && $items.eq(i - 1).next()[0] === el) {
524        group.push($el);
525      } else {
526        // 新しいグループ開始
527        if (group.length) {
528          processGroup(group);
529        }
530        group = [$el];
531      }
532    });
533    // 最後のグループ処理
534    if (group.length) {
535      processGroup(group);
536    }
537    function processGroup(group) {
538      $.each(group, function(idx, $el) {
539        if ((idx + 1) % 2 === 0) {
540          $el.addClass('cparts-curve--even');   // 奇数番目
541        }
542      });
543      group[group.length - 1].addClass('cparts-curve--last'); // 最後
544    }
545    
546    // タブ切り替え
547    // 最初は全部消す
548    $('.cparts-var03-type26b').hide();
549    $('.cparts-var03-type26c').hide();
550    $('.cparts-inner').hide();
551    var edit_site = $('#cms_contents_area').length;
552    if(edit_site === 0) {
553        $('.cparts-var03-type26d').hide()
554        $('.cparts-var03-type26a .cparts-notes-block').hide()
555    };
556    // 見出しの処理
557    $('.cparts-var03-type26a').each(function(){
558        // 自身のliに対して処理を行う
559        $(this).find('ol li').each(function(i){
560            // クラス名を追加する
561            $(this).addClass('cparts-select' + (i+1));
562            var li = $(this).length;
563            $(this).css('width','calc(100% / '+li+')');
564            // 最初の要素にはselect-on
565            if(i === 0) $(this).addClass('cparts-select-on');
566            // クリックイベントを追加
567            $(this).off().on('click', function(event) {
568                // 自分のグループのselect-onを削除
569                $(this).parents('.cparts-var03-type26a').find('.cparts-select-on').removeClass('cparts-select-on');
570                // 自分にselect-onを追加
571                $(this).addClass('cparts-select-on');
572                var show_flag = 0; // 表示フラグ 1の間は表示する
573                var show_class = $(this).attr('class').replace(' cparts-select-on',''); // 表示するクラス名
574                $(this).parents('.cparts-var03-type26a').nextAll().each(function(index, el) {
575                    if($(this).hasClass('cparts-var03-type26d')) return false;
576                    $(this).hide();
577                });
578                $(this).parents('.cparts-var03-type26a').nextAll().each(function(index, el) {
579                    if($(this).hasClass('cparts-var03-type26d')) return false;
580                    if($(this).hasClass('cparts-var03-type26b') && $(this).hasClass(show_class) && show_flag === 0) {
581                        show_flag = 1;
582                        if(edit_site)
583                            $(this).fadeIn(1000);
584                    } else if($(this).hasClass('cparts-var03-type26c') && $(this).hasClass(show_class) && show_flag === 1) {
585                        show_flag = 0;
586                        if(edit_site)
587                            $(this).fadeIn(1000);
588                    } else if(show_flag === 1) {
589                        $(this).fadeIn(1000);
590                    }
591                });
592                return false;
593            });
594        });
595        var index = 1;
596        $(this).nextAll().each(function() {
597            if($(this).hasClass('cparts-var03-type26d')) return false;
598            if($(this).hasClass('cparts-var03-type26b')) {
599                $(this).addClass('cparts-select'+index);
600                $(this).attr('data','cparts-select'+index);
601                if(index === 1 && edit_site) $(this).show();
602                else $(this).hide();
603            } else if($(this).hasClass('cparts-var03-type26c')) {
604                $(this).addClass('cparts-select'+index);
605                $(this).attr('data','cparts-select'+index);
606                if(index === 1 && edit_site) $(this).show();
607                else $(this).hide();
608                index++;
609            } else {
610                $(this).addClass('cparts-inner');
611                if(index === 1) $(this).show();
612                else $(this).hide();
613            }
614        });
615      });
616
617     $('.cparts-var03-type26a .cparts-notes-block p').off().on('click', function() {
618      if($(this).hasClass('cparts-all-open')){
619        $(this).html('タブ内容を展開する(公開サイトには表示されません)');
620        $(this).removeClass('cparts-all-open');
621        $(this).parents('.cparts-var03-type26a').nextAll('.cparts-var03-type26b').hide();
622        $(this).parents('.cparts-var03-type26a').nextAll('.cparts-var03-type26c').hide();
623        $(this).parents('.cparts-var03-type26a').nextAll('.cparts-inner').hide();
624        $(this).parents('.cparts-var03-type26a').next('.cparts-var03-type26b.cparts-select1').nextAll().each(function() {
625            if($(this).hasClass('cparts-var03-type26c')) return false;
626            $(this).show();
627        });
628        $(this).parents('.cparts-var03-type26a').nextAll('.cparts-var03-type26b.cparts-select1').show();
629        $(this).parents('.cparts-var03-type26a').nextAll('.cparts-var03-type26c.cparts-select1').show();
630        $('.cparts-var03-type26a ol li').removeClass('cparts-select-on');
631        $('.cparts-select1').addClass('cparts-select-on');
632      }else{
633        $(this).html('プレビューを表示(公開サイトには表示されません)');
634        $(this).addClass('cparts-all-open');
635        $(this).parents('.cparts-var03-type26a').nextAll('.cparts-var03-type26b').show();
636        $(this).parents('.cparts-var03-type26a').nextAll('.cparts-var03-type26c').show();
637        $(this).parents('.cparts-var03-type26a').nextAll('.cparts-inner').show();
638        }
639      });  
640    
641    /* -------------------------------------------------------
642      2021年追加
643    -------------------------------------------------------- */
644    // 画像/見出し・背景付テキスト_ver.2・見出し・背景付テキスト/画像_ver.2:上余白調整
645    if (window.matchMedia( "(min-width: 768px)" ).matches) {
646      $(window)// .load() 削除(2025年jQueryのバージョンアップに伴う修正)
647$(window).on('load', function () {
648        $('.parts_img_type37').each(function() {
649          var himg = $(this).find('img').height();
650          var h = $(this).find('.parts_img_type37_text').height();
651          var m = h - himg +24;
652          if (himg < h) {
653            $(this).find('img').css('margin-top', m+'px');
654          }
655        });
656
657        $('.parts_img_type36').each(function() {
658          var himgb = $(this).find('img').height();
659          var hb = $(this).find('.parts_img_type36_text').height();
660          var mb = hb - himgb +24;
661          if (himgb < hb) {
662            $(this).find('img').css('margin-top', mb+'px');
663          }
664        });
665      });
666    }
667    
668    // 【共通】スライド
669    //スライド用タグ追加
670    // スライダー構造を追加(毎回HTMLで生成)
671    $('.cparts-slide-block').not('.cparts-slide-block + .cparts-slide-block').each(function () {
672      const $targets = $(this).nextUntil(':not(.cparts-slide-block)').addBack(); // 2025年jQueryのバージョンアップに伴う修正
673      if ($targets.length > 1) {
674        $targets.wrapAll(
675          '<div class="cparts-slideview-block lay-margin-b--3">' +
676            '<div class="cparts-slider-block lay-row lay-flex-nowrap"></div>' +
677            '<span class="cparts-prevbtn-block dec-bg--primary"></span>' +
678            '<span class="cparts-nextbtn-block dec-bg--primary"></span>' +
679          '</div>'
680        ); // 2025年jQueryのバージョンアップに伴う修正
681      }
682    });
683    $('.cparts-slider-block:empty').remove();
684
685    // PCでの列数指定(ラップ後に正しく初期化)
686    $('.cparts-slider-block').each(function () {
687      const $first = $(this).children('.cparts-slide-block:first-child');
688
689      if ($first.hasClass('cparts-pcrow--1')) {
690        $(this).children('.cparts-slide-block').addClass('lay-col12-md-12');
691        $(this).addClass('cparts-sliderow-1');
692      } else if ($first.hasClass('cparts-pcrow--2')) {
693        $(this).children('.cparts-slide-block').addClass('lay-col12-md-6');
694        $(this).addClass('cparts-sliderow-2');
695      } else if ($first.hasClass('cparts-pcrow--3')) {
696        $(this).children('.cparts-slide-block').addClass('lay-col12-md-4');
697        $(this).addClass('cparts-sliderow-3');
698      } else {
699        $(this).children('.cparts-slide-block').addClass('lay-col12-md-3');
700        $(this).addClass('cparts-sliderow-4');
701      }
702    });
703
704    // スライダー移動
705    let cancelFlag = 0;
706
707    $('.cparts-nextbtn-block').on('click', function () {
708      if (cancelFlag === 0) {
709        cancelFlag = 1;
710        const $slider = $(this).siblings('.cparts-slider-block');
711        const slidePW = $(this).parent().width(); // 表示範囲
712        const slideSW = $slider.get(0).scrollWidth - 30; // スライダー全体の幅
713        const slideMW = slidePW - slideSW; // å·®
714        const $firstSlide = $slider.children('.cparts-slide-block:first-child');
715        const slideW = $firstSlide.innerWidth();
716        const slideM = parseInt($firstSlide.css('margin-left'), 10);
717
718        if (slideMW < 0 && slideMW < -slideM) {
719          $firstSlide.animate({ marginLeft: slideM - slideW }, 100, 'linear');
720        }
721
722        setTimeout(() => {
723          cancelFlag = 0;
724        }, 500);
725      }
726    });
727
728    $('.cparts-prevbtn-block').on('click', function () {
729      if (cancelFlag === 0) {
730        cancelFlag = 1;
731        const $slider = $(this).siblings('.cparts-slider-block');
732        const $firstSlide = $slider.children('.cparts-slide-block:first-child');
733        const slideW = $firstSlide.innerWidth();
734        const slideM = parseInt($firstSlide.css('margin-left'), 10);
735
736        if (slideM < 0) {
737          $firstSlide.animate({ marginLeft: slideM + slideW }, 100, 'linear');
738        }
739
740        setTimeout(() => {
741          cancelFlag = 0;
742        }, 500);
743      }
744    });
745
746    // リサイズ時にマージンをリセット(PCだけ)
747    $(window).on('resize', function () {
748      if ($(window).width() >= 768) {
749        $('.cparts-slider-block').children('.cparts-slide-block:first-child').css({ marginLeft: 0 });
750      }
751    });
752    //iPadの横揺れ防止
753      if($('body > div#cms_contents_area').length){
754        $('body').css('overflow-x','');
755      } else if($('.cparts-slide-block').length) {
756        $('body').css('overflow-x','hidden');
757      }
758    
759    // 【共通】リストへのclass追加
760    $('.cparts-list-block > ul').addClass('cparts-list-ul--01');
761    $('.cparts-list-block > * > li > ul').addClass('cparts-list-ul--02');
762    $('.cparts-list-block > * > li > * > li > ul').addClass('cparts-list-ul--03');
763    $('.cparts-list-block > * > li > * > li > * > li > ul').addClass('cparts-list-ul--04');
764    $('.cparts-list-block > * > li > * > li > * > li > * > li > ul').addClass('cparts-list-ul--05');
765    $('.cparts-list-block > * > li > * > li > * > li > * > li > * > li > ul').addClass('cparts-list-ul--06');
766    $('.cparts-list-block > ol').addClass('cparts-list-ol--01');
767    $('.cparts-list-block > * > li > ol').addClass('cparts-list-ol--02');
768    $('.cparts-list-block > * > li > * > li > ol').addClass('cparts-list-ol--03');
769    $('.cparts-list-block > * > li > * > li > * > li > ol').addClass('cparts-list-ol--04');
770    $('.cparts-list-block > * > li > * > li > * > li > * > li > ol').addClass('cparts-list-ol--05');
771    $('.cparts-list-block > * > li > * > li > * > li > * > li > * > li > ol').addClass('cparts-list-ol--06');
772    $('.cparts-list-block > * > li').addClass('cparts-list-li--01');
773    $('.cparts-list-block > * > li > * > li').addClass('cparts-list-li--02');
774    $('.cparts-list-block > * > li > * > li > * > li').addClass('cparts-list-li--03');
775    $('.cparts-list-block > * > li > * > li > * > li > * > li').addClass('cparts-list-li--04');
776    $('.cparts-list-block > * > li > * > li > * > li > * > li > * > li').addClass('cparts-list-li--05');
777    $('.cparts-list-block > * > li > * > li > * > li > * > li > * > li > * > li').addClass('cparts-list-li--06');
778
779    // 【目次】装飾用class追加
780    $('.cparts-id282--02 .cparts-list-li--01, .cparts-id282--03 .cparts-list-li--01').addClass('dec-bg-pe--primary dec-line--grey');
781    $('.cparts-id282--02 ol > .cparts-list-li--02, .cparts-id282--02 ol > .cparts-list-li--03, .cparts-id282--03 ol > .cparts-list-li--02, .cparts-id282--03 ol > .cparts-list-li--03').addClass('dec-txt-pe--dark');
782    $('.cparts-id282--02 ul > .cparts-list-li--02, .cparts-id282--02 ul > .cparts-list-li--03, .cparts-id282--03 ul > .cparts-list-li--02, .cparts-id282--03 ul > .cparts-list-li--03').addClass('dec-line-pe--dark');
783    
784    // テキスト縦書き
785    $('div[class*="cparts-id294"]').each(function() {
786      var w = $(this).parent('div').width();
787      $(this).find('.cparts-txt-block').css('width', w+'px');
788    });
789    window.addEventListener( 'resize', function() {
790      $('div[class*="cparts-id294"]').each(function() {
791        var w = $(this).parent('div').width();
792        $(this).find('.cparts-txt-block').css('width', w+'px');
793      });
794    }, false );
795
796    // ステップリスト
797    $('div[class*="cparts-id297"]').each(function() {
798      $(this).append('<div class="cparts--id295-border dec-bg--light"></div>');  
799    });
800    
801    // タイトル付き枠線
802    if ($('[class*="cparts-id299"]').length) {
803      $('div[class*="cparts-id299"]').each(function() {
804        var height = $(this).find('.cparts-head-block').height();
805        var t = height/2;
806        var m = height/2 + 30;
807        $(this).find('.cparts-body-block').css('padding-top', t + 20 + 'px');
808        $(this).find('.cparts-head-block').css('top', '-'+t+'px');
809        $(this).css('margin-top', m+'px');
810        if ($(this).find('h3').css('color') == 'rgb(255, 255, 255)') {
811          $(this).find('h3').addClass('dec-txt--primary');
812        }
813      });
814    }
815    
816    // バナー01
817    $('div[class*="cparts-id311"]').each(function() {
818      if ($(this).find('.cparts-body-block').outerWidth() < 200) {
819          $(this).addClass('cparts-id311-column');
820      }
821      var height = $(this).find('.cparts-body-block').outerHeight();
822      if(height > 210){
823        $(this).find('.cparts-img-block').find('img').css('height', height+'px');
824        $(this).find('.cparts-img-block').css('height', height+'px');
825      }
826      var color = $(this).find('.dec-bg--primary').css('color');
827      $(this).find('h4').css('color', color);
828    });
829    
830    // バナー02
831    $('.cparts-id315--02').each(function() {
832      var col = $(this).find('.dec-bg--dark').css('background-color');
833      var c = String(col).slice(0,-1);
834      var color = String(c).slice(3);
835      $(this).find('.cparts-body-block').css({'cssText': 'background-color: rgba'+color+',.75) !important'});
836    });
837    $('.cparts-id315--01').each(function() {
838      var color = $(this).find('.dec-bg--primary').css('color');
839      $(this).find('h4').css('color', color);
840    });
841    $('div[class*="cparts-id315"]').each(function() {
842      if ($(this).find('.cparts-img-block').outerWidth() < 300) {
843          $(this).addClass('cparts-id315-column');
844      }
845      var height = $(this).find('.cparts-body-block').outerHeight() +30;
846        $(this).find('.cparts-img-block').find('img').css('height', height+'px');
847        $(this).find('.cparts-img-block').css('height', height+'px');
848      if ($(this).find('h4').css('color') == $(this).find('.dec-bg--primary').css('background-color')) {
849        $(this).find('h4').css('color','#fff');
850      }
851    });
852
853    // バナー03
854    $('div[class*="cparts-id317"]').each(function() {
855      if ($(this).find('.cparts-txt-block').outerWidth() < 150) {
856          $(this).addClass('cparts-id317-column');
857      }
858      var height = $(this).find('.cparts-txt-block').outerHeight();
859      // if(height > 250){
860        $(this).find('.cparts-img-block').find('img').css('height', height+'px');
861        $(this).find('.cparts-img-block').css('height', height+'px');
862      // }
863      var color = $(this).find('.dec-bg--primary').css('color');
864      $(this).find('h4').css('color', color);
865    });
866
867    // バナー04
868    $('div[class*="cparts-id318"]').each(function() {
869      if ($(this).children('div').outerWidth() < 250) {
870          $(this).addClass('cparts-id318-column');
871      }
872    });
873    $('.cparts-id318--01').each(function() {
874      $(this).find('.cparts-body-block').attr('style', '');
875    });
876    
877    /* -------------------------------------------------------
878      2022年追加
879    -------------------------------------------------------- */
880    // メイン画像_ver.19
881    var partscol1 = $('.cparts-id402').find('.dec-bg--primary').css('background-color');
882    (function () {
883      var unit = 100,
884          canvasList,
885          drawInfo = {},
886          colorList = [],
887          innerFontColorList = [],
888          innerBgColorList = [];
889
890      /**
891       * Init function.
892       * 
893       * Initialize variables and begin the animation.
894       */
895      function init() {
896        drawInfo.seconds = 0;
897        drawInfo.t = 0;
898
899        // Get all canvas elements
900        canvasList = document.querySelectorAll('.cparts-dec--wavebar');
901
902        // Initialize each canvas
903        Array.prototype.forEach.call(canvasList, 
904          function(canvas, index){
905            var canvasDataSet = canvas.dataset,
906                inner = canvas.nextElementSibling,
907                innerDataSet;
908            canvas.style.height = String(canvas.height / devicePixelRatio) + "px";
909
910            if ($(canvas).hasClass('dec-wavebar__01')) {
911            canvas.width = document.documentElement.clientWidth;
912            canvas.width *= devicePixelRatio;
913            canvas.height = canvas.width * .04;
914            canvas.height *= devicePixelRatio;
915
916            } else if ($(canvas).hasClass('dec-wavebar__02')){
917              canvas.width = document.documentElement.clientWidth;
918              canvas.width *= devicePixelRatio;
919              canvas.height = canvas.width * .04;
920              canvas.height = canvas.height * devicePixelRatio +75;
921            } else if ($(canvas).hasClass('dec-wavebar__03')){
922              canvas.width = document.documentElement.clientWidth;
923              canvas.width = canvas.width * devicePixelRatio / 2;
924              canvas.height = canvas.width * .04 + 20;
925              canvas.height = canvas.height * devicePixelRatio +150;
926            }
927            canvas.contextCache = canvas.getContext("2d");
928
929            // Add color
930            if ($(canvas).hasClass('cparts-dec--wavebar')) {
931            colorList.push([partscol1]);
932            }
933          }
934        );
935        update();
936      }
937      var timer = null;
938      function update() {
939        // Each canvas
940        Array.prototype.forEach.call(canvasList, 
941          function(canvas, index){
942            draw(canvas, colorList[index]);
943          }
944        );
945        // 共通の描画情報の更新
946        drawInfo.seconds = drawInfo.seconds + .014;
947        drawInfo.t = drawInfo.seconds*Math.PI;
948        // Re-call
949        if ($('.siteblock-header').find('.sitedesign-canvas-animetion').hasClass('sitedesign-canvas-animetion-on')){
950        timer = setTimeout(update, 50);
951        }
952      }
953      clearTimeout(timer);
954      /**
955       * Draw animation function.
956       * 
957       * This function draws one frame of the animation, waits 20ms, and then calls
958       * itself again.
959       */
960      function draw(canvas, color) {
961        // 対象のcanvasのコンテキストを取得
962        var context = canvas.contextCache;
963        // キャンバスの描画をクリア
964        context.clearRect(0, 0, canvas.width, canvas.height);
965
966        //波を描画
967        if ($(canvas).hasClass('cparts-dec--wavebar')) {
968          if ($(canvas).hasClass('dec-wavebar__01')) {
969            drawWave(canvas, color[0], 1, 1, 800);
970          } else if ($(canvas).hasClass('dec-wavebar__02')){
971            drawWave(canvas, color[0], 0.3, 1.2, 300);
972            drawWave(canvas, color[2], 0.4, 1.4, 100);
973          } else if ($(canvas).hasClass('dec-wavebar__03')){
974            drawWave(canvas, color[0], 0.6, 0.9, 100);
975          }
976        }
977      }
978      /**
979      * 波を描画
980      * drawWave(キャンバス, 色, 不透明度, 波の幅のzoom, 波の開始位置の遅れ)
981      */
982      function drawWave(canvas, color, alpha, zoom, delay) {
983        var context = canvas.contextCache;
984        context.fillStyle = color;
985        context.globalAlpha = alpha;
986
987        context.beginPath(); //パスの開始
988        drawSine(canvas, drawInfo.t / 0.5, zoom, delay);
989        context.lineTo(canvas.width + 10, canvas.height + 10); //パスをCanvasの右下へ
990        context.lineTo(0, canvas.height); //パスをCanvasの左下へ
991        context.closePath() //パスを閉じる
992        context.fill(); //塗りつぶす
993      }
994      /**
995       * Function to draw sine
996       * 
997       * The sine curve is drawn in 10px segments starting at the origin. 
998       * drawSine(キャンバス, 時間, 波の幅のzoom, 波の開始位置の遅れ)
999       */
1000      function drawSine(canvas, t, zoom, delay) {
1001        var xAxis = Math.floor(canvas.height/2);
1002        var yAxis = 0;
1003        var context = canvas.contextCache;
1004        // Set the initial x and y, starting at 0,0 and translating to the origin on
1005        // the canvas.
1006        var x = t; //時間を横の位置とする
1007        var y = Math.sin(x)/zoom;
1008        context.moveTo(yAxis, unit*y+xAxis); //スタート位置にパスを置く
1009
1010        // Loop to draw segments (横幅の分、波を描画)
1011        for (i = yAxis; i <= canvas.width + 10; i += 10) {
1012          if ($(canvas).hasClass('dec-wavebar__01')) {
1013          x = t+(-yAxis+i)/unit/zoom+40;
1014          y = Math.sin(x - delay)/4;
1015          } else if ($(canvas).hasClass('dec-wavebar__02')){
1016          x = t+(-yAxis+i)/unit/zoom+10;
1017          y = Math.sin(x - delay)/2;
1018          } else if ($(canvas).hasClass('dec-wavebar__03')){
1019          x = t+(-yAxis+i)/unit/zoom+1000;
1020          y = Math.sin(x - delay)/1;
1021          }
1022          context.lineTo(i, unit*y+xAxis);
1023
1024        }
1025      }
1026      init();
1027    // });
1028    })();
1029    
1030    /* -------------------------------------------------------
1031      2023年追加
1032    -------------------------------------------------------- */
1033    // id457の斜線時の色変更
1034    $('.cparts-id457.cparts-h2decoration--linediagonal').each(function(index) {
1035      var uniqueid457Class = 'id457-addclass-' + index;
1036      $(this).addClass(uniqueid457Class);
1037
1038      var col = $(this).css('border-color');
1039      var styleHtml = '<style>.' + uniqueid457Class + '::before {background-image: repeating-linear-gradient(45deg, ' + col + ' 0, ' + col + ' 1px, transparent 0, transparent 50%);}</style>';
1040      $('head').append(styleHtml);
1041    });
1042
1043      
1044    $('.cparts-id457.cparts-h2decoration--lineanimation').each(function(index) {
1045      const $el = $(this);
1046  
1047      /* ===============================
1048         ▼ クラス書き換え処理を追加
1049         =============================== */
1050  
1051      // dec-line--grey → dec-bg--primary
1052      if ($el.hasClass('dec-line--grey')) {
1053        $el.removeClass('dec-line--grey');
1054      }
1055  
1056      // dec-line-pe--grey → dec-bg-pe--primary
1057      if ($el.hasClass('dec-line-pe--grey')) {
1058        $el.removeClass('dec-line-pe--grey').addClass('dec-bg-pe--primary');
1059      }
1060  
1061      /* ===============================
1062         ▼ ここから元のラインカラー処理
1063         =============================== */
1064  
1065      // span内のcolorを取得(なければh2自身のcolor)
1066      const $span = $el.find('span[style*="color"]');
1067      const color = $span.length ? $span.css('color') : $el.css('color');
1068  
1069      // CSS変数を設定(currentColorに対応)
1070      this.style.setProperty('--line-color', color);
1071  
1072      /* ===============================
1073         ▼ text-align に応じた margin 自動付与
1074         =============================== */
1075      const textAlign = $el.css('text-align');
1076  
1077      if (textAlign === 'right') {
1078        this.style.setProperty('margin-left', 'auto', 'important');
1079      } else if (textAlign === 'left') {
1080        this.style.setProperty('margin-right', 'auto', 'important');
1081      } else if (textAlign === 'center') {
1082        this.style.setProperty('margin-left', 'auto', 'important');
1083        this.style.setProperty('margin-right', 'auto', 'important');
1084      }
1085  
1086      /* ===============================
1087         ▼ IntersectionObserver でアニメ付与
1088         =============================== */
1089      const observer = new IntersectionObserver(function(entries) {
1090        entries.forEach(function(entry) {
1091          if (entry.isIntersecting) {
1092            if (!$el.hasClass('cparts-h2decoration--lineanimation-active')) {
1093              setTimeout(function() {
1094                $el.addClass('cparts-h2decoration--lineanimation-active');
1095              }, 800);
1096            }
1097            observer.unobserve(entry.target);
1098          }
1099        });
1100      }, { threshold: 0.1 });
1101  
1102      observer.observe(this);
1103    });
1104    
1105
1106    // $('.cparts-id457.cparts-h2decoration--lineanimation').each(function(index) {
1107    //   const $el = $(this);
1108  
1109    //   // span内のcolorを取得(なければh2自身のcolor)
1110    //   const $span = $el.find('span[style*="color"]');
1111    //   const color = $span.length ? $span.css('color') : $el.css('color');
1112  
1113    //   // CSS変数を設定(currentColorに対応)
1114    //   this.style.setProperty('--line-color', color);
1115  
1116    //   // text-alignの値を取得してmarginを調整
1117    //   const textAlign = $el.css('text-align');
1118  
1119    //   if (textAlign === 'right') {
1120    //     $el.css('margin-left', 'auto').css('margin-left', 'auto !important');
1121    //     this.style.setProperty('margin-left', 'auto', 'important');
1122    //   } else if (textAlign === 'left') {
1123    //     this.style.setProperty('margin-right', 'auto', 'important');
1124    //   } else if (textAlign === 'center') {
1125    //     this.style.setProperty('margin-left', 'auto', 'important');
1126    //     this.style.setProperty('margin-right', 'auto', 'important');
1127    //   }
1128  
1129    //   // IntersectionObserverでアニメーション制御
1130    //   const observer = new IntersectionObserver(function(entries) {
1131    //     entries.forEach(function(entry) {
1132    //       if (entry.isIntersecting) {
1133    //         if (!$el.hasClass('cparts-h2decoration--lineanimation-active')) {
1134    //           setTimeout(function() {
1135    //             $el.addClass('cparts-h2decoration--lineanimation-active');
1136    //           }, 800);
1137    //         }
1138    //         observer.unobserve(entry.target);
1139    //       }
1140    //     });
1141    //   }, { threshold: 0.1 });
1142  
1143    //   observer.observe(this);
1144    // });
1145
1146      
1147    
1148    //新規ヘッダー用コンテンツパーツ
1149    // 特定のコンテンツパーツ(ロゴのみなど)以外のヘッダー用コンテンツパーツの幅
1150    $('.cparts-header-block:not(.cparts-id468--01)').each(function() {
1151      $(this).parents('[class*="free_parts"]').addClass('sitedesign-headerparts__full');
1152      $(this).parents('.freeParts').not('[class*="free_parts"] .freeParts').addClass('sitedesign-headerparts__full');
1153    });
1154    $('.cparts-header-block.cparts-id468--01').each(function() {
1155      $(this).parents('[class*="free_parts"]').addClass('sitedesign-headerparts__nofull');
1156      $(this).parents('.freeParts').not('[class*="free_parts"] .freeParts').addClass('sitedesign-headerparts__nofull');
1157    });
1158    
1159    // htmlのフォントサイズを抜き出す
1160    var baseSize = $('html').css('font-size')
1161    baseSize = parseInt(baseSize);
1162
1163    // フォントサイズ変更ボタンが押された時
1164    $('.cparts-header-block__fontsize').find('button').on('click', function() {
1165
1166      // 標準
1167      if ($(this).hasClass('cparts-btn-fontsize__sm')) {
1168        $('html').css('font-size', baseSize);
1169        $(this).addClass('cparts-btn-fontsize__active')
1170        $(this).siblings('button').removeClass('cparts-btn-fontsize__active')
1171        
1172      // 大
1173      } else if ($(this).hasClass('cparts-btn-fontsize__md')) {
1174        $('html').css('font-size', baseSize * 1.2 + 'px');
1175        $(this).addClass('cparts-btn-fontsize__active')
1176        $(this).siblings('button').removeClass('cparts-btn-fontsize__active')
1177        
1178      // 特大
1179      } else if ($(this).hasClass('cparts-btn-fontsize__xl')) {
1180        $('html').css('font-size', baseSize * 1.4 + 'px');
1181        $(this).addClass('cparts-btn-fontsize__active')
1182        $(this).siblings('button').removeClass('cparts-btn-fontsize__active')
1183      }
1184    });
1185    
1186    // ギミック系一覧パーツ
1187    if($('#published').length > 0){ //公開サイトのみ
1188      //リンク生成
1189      $('.cparts-overlink-block').each(function() {
1190        if ($(this).find('.cparts-img-block').find('a').length > 0) {
1191          var url = $(this).find('.cparts-img-block').find('a').attr('href');
1192          $(this).append('<a href="'+url+'" class="cparts-overlink-block-url"> </a>');
1193        }
1194      });
1195      // マウスオーバー時のアニメーション
1196      $('[class*="cparts-id472--"]').find('.cparts-overlink-block-url').on('mouseover', function() {
1197        let back = $(this).parents('.cparts-hover--full').find('.dec-bg--primary').css('background-color');
1198        if ($(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--resize') || $(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--full')) {
1199          if (window.matchMedia( "(min-width: 768px)" ).matches) {
1200            $(this).parents('.lay-row').children('div').removeClass('cparts-hover--resize-hover');
1201            $(this).parents('.lay-row').children('div').addClass('cparts-hover--resize-hover-off');
1202            $(this).parent('.cparts-body-block').parent('div').addClass('cparts-hover--resize-hover');
1203            $(this).parent('.cparts-body-block').parent('div').removeClass('cparts-hover--resize-hover-off');
1204            $(this).parents('.lay-row').children('div').find('.cparts-txt-block').hide();
1205            let th = $(this);
1206            $(function(){ setTimeout(function(){ // 0.5秒後に概要表示
1207              th.parents('.lay-row').children('div').find('.cparts-txt-block').fadeIn(500);
1208            }, 500 ); }); 
1209            // マウスオーバーで全画面サイズ
1210            if ($(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--full')) {
1211              let img = $(this).parent('.cparts-body-block').find('.cparts-img-block').find('a').html();
1212              $(this).parents('.lay-row').css('background-color', back);
1213              $(this).parents('.lay-row').append(img);
1214            }
1215          }
1216        }
1217      });
1218      // カーソルが要素から外れた時のアニメーション
1219      $('[class*="cparts-id472--"]').find('.cparts-overlink-block-url').on('mouseleave', function() {
1220        if ($(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--resize') || $(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--full')) {
1221          if (window.matchMedia( "(min-width: 768px)" ).matches) {
1222            $(this).parents('.lay-row').children('div').removeClass('cparts-hover--resize-hover');
1223            $(this).parents('.lay-row').children('div').removeClass('cparts-hover--resize-hover-off');
1224            // マウスオーバーで全画面サイズ
1225            if ($(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--full')) {
1226              $(this).parents('.lay-row').css('background-color', 'transparent');
1227              $(this).parents('.lay-row').children('img').remove();
1228            }
1229          }
1230        }
1231      });
1232    } else { //編集サイトのみ
1233      // マウスオーバー時のアニメーション
1234      $('[class*="cparts-id472--"]').find('.cparts-img-block').find('img').on('mouseover', function() {
1235        let back = $(this).parents('.cparts-hover--full').find('.dec-bg--primary').css('background-color');
1236        if ($(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--resize') || $(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--full')) {
1237          if (window.matchMedia( "(min-width: 768px)" ).matches) {
1238            $(this).parents('.lay-row').children('div').removeClass('cparts-hover--resize-hover');
1239            $(this).parents('.lay-row').children('div').addClass('cparts-hover--resize-hover-off');
1240            $(this).parents('.cparts-body-block').parent('div').addClass('cparts-hover--resize-hover');
1241            $(this).parents('.cparts-body-block').parent('div').removeClass('cparts-hover--resize-hover-off');
1242            $(this).parents('.lay-row').children('div').find('.cparts-txt-block').hide();
1243            let th = $(this);
1244            $(function(){ setTimeout(function(){ // 0.5秒後に概要表示
1245              th.parents('.lay-row').children('div').find('.cparts-txt-block').fadeIn(500);
1246            }, 500 ); }); 
1247            // マウスオーバーで全画面サイズ
1248            if ($(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--full')) {
1249              let img = $(this).parents('.cparts-body-block').find('.cparts-img-block').find('a').html();
1250              $(this).parents('.lay-row').css('background-color', back);
1251              $(this).parents('.lay-row').append(img);
1252            }
1253          }
1254        }
1255      });
1256      // カーソルが要素から外れた時のアニメーション
1257      $('[class*="cparts-id472--"]').find('.cparts-img-block').find('img').on('mouseleave', function() {
1258        if ($(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--resize') || $(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--full')) {
1259          if (window.matchMedia( "(min-width: 768px)" ).matches) {
1260            $(this).parents('.lay-row').children('div').removeClass('cparts-hover--resize-hover');
1261            $(this).parents('.lay-row').children('div').removeClass('cparts-hover--resize-hover-off');
1262            if ($(this).parents('[class*="cparts-id472--"]').hasClass('cparts-hover--full')) {
1263              $(this).parents('.lay-row').css('background-color', 'transparent');
1264              $(this).parents('.lay-row').children('img').remove();
1265            }
1266          }
1267        }
1268      });
1269    }
1270
1271    if (window.matchMedia( '(min-width: 768px)' ).matches) {
1272      $('[class*="cparts-id472--"].cparts-hover--resize').each(function() {
1273        var bodyHight01 = $(this).find('.cparts-txt-block').outerHeight(true);
1274        $(this).find('.lay-padding-x--0').css('height', bodyHight01);
1275      });
1276      $('[class*="cparts-id472--"].cparts-hover--full').each(function() {
1277        var bodyHight02 = $(this).find('.lay-row').outerHeight(true);
1278        $(this).find('.lay-row').css({'height':bodyHight02, 'overflow':'hidden'});
1279        $(this).find('.lay-padding-x--0').css('height', bodyHight02);
1280        var bodyWidth = $(this).find('.lay-row').outerWidth();
1281        $(this).find('.cparts-img-block img').css('width', bodyWidth);
1282      });
1283    }
1284    
1285    // 流れるライン系画像、テキスト
1286    $('.cparts-decoslider-block.cparts-current--rightleft,.cparts-decoslider-block.cparts-current--leftright').each(function(){
1287      var loopslider = $(this).find('ul').clone(true);
1288      var loopsliderW = $(this).find('ul').width();
1289      var loopsliderH = $(this).find('ul').height();
1290      var self = $(this);
1291      $(this).find('.cparts-txt-block').append(loopslider).css({display: 'flex', height: loopsliderH+'px'});
1292      $(this).find('ul').wrapAll('<div class="cparts-loopslider--wrap"></div>');
1293      $(this).find('.cparts-loopslider--wrap').css({width: (loopsliderW*2)+'px'});
1294
1295
1296      if ($(this).hasClass('cparts-current--rightleft')) { // 右から左へ
1297        function loopMove(){ // ループ
1298          self.find('.cparts-loopslider--wrap').animate({left: '-'+loopsliderW+'px'},25000,'linear',function(){
1299            self.find('.cparts-loopslider--wrap').css({left:'0'});
1300            loopMove();
1301          });
1302        };
1303        loopMove();
1304      } else if ($(this).hasClass('cparts-current--leftright')) { // 左から右へ
1305        function loopMove(){ // ループ
1306          self.find('.cparts-loopslider--wrap').animate({right: '-'+loopsliderW+'px'},25000,'linear',function(){
1307            self.find('.cparts-loopslider--wrap').css({right:'0'});
1308            loopMove();
1309          });
1310        };
1311        loopMove();
1312      }
1313    }); 
1314
1315    if ($('.cparts-decoslider-block').length) {
1316      var timer = false;
1317      var prewidth = $(window).width();
1318      $(window).resize(function() {
1319      if (timer !== false) {
1320      clearTimeout(timer);
1321      }
1322      timer = setTimeout(function() {
1323      var nowWidth = $(window).width();
1324      if(prewidth !== nowWidth){
1325      // リロード
1326      location.reload();
1327      }
1328      prewidth = nowWidth;
1329      }, 10);
1330      });
1331    }
1332    
1333    // メイン画像_ver.21
1334    $('.cparts-id504').each(function() {
1335      var p = $(this).css('padding-top');
1336      $(this).find('.cparts-head-block').css('height','calc( '+p+' + 150px)');
1337    });
1338    $(window).on('load', function(){
1339
1340      // HEADERブロックにメイン画像系のコンテンツパーツが配置されたフリーパーツがある場合
1341      if (window.matchMedia( '(min-width: 768px)' ).matches) {
1342        $('.siteblock-header .freeParts,.siteblock-header [id*="EDIT-free_parts"]').has('.cparts-id504').css('width','100%');
1343      }
1344
1345      $('.cparts-id504').each(function() {
1346        // テキスト量に合わせて画像の高さ調整
1347        if ($(this).find('.cparts-txt-block').find('.cparts-id504__ttl').outerHeight() > $(this).find('.cparts-img-block').height()) {
1348          var d = $(this).find('.cparts-txt-block').find('.cparts-id504__ttl').outerHeight();
1349          $(this).find('.cparts-img-block').height(d);
1350          $(this).find('.cparts-id504__ttl-span').height(d - 150);
1351        }
1352        $(this).find('.cparts-id504__ttl').parent('.h1-canvas').find('canvas').hide();
1353        $(this).find('.cparts-id504__ttl').parent('.h1-canvas').removeClass();
1354        // HEADER・UPPERメインビジュアルのみ
1355        if (
1356          $(this).parents('#upper').length > 0 ||
1357          $(this).parents('.siteblock-upper').length > 0 ||
1358          $(this).parents('.upper').length > 0 ||
1359          $(this).parents('#header').length > 0 ||
1360          $(this).parents('.siteblock-header').length > 0 ||
1361         $(this).parents('.header').length > 0 ||
1362          $(this).parents('.cms-contentsparts-parts-preview').length > 0
1363        ) {
1364          // H1横幅
1365          if ($(this).outerWidth() == $(window).width() || $(this).outerWidth() > $(window).width()) {
1366            $(this).find('.cparts-txt-block').find('.cparts-id504__ttl').attr('style', 'width:70vw !important;');
1367          } else {
1368            $(this).find('.cparts-id504__ttl').addClass('dec-txt--primary');
1369          }
1370        }
1371      });
1372      
1373    });
1374
1375    // スクロールダウン
1376    $('.cparts-id504').each(function() {
1377      const before = $(this).find('.cparts-notes-block > div.dec-txt--primary');
1378      const text = before.text();
1379      const textArray = text.split('');
1380      let after = '';
1381      $.each(textArray,function(index,val){
1382        after += "<span>" + val + "</span>";
1383      });  
1384      before.html(after);
1385      const textcnt = textArray.length;
1386      const circleR = ($(this).find('.cparts-notes-block').height()) / 2;
1387      const fontH = ($(this).find('.cparts-notes-block > div.dec-txt--primary').height());
1388      const dist = circleR - fontH;
1389      $(this).find('.cparts-notes-block > div span').each(function(index) {
1390        const num = index + 1;
1391        const radX = Math.sin(360 / textcnt * num * (Math.PI / 180));
1392        const radY = Math.sin((90 - (360 / textcnt * num)) * (Math.PI / 180));
1393        $(this).css('transform', 'translate(' + dist * radX + 'px, ' + -(dist * radY) + 'px) rotate(' + 360 / textcnt * num + 'deg)');
1394      });
1395    });
1396    
1397    // 中抜き文字
1398    if($('div[class*="cparts-id527"]').length){
1399      function rgbtohex(orig){
1400       var rgb = orig.replace(/\s/g,'').match(/^rgba?\((\d+),(\d+),(\d+)/i);
1401       return (rgb && rgb.length === 4) ? "#" +
1402        ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
1403        ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
1404        ("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : orig;
1405      }
1406      
1407      $('div[class*="cparts-id527"]').each(function(){
1408        var colorTxt = $(this).parents().css('color');
1409        let hexColor = rgbtohex(colorTxt);
1410        if (window.matchMedia( '(min-width: 768px)' ).matches) {
1411          $(this).find('.cparts-id527-01__ttl,.cparts-id527-02__ttl').css({'-webkitTextStroke':'2px ' + hexColor,'textStroke':'2px ' + hexColor});
1412        } else {
1413          $(this).find('.cparts-id527-01__ttl,.cparts-id527-02__ttl').css({'-webkitTextStroke':'1px ' + hexColor,'textStroke':'1px ' + hexColor});
1414        }
1415      });
1416    }
1417    
1418    // メイン画像_ver.23
1419    if($('.cparts-id539').length){
1420      $('.cparts-id539').each(function(){
1421        var primaryC539 = $(this).find('.cparts-body-block > .dec-bg--primary').css('background-color');
1422        console.log(primaryC539);
1423        var contentsC539 = primaryC539.replace('rgb(', 'rgba(').replace(')', ',');
1424        console.log(contentsC539);
1425        $(this).find('.cparts-body-block > .dec-bg--primary').css({'cssText':'background: linear-gradient(to bottom, ' + contentsC539 + '1) 0%,' + contentsC539 + '0) 80%) !important;'});
1426      });
1427    }
1428    $('body:not(.column1) #contents #upper .cparts-id539,.column2 #contents #upper .cparts-id539,.column2 .row .upper .cparts-id539,#main .cparts-id539 ,#bottom .cparts-id539 ,#side .cparts-id539 ,#right .cparts-id539 ,#opt1 .cparts-id539 ,#opt2 .cparts-id539 ,#opt3 .cparts-id539 ,#footer .cparts-id539 ,.main .cparts-id539 ,.bottom .cparts-id539 ,.side .cparts-id539 ,.right .cparts-id539 ,.opt1 .cparts-id539 ,.opt2 .cparts-id539 ,.opt3 .cparts-id539 ,.footer .cparts-id539 ,.siteblock-main .cparts-id539 ,.siteblock-bottom .cparts-id539 ,.siteblock-side .cparts-id539 ,.siteblock-right .cparts-id539 ,.siteblock-opt1 .cparts-id539 ,.siteblock-opt2 .cparts-id539 ,.siteblock-opt3 .cparts-id539 ,.siteblock-footer .cparts-id539').each(function() {
1429      $(this).find('.cparts-caption-block').remove();
1430    });
1431    
1432    // 新・クリックで開く
1433    if ($('[class*="cparts-id170"]').length) {
1434      $('.cparts-id170__head-block').each(function(){
1435          $(this).nextUntil('.cparts-id170__foot-block').wrapAll('<div class="cparts-id170__body-block cparts-id170__body-block-first cparts-id170__body-block-last"></div>');
1436          $(this).nextAll().each(function(){
1437              if($(this).hasClass('cparts-id170__foot-block')) return false;
1438              $(this).hide();
1439              $('.cparts-id170__foot-block p').remove();
1440          });
1441      });
1442      $('.cparts-id170__head-block').off().on('click', function() {
1443          $(this).find('.cparts-icon-block').toggleClass('cparts-icon-block-open');
1444          $(this).nextUntil('.cparts-id170__foot-block', '.cparts-id170__body-block').slideToggle(500);
1445          setTimeout(function() {
1446              $('.cparts-id170__body-block').css({'overflow':'visible'});
1447          }, 2000);
1448          });
1449    }
1450
1451    // 新・ステップリスト
1452    $('[class*="cparts-id289"]').each(function(){
1453      $(this).find('ul li:nth-child(2n+1)').addClass('dec-bg--light dec-bg-pe--primary');
1454      $(this).find('ul li:nth-child(2n+1)').append('<span class="dec-bg--light"></span>');
1455      $(this).find('ul li:nth-child(2n)').addClass('dec-line-pe--primary');
1456    });
1457  
1458    // 新・よくあるご質問(クリックで回答を表示)
1459    $('.cparts-id045--02').each(function(){
1460      $(this).find('.cparts-click-block').on('click',function(){
1461        $($(this).next('dd')).slideToggle(500);
1462      });
1463    });
1464    
1465    // カウンターパーツ
1466    $('[class*="cparts-id544--"].box .cparts-count-block, [class*="cparts-id546--"].box .cparts-count-block').one('inview', function(event, isInView){
1467      if (isInView) {
1468      //要素が見えたときに実行する処理
1469        $(this).find('.cparts-no-block').each(function(){
1470          $(this).prop('Counter',0).animate({//0からカウントアップ
1471                Counter: $(this).text()
1472            }, {
1473          // スピードやアニメーションの設定
1474                duration: 2000,//数字が大きいほど変化のスピードが遅くなる。2000=2秒
1475                easing: 'swing',//動きの種類。他にもlinearなど設定可能
1476                step: function (now) {
1477                    $(this).text(Math.ceil(now));
1478                }
1479            });
1480        });
1481      }
1482    });
1483    
1484    // 新:タブ切り替え
1485    // タグ削除・非表示
1486    $('.cparts-id177__tabstart-block p,.cparts-id177__tablast-block p,.cparts-id177__foot-block p').remove();
1487    $('.cparts-id177__body-block,.cparts-id177__inner-block,.cparts-id177__note-block').hide();
1488
1489    // 追加したコンテンツパーツを囲う
1490    $('.cparts-id177__tabstart-block').each(function() {
1491    	$(this).nextUntil('.cparts-id177__tablast-block').wrapAll('<div class="cparts-id177__body-block"></div>');
1492    });
1493
1494    // 公開サイトの処理
1495    var edit_site = $('#cms_contents_area').length;
1496    if(edit_site === 0) {
1497        $('.cparts-id177__tabstart-block, .cparts-id177__tablast-block, .cparts-id177__foot-block').hide()
1498    };
1499
1500    $('.cparts-id177__head-block').each(function(){
1501        // 自身のliに対して処理を行う
1502        $(this).find('li > span').each(function(i){
1503            // クラス名を追加する
1504            $(this).addClass('cparts-tab-block__0' + (i+1));
1505            var li = $(this).length;
1506            // 最初の要素にはselect-on
1507            if(i === 0) $(this).addClass('cparts-select-on');
1508
1509            // クリックイベントを追加
1510            $(this).off().on('click', function(event) {
1511
1512                // 自分のグループのselect-onを削除
1513                $(this).parents('.cparts-id177__head-block').find('.cparts-select-on').removeClass('cparts-select-on');
1514                $(this).parent('li').siblings('li').find('span > span').addClass('dec-bg--light').removeClass('dec-bg--primary dec-line-pe--primary');
1515
1516                // 自分にselect-onを追加
1517                $(this).addClass('cparts-select-on');
1518                $(this).find('span').removeClass('dec-bg--light').addClass('dec-bg--primary dec-line-pe--primary');
1519                var show_flag = 0; // 表示フラグ 1の間は表示する
1520                var show_class = $(this).attr('class').replace(' cparts-select-on',''); // 表示するクラス名
1521                $(this).parents('.cparts-id177__head-block').nextAll().each(function(index, el) {
1522                    if($(this).hasClass('cparts-id177__foot-block')) return false;
1523                    $(this).hide();
1524                });
1525                $(this).parents('.cparts-id177__head-block').nextAll().each(function(index, el) {
1526                    if($(this).hasClass('cparts-id177__foot-block')) return false;
1527                    if($(this).hasClass('cparts-id177__tabstart-block') && $(this).hasClass(show_class) && show_flag === 0) {
1528                        show_flag = 1;
1529                        if(edit_site)
1530                            $(this).fadeIn(1000);
1531                    } else if($(this).hasClass('cparts-id177__tablast-block') && $(this).hasClass(show_class) && show_flag === 1) {
1532                        show_flag = 0;
1533                        if(edit_site)
1534                            $(this).fadeIn(1000);
1535                    } else if(show_flag === 1) {
1536                        $(this).fadeIn(1000);
1537                    }
1538                });
1539                return false;
1540            });
1541        });
1542        var index = 1;
1543        $(this).nextAll().each(function() {
1544            if($(this).hasClass('cparts-id177__foot-block')) return false;
1545            if($(this).hasClass('cparts-id177__tabstart-block')) {
1546                $(this).addClass('cparts-tab-block__0'+index);
1547                $(this).attr('data','cparts-tab-block__0'+index);
1548                if(index === 1) $(this).show();
1549                else $(this).hide();
1550            } else if($(this).hasClass('cparts-id177__tablast-block')) {
1551                $(this).addClass('cparts-tab-block__0'+index);
1552                $(this).attr('data','cparts-tab-block__0'+index);
1553                if(index === 1) $(this).show();
1554                else $(this).hide();
1555                index++;
1556            } else {
1557                $(this).addClass('cparts-tab-block__0'+index);
1558                $(this).attr('data','cparts-tab-block__0'+index);
1559                if(index === 1) $(this).show();
1560                else $(this).hide();
1561            }
1562        });
1563      });
1564    
1565      // フレックス親ブロック追加
1566      $('.cparts-flexinline-block').not('.cparts-flexinline-block+.cparts-flexinline-block').each(function(){
1567          $(this).nextUntil(':not(.cparts-flexinline-block)').addBack().wrapAll('<div class="cparts-flex-block"><div class="lay-row"></div></div>');
1568      }).parent('.cparts-flex-block:empty').remove();
1569
1570      // 新・プラン別価格表(横並び)
1571      $('.cparts-id113 .cparts-caption-block h4').addClass('dec-bg-pe--primary');
1572    
1573    /* -------------------------------------------------------
1574      2024年追加
1575    -------------------------------------------------------- */
1576    // 新・一覧パーツ_ver.1
1577    $('.cparts-id35').each(function() {
1578      $(this).find('.cparts-notes-block li').addClass('dec-bg--primary');
1579    });
1580    
1581    // メイン画像_ver.26
1582    $('.cparts-id568').each(function() {
1583      var h1text = $(this).find('.cparts-id568__ttl').text();
1584      var bgColor = $(this).css('background-color');
1585      var rgbValues = bgColor.match(/\d+/g); // RGBの値を抽出
1586      var rgbString = rgbValues.join(','); // カンマ区切りの文字列に変換
1587      var h1fontFamily = $(this).find('h1').css('font-family');
1588      // ダブルクォートをエスケープする
1589      h1fontFamily = h1fontFamily.replace(/"/g, '');
1590      $(this).find('h1').after('<p class="cparts-notes-block cparts-animation--blurTrigger cparts-animation__duration-time08 cparts-animation__delay-time06 dec-txt--primary"><span style="font-family: ' + h1fontFamily + ';">' + h1text + '</span><span style="background: linear-gradient(to bottom, rgba(' + rgbString + ',0) 0%,rgba(' + rgbString + ',1) 75%);"></span></p>');
1591      $(this).css('background-color', 'transparent');
1592    });
1593
1594    // メイン画像_ver.29
1595    if ($('.cparts-id576').length) {
1596        $('.cparts-id576').each(function() {
1597            var primaryC579 = $(this).find('.cparts-body-block').css('background-color'); // 実際の要素の背景色を取得
1598            if (primaryC579) {
1599                // RGB形式をRGBA形式に変換
1600                var contentsC579 = primaryC579.replace('rgb(', 'rgba(').replace(')', ',');
1601                // スタイルを追加
1602                $('<style>')
1603                    .prop('type', 'text/css')
1604                    .html('.cparts-id576 .cparts-body-block.dec-bg--primary.dec-bg-pe--primary::before { background: linear-gradient(65deg,' + contentsC579 + '1) 0%,' + contentsC579 + ' 0) 60%) !important; }')
1605                    .appendTo('head'); // headに追加
1606            }
1607        });
1608      }
1609    
1610    // メイン画像_ver.31
1611    if ($('.cparts-id580').length) {
1612        $('.cparts-id580').each(function() {
1613          var backgroundImage = $(this).css('background-image'); // 親要素の背景画像
1614          var backgroundSize = $(this).css('background-size'); // 親要素のbackground-size
1615
1616          // 背景画像が設定されている場合
1617          if (backgroundImage !== 'none') {
1618              // 存在するstyle属性を削除
1619              $(this).removeAttr('style');
1620
1621              // 孫要素のcparts-body-blockにcparts-add-afterクラスを追加
1622              $(this).find('.cparts-body-block').each(function() {
1623                  $(this).addClass('cparts-add-after'); // cparts-add-afterクラスを追加
1624
1625                  var style = 'background-image: ' + backgroundImage + '; background-size: ' + backgroundSize + ';';
1626
1627                  // 疑似要素にスタイルを適用
1628                  $(this).append('<style>.cparts-id580 .cparts-body-block.cparts-add-after::after { background-color: transparent !important; content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; ' + style + ' }</style>');
1629              });
1630          }
1631        });
1632      }
1633
1634    // フローティングバナー_ver.1&2
1635    if ($('.cparts-id582, .cparts-id583').length) {
1636      var $floatingBanner = $('.cparts-id582, .cparts-id583');
1637      var $footerBlock = $('body');
1638      var $pageTopBtn = $('.sitedesign-pagetopbtn, .pageTop a');
1639      
1640      // メディアクエリをチェック
1641      var mediaQuery = window.matchMedia('(max-width: 767px)');
1642
1643      function adjustPageTopBtnPosition() {
1644        if (!mediaQuery.matches) return;
1645        var bannerHeight = $floatingBanner.outerHeight();
1646
1647        if ($floatingBanner.is(':visible')) {
1648            $pageTopBtn.css({
1649              bottom: (bannerHeight + 10) + 'px', // 高さ分 + 10px を追加
1650              zIndex: 101 // z-indexを101に設定
1651          });
1652        } else {
1653            $pageTopBtn.css({
1654              bottom: '', // 高さ分 + 10px を追加
1655              zIndex: 2 // z-indexを101に設定
1656          });
1657        }
1658      }
1659
1660      function handleResize() {
1661        if (!mediaQuery.matches) return;
1662        
1663        var windowHeight = window.innerHeight;
1664        var scrollBottom = window.scrollY + windowHeight;
1665        var footerOffsetTop = $footerBlock.offset().top;
1666        var bannerHeight = $floatingBanner.outerHeight();
1667    
1668        if (scrollBottom >= footerOffsetTop) {
1669            if ($footerBlock.css('padding-bottom') !== bannerHeight + 'px') {
1670                $footerBlock.css('padding-bottom', bannerHeight + 'px');
1671            }
1672        } else {
1673            if ($footerBlock.css('padding-bottom') !== '') {
1674                $footerBlock.css('padding-bottom', '');
1675            }
1676        }
1677      }
1678
1679      // 初期設定とウィンドウサイズ変更時のイベントリスナー
1680      adjustPageTopBtnPosition();
1681      handleResize();
1682      mediaQuery.addListener(handleResize);
1683
1684      $(document).ready(function() {
1685        // .cparts-id583 を子要素として含む親要素を特定
1686        $('.siteblock-header, .siteblock-bottom, .siteblock-opt1').has('.cparts-id583').
1686css({
1687            position: 'relative',
1688            zIndex: 100
1689        });
1690      });
1691
1692    }
1693      
1694    // フローティングバナー_ver.3
1695    if ($('.cparts-id584').length) {
1696      $(document).ready(function () {
1697          $('.cparts-icon-block').on('click', function () {
1698              var $parent = $(this).closest('.cparts-id584');
1699              if ($parent.length) {
1700                  $parent.css({
1701                      'transition': 'opacity 0.5s ease',
1702                      'opacity': '0'
1703                  });
1704                  setTimeout(function () {
1705                      $parent.css('display', 'none');
1706                  }, 500); // 0.5秒後に完全に非表示に
1707              }
1708          });
1709      });
1710    }
1711
1712    // フローティングバナー_ver.1&2&3
1713    if ($('.cparts-id582, .cparts-id583, .cparts-id584').length) {
1714      $(document).ready(function() {
1715        // 対象となる親要素のセレクターを定義
1716        const parentSelectors = [
1717            '#header', '#upper', '#main', '#bottom', '#side', '#right', '#opt1', '#opt2', '#opt3', '#footer',
1718            '.header', '.upper', '.main', '.bottom', '.side', '.right', '.opt1', '.opt2', '.opt3', '.footer',
1719            '.siteblock-header','.siteblock-upper', '.siteblock-main', '.siteblock-bottom', '.siteblock-side', '.siteblock-right',
1720            '.siteblock-opt1', '.siteblock-opt2', '.siteblock-opt3', '.siteblock-footer'
1721        ];
1722    
1723        // チェック対象の子要素セレクターを定義
1724        const childSelectors = '.cparts-id582, .cparts-id583, .cparts-id584';
1725    
1726        // 指定された親要素の中に子要素が存在する場合にスタイルを適用
1727        $(parentSelectors.join(',')).has(childSelectors).css({
1728            position: 'relative',
1729            zIndex: 200
1730        });
1731      });
1732    };
1733
1734  });
1735  
1736  $(window).on('load resize' , function() {
1737    
1738    // 公開サイトで左右スライドバリエーション時のbodyの横揺れを防止する
1739    if($('body:not(#header,#upper,#bottom,#main,#side,#right,#opt1,#opt2,#opt3,#footer) > div#cms_contents_area').length){
1740      $('body').css('overflow-x','');
1741    } else if($('.cparts-animate--slideInLeft,cparts-animate--slideInRIght').length) {
1742      $('body').css('overflow-x','hidden');
1743    }
1744    
1745    // メイン画像_ver.21
1746    $('.cparts-id504 .cparts-notes-block').on('click',function(){
1747      // スクロールダウンクリックアニメーション
1748      if ($(this).parents('#upper').length > 0 || $(this).parents('.siteblock-upper').length > 0 || $(this).parents('.upper').length > 0) {
1749        if ($('body').find('.siteblock-header').length > 0) {
1750          var targetY = $('.siteblock-header').height() + $('.cparts-id504').outerHeight();
1751        }else if ($('body').find('#header').length > 0) {
1752          var targetY = $('#header').height() + $('.cparts-id504').outerHeight();
1753        }else if ($('body').find('.header').length > 0) {
1754          if ($('body').hasClass('column2')) {
1755            var targetY = $('.cparts-id504').outerHeight();
1756          }else if ($('body').hasClass('column1')) {
1757            var targetY = $('.header').height() + $('.cparts-id504').outerHeight();
1758          }
1759        }
1760      }else if ($(this).parents('#header').length > 0 || $(this).parents('.siteblock-header').length > 0 || $(this).parents('.header').length > 0) {
1761        if ($('body').find('.siteblock-header').length > 0) {
1762          var targetY = $('.siteblock-header').height();
1763        }else if ($('body').find('#header').length > 0) {
1764          var targetY = $('#header').height();
1765        }else if ($('body').find('.header').length > 0){
1766          var targetY = $('.header').height();
1767        }
1768      }
1769      if (window.matchMedia( "(min-width: 768px)" ).matches) {
1770        $("html, body").stop().animate({scrollTop: targetY}, 500, 'swing');
1771        return false;
1772      }
1773    });
1774    
1775    /* -------------------------------------------------------
1776      2021年追加
1777    -------------------------------------------------------- */
1778    // 【メイン画像_ver.8】アニメーション用class追加
1779    $('.cparts-id285 .cparts-txt-block').each(function(){
1780      var imgPos = $(this).offset().top;
1781      var scroll = $(window).scrollTop();
1782      var windowHeight = $(window).height();
1783      if (scroll > imgPos - windowHeight + windowHeight/5){
1784        $(this).addClass('cparts-fadeIn--id285');
1785      }
1786    });
1787
1788    // 【ブロークングリッドレイアウト】アニメーション用class追加
1789    $('.cparts-id286--01 .cparts-js-block,.cparts-id286--02 .cparts-js-block').each(function(){
1790      var imgPos = $(this).offset().top;
1791      var scroll = $(window).scrollTop();
1792      var windowHeight = $(window).height();
1793      if (scroll > imgPos - windowHeight + windowHeight/5){
1794        $(this).addClass('cparts-fadeIn--id286');
1795      }
1796    });
1797
1798    //目次パーツ 高さ合わせる
1799    if (window.matchMedia( "(min-width: 768px)" ).matches) {
1800      $('.cparts-var03-type18').each(function() {
1801          var maxHeight = 0;
1802          $(this).find('.cparts-body-block').each(function() {
1803              if ($(this).height() > maxHeight) maxHeight = $(this).height();
1804          });
1805          $(this).find('.cparts-body-block').height(maxHeight);
1806      });
1807    }
1808
1809    // 【共通】スライド
1810    //全てのスライドがPC非表示、モバイル非表示設定の場合矢印も非表示にする
1811    $('.cparts-slideview-block').each(function() {
1812      if($('#published').length>0){
1813      if (window.matchMedia( "(min-width: 768px)" ).matches) {
1814        if ($(this).find('.cparts-slider-block').children('div').length == $(this).find('.cparts-slider-block').children('.cparts-hide-pc').length) {
1815          $(this).find('.cparts-prevbtn-block').hide();
1816          $(this).find('.cparts-nextbtn-block').hide();
1817        }else{
1818          $(this).find('.cparts-prevbtn-block').show();
1819          $(this).find('.cparts-nextbtn-block').show();
1820        }
1821      }
1822      }
1823      if (window.matchMedia( "(max-width: 767px)" ).matches) {
1824        if ($(this).find('.cparts-slider-block').children('div').length == $(this).find('.cparts-slider-block').children('.cparts-hide-mb').length) {
1825          $(this).find('.cparts-prevbtn-block').hide();
1826          $(this).find('.cparts-nextbtn-block').hide();
1827        }else{
1828          $(this).find('.cparts-prevbtn-block').show();
1829          $(this).find('.cparts-nextbtn-block').show();
1830        }
1831      }
1832    });
1833    
1834    // ステップリスト
1835    if (window.matchMedia('(max-width: 768px)').matches) {
1836      $('div[class*="cparts-id297"]').each(function() {
1837        var hi = $(this).find('.lay-col12-xs-9').find('img').outerHeight();
1838        var h = hi / 2;
1839        if ($(this).next('div').hasClass('cparts-id297--01') || $(this).next('div').hasClass('cparts-id297--02')) {
1840          if (!$(this).prev('div').hasClass('cparts-id297--01') || !$(this).prev('div').hasClass('cparts-id297--02')){
1841            $(this).find('.cparts--id295-border').css('height','calc(100% - '+h+'px)');
1842          }
1843        }
1844        if (!$(this).next('div').hasClass('cparts-id297--01') || !$(this).next('div').hasClass('cparts-id297--02')) {
1845          if ($(this).prev('div').hasClass('cparts-id297--01') || $(this).prev('div').hasClass('cparts-id297--02')){
1846            var hei = h + 40;
1847            $(this).find('.cparts--id295-border').css('height',hei+'px');
1848          }
1849        }
1850      });
1851    }
1852    $('div[class*="cparts-id297"]').each(function() {
1853      if ($(this).next('div').hasClass('cparts-id297--01') || $(this).next('div').hasClass('cparts-id297--02')) {
1854        if ($(this).prev('div').hasClass('cparts-id297--01') || $(this).prev('div').hasClass('cparts-id297--02')) {
1855          $(this).find('.cparts--id295-border').css('height', 'calc(100% + 80px)');
1856        }
1857      }else if ($(this).prev('div').hasClass('cparts-id297--01') || $(this).prev('div').hasClass('cparts-id297--02')) {
1858        }
1859    });
1860    
1861    // メイン画像_ver.15
1862    if($('.cparts-id326').length){
1863      if (window.matchMedia( '(min-width: 992px)' ).matches) {
1864        $('.cparts-id326:not([class*="cparts-mainvisual--"])').each(function(){
1865          var windowH = $(window).height();
1866          var headH = $(this).offset().top;
1867          var txtH = $(this).find('.cparts-txt-block').outerHeight();        
1868          if(windowH - headH > txtH){
1869              $(this).children('.cparts-img-block').css('height',windowH - headH);
1870             }
1871        });
1872      }
1873    }
1874
1875    // メイン画像_ver.16
1876    if($('.cparts-id327').length){
1877      $('.cparts-id327').each(function(){
1878       //タイトル.
1879        var imgH = $(this).find('.cparts-img-block').height();
1880        var footerH = $(this).find('.cparts-foot-block').height();
1881        $(this).find('.cparts-body-block').css('height',imgH - footerH);
1882        $(this).find('.cparts-img-block').css('marginTop',-(imgH - footerH));
1883        $(this).find('.cparts-img-block img').css('opacity','1');
1884
1885       var primaryC = $('.dec-bg--primary').css('background-color');
1886
1887       if (window.matchMedia( '(max-width: 767px)' ).matches) {
1888          var mobileC = primaryC.replace(')', ', 0.85)').replace('rgb', 'rgba');
1889          $('.cparts-id327 .dec-bg--primary').each(function(){
1890            $(this).css({'cssText':'background-color: ' + mobileC + ' !important;'});
1891          });
1892        } else {
1893          if(primaryC != 'rgba(0, 0, 0, 0)')
1894          {
1895            var pcC = primaryC.replace('rgb(', 'rgba(').replace(')', ',');
1896            $('.cparts-id327 .dec-bg--primary').each(function(){
1897              $(this).css({'cssText':'background: linear-gradient(to right, ' + pcC + '0) 0%,' + pcC + '1) 80%,' + pcC + '1) 100%) !important;','display':'block'});
1898            });
1899          }
1900        }
1901        //背景.
1902        var contentsBGC = $(this).find('.dec-bg--contents').css('background-color');
1903        var contentsBGC01 = contentsBGC.replace('rgb(', 'rgba(').replace(')', ',');
1904        $(this).find('.dec-bg--contents').append('<span class="cparts-foot-block" style="background: linear-gradient(to bottom, ' + contentsBGC01 + '0) 0%,' + contentsBGC01 + '1) 75%,' + contentsBGC01 + '1) 100%) !important;"> </span>');
1905
1906        var imgH = $(this).find('.cparts-img-block').height();
1907        var footerH = $(this).find('.cparts-foot-block').height();
1908        $(this).find('.cparts-body-block').css('height',imgH - footerH);
1909        $(this).find('.cparts-img-block').css('marginTop',-(imgH - footerH));
1910        $(this).find('.cparts-img-block img').css('opacity','1');
1911
1912       //タイトル.
1913       var primaryC = $('.dec-bg--primary').css('background-color');
1914       if (window.matchMedia( '(max-width: 767px)' ).matches) {
1915          var mobileC = primaryC.replace(')', ', 0.85)').replace('rgb', 'rgba');
1916          $('.cparts-id327 .dec-bg--primary').each(function(){
1917            $(this).css({'cssText':'background-color: ' + mobileC + ' !important;'});
1918          });
1919        } else {
1920          var pcC = primaryC.replace('rgb(', 'rgba(').replace(')', ',');
1921          $('.cparts-id327 .dec-bg--primary').each(function(){
1922            $(this).css({'cssText':'background: linear-gradient(to right, ' + pcC + '0) 0%,' + pcC + '1) 80%,' + pcC + '1) 100%) !important;','display':'block'});
1923          });
1924        }
1925      });
1926    }
1927    
1928    // メイン画像_ver.17
1929    // if($('.cparts-id328').length){
1930    //   $('#header .cparts-id328,#upper .cparts-id328,.header .cparts-id328,.upper .cparts-id328,.siteblock-header .cparts-id328,.siteblock-upper .cparts-id328').each(function(){
1931    //     var windowW = $(window).width();
1932    //     var windowHW = windowW / 2;
1933    //     var contentsW = $(this).width();
1934    //     var contentsHW = contentsW / 2;
1935    //     if (window.matchMedia( '(min-width: 768px)' ).matches) {
1936    //       $(this).css({'width':windowW,'marginLeft':contentsHW - windowHW,'marginRight':contentsHW - windowHW});
1937    //     } else {
1938    //       $(this).css({'marginLeft':contentsHW - windowHW,'marginRight':contentsHW - windowHW});
1939    //     }
1940        
1941    //     window.addEventListener('resize',function(){
1942    //     //格納しておいた横幅と現在の横幅が異なる時だけ発火させる
1943    //       if(windowW != $(window).width()){
1944    //         windowW = $(window).width();
1945            
1946    //         if (window.matchMedia( '(min-width: 768px)' ).matches) {
1947    //           $(this).css({'width':windowW,'marginLeft':contentsHW - windowHW,'marginRight':contentsHW - windowHW});
1948    //         } else {
1949    //           $(this).css({'marginLeft':contentsHW - windowHW,'marginRight':contentsHW - windowHW});
1950    //         }
1951    //       }
1952    //     });
1953    //   });
1954    // }
1955
1956    if ($('.cparts-id328').length) {
1957      $('#header .cparts-id328, #upper .cparts-id328, .header .cparts-id328, .upper .cparts-id328, .siteblock-header .cparts-id328, .siteblock-upper .cparts-id328').each(function () {
1958        var $this = $(this);
1959        var windowW = $(window).width();
1960        var windowHW = windowW / 2;
1961        var contentsW = $this.width();
1962        var contentsHW = contentsW / 2;
1963    
1964        function setDesktopStyles() {
1965          $this.css({
1966            'width': windowW,
1967            'marginLeft': contentsHW - windowHW,
1968            'marginRight': contentsHW - windowHW
1969          });
1970        }
1971    
1972        function setMobileStyles() {
1973          this.style.setProperty('width', '100vw', 'important');
1974          this.style.setProperty('margin-left', 'calc(50% - 50vw)', 'important');
1975          this.style.setProperty('margin-right', 'calc(50% - 50vw)', 'important');
1976        }
1977    
1978        // 初期設定
1979        if (window.matchMedia('(min-width: 768px)').matches) {
1980          setDesktopStyles();
1981        } else if (window.matchMedia('(max-width: 767px)').matches) {
1982          setMobileStyles.call(this);
1983        }
1984    
1985        // リサイズ時
1986        $(window).on('resize', function () {
1987          if (windowW != $(window).width()) {
1988            windowW = $(window).width();
1989            windowHW = windowW / 2;
1990            contentsW = $this.width();
1991            contentsHW = contentsW / 2;
1992    
1993            if (window.matchMedia('(min-width: 768px)').matches) {
1994              setDesktopStyles();
1995            } else if (window.matchMedia('(max-width: 767px)').matches) {
1996              setMobileStyles.call($this[0]);
1997            }
1998          }
1999        });
2000      });
2001    }
2002    
2003    
2004    
2005
2006    // メイン画像_ver.18
2007    if($('.cparts-id329').length){
2008      if (window.matchMedia( '(min-width: 768px)' ).matches) {
2009        $('#header .cparts-id329,.header .cparts-id329,.siteblock-header .cparts-id329').each(function(){
2010          var headH = $(this).offset().top;
2011          $(this).parents('.freeParts').prevAll().css({zIndex:'200',position:'relative'});
2012          $(this).parents('.freeParts').prevAll('.freeParts').css({backgroundColor:'transparent'});
2013          $(this).parents('.CMS_BLOCK_NAME_HEADER .freeParts').parents().prevAll().css({zIndex:'200',position:'relative'});
2014          $(this).parents('.CMS_BLOCK_NAME_HEADER .freeParts').parents().prevAll().find('.freeParts').css({backgroundColor:'transparent'});
2015          $(this).css({marginTop:-(headH),paddingTop:headH});
2016
2017          // ネガティブマージン対策(type12)
2018          if ($('.CMS_BLOCK_NAME_HEADER').length) {
2019             var nMB01 = $(this).parents('.CMS_BLOCK_NAME_HEADER .freeParts').parents().prevAll().children().css('marginBottom').replace(/[^-\d\.]/g, '');
2020            if (nMB01 < 0){
2021              $('#header .cparts-id329').css({marginTop:'+=' + nMB01 +'px'});
2022            }
2023         } else {
2024            var nMB02 = $(this).parents('.freeParts').prevAll().css('marginBottom').replace(/[^-\d\.]/g, '');
2025            if (nMB02 < 0){
2026              $('#header .cparts-id329').css({marginTop:'+=' + nMB01 +'px'});
2027            }
2028          }
2029
2030          // float対策(type02)
2031          if ($(this).parents('.freeParts').children('.box').css('clear')=='both'){
2032            $(this).parents('.freeParts').children('.box').css('clear','none');
2033            $(this).parents('.freeParts').prepend('<span style="clear: both; display: block; height: 0; overflow: hidden;"></span>');
2034          }
2035
2036          //type14対策
2037          if (window.matchMedia( '(max-width: 991px)' ).matches) {
2038            var headRH = $('.top #headerWrapper').innerHeight();
2039            var upperH = $('.top #headerWrapper #upper').innerHeight();
2040            $(this).css({height:headRH});
2041            $(this).parents('#headerWrapper').find('#upper').css({marginTop:-(upperH),position:'relative'});
2042          }
2043
2044          if (window.matchMedia( '(min-width: 992px)' ).matches) {
2045            var windowH = $(window).height();
2046
2047            if ($('.top #headerWrapper').length) {
2048              $(this).children('.cparts-img-block').css({height:windowH - headH - upperH});
2049            } else {
2050              $(this).children('.cparts-img-block').css({height:windowH - headH});
2051            }
2052          }
2053        });
2054      }
2055    }
2056    
2057    // バナー01
2058    $('.cparts-id311--01').each(function() {
2059      var col = $(this).find('.dec-bg--primary').css('background-color');
2060      $(this).append('<style>.cparts-id311--01 .cparts-img-block:before{background: linear-gradient(to right,rgba(255,255,255,0) 0,'+col+' 80%);}div.cparts-id311--01.cparts-id311-column .cparts-img-block:before{background: linear-gradient(rgba(255,255,255,0) 0, '+col+' 80%);}</style>');
2061    });
2062    $('.cparts-id311--02').each(function() {
2063      var col = $(this).find('.dec-bg--primary').css('background-color');
2064      $(this).append('<style>.cparts-id311--02 .cparts-img-block:before{background: linear-gradient(to left,rgba(255,255,255,0) 0,'+col+' 80%);}div.cparts-id311--02.cparts-id311-column .cparts-img-block:before{background: linear-gradient(to top,rgba(255,255,255,0) 0, '+col+' 80%);}</style>');
2065    });
2066    $('.cparts-id311--03').each(function() {
2067      var col = $(this).find('.dec-bg--primary').css('background-color');
2068      $(this).append('<style>.cparts-id311--03 .cparts-img-block:before{background: linear-gradient(to bottom left,rgba(255,255,255,0) 50%,'+col+' 51%)}.cparts-id311--03 .cparts-img-block:after{background:linear-gradient(to top right,rgba(255,255,255,0) 50%,'+col+' 51%);}div.cparts-id311--03.cparts-id311-column .cparts-img-block:before{background:linear-gradient(to bottom left,'+col+' 51%,rgba(255,255,255,0) 50%);}div.cparts-id311--03.cparts-id311-column .cparts-img-block:after{background:linear-gradient(to bottom left,rgba(255,255,255,0) 50%,'+col+' 51%);}</style>');
2069      if ($(this).find('.cparts-img-block').outerWidth() < 410) {
2070          $(this).find('.cparts-notes-block').css('right', '-70px');
2071      }
2072    });
2073    $('.cparts-id311--04').each(function() {
2074      var col = $(this).find('.dec-bg--primary').css('background-color');
2075      $(this).append('<style>.cparts-id311--04 .cparts-img-block:before{background: linear-gradient(to bottom right,rgba(255,255,255,0) 50%,'+col+' 51%)}.cparts-id311--04 .cparts-img-block:after{background:linear-gradient(to top left,rgba(255,255,255,0) 50%,'+col+' 51%);}div.cparts-id311--04.cparts-id311-column .cparts-img-block:before{background:linear-gradient(to top left,'+col+' 51%,rgba(255,255,255,0) 50%);}div.cparts-id311--04.cparts-id311-column .cparts-img-block:after{background:linear-gradient(to top left,rgba(255,255,255,0) 50%,'+col+' 51%);}</style>');
2076      if ($(this).find('.cparts-img-block').outerWidth() < 410) {
2077          $(this).find('.cparts-notes-block').css('left', '-70px');
2078      }
2079    });
2080    
2081    // バナー04
2082    $('.cparts-id318--01').each(function() {
2083      var col = $(this).find('.dec-bg--dark').css('background-color');
2084      var c = String(col).slice(0,-1);
2085      var color = String(c).slice(3);
2086      $(this).find('.cparts-body-block').css({'cssText': 'background-color: rgba'+color+',.75) !important'});
2087      
2088      var maxHeight = 0;
2089      $(this).find('.cparts-body-block').each(function() {
2090          var bodyHeight = $(this).outerHeight();
2091          // スマホ以外の場合は最大の高さを取得
2092          if ($(window).width() > 768) {
2093              if (bodyHeight > maxHeight) maxHeight = bodyHeight;
2094          } else {
2095              // スマホの場合はそれぞれの高さを設定
2096              $(this).siblings('.cparts-img-block').css('height', bodyHeight + 60 + 'px');
2097          }
2098      });
2099
2100      // スマホ以外の場合、最大の高さを画像ブロックに設定
2101      if ($(window).width() > 768) {
2102          $(this).find('.cparts-body-block').css('height', maxHeight + 'px');
2103          $(this).find('.cparts-img-block').css('height', maxHeight + 60 + 'px');
2104      }
2105    });
2106    setTimeout(function(){
2107      $('.cparts-id318--02').each(function() {
2108        if ($(this).find('h3').css('color') == 'rgb(255, 255, 255)') {
2109          $(this).find('h3').addClass('dec-txt--primary');
2110        }
2111        var height = $(this).find('.cparts-head-block').outerHeight() + 60;
2112        if(height > 200){
2113          $(this).find('.cparts-img-block').find('img').css('height', height+'px');
2114          $(this).find('.cparts-img-block').css('height', height+'px');
2115        }
2116      });
2117    },500);
2118  
2119    /* -------------------------------------------------------
2120      2023年追加
2121    -------------------------------------------------------- */
2122    // id467の疑似要素(::before)の背景色変更
2123    $('.cparts-animation--bgUDextend').each(function() {
2124      var col = $(this).siblings('.dec-bg--primary').css('background-color');
2125      $(this).append('<style>.cparts-animation--bgUDextend::before {background-color: '+col+'}</style>');
2126    });
2127    
2128    // メイン画像_ver.22
2129    $('.cparts-id533.cparts-mainvisual--sm,body:not(.column1) #contents #upper .cparts-id533,.column2 #contents #upper .cparts-id533,.column2 .row .upper .cparts-id533,#main .cparts-id533 ,#bottom .cparts-id533 ,#side .cparts-id533 ,#right .cparts-id533 ,#opt1 .cparts-id533 ,#opt2 .cparts-id533 ,#opt3 .cparts-id533 ,#footer .cparts-id533 ,.main .cparts-id533 ,.bottom .cparts-id533 ,.side .cparts-id533 ,.right .cparts-id533 ,.opt1 .cparts-id533 ,.opt2 .cparts-id533 ,.opt3 .cparts-id533 ,.footer .cparts-id533 ,.siteblock-main .cparts-id533 ,.siteblock-bottom .cparts-id533 ,.siteblock-side .cparts-id533 ,.siteblock-right .cparts-id533 ,.siteblock-opt1 .cparts-id533 ,.siteblock-opt2 .cparts-id533 ,.siteblock-opt3 .cparts-id533 ,.siteblock-footer .cparts-id533').each(function() {
2130      $(this).find('.cparts-caption-block').remove();
2131    });
2132
2133
2134    
2135    // 新・画像/スクロールテキスト
2136    $('.cparts-id88').each(function() {
2137      const $container = $(this);
2138      const $img = $container.find('.cparts-img-block img');
2139    
2140      // 画像が読み込まれているか確認
2141      if ($img[0].complete) {
2142        const h = $img.height();
2143        $container.find('.cparts-txt-block').css('height', h);
2144      } else {
2145        $img.on('load', function () {
2146          const h = $img.height();
2147          $container.find('.cparts-txt-block').css('height', h);
2148        });
2149      }
2150    });
2151    
2152    /* -------------------------------------------------------
2153      2024年追加
2154    -------------------------------------------------------- */
2155    // メイン画像_ver.27
2156    if ($('.cparts-id570').length && $(window).width() >= 768) { // タブレット以上のサイズでチェック
2157        $('.cparts-id570').each(function() {
2158            var id570_imgBlockHeight = $(this).find('.cparts-img-block:nth-child(1)').outerHeight(); // .cparts-img-block:nth-child(1)の高さ(marginを含む)
2159            var id570_headBlockHeight = $(this).find('.cparts-head-block').outerHeight(); // .cparts-head-blockの高さ(marginを含む)
2160            var id570_bodyBlockHeight = $(this).find('.cparts-body-block').outerHeight();
2161
2162            // .cparts-head-blockの高さが.imgBlockよりも大きい場合、親要素の高さを設定
2163            if (id570_bodyBlockHeight > id570_imgBlockHeight + id570_headBlockHeight + 40) {
2164                $(this).css('height', id570_bodyBlockHeight + 'px');
2165            } else {
2166                $(this).css('height', '');
2167            }
2168        });
2169    }
2170    
2171    // メイン画像_ver.28
2172    if ($('.cparts-id575').length) {
2173      $('.cparts-id575').each(function() {
2174        var txtBlock = $(this).find('.cparts-txt-block');
2175        var txtBlockHeight = txtBlock.outerHeight();
2176        var imgBlock = $(this).find('.cparts-img-block');
2177        var imgBlockHeight = imgBlock.outerHeight();
2178
2179        // '.cparts-img-block' 要素が '.cparts-txt-block' よりも小さい場合
2180        if (imgBlockHeight < txtBlockHeight + 180) {
2181          imgBlock.css('height', (txtBlockHeight + 180) + 'px'); // height を設定
2182        }
2183      });
2184    } 
2185
2186    /* -------------------------------------------------------
2187      2025年追加
2188    -------------------------------------------------------- */
2189    // ローディングアニメーション
2190    if ($('.cparts-id592').length) {
2191      const targetSelectors = [
2192        '#header', '#upper', '#main', '#bottom', '#side', '#right', '#opt1', '#opt2', '#opt3', '#footer',
2193        '.header', '.upper', '.main', '.bottom', '.side', '.right', '.opt1', '.opt2', '.opt3', '.footer',
2194        '.siteblock-header', '.siteblock-upper', '.siteblock-main', '.siteblock-bottom', '.siteblock-side', '.siteblock-right',
2195        '.siteblock-opt1', '.siteblock-opt2', '.siteblock-opt3', '.siteblock-footer'
2196      ];
2197    
2198      // スクロール制御関数
2199      function disableScroll() {
2200        $('html, body').css({
2201          overflow: 'hidden',
2202          height: '100%',
2203          'touch-action': 'none',
2204          '-webkit-overflow-scrolling': 'auto'
2205        });
2206      }
2207    
2208      function enableScroll() {
2209        $('html, body').css({
2210          overflow: '',
2211          height: '',
2212          'touch-action': '',
2213          '-webkit-overflow-scrolling': ''
2214        });
2215        setTimeout(() => {
2216          window.scrollTo(window.scrollX, window.scrollY); // iOS対策
2217        }, 50);
2218      }
2219    
2220      let $loadingParts = null;
2221      let $parentBlock = null;
2222    
2223      targetSelectors.some(selector => {
2224        const $rows = $(selector).find('.cparts-body-block').filter(function () {
2225          return $(this).closest('.cparts-id592').length > 0;
2226        });
2227    
2228        if ($rows.length) {
2229          $loadingParts = $rows.first();
2230          $parentBlock = $loadingParts.closest(targetSelectors.join(','));
2231          return true;
2232        }
2233        return false;
2234      });
2235    
2236      if ($loadingParts) {
2237        const $parent = $loadingParts.closest('.cparts-id592');
2238    
2239        if ($parent.hasClass('cparts-loading--fadein')) {
2240          handleFadeAnimation($loadingParts, $parentBlock);
2241        } else if ($parent.hasClass('cparts-loading--slideup')) {
2242          handleSlideUpAnimation($parent, $parentBlock);
2243        } else if ($parent.hasClass('cparts-loading--reveal')) {
2244          handleRevealAnimation($parent, $parentBlock);
2245        } else {
2246          handleFadeAnimation($loadingParts, $parentBlock);
2247        }
2248      }
2249    
2250      // =========================
2251      // 各ローディング処理
2252      // =========================
2253    
2254      function handleFadeAnimation($loadingParts, $zTarget, callback) {
2255        const $blocks = $loadingParts.find('.cparts-txt-block');
2256        const $parent = $loadingParts.closest('.cparts-id592');
2257      
2258        if ($('#cms_contents_area').length) {
2259          $blocks.css({ display: 'block', opacity: 1 });
2260          if (typeof callback === 'function') callback();
2261          return;
2262        }
2263      
2264        disableScroll();
2265      
2266        // 固定レイアウト化
2267        $parent.css({
2268          position: 'fixed',
2269          top: 0,
2270          left: 0,
2271          width: '100%',
2272          height: '100%',
2273          zIndex: 9999
2274        });
2275      
2276        // 強制的に表示+opacityアニメーション
2277        $blocks.css({ display: 'block', opacity: 0 }).animate({ opacity: 1 }, 1500, function () {
2278          setTimeout(() => {
2279            $parent.fadeOut(1500, function () {
2280              $parent.remove(); // display:none ではなく remove()
2281              if ($zTarget) $zTarget.css({
2282                'z-index': '',
2283                'position': ''
2284              });
2285              enableScroll();
2286              if (typeof callback === 'function') callback();
2287            });
2288          }, 1000);
2289        });
2290      }
2291      
2292    
2293      function handleSlideUpAnimation($parent, $zTarget, callback) {
2294        if ($('#cms_contents_area').length) {
2295          $parent.show();
2296          if (typeof callback === 'function') callback();
2297          return;
2298        }
2299    
2300        disableScroll();
2301    
2302        const $content = $parent.find('.cparts-body-block > div');
2303    
2304        $content.css({ display: 'block' }).animate({ opacity: 1 }, 1000, function () {
2305          setTimeout(() => {
2306            $parent.css({
2307              transition: 'transform 1.1s ease-in-out',
2308              transform: 'translateY(-100%)'
2309            });
2310    
2311            setTimeout(() => {
2312              $parent.remove();
2313              if ($zTarget) $zTarget.css({
2314              'z-index': '',
2315              'position': ''
2316            });
2317              enableScroll();
2318              if (typeof callback === 'function') callback();
2319            }, 1000);
2320          }, 1000);
2321        });
2322      }
2323    
2324      function handleRevealAnimation($parent, $zTarget, callback) {
2325        if ($('#cms_contents_area').length) {
2326          if (typeof callback === 'function') callback();
2327          return;
2328        }
2329    
2330        disableScroll();
2331    
2332        const $content = $parent.find('.cparts-body-block > div');
2333    
2334        $parent.css({
2335          'clip-path': 'circle(150% at 50% 50%)',
2336          '-webkit-clip-path': 'circle(150% at 50% 50%)',
2337          'transition': 'clip-path 1.5s ease-in-out, -webkit-clip-path 1.5s ease-in-out',
2338          'overflow': 'hidden',
2339          'z-index': 9999,
2340          'position': 'fixed',
2341          'top': 0,
2342          'left': 0,
2343          'width': '100%',
2344          'height': '100%'
2345        });
2346    
2347        void $parent[0].offsetWidth;
2348    
2349        $content.css({ display: 'block' }).animate({ opacity: 1 }, 1000, function () {
2350          setTimeout(() => {
2351            $parent.css({
2352              'clip-path': 'circle(0% at 50% 50%)',
2353              '-webkit-clip-path': 'circle(0% at 50% 50%)'
2354            });
2355          }, 100);
2356    
2357          setTimeout(() => {
2358            $parent.remove();
2359            if ($zTarget) $zTarget.css({
2360              'z-index': '',
2361              'position': ''
2362            });
2363            enableScroll();
2364            if (typeof callback === 'function') callback();
2365          }, 1700);
2366        });
2367      }
2368    
2369      // =========================
2370      // 初期 z-index セット
2371      // =========================
2372      $(document).ready(function () {
2373        if (!$('#cms_contents_area').length) {
2374          $(targetSelectors.join(',')).has('.cparts-id592').css({
2375            position: 'relative',
2376            zIndex: 999
2377          });
2378        }
2379      });
2380    
2381      // =========================
2382      // 保険:window load 時にも実行
2383      // =========================
2384      $(window).on('load', function () {
2385        const $slideup = $('.cparts-id592.cparts-loading--slideup');
2386        if ($slideup.length) {
2387          handleSlideUpAnimation($slideup, $slideup.closest(targetSelectors.join(',')));
2388        }
2389    
2390        const $reveal = $('.cparts-id592.cparts-loading--reveal');
2391        if ($reveal.length) {
2392          handleRevealAnimation($reveal, $reveal.closest(targetSelectors.join(',')));
2393        }
2394      });
2395    }
2396  });
2397
2398  // テキスト/流れる画像_ver.1
2399  $(window).on('load', function () {
2400    const $targets = $('.cparts-id599--01, .cparts-id599--02');
2401  
2402    if (!$targets.length) return;
2403  
2404    $targets.each(function () {
2405      const $target = $(this);
2406  
2407      // 自身または内部に対象クラスが存在するか判定
2408      const hasAnimationClass =
2409        $target.is('.cparts-animate--slideUpDown, .cparts-animate--slideDownUp, .cparts-animate--slideBothDown') ||
2410        $target.find('.cparts-animate--slideUpDown, .cparts-animate--slideDownUp, .cparts-animate--slideBothDown').length > 0;
2411  
2412        if (!hasAnimationClass && $('#cms_contents_area').length) {
2413          $target.find('.cparts-img-block').css('position', 'static');
2414          $target.find('.cparts-body-block .cparts-body-block').css('display', 'flex');
2415          return;
2416        }
2417  
2418      // 通常処理
2419      const blocks = $target.find('.cparts-img-block');
2420      let globalIndex = 0; // ← グローバルなインデックスで判定
2421  
2422      blocks.each(function () {
2423        const $block = $(this);
2424        const $images = $block.find('img');
2425        const wrapper = $('<div class="scroll-wrapper"></div>');
2426  
2427        // 画像を2回ループして追加
2428        $images.each(function () {
2429          wrapper.append($(this).clone());
2430        });
2431        $images.each(function () {
2432          wrapper.append($(this).clone());
2433        });
2434  
2435        $block.empty().append(wrapper);
2436  
2437        // 最初のブロックだけスクロール方向を変える
2438        const direction = globalIndex === 0 ? 'scroll-up' : 'scroll-down';
2439        wrapper.addClass(direction);
2440  
2441        globalIndex++;
2442      });
2443    });
2444  });
2445  
2446  
2447  
2448  
2449
2450// 流れるライン系画像、テキスト
2451$('.cparts-id594.cparts-decoslider-block02.cparts-current--rightleft').each(function(){
2452  var loopslider = $(this).find('ul').clone(true);
2453  var loopsliderW = $(this).find('ul').width();
2454  var loopsliderH = $(this).find('ul').height();
2455  var self = $(this);
2456
2457  $(this).find('.cparts-copy-block')
2458    .append(loopslider)
2459    .css({ display: 'flex', height: loopsliderH + 'px' });
2460
2461  $(this).find('ul').wrapAll('<div class="cparts-loopslider--wrap02"></div>');
2462  $(this).find('.cparts-loopslider--wrap02').css({ width: (loopsliderW * 2) + 'px' });
2463
2464  if ($(this).hasClass('cparts-current--rightleft')) {
2465    const self = $(this);
2466    const isSp = window.matchMedia('(max-width: 767px)').matches;
2467    const duration = isSp ? 25000 : 45000;
2468  
2469    function loopMove() {
2470      self.find('.cparts-loopslider--wrap02').animate(
2471        { left: '-' + loopsliderW + 'px' },
2472        duration,
2473        'linear',
2474        function () {
2475          self.find('.cparts-loopslider--wrap02').css({ left: '0' });
2476          loopMove();
2477        }
2478      );
2479    }
2480  
2481    loopMove();
2482  }
2483});
2484
2485if ($('.cparts-id594').length) {
2486  $('.cparts-id594 .cparts-img-block > div a').on('click', function (e) {
2487    e.preventDefault();
2488
2489    // クリックされたa要素から最も近い親の.cparts-id594を取得
2490    var $parent = $(this).closest('.cparts-id594');
2491
2492    // 親要素の下端までの位置を取得
2493    var targetOffset = $parent.offset().top + $parent.outerHeight();
2494
2495    $('html, body').animate({
2496      scrollTop: targetOffset
2497    }, 800);
2498  });
2499}
2500if ($('.cparts-decoslider-block02').length) {
2501  var timer = false;
2502  var prewidth = $(window).width();
2503  $(window).resize(function() {
2504  if (timer !== false) {
2505  clearTimeout(timer);
2506  }
2507  timer = setTimeout(function() {
2508  var nowWidth = $(window).width();
2509  if(prewidth !== nowWidth){
2510  // リロード
2511  location.reload();
2512  }
2513  prewidth = nowWidth;
2514  }, 10);
2515  });
2516}
2517
2518// 一覧パーツ_ver.12
2519if ($('.cparts-id291--03').length) {
2520  $(function () {
2521    if ($('#cms_contents_area').length === 0) {
2522      $('.cparts-id291--03').each(function () {
2523        const $container = $(this);
2524        const $icon = $container.find('.cparts-footer-block .cparts-icon-block');
2525        const $txtBlock = $container.find('.cparts-body-block > .cparts-txt-block').first();
2526
2527        // 既に移動済みでないことを確認
2528        if ($icon.length && $txtBlock.length && !$txtBlock.find('.cparts-icon-block').length) {
2529          $icon.appendTo($txtBlock);
2530        }
2531      });
2532    }
2533  });
2534}
2535
2536// 画像横スライド(画像3枚)
2537// 画像横スライド(画像4枚)
2538// 画像横スライド(画像5枚)
2539$(function () {
2540  const isEditor = $('#cms_contents_area').length > 0;
2541  const $blocks = $('.cparts-id605--01, .cparts-id605--02, .cparts-id605--03');
2542
2543  // 対象クラスが存在する場合のみ処理を実行
2544  if ($blocks.length) {
2545    $(window).on('load', function () {
2546      $blocks.each(function () {
2547        const $section = $(this);
2548        const $imgBlock = $section.find('.cparts-img-block');
2549        const $imgs = $imgBlock.find('img');
2550        const imgCount = $imgs.length;
2551
2552        if (isEditor) {
2553          $imgBlock
2554            .addClass('editor-mode')
2555            .css({ display: 'flex', transform: 'none', width: '100%' });
2556
2557          if (imgCount === 3) $imgBlock.addClass('imgcount--3');
2558          if (imgCount === 4) $imgBlock.addClass('imgcount--4');
2559          return;
2560        }
2561
2562        // クローン処理
2563        const clones = [];
2564        if (imgCount === 3) {
2565          for (let i = 0; i < 12; i++) {
2566            clones.push($imgs.eq(i % imgCount).clone()[0]);
2567          }
2568        } else if (imgCount === 4) {
2569          for (let i = 0; i < 16; i++) {
2570            clones.push($imgs.eq(i % imgCount).clone()[0]);
2571          }
2572        } else if (imgCount === 5) {
2573          let totalWidth = $imgBlock[0].scrollWidth;
2574          let cloneIndex = 0;
2575          while (totalWidth < $imgBlock.outerWidth() * 3 && cloneIndex < 30) {
2576            const clone = $imgs.eq(cloneIndex % imgCount).clone();
2577            $imgBlock.append(clone);
2578            totalWidth = $imgBlock[0].scrollWidth;
2579            cloneIndex++;
2580          }
2581        }
2582
2583        if (clones.length) {
2584          $imgBlock.append(clones);
2585        }
2586
2587        // スライドアニメーション(ブロックごと)
2588        if (!isEditor) {
2589          const slideState = {
2590            currentX: null,
2591            lastDirection: null
2592          };
2593
2594          function animateBlock() {
2595            const rect = $section[0].getBoundingClientRect();
2596            const windowHeight = window.innerHeight;
2597
2598            if (rect.top < windowHeight && rect.bottom > 0) {
2599              const scrollRatio = (windowHeight - rect.top) / (windowHeight + rect.height);
2600
2601              // スライド方向を判定
2602              let direction;
2603              if ($section.hasClass('cparts-slide--rightLeft')) {
2604                direction = 'rightLeft';
2605              } else {
2606                // leftRight or クラスなし
2607                direction = 'leftRight';
2608              }
2609
2610              const maxSlide = 140;
2611              const signedRatio = direction === 'rightLeft'
2612                ? scrollRatio * -maxSlide   // 右 → 左 = 負の方向
2613                : scrollRatio * maxSlide;   // 左 → 右 = 正の方向
2614
2615              // 方向が切り替わったら初期化
2616              if (slideState.lastDirection !== direction || slideState.currentX === null) {
2617                slideState.currentX = signedRatio;
2618                slideState.lastDirection = direction;
2619              } else {
2620                slideState.currentX += (signedRatio - slideState.currentX) * 0.2;
2621              }
2622
2623              $imgBlock.css('transform', `translateX(${slideState.currentX}%)`);
2624            }
2625
2626            requestAnimationFrame(animateBlock);
2627          }
2628
2629          requestAnimationFrame(animateBlock);
2630        }
2631      });
2632    });
2633  }
2634});
2635
2636
2637/* パララックスパーツ(画像/見出し・テキスト)/ パララックスパーツ(見出し・テキスト/画像)*/
2638jQuery(function($){
2639  var $win = $(window);
2640
2641  function updateParallax(){
2642    var scrollTop = $win.scrollTop();
2643    var winHeight = $win.height();
2644
2645    // ===== スピード・スタート位置を画面幅で調整 =====
2646    var baseBgSpeed, baseImgSpeed, baseStartY, baseStopY;
2647    var isMobile = window.matchMedia("(max-width: 991px)").matches;
2648
2649    if (isMobile) {
2650      // スマホ用
2651      baseBgSpeed  = 0.1;
2652      baseImgSpeed = 0.25;
2653      baseStartY   = 100;
2654      baseStopY    = 0;
2655    } else {
2656      // PC/タブレット用
2657      baseBgSpeed  = 0.15;
2658      baseImgSpeed = 0.5;
2659      baseStartY   = 200;
2660      baseStopY    = 0;
2661    }
2662
2663    // ===== 対象ブロック =====
2664    $('.cparts-id612--01, .cparts-id612--02').each(function(){
2665
2666      var $container   = $(this);
2667      var containerTop = $container.offset().top;
2668      var containerH   = $container.outerHeight();
2669      var $img         = $container.find('.cparts-img-block img');
2670
2671      // --- 初期値(ベース値から複製) ---
2672      var bgSpeed  = baseBgSpeed;
2673      var imgSpeed = baseImgSpeed;
2674      var startY   = baseStartY;
2675      var stopY    = baseStopY;
2676
2677      // --- slow / fast の調整(スマホ) ---
2678      if (isMobile) {
2679        if ($container.hasClass('cparts-slow')) {
2680          bgSpeed  = baseBgSpeed - 0.05;
2681          imgSpeed = baseImgSpeed - 0.05;
2682          startY   = 100;
2683        } else if ($container.hasClass('cparts-fast')) {
2684          bgSpeed  = baseBgSpeed;
2685          imgSpeed = baseImgSpeed + 3;
2686          startY   = 200;
2687        }
2688      }
2689
2690      // --- slow / fast(PC) ---
2691      if (!isMobile) {
2692        if ($container.hasClass('cparts-slow')) {
2693          bgSpeed  = baseBgSpeed - 0.05;
2694          imgSpeed = baseImgSpeed - 0.15;
2695          startY   = 200;
2696        } else if ($container.hasClass('cparts-fast')) {
2697          bgSpeed  = baseBgSpeed + 0.2;
2698          imgSpeed = baseImgSpeed + 2;
2699          startY   = 200;
2700          stopY    = 0;
2701        }
2702      }
2703
2704      /* ============================================================
2705         ★ 画面内外に関係なく、事前に startY と stopY を上書きする
2706      ============================================================ */
2707      var forceStartStop =
2708        $img.closest('#type2column02 #wrapper #opt').length ||
2709        $img.closest('#type2column02 #side').length ||
2710        $img.closest('#bootstrap_template #side').length ||
2711        $img.closest('#type2column02 #wrapper #contents #opt2').length ||
2712        $img.closest('.pagetemp-column2 .container .row .siteblock-side').length ||
2713        $img.closest('.pagetemp-column2 .lay-container-xl .lay-row .siteblock-side').length;
2714
2715      if (forceStartStop) {
2716        startY = 40;  // 初期位置
2717        stopY  = 0;   // 固定位置
2718      }
2719
2720      /* ============================================================
2721         パララックス処理(背景 + 画像)
2722      ============================================================ */
2723
2724      if (scrollTop + winHeight > containerTop && scrollTop < containerTop + containerH) {
2725
2726        /* ===== 背景画像 ===== */
2727        var diff = (scrollTop + winHeight) - containerTop;
2728        var bgY  = -(diff * bgSpeed);
2729        $container.css('background-position', 'center ' + bgY + 'px');
2730
2731        /* ===== 画像 ===== */
2732        var diffImg = (scrollTop + winHeight) - containerTop;
2733        var moveY   = startY - (diffImg * imgSpeed);
2734
2735        if (moveY <= stopY) moveY = stopY;
2736
2737        $img.css('transform','translateY(' + moveY + 'px)');
2738
2739      } else if (scrollTop + winHeight <= containerTop) {
2740        // ===== 画面外の場合(初期位置へ戻す) =====
2741        $container.css('background-position', 'center 0');
2742        $img.css('transform','translateY(' + startY + 'px)');
2743      }
2744
2745    });
2746  }
2747
2748  $win.on('scroll resize', updateParallax);
2749  updateParallax();
2750
2751});
2752
2753
2754
2755  window.addEventListener('resize', function(){
2756    
2757      // バナー01
2758      $('div[class*="cparts-id311"]').each(function() {
2759        if ($(this).outerWidth() <= 480) {
2760            $(this).addClass('cparts-id311-column');
2761        }else{
2762          $(this).removeClass('cparts-id311-column');
2763        }
2764        var height = $(this).find('.cparts-txt-block').outerHeight() + 60;
2765        $(this).find('.cparts-img-block').find('img').css('height', height+'px');
2766        $(this).find('.cparts-img-block').css('height', height+'px');
2767      });
2768    
2769      // バナー02
2770      $('div[class*="cparts-id315"]').each(function() {
2771        if ($(this).find('.cparts-img-block').outerWidth() < 300) {
2772            $(this).addClass('cparts-id315-column');
2773        }else {
2774          $(this).removeClass('cparts-id315-column');
2775        }
2776        var height = $(this).find('.cparts-body-block').outerHeight() +30;
2777          $(this).find('.cparts-img-block').find('img').css('height', height+'px');
2778          $(this).find('.cparts-img-block').css('height', height+'px');
2779        if ($(this).find('h4').css('color') == $(this).find('.dec-bg--primary').css('background-color')) {
2780          $(this).find('h4').css('color','#fff');
2781        }
2782      });
2783    
2784      // バナー03
2785      $('div[class*="cparts-id317"]').each(function() {
2786        if ($(this).outerWidth() <= 480) {
2787            $(this).addClass('cparts-id317-column');
2788        }else {
2789          $(this).removeClass('cparts-id317-column');
2790        }
2791        var height = $(this).find('.cparts-txt-block').children('div').outerHeight() + 60;
2792          $(this).find('.cparts-img-block').find('img').css('height', height+'px');
2793          $(this).find('.cparts-img-block').css('height', height+'px');
2794      });
2795    
2796      // バナー04
2797      $('div[class*="cparts-id318"]').each(function() {
2798          if ($(this).children('div').outerWidth() < 250) {
2799              $(this).addClass('cparts-id318-column');
2800          }else {
2801              $(this).removeClass('cparts-id318-column');
2802          }
2803      });
2804      setTimeout(function(){
2805        $('.cparts-id318--01').each(function() {
2806          var height = $(this).find('.cparts-body-block').outerHeight() + 60;
2807            $(this).find('.cparts-img-block').find('img').css('height', height+'px');
2808            $(this).find('.cparts-img-block').css('height', height+'px');
2809        });
2810        $('.cparts-id318--02').each(function() {
2811          if ($(this).find('h3').css('color') == 'rgb(255, 255, 255)') {
2812            $(this).find('h3').addClass('dec-txt--primary');
2813          }
2814          var height = $(this).find('.cparts-head-block').outerHeight() + 60;
2815            $(this).find('.cparts-img-block').find('img').css('height', height+'px');
2816            $(this).find('.cparts-img-block').css('height', height+'px');
2817        });
2818      },500);
2819    
2820  });
2821  
2822  $(window).scroll(function () {
2823    
2824    /* -------------------------------------------------------
2825      2021年追加
2826    -------------------------------------------------------- */
2827    // 【ブロークングリッドレイアウト】アニメーション用class追加
2828    $('.cparts-id286--01 .cparts-js-block,.cparts-id286--02 .cparts-js-block').each(function(){
2829      var imgPos = $(this).offset().top;
2830      var scroll = $(window).scrollTop();
2831      var windowHeight = $(window).height();
2832      if (scroll > imgPos - windowHeight + windowHeight/5){
2833        $(this).addClass('cparts-fadeIn--id286');
2834      }
2835    });
2836    
2837  });
2838  
2839  $(document).ready(function() {
2840    
2841    /* -------------------------------------------------------
2842      2024年追加
2843    -------------------------------------------------------- */
2844    // フローティングバナー
2845    function setParentWidth() {
2846      // ウィンドウ幅が768px以上の場合のみ処理を実行
2847      if ($(window).width() >= 768) {
2848      const childWidth = $('.cparts-link-block').width();
2849      $('.cparts-id582').width(childWidth); // 子要素の幅に合わせる
2850      } else {
2851      // 768px未満の場合、親要素の幅をリセットしたい場合は以下を使用
2852      $('.cparts-id582').css('width', ''); // 幅リセット
2853      }
2854    }
2855
2856    // 初回設定
2857    setParentWidth();
2858
2859    // ウィンドウリサイズ時にも幅を再設定
2860    $(window).resize(setParentWidth);
2861  });
2862  
2863});})(jQuery);
2864
2865// jQuery 3.7.1 でも $(window).on('load', fn) を“確実に”動かす最小シム
2866(function ($) {
2867  if (!$.fn || !$.fn.on) return;
2868  var _on = $.fn.on;
2869
2870  $.fn.on = function (types, selector, data, handler) {
2871    try {
2872      // $(window).on('load', fn) パターンを捕捉
2873      if (this.length === 1 && this[0] === window && typeof types === 'string' && types.indexOf('load') !== -1) {
2874        // 渡された引数からハンドラを特定
2875        var fn = (typeof selector === 'function') ? selector
2876               : (typeof data === 'function')     ? data
2877               : (typeof handler === 'function')  ? handler
2878               : null;
2879
2880        // すでに load 済みなら即実行(=取り逃し救済)
2881        if (fn && document.readyState === 'complete') {
2882          try { fn.call(window); } catch (e) {}
2883          // 既存の .on 自体は通常どおり呼んでおく(将来の pageshow 等に備える)
2884        }
2885      }
2886    } catch (e) {}
2887    return _on.apply(this, arguments);
2888  };
2889})(jQuery);
2890  

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.