@charset "utf-8";
/* ==========================================================
   トップページ用クリティカルCSS 2026/09/25
   最初の画面（FV・ヘッダー・固定ボタン・INFORMATION）の表示に必要な最小限のCSS
   ・スタイル一覧で「遅延させない」に設定し、一覧の一番上（base.min.cssより上）に置くこと
   ・base.min.css / 20260924style.css / view.css は「遅延させる」に設定すること
   ・FV・ヘッダー・固定ボタン・INFORMATIONのデザインを変更した場合は、ここも更新すること
========================================================== */

/* ===== リセット・基本（base.min.cssより） ===== */
html{color:#000;font-weight:400;font-size:16px;font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;line-height:1.5;-webkit-text-size-adjust:100%;word-break:break-word}
*,:after,:before{box-sizing:border-box}
a,body,button,dd,div,dl,dt,figure,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,ul{margin:0;padding:0}
h1,h2,h3,h4,h5,h6{color:inherit;font-weight:inherit;font-size:inherit;font-family:inherit;line-height:inherit}
img{border:none;vertical-align:top;max-width:100%;height:auto}
img:not([src*="."]){display:none}
ol,ul{list-style:none}
b,strong{font-weight:bolder}
a{color:inherit;text-decoration:none}
body{background:#f6f6f6}
.wrapper{overflow:hidden;min-width:375px}
.inner,.inner1200{margin-left:auto;margin-right:auto}
.inner{width:92%;max-width:1000px}
.inner1200{width:98%;max-width:1200px}
.area{padding-top:80px;padding-bottom:80px}

/* フェード演出の無効化（base.min.cssの初期非表示を打ち消す） */
html .fead-mv,html .fead-up,html .fead-order>*{opacity:1;transform:none}

/* ===== ユーティリティ（base.min.cssより、最初の画面で使うもの） ===== */
.up-d-flex{display:flex}
.up-d-none{display:none}
.up-fxw-wrap{flex-wrap:wrap}
.up-fxd-rowr{flex-direction:row-reverse}
.up-jc-sb{justify-content:space-between}
.up-ai-c{align-items:center}
.up-w-48\%{width:48%}
.up-w-100\%{width:100%}
.up-mb-10{margin-bottom:10px}
.up-mb-30{margin-bottom:30px}
.up-mr-10{margin-right:10px}
.up-pt-80{padding-top:80px}
.up-fw-bold{font-weight:700}
.up-fz-150\%{font-size:150%}
.up-bgc-white{background-color:#fff}
.up-gapy-20>*{padding-bottom:20px}
.up-reader1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== view.cssより（FVの中央寄せ） ===== */
.uk-flex{display:flex}
.uk-flex-middle{align-items:center}
.uk-flex-center{justify-content:center}

/* ===== FV・ヘッダー ===== */
.pagettl{padding:0 5px;font-size:12px;color:#fff;text-shadow:0 0 2px black,0 0 2px black,0 0 2px black,0 0 2px black,0 0 2px black,0 0 2px black;position:absolute;z-index:1}
.mainimg{position:relative}
.mainimg img{width:100%}
header{width:100%;position:absolute;bottom:0;left:0}
.header{background:rgba(86,86,86,.5)}
.header-box{display:flex;align-items:center;justify-content:center;padding:10px 0}
.header-box.fixed{width:100%;max-width:100%;height:auto;padding:10px 0;background:rgba(86,86,86,.5);box-shadow:0 0 5px 0 #999;position:fixed;top:0;left:0;z-index:200}
.header-box.scn-retouch.fixed{background:rgba(86,86,86,1)}
.header .contents{width:45%;max-width:451.89px;display:flex;align-items:center;justify-content:space-between}
.header .right{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}
.header .right .sb-tel{font-size:clamp(.875rem,-.833rem + 2.67vw,1.5rem);color:#fff}
.header .right .diagnose a{display:flex;align-items:center;font-weight:700;font-size:clamp(1.25rem,-4.217rem + 8.53vw,3.25rem);color:#fff;line-height:1;letter-spacing:2px}
.scn-top-h1{text-align:center;font-size:20px;padding-top:10px}

/* ===== グローバルナビ（PC） ===== */
.gnav{max-width:748.13px;position:relative;z-index:100}
.gnav.gnav01{max-width:780px}
.scn-gnav.gnav01{max-width:865px}
.gnav .wrap{display:flex;flex-wrap:wrap}
.gnav .navlogo,.gnav .t-img{display:none}
.gnav .list01{width:100%;display:flex;flex-wrap:wrap;justify-content:center}
.scn-gnav .scn-list01{flex-wrap:revert}
.gnav .item01{width:12%;padding:5px;font-size:16px;color:#fff;text-align:center;border-left:#fff dotted 2px}
.gnav.gnav01 .item01{width:11%}
.gnav .item01.ri{border-right:#fff dotted 2px}
.gnav .item01 .logoimg img{max-width:45px;height:45px;max-height:45px;object-fit:contain}
.gnav .item01>a,.gnav .item01 .itemin{display:block;cursor:pointer}
.gnav .item01 a div,.gnav .item01 .f-ori{font-size:clamp(.625rem,.283rem + .53vw,.75rem)}
.gnav .item01 a div i{font-size:45px}
.gnav .item01.-parent{cursor:pointer;position:relative}
.gnav .list02{width:250px;visibility:hidden;padding-top:10px;background:rgba(255,255,255,.8) content-box;opacity:0;transition:.5s;transform:translateX(-50%);position:absolute;top:100%;left:50%}
.gnav .item01.-parent:hover .list02{visibility:visible;opacity:1}
.gnav .item02 a{display:block;padding:5px;border-bottom:solid 1px;background:#e42021}
.gnav .item02:last-child a{border-bottom:0}

/* ===== 固定パーツ（ハンバーガー・SP固定ボタン・トップへ戻る） ===== */
.openbtn4{width:50px;height:50px;display:none;background:rgba(255,255,255,.5);cursor:pointer;position:fixed;top:0;right:0;z-index:300}
.openbtn4 span{width:50%;height:2px;display:inline-block;border-radius:5px;background:#e42021;transition:all .4s;transform:translateX(-50%);position:absolute;left:50%}
.openbtn4 span:nth-of-type(1){top:13px}
.openbtn4 span:nth-of-type(2){top:19px}
.openbtn4 span:nth-of-type(3){top:25px}
.openbtn4 span:nth-of-type(3)::after{content:"Menu";width:120%;font-size:.6rem;color:#e42021;text-align:center;text-transform:uppercase;position:absolute;top:5px;left:-2px}
.openbtn4.active span:nth-of-type(1){width:50%;transform:translateY(6px) translateX(-50%) rotate(-45deg);top:14px;left:50%}
.openbtn4.active span:nth-of-type(2){opacity:0}
.openbtn4.active span:nth-of-type(3){width:50%;transform:translateY(-6px) translateX(-50%) rotate(45deg);top:26px;left:50%}
.openbtn4.active span:nth-of-type(3)::after{content:"Close";width:130%;transform:translateY(0) translateX(-50%) rotate(-45deg);top:5px;left:100%}
.tog-sp{width:30%;max-width:112.5px;display:none;position:fixed;bottom:0;right:0;z-index:249}
.tog-sp a{display:flex;flex-direction:column;align-items:center;padding:10px;color:#fff}
.tog-sp .con{border:solid 2px #fff;border-radius:50px 0 0 0;background:#e42021}
.tog-sp .con a{font-size:13px}
.totop{cursor:pointer;position:fixed;bottom:20px;right:20px;z-index:200}
.totop .box{width:40px;height:40px;font-size:20px;color:#fff;line-height:40px;text-align:center;border-radius:50%;background:#e42021}
.totop .box:before{content:"\f077";font-family:"Font Awesome 5 Free";font-weight:700}
.tohome{visibility:hidden;opacity:0;transition:all .3s;position:fixed;top:10px;left:10px;z-index:10}
.tohome.UpMove{visibility:visible;opacity:1}
.tohome>*{width:150px;display:block}
.free-img{width:15%;display:inline-block;margin-right:5px}
.free-img img{vertical-align:baseline;margin-right:5px}

/* PC・タブレットの右下固定ボタン（電話・見積もり） */
footer .fix-contents{position:fixed;bottom:18px;right:80px;display:flex;align-items:center;gap:20px;z-index:9999}
footer .fix-contents .tel{height:90px}
footer .fix-contents .tel a,
footer .fix-contents .tel:not(:has(>a)){display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:10px;font-weight:700;font-size:40px;color:#e42021;line-height:1;letter-spacing:2px;border:solid 1px #e42021;border-radius:10px;background:#fff;box-shadow:2px 2px 4px gray;position:relative}
footer .fix-contents .tel .time-txt{font-size:16px;color:#000;margin-top:5px}
footer .fix-contents .btn02{height:85px}
footer .fix-contents .btn02 a{display:flex;align-items:center;justify-content:center;height:100%;padding:10px;color:#fff;border:solid 1px #FF9800;border-radius:10px;background:#FF9800;box-shadow:2px 2px 4px gray;position:relative}
footer .fix-contents .btn02 .img{max-width:50px;margin-right:30px}

/* ===== INFORMATION ===== */
.ttl-s{font-family:"Rubik",sans-serif;font-weight:700;font-size:36px;color:#4d4d4d;letter-spacing:3px}
.le-s3{letter-spacing:3px}
.tab-btn-list{position:relative}
.tab-btn-list .tab-btn{background:#fff;padding:10px;width:30%;text-align:center}
.tab-btn-list .tab-btn.on{background:#e42021;color:#fff}
/* JS実行前でも1つ目のタブを選択中の見た目にする */
.tab-btn-list:not(:has(.on)) .tab-btn:first-child{background:#e42021;color:#fff}
.tab-btn-list+.tab{border:5px solid #e42021;padding:5px}
/* JS実行前から2つ目以降のタブの中身を非表示にする */
.tab .tablist+.tablist{display:none}
[data-element-id] .tab .tablist+.tablist{display:block}
.top-info .box{padding:30px;border-radius:15px}
.top-info li span{display:inline-block;margin:0 5px 5px 0;padding:3px 5px;font-weight:500;font-size:14px;color:#fff;border-radius:9999px;background:#e42021}
.top-info li .ttl{font-weight:700}
.top-info .js-split-tag{min-height:32px}
.top-info .img{position:relative}
.top-info .img-text{display:flex;justify-content:center;color:#fff;position:absolute;top:18%;left:35%}

/* ===== スライダー（slick）：JS実行前に縦に並ぶのを防ぐ ===== */
/* ※1画面に見せる枚数は slick_option.js の slidesToShow に合わせて調整（PC 3枚／SP 1枚を想定） */
.slick01:not(.slick-initialized){display:flex;overflow:hidden}
.slick01:not(.slick-initialized)>li{flex:0 0 33.333%;min-width:0}
[data-element-id] .slick01:not(.slick-initialized){flex-wrap:wrap;overflow:visible}
[data-element-id] .slick01:not(.slick-initialized)>li{flex:0 0 auto}

/* ===== 2画面目以降：CSSが揃うまで非表示（3秒たっても揃わない場合は強制表示） ===== */
#main > .top-info ~ section,
#footer > :not(.fix-contents){opacity:0;animation:css-fallback 0s 3s forwards}
@keyframes css-fallback{to{opacity:1}}

/* ===== 1024px以下 ===== */
@media (max-width:1024px){
.inner,.inner1200{max-width:768px;width:96%}
.up-d-block\@tb{display:block}
.up-w-100\%\@tb{width:100%}
.up-w-80\%\@tb{width:80%}
.up-mx-auto\@tb{margin-right:auto;margin-left:auto}
.up-mb-30\@tb{margin-bottom:30px}
.up-fz-100\%\@tb{font-size:100%}
.pagettl{padding-right:50px}
.header{padding:5px 0;background:none}
.header .right{display:none}
.openbtn4{display:block}
.totop{bottom:50px;right:10px}
.gnav,.gnav.gnav01{width:100%;max-width:100%;height:100%;display:flex;background:rgba(255,255,255,.9);transition:transform ease .5s;transform:translate3d(0,-100%,0);position:fixed;top:0;right:0}
.gnav.action{transform:translate3d(0,0,0);z-index:250}
.gnav .t-img{width:50%;display:block}
.gnav .t-img img{height:100%;object-fit:cover}
.gnav .wrap{width:50%;overflow:auto;padding-bottom:100px;background:rgba(86,86,86,1)}
.gnav .wrap .logoimg{display:none}
.gnav .navlogo{width:100%;display:block;margin-top:50px;margin-bottom:20px;padding-right:40px;font-weight:700;font-size:20px;text-align:center}
.gnav .item01,.gnav.gnav01 .item01{width:100%;min-height:40px;margin:0 0 10px;text-align:left;border-bottom:#fff dotted 2px;border-left:none}
.gnav .item01 a div,.gnav .item01 .f-ori{font-size:16px}
.gnav .list02{width:100%;visibility:visible;padding-top:0;padding-left:20px;background:none;opacity:1;transform:none;position:relative;top:0;left:0}
.gnav .list02 a{padding:2px 0 2px 20px;position:relative}
.gnav .list02 a:before{content:"";width:10px;height:1px;display:block;background:#fff;position:absolute;top:13px;left:0}
.gnav .item02 a{border-bottom:none;background:none}
.scn-gnav .scn-list01{flex-wrap:wrap}
}

/* ===== 599px以下 ===== */
@media (max-width:599px){
html{font-size:15px}
.area{padding-top:50px;padding-bottom:50px}
.up-d-block\@sp{display:block}
.up-w-100\%\@sp{width:100%}
.up-pt-0\@sp{padding-top:0}
.sp-maxw-360{max-width:360px}
.ttl-s{font-size:30px}
.gnav .t-img{display:none}
.gnav .wrap{width:100%}
.totop{display:none}
.totop.scn-totop{display:block;bottom:90px;right:33px}
.tog-sp{display:block;width:50%;max-width:none}
.tog-sp02{right:auto;left:0}
.tog-sp .con{border-radius:0;display:flex;align-items:center;justify-content:center;height:80px}
.tog-sp .con a{display:flex;width:100%;height:100%;align-items:center;z-index:999}
.tog-sp02 .con{background:#4CAF50}
.pri-5-sp a{padding-right:5px}
.scn-fixbtn-text{text-align:center}
footer .fix-contents{display:none}
.slick01:not(.slick-initialized)>li{flex-basis:100%}
}
