/*
Theme Name: Beaver Builder Child Theme
Theme URI: http://www.wpbeaverbuilder.com
Version: 1.0
Description: An example child theme that can be used as a starting point for custom development.
Author: The Beaver Builder Team
Author URI: http://www.fastlinemedia.com
template: bb-theme
*/

/* Add your custom styles here... */

/* フォントの読み込み */
@font-face {
    font-family: 'LINESeedJP';
    font-weight: 400; /* 通常の場合は400 */
    font-style: normal;
    src: url('/fonts/LINESeedJP_TTF_Rg.eot'); /* IE用 */
    src: url('/fonts/LINESeedJP_TTF_Rg.eot?#iefix') format('embedded-opentype'),
         url('/fonts/LINESeedJP_OTF_Rg.woff2') format('woff2'),
         url('/fonts/LINESeedJP_OTF_Rg.woff') format('woff');
  }
@font-face {
    font-family: 'LINESeedJP';
    font-weight: bold; /* boldとして使用 */
    font-style: normal;
    src: url('/fonts/LINESeedJP_TTF_Bd.eot');
    src: url('/fonts/LINESeedJP_TTF_Bd.eot?#iefix') format('embedded-opentype'),
         url('/fonts/LINESeedJP_OTF_Bd.woff2') format('woff2'),
         url('/fonts/LINESeedJP_OTF_Bd.woff') format('woff');
  }
  
html {
    scroll-behavior: smooth;
}

body {
    font-family: 'LINESeedJP', sans-serif;
    font-weight: 400;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'LINESeedJP', sans-serif;
    font-weight: bold;
}

a {
	-webkit-transition: 0.4s;
    -moz-transition: 0.4s;
    -ms-transition: 0.4s;
    -o-transition: 0.4s;
    transition: 0.4s;
}

@media print {
 a[href]:after {
 content: "" !important;
 }

 abbr[title]:after {
 content: "" !important;
 }
}

@media (max-width: 768px) {
	.fl-col-small,
	.fl-col-small:not(.fl-col-small-full-width) {
		max-width: 100%;
	}
}

.block_link {
	cursor: pointer;
}

.block_link:hover {
	opacity: 0.9;
}

/*グリッドのガターサイズ*/
.row-0{
    margin-left:0px;
    margin-right:0px;
}
.row-0 > div{
	padding-right:0px;
	padding-left:0px;
}
.row-10{
    margin-left:-5px;
    margin-right:-5px;
}
.row-10 > div{
	padding-right:5px;
	padding-left:5px;
}
.row-20{
    margin-left:-10px;
    margin-right:-10px;
}
.row-20 > div{
	padding-right:10px;
	padding-left:10px;
}
.row-30{
    margin-left:-15px;
    margin-right:-15px;
}
.row-30 > div{
	padding-right:15px;
	padding-left:15px;
}
.row-40{
    margin-left:-20px;
    margin-right:-20px;
}
.row-40 > div{
	padding-right:20px;
	padding-left:20px;
}





/*transition & delay*/
.transition10{transition:all 1s cubic-bezier(0.190, 1.000, 0.220, 1.000);}
.delay01{transition-delay: .1s;}
.delay02{transition-delay: .2s;}
.delay03{transition-delay: .3s;}
.delay04{transition-delay: .4s;}
.delay05{transition-delay: .5s;}
.delay06{transition-delay: .6s;}
.delay07{transition-delay: .7s;}
.delay08{transition-delay: .8s;}
.delay09{transition-delay: .9s;}
.delay10{transition-delay: 1s;}
.delay11{transition-delay: 1.1s;}



/*スライドバナー*/
.slideBanner .slick-slide:not(.slick-center) {
	-webkit-filter: grayscale(100%);
	-moz-filter: grayscale(100%);
	-o-filter: grayscale(100%);
	-ms-filter: grayscale(100%);
	filter: grayscale(100%);
	transition: 0.2s linear;
}


