@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/jost-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/jost-latin-500-normal.woff2) format('woff2')}

body{margin:0;background:#FFFFFF;color:#252525;font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","YuGothic","Meiryo",sans-serif;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
h1,h2,h3,h4,p,dl,dd,ul,ol,figure{margin:0}
a{color:#252525}a:hover{color:#8A6500}
button{font-family:inherit}
.en{font-family:'Jost',"Avenir Next",sans-serif;letter-spacing:.02em}
.wrap{width:100%;max-width:1160px;margin:0 auto;padding-left:40px;padding-right:40px}
.ph{background-color:#EDF0F2;background-image:repeating-linear-gradient(135deg,rgba(37,37,37,.04) 0 12px,transparent 12px 24px)}
.phd{background-color:#2F2E2E;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 12px,transparent 12px 24px)}
.nav a{color:#4A4848;text-decoration:none}
.nav a:hover{color:#252525}
.btn{position:relative;overflow:hidden;transition:transform .2s}
.btn::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-20deg)}
.btn:hover::after{animation:sweep .7s ease-out}
.btn:hover{transform:translateY(-1px)}
.card{transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(37,37,37,.08)}
.wire{position:relative;height:2px;background:rgba(255,222,95,.35);overflow:hidden}
.wire::after{content:"";position:absolute;top:0;left:0;width:22%;height:100%;background:linear-gradient(90deg,transparent,#FFDE5F,#FFFFFF,#FFDE5F,transparent);animation:flow 3s linear infinite}
.node{flex:none;width:10px;height:10px;border-radius:50%;background:#FFDE5F;animation:pulse 2.2s ease-out infinite}
@keyframes flow{from{transform:translateX(-100%)}to{transform:translateX(560%)}}
@keyframes sweep{to{left:130%}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,222,95,.8)}70%{box-shadow:0 0 0 12px rgba(255,222,95,0)}100%{box-shadow:0 0 0 0 rgba(255,222,95,0)}}
@media (prefers-reduced-motion:reduce){*,*::after{animation:none !important;transition:none !important}}
@media (max-width:720px){.wrap{padding-left:20px;padding-right:20px}.hide-sp{display:none !important}}

/* ===== 会社資料ボタン：電気がつく ===== */
.pdfbtn{position:relative;overflow:hidden;background:#FFDE5F !important;color:#252525 !important;box-shadow:inset 0 0 0 1.5px #F7B500,0 6px 18px rgba(247,181,0,.4);transition:transform .2s,box-shadow .2s;animation:pdfon 1.6s ease-out .3s both,pdfglow 3.6s ease-in-out 1.9s infinite}
.pdfbtn:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1.5px #F7B500,0 0 0 6px rgba(255,222,95,.35),0 10px 28px rgba(247,181,0,.6)}
.pdfbtn:focus-visible{outline:3px solid #252525;outline-offset:3px}
.pdfbtn .bulb{flex:none;overflow:visible}
.pdfbtn .bglass{fill:#FFFFFF !important;filter:drop-shadow(0 0 3px rgba(255,255,255,.9));animation:bglass 1.6s ease-out .3s both}
.pdfbtn .bray{animation:bray 3.6s ease-in-out 1.9s infinite}
.pdfbtn::before{content:"";position:absolute;top:0;bottom:0;left:-40%;width:30%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.85),transparent);transform:skewX(-20deg);animation:pdfsheen 3.6s ease-in-out 1.9s infinite;pointer-events:none}
@keyframes pdfon{0%{background:#4A4848;color:#FFFFFF;box-shadow:none}12%{background:#FFF1B8;color:#252525;box-shadow:0 0 22px 6px rgba(255,222,95,.9)}18%{background:#4A4848;color:#FFFFFF;box-shadow:none}28%{background:#FFDE5F;color:#252525;box-shadow:0 0 26px 8px rgba(255,222,95,.9)}34%{background:#8A8270;box-shadow:none}48%{background:#FFF6D1;color:#252525;box-shadow:0 0 34px 12px rgba(255,222,95,.95)}100%{background:#FFDE5F;color:#252525;box-shadow:inset 0 0 0 1.5px #F7B500,0 6px 18px rgba(247,181,0,.4)}}
@keyframes bglass{0%{fill:#605E5E}11%{fill:#605E5E}12%{fill:#FFFFFF}17%{fill:#605E5E}28%{fill:#FFFFFF}100%{fill:#FFFFFF}}
@keyframes pdfglow{0%,100%{box-shadow:inset 0 0 0 1.5px #F7B500,0 6px 18px rgba(247,181,0,.4)}50%{box-shadow:inset 0 0 0 1.5px #F7B500,0 0 0 5px rgba(255,222,95,.35),0 0 30px 8px rgba(255,222,95,.75)}}
@keyframes bray{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes pdfsheen{0%,55%{left:-40%}80%,100%{left:130%}}
@media (prefers-reduced-motion:reduce){.pdfbtn,.pdfbtn *,.pdfbtn::before{animation:none !important}}


/*PRSP-START*/
@media (max-width:720px){
.pgrid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:12px !important}
.pgrid .pcap{padding:10px 10px 14px !important;gap:6px !important}
.pgrid .pcap span:last-child{font-size:13px !important;line-height:1.5 !important}
.pgrid .pcap span:first-child{font-size:10px !important;padding:2px 8px !important}
}
/*PRSP-END*/
/*RSP-START*/
/* ===== タブレット・スマホ最適化（共通） ===== */
html{-webkit-text-size-adjust:100%}
img{max-width:100%}
.spc,.spbar,.sp-br{display:none}
.more{display:inline-flex;align-items:center;min-height:44px}
@media (max-width:960px){
  .wrap{padding-left:28px !important;padding-right:28px !important}
  .hd{position:sticky !important;top:0;z-index:100 !important;box-shadow:0 1px 0 rgba(37,37,37,.06)}
  .hd::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,rgba(255,222,95,.2),#FFDE5F,rgba(255,222,95,.2))}
  .hd-top{flex-wrap:nowrap !important;gap:12px !important;min-height:68px;padding-top:10px !important;padding-bottom:10px !important}
  .hd-top > a{gap:10px !important;min-width:0}
  .hd-top > a img{height:44px !important}
  .hd-top > a > span:nth-of-type(1){font-size:15px !important;letter-spacing:.1em !important}
  .hd-top > a > span:nth-of-type(2){display:none !important}
  .hd-act,.hd-nav{display:none !important}
  .spc{display:flex;align-items:center;gap:10px;flex:none}
  .spc-tel{width:48px;height:48px;border-radius:50%;border:1px solid #DBDBDB;display:flex;align-items:center;justify-content:center;background:#FFFFFF}
  .spc-tel:active{background:#FFF6D1}
  .spm{position:static}
  .spm > summary{list-style:none;position:relative;z-index:3;width:48px;height:48px;border-radius:50%;background:#FFDE5F;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(247,181,0,.35)}
  .spm > summary::-webkit-details-marker{display:none}
  .spm > summary:focus-visible{outline:3px solid #252525;outline-offset:3px}
  .bars{position:relative;width:20px;height:14px;display:block}
  .bars i{position:absolute;left:0;width:20px;height:2px;border-radius:2px;background:#252525;transition:transform .3s,opacity .2s,top .3s}
  .bars i:nth-child(1){top:0}.bars i:nth-child(2){top:6px}.bars i:nth-child(3){top:12px}
  .spm[open] .bars i:nth-child(1){top:6px;transform:rotate(45deg)}
  .spm[open] .bars i:nth-child(2){opacity:0}
  .spm[open] .bars i:nth-child(3){top:6px;transform:rotate(-45deg)}
  .spm-panel{position:fixed;inset:0;z-index:2;background:#242323;color:#FFFFFF;display:flex;flex-direction:column;animation:spmdrop .34s ease-out}
  .spm-head{height:68px;flex:none;display:flex;align-items:center;gap:10px;padding:0 28px;font-size:12px;letter-spacing:.3em;color:#FFDE5F}
  .spm-nav{flex:1;overflow-y:auto;padding:8px 28px;-webkit-overflow-scrolling:touch}
  .spm-nav ul{list-style:none;margin:0;padding:0}
  .spm-nav li{border-bottom:1px solid #3D3B3B;opacity:0;animation:spmrise .4s ease-out forwards}
  .spm-nav li:nth-child(2){animation-delay:.04s}.spm-nav li:nth-child(3){animation-delay:.08s}.spm-nav li:nth-child(4){animation-delay:.12s}.spm-nav li:nth-child(5){animation-delay:.16s}.spm-nav li:nth-child(6){animation-delay:.2s}.spm-nav li:nth-child(7){animation-delay:.24s}.spm-nav li:nth-child(8){animation-delay:.28s}
  .spm-nav a.item{display:flex;align-items:center;gap:12px;min-height:60px;padding:0 4px;color:#FFFFFF;text-decoration:none}
  .spm-nav a.item:active{background:rgba(255,222,95,.12)}
  .spm-nav a[aria-current="page"] .spm-jp{color:#FFDE5F}
  .spm-jp{font-size:17px;font-weight:700}
  .spm-en{flex:1;font-size:11px;letter-spacing:.14em;color:#BDBDBD}
  .spm-foot{flex:none;padding:16px 28px calc(22px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;border-top:1px solid #3D3B3B}
  .spm-tel{display:flex;align-items:center;justify-content:center;gap:10px;min-height:60px;background:#FFDE5F;color:#252525 !important;border-radius:999px;text-decoration:none;font-weight:700;font-size:13px}
  .spm-tel .en{font-size:26px;font-weight:500}
  .spm-foot p{font-size:11px;line-height:1.7;color:#BDBDBD;text-align:center;margin:0}
  .spm-pdf{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:999px;text-decoration:none;font-size:13px;font-weight:700}
  .spm-pdf.pdfbtn{background:transparent !important;color:#FFFFFF !important;box-shadow:inset 0 0 0 1px #5C5A58 !important;animation:none !important}
  .spm-pdf.pdfbtn::before{display:none}
  .spm-pdf .bray,.spm-pdf path{stroke:#FFDE5F !important}
  .spm-pdf .bglass{fill:transparent !important;filter:none !important}
  body:has(.spm[open]){overflow:hidden}
  nav[aria-label="フッターメニュー"]{gap:0 32px !important}
  nav[aria-label="フッターメニュー"] a{display:flex;align-items:center;min-height:44px}
  .qnav button{min-height:44px}
  @keyframes spmdrop{from{clip-path:circle(0 at calc(100% - 52px) 34px)}to{clip-path:circle(150% at calc(100% - 52px) 34px)}}
  @keyframes spmrise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}
@media (max-width:720px){
  .wrap{padding-left:20px !important;padding-right:20px !important}
  .hd-top > a img{height:40px !important}
  .hd-top > a > span:nth-of-type(1){font-size:14px !important}
  .spm-head,.spm-nav,.spm-foot{padding-left:20px;padding-right:20px}
  .sp-br{display:inline}
  .spbar{display:grid;grid-template-columns:1.25fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:90;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 -6px 20px rgba(37,37,37,.08)}
  .spbar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:999px;text-decoration:none;font-weight:700;font-size:14px;color:#252525}
  .spbar-tel{background:#252525;color:#FFFFFF !important}
  .spbar-tel svg{stroke:#FFDE5F}
  footer{padding-bottom:84px}
  .sh-fixcall{display:none !important}
}
@media (prefers-reduced-motion:reduce){.spm-panel,.spm-nav li{animation:none !important;opacity:1 !important}}
/*RSP-END*/
/*PERF-START*/
/* ===== 最終チェック：パフォーマンス・アクセシビリティ調整 =====
   ・ずっと動き続けるアニメーションは transform / opacity だけで動かす（GPU処理で軽い）
   ・光る・影が広がるなど重い装飾は回数を限定して、最後は「点灯した状態」で止める */
.skip{position:absolute;left:12px;top:-60px;z-index:200;padding:12px 18px;background:#252525;color:#FFFFFF !important;border-radius:8px;font-weight:700;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
:focus-visible{outline:3px solid #252525;outline-offset:2px}
.node{position:relative;animation:none !important}
.node::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(255,222,95,.85);animation:pulse2 2.2s ease-out infinite;pointer-events:none}
@keyframes pulse2{0%{transform:scale(1);opacity:.85}70%,100%{transform:scale(2.6);opacity:0}}
.pdfbtn{animation:pdfon 1.6s ease-out .3s both,pdfglow 3.6s ease-in-out 1.9s 2 !important}
.pdfbtn .bray{animation-iteration-count:2 !important}
.pdfbtn::before{left:0 !important;transform:translateX(-160%) skewX(-20deg);animation:pdfsheen2 3.6s ease-in-out 1.9s 2 !important}
@keyframes pdfsheen2{0%,55%{transform:translateX(-160%) skewX(-20deg)}80%,100%{transform:translateX(420%) skewX(-20deg)}}
.mspark{left:0 !important;right:auto !important;width:100% !important;background:linear-gradient(90deg,transparent 44%,#FFDE5F 47%,#F7B500 50%,transparent 53%) !important;animation:mspark2 2.8s linear infinite !important}
.mspark.r{animation:mspark2 2.2s ease-in infinite !important}
.mspark.lft{animation:msparkl2 2.2s ease-in infinite !important}
@keyframes mspark2{from{transform:translateX(-56%)}to{transform:translateX(56%)}}
@keyframes msparkl2{from{transform:translateX(56%)}to{transform:translateX(-56%)}}
.mjoint,.glow-word,.qlamp,.sun,.hxbulb,.bulb2,.hx-tap,.osbulb,.osline,.osspark{animation-iteration-count:4 !important}
.st-flow{left:0 !important;width:100% !important;background:linear-gradient(90deg,transparent 45%,#FFFFFF 50%,transparent 55%) !important;animation:stflow2 1.6s linear infinite,stflowv 14s linear 4 !important}
@keyframes stflow2{from{transform:translateX(-56%)}to{transform:translateX(56%)}}
.st-fill,.st-icon,.st-text,.st-node,.st-icon .lamp,.st-icon .cone,.st-icon .wave,.c1,.c2{animation-iteration-count:4 !important}
.st-icon,.st-text{filter:none !important}
.st-node{box-shadow:0 0 0 2px #F7B500 !important}
.os-wire span{left:0 !important;width:100% !important;background:linear-gradient(90deg,transparent 42%,#F7B500 46%,#FFFFFF 50%,#F7B500 54%,transparent 58%) !important;animation:oswire2 3s linear infinite !important}
@keyframes oswire2{from{transform:translateX(-58%)}to{transform:translateX(58%)}}
.hx .fl{animation-play-state:paused}
.hx.s1 .f1,.hx.s2 .f1,.hx.s2 .f3,.hx.s2 .f4,.hx.s2 .f5,.hx.s3 .f3,.hx.s4 .f4,.hx.s5 .f5,.hx.s6 .f6{animation-play-state:running}
.hx-hot.on .hx-no{color:#252525}
.qrow.on .qno{color:#8A6500 !important}
/* WordPress実装時：画面外のセクションのアニメーションを止める（html に .io クラスを付ける小さなJSとセット） */
html.io section:not(.in-view) *:not(.rv),html.io section:not(.in-view) *::before,html.io section:not(.in-view) *::after{animation-play-state:paused !important}
@media (max-width:960px){
  html{scroll-padding-top:84px}
  .pnav{top:68px !important}
  .st-flow{top:0 !important;left:0 !important;right:0 !important;width:auto !important;height:100% !important;background:linear-gradient(180deg,transparent 45%,#FFFFFF 50%,transparent 55%) !important;animation:stflowy2 1.6s linear infinite,stflowv 14s linear 4 !important}
  @keyframes stflowy2{from{transform:translateY(-56%)}to{transform:translateY(56%)}}
  .os-wire span{top:0 !important;left:0 !important;right:0 !important;width:auto !important;height:100% !important;background:linear-gradient(180deg,transparent 42%,#F7B500 46%,#FFFFFF 50%,#F7B500 54%,transparent 58%) !important;animation:oswirey2 3s linear infinite !important}
  @keyframes oswirey2{from{transform:translateY(-58%)}to{transform:translateY(58%)}}
}
@media (max-width:720px){
  html{scroll-padding-bottom:96px}
  .spbar{-webkit-backdrop-filter:none !important;backdrop-filter:none !important;background:#FFFFFF !important}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important}}
/*PERF-END*/

/* WordPress additions */
.nav a[aria-current="page"]{color:#252525;font-weight:700}
.qinline[hidden],.hx-sr,.flow-night[hidden],.flow-day[hidden]{display:none !important}
.sr,.hx-sr{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
body.admin-bar .hd{top:var(--wp-admin--admin-bar--height,0)}

.wf-btn{min-height:46px;padding:0 22px;border:1px solid #DBDBDB;background:#FFFFFF;color:#252525;font:inherit;font-size:14px;font-weight:700;border-radius:999px;cursor:pointer}
.wf-btn[aria-pressed="true"]{border-color:#252525;background:#252525;color:#FFFFFF}
.pgrid > figure[hidden]{display:none !important}
body.menu-open{overflow:hidden}
.entry a{color:#8A6500}
@media (max-width:960px){.spm-foot p,.spm-en{font-size:12px}}
.pgrid figure span[style*="font-size: 11px"]{font-size:12px !important}