/*MW WP FORM Generatorのスタイルでg-standardを選択した時のデザインを調整*/
.mw_wp_form_g-standard table {
    border-collapse:separate;
    border-spacing: 0px 10px;
}

.mw_wp_form_g-standard table,
.mw_wp_form_g-standard table th,
.mw_wp_form_g-standard table td {
    border:none;
}

.mw_wp_form_g-standard table th {
    position: relative;
    padding: 1.1em;
		background-color: #efefef;
}

.mw_wp_form_g-standard table td {
		background-color: #f9f9f9;
}

.mw_wp_form_g-standard.mw_wp_form_confirm table th {
    padding: 1em;
}

.mw_wp_form_g-standard table th .require {
    position: absolute;
    top: 0px;
    right: 0px;
    font-size: 0px;
}

.mw_wp_form_g-standard table th .require::after {
    content: "必須";
    position: absolute;
    top: 20px;
    right: 15px;
    font-size: 12px;
    width: 50px;
    background-color: #E53838;
    color: #ffffff;
    text-align: center;
    white-space: nowrap;
    line-height: 1;
    padding: 5px;
}

.mw_wp_form_g-standard.mw_wp_form_confirm table th .require::after {
    top: 18px;
    right: 15px;
}

@media (max-width: 767px) {
.mw_wp_form_g-standard table tr {
	margin-bottom: 10px;
}
.mw_wp_form_g-standard table th{
    border-bottom: none;
    padding: 0.5em;
}
.mw_wp_form_g-standard table th .require::after {
    top: 6px !important;
    right: 6px !important;

}
}

/*テキストエディタモジュールのclassにbgWhiteBoxを設定する*/
.bgWhiteBox {
    position: relative;
}

.bgWhiteBox p {
    position: relative;
    display: inline-block;
    background-color: #ffffff;
    padding: 15px;
    z-index: 10;
}

.table-scroll{
    overflow: auto;
    white-space: nowrap;
    }


.pp-advanced-menu .pp-menu-toggle:before {
    width: 9px !important;
    border-top: 2px solid !important;
}

.pp-advanced-menu .pp-menu-toggle:after {
    border-left: 2px solid !important;
    height: 9px !important;
}

.pp-advanced-menu .pp-has-submenu-container a > span {
    padding-right: 23px !important;
}

.pp-advanced-menu .menu > li.btnContact > a {
    border: 1px solid #000000;
    padding-top: 6px !important;
    padding-right: 30px !important;
    padding-bottom: 5px !important;
    padding-left: 30px !important;
}

@media (max-width: 767px) {
.pp-advanced-menu .menu > li.btnContact > a {
    text-align: center !important;
}
}

.pp-advanced-menu .menu > li.btnContact > a:hover {
    background-color: #1a3066;
;
    color: #ffffff;
}


/*ローディング画面関連*/
#loadingScreen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background-color: #fff;
            z-index: 9999;
            transition: opacity 1s ease-out;
        }

        #loadingScreen.fadeout {
            opacity: 0;
            pointer-events: none;
        }

        /* プログレスバー */
        #progressContainer {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 3px;
            background-color: rgba(85, 124, 50, 0.1);
            z-index: 10000;
        }

        #progressBar {
            height: 100%;
            background-color:#c7b299;
            width: 0%;
            transition: width 0.3s ease;
        }

        /* ロゴコンテナ */
        #logoContainer {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .logoSvg {
            width: 200px;
            height: auto;
            overflow: visible;
        }

        /* メインコンテンツ */
        #mainContent {
            opacity: 0;
            min-height: 200vh;
            background: linear-gradient(180deg, #f8f9fa 0%, #e9ecef 100%);
            transition: opacity 1s ease-in;
            padding: 60px 20px;
        }

        #mainContent.visible {
            opacity: 1;
        }

        .content-section {
            max-width: 800px;
            margin: 0 auto;
            padding: 40px 0;
        }

        .content-section h1 {
            font-size: 2.5em;
            color: #231815;
            text-align: center;
            margin-bottom: 20px;
            font-family: 'Hiragino Sans', 'Yu Gothic', sans-serif;
        }

        .content-section p {
            font-size: 1.1em;
            line-height: 1.8;
            color: #666;
            text-align: center;
            margin-bottom: 30px;
        }

        /* レスポンシブ対応 */
        @media (max-width: 768px) {
            #logoContainer {
                padding: 40px 20px 20px 20px !important;
            }
            
            .logoSvg {
                width: 150px !important;
                max-width: 75vw !important;
                max-height: 60vh !important;
            }

            .content-section h1 {
                font-size: 2em;
            }
        }

        @media (max-width: 480px) {
            #logoContainer {
                padding: 30px 15px 15px 15px !important;
            }
            
            .logoSvg {
                width: 120px !important;
                max-width: 70vw !important;
                max-height: 55vh !important;
            }
        }

        @media (max-height: 600px) {
            #logoContainer {
                padding: 20px !important;
            }
            
            .logoSvg {
                max-height: 50vh !important;
            }
        }

        @media (max-height: 500px) {
            .logoSvg {
                width: 120px !important;
                max-height: 40vh !important;
            }
        }

        /* SVGアニメーション（元のCSSから抜粋・調整） */
        @keyframes animate-svg-stroke-1 {
            0% { stroke-dashoffset: 1801.43994140625px; stroke-dasharray: 1801.43994140625px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 1801.43994140625px; }
        }

        @keyframes animate-svg-fill-1 {
            0% { fill: transparent; }
            100% { fill: rgb(255, 255, 255); }
        }

        .svg-logo-1 {
            animation: animate-svg-stroke-1 2s cubic-bezier(0.86, 0, 0.07, 1) 0.5s both,
                       animate-svg-fill-1 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.5s both;
        }

        @keyframes animate-svg-stroke-2 {
            0% { stroke-dashoffset: 344.83843994140625px; stroke-dasharray: 344.83843994140625px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 344.83843994140625px; }
        }

        @keyframes animate-svg-fill-2 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-2 {
            animation: animate-svg-stroke-2 2s cubic-bezier(0.86, 0, 0.07, 1) 0.62s both,
                       animate-svg-fill-2 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.6s both;
        }

        @keyframes animate-svg-stroke-3 {
            0% { stroke-dashoffset: 317.36871337890625px; stroke-dasharray: 317.36871337890625px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 317.36871337890625px; }
        }

        @keyframes animate-svg-fill-3 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-3 {
            animation: animate-svg-stroke-3 2s cubic-bezier(0.86, 0, 0.07, 1) 0.74s both,
                       animate-svg-fill-3 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.7s both;
        }

        @keyframes animate-svg-stroke-4 {
            0% { stroke-dashoffset: 379.38885498046875px; stroke-dasharray: 379.38885498046875px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 379.38885498046875px; }
        }

        @keyframes animate-svg-fill-4 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-4 {
            animation: animate-svg-stroke-4 2s cubic-bezier(0.86, 0, 0.07, 1) 0.86s both,
                       animate-svg-fill-4 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.8s both;
        }

        @keyframes animate-svg-stroke-5 {
            0% { stroke-dashoffset: 448.3275146484375px; stroke-dasharray: 448.3275146484375px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 448.3275146484375px; }
        }

        @keyframes animate-svg-fill-5 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-5 {
            animation: animate-svg-stroke-5 2s cubic-bezier(0.86, 0, 0.07, 1) 0.98s both,
                       animate-svg-fill-5 1s cubic-bezier(0.47, 0, 0.745, 0.715) 1.9s both;
        }

        @keyframes animate-svg-stroke-6 {
            0% { stroke-dashoffset: 278.8390808105469px; stroke-dasharray: 278.8390808105469px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 278.8390808105469px; }
        }

        @keyframes animate-svg-fill-6 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-6 {
            animation: animate-svg-stroke-6 2s cubic-bezier(0.86, 0, 0.07, 1) 1.1s both,
                       animate-svg-fill-6 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2s both;
        }

        @keyframes animate-svg-stroke-7 {
            0% { stroke-dashoffset: 428.1931457519531px; stroke-dasharray: 428.1931457519531px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 428.1931457519531px; }
        }

        @keyframes animate-svg-fill-7 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-7 {
            animation: animate-svg-stroke-7 2s cubic-bezier(0.86, 0, 0.07, 1) 1.22s both,
                       animate-svg-fill-7 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.1s both;
        }

        @keyframes animate-svg-stroke-8 {
            0% { stroke-dashoffset: 730.2900390625px; stroke-dasharray: 730.2900390625px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 730.2900390625px; }
        }

        @keyframes animate-svg-fill-8 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-8 {
            animation: animate-svg-stroke-8 2s cubic-bezier(0.86, 0, 0.07, 1) 1.34s both,
                       animate-svg-fill-8 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.2s both;
        }

        @keyframes animate-svg-stroke-9 {
            0% { stroke-dashoffset: 425.4242248535156px; stroke-dasharray: 425.4242248535156px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 425.4242248535156px; }
        }

        @keyframes animate-svg-fill-9 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-9 {
            animation: animate-svg-stroke-9 2s cubic-bezier(0.86, 0, 0.07, 1) 1.46s both,
                       animate-svg-fill-9 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.3s both;
        }

        @keyframes animate-svg-stroke-10 {
            0% { stroke-dashoffset: 425.42425537109375px; stroke-dasharray: 425.42425537109375px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 425.42425537109375px; }
        }

        @keyframes animate-svg-fill-10 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-10 {
            animation: animate-svg-stroke-10 2s cubic-bezier(0.86, 0, 0.07, 1) 1.58s both,
                       animate-svg-fill-10 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.4s both;
        }

        @keyframes animate-svg-stroke-11 {
            0% { stroke-dashoffset: 603.7855834960938px; stroke-dasharray: 603.7855834960938px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 603.7855834960938px; }
        }

        @keyframes animate-svg-fill-11 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-11 {
            animation: animate-svg-stroke-11 2s cubic-bezier(0.86, 0, 0.07, 1) 1.7s both,
                       animate-svg-fill-11 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.5s both;
        }

        @keyframes animate-svg-stroke-12 {
            0% { stroke-dashoffset: 617.8853149414062px; stroke-dasharray: 617.8853149414062px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 617.8853149414062px; }
        }

        @keyframes animate-svg-fill-12 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-12 {
            animation: animate-svg-stroke-12 2s cubic-bezier(0.86, 0, 0.07, 1) 1.82s both,
                       animate-svg-fill-12 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.6s both;
        }

        @keyframes animate-svg-stroke-13 {
            0% { stroke-dashoffset: 304.63446044921875px; stroke-dasharray: 304.63446044921875px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 304.63446044921875px; }
        }

        @keyframes animate-svg-fill-13 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-13 {
            animation: animate-svg-stroke-13 2s cubic-bezier(0.86, 0, 0.07, 1) 1.94s both,
                       animate-svg-fill-13 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.7s both;
        }

        @keyframes animate-svg-stroke-14 {
            0% { stroke-dashoffset: 425.4242248535156px; stroke-dasharray: 425.4242248535156px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 425.4242248535156px; }
        }

        @keyframes animate-svg-fill-14 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-14 {
            animation: animate-svg-stroke-14 2s cubic-bezier(0.86, 0, 0.07, 1) 2.06s both,
                       animate-svg-fill-14 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.8s both;
        }

        @keyframes animate-svg-stroke-15 {
            0% { stroke-dashoffset: 320.728759765625px; stroke-dasharray: 320.728759765625px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 320.728759765625px; }
        }

        @keyframes animate-svg-fill-15 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-15 {
            animation: animate-svg-stroke-15 2s cubic-bezier(0.86, 0, 0.07, 1) 2.18s both,
                       animate-svg-fill-15 1s cubic-bezier(0.47, 0, 0.745, 0.715) 2.9s both;
        }

        @keyframes animate-svg-stroke-16 {
            0% { stroke-dashoffset: 475.3492431640625px; stroke-dasharray: 475.3492431640625px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 475.3492431640625px; }
        }

        @keyframes animate-svg-fill-16 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-16 {
            animation: animate-svg-stroke-16 2s cubic-bezier(0.86, 0, 0.07, 1) 2.3s both,
                       animate-svg-fill-16 1s cubic-bezier(0.47, 0, 0.745, 0.715) 3s both;
        }

        @keyframes animate-svg-stroke-17 {
            0% { stroke-dashoffset: 2014.079833984375px; stroke-dasharray: 2014.079833984375px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 2014.079833984375px; }
        }

        .svg-logo-17 {
            animation: animate-svg-stroke-17 2s cubic-bezier(0.86, 0, 0.07, 1) 2.42s both;
        }

        @keyframes animate-svg-stroke-18 {
            0% { stroke-dashoffset: 515.22998046875px; stroke-dasharray: 515.22998046875px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 515.22998046875px; }
        }

        .svg-logo-18 {
            animation: animate-svg-stroke-18 2s cubic-bezier(0.86, 0, 0.07, 1) 2.54s both;
        }

        @keyframes animate-svg-stroke-19 {
            0% { stroke-dashoffset: 30.703115463256836px; stroke-dasharray: 30.703115463256836px; }
            100% { stroke-dashoffset: 0; stroke-dasharray: 30.703115463256836px; }
        }

        @keyframes animate-svg-fill-19 {
            0% { fill: transparent; }
            100% { fill: rgb(0, 0, 0); }
        }

        .svg-logo-19 {
            animation: animate-svg-stroke-19 2s cubic-bezier(0.86, 0, 0.07, 1) 4s both,
                       animate-svg-fill-19 1s cubic-bezier(0.47, 0, 0.745, 0.715) 4.5s both;
        }

        @keyframes ripple {
            0% { transform: scale(1); opacity: 0.4; }
            100% { transform: scale(5); opacity: 0; }
        }

        .ripple-circle {
            fill: none;
            stroke: #231815;
            stroke-width: 2;
            opacity: 0;
            transform-box: fill-box;
            transform-origin: center;
            animation: ripple 1.5s ease-out 4.5s forwards;
        }


        /*ボタン装飾*/

/* 矢印装飾付きボタン - 正しいデザイン */
.arrow-button a {
    position: relative;
}

.arrow-button a::before {
    content: "";
    position: absolute;
    top: 20px;
    right: -20px;
    width: 40px;
    border-bottom: 2px solid #000000;
    transition: all 0.3s ease;
}

.arrow-button a::after {
    content: "";
    position: absolute;
    top: 17px;
    right: -22px;
    width: 10px;
    border-bottom: 2px solid #000000;
    transition: all 0.3s ease;
    transform: rotate(45deg);
}

.arrow-button a:hover::before {
    content: "";
    position: absolute;
    top: 20px;
    right: -40px;
    width: 60px;
    border-bottom: 2px solid #ffffff;
    transition: all 0.3s ease;
    mix-blend-mode: difference;
}

.arrow-button a:hover::after {
    content: "";
    position: absolute;
    top: 17px;
    right: -42px;
    width: 10px;
    border-bottom: 2px solid #000000;
    transition: all 0.3s ease;
    transform: rotate(45deg);
}

.posiBtmWrap > .fl-col-content {
    position: relative;
    padding-bottom: 90px;
}

.posiBtm {
    position: absolute;
    bottom: 15px;
    width: calc(100% - 60px);
}


@media (max-width: 767px) {
.fl-theme-builder-header-shrink-module-bottom {
    margin-bottom: 15px !important;
}
}