/* 株式会社総合電設（Wix版の配色：紺 #013976・黄 #f4c400／書体：Noto Serif JP・Noto Sans JP・Anton を踏襲） */
:root{
 --navy:#013976;--navy2:#00316a;--navy-d:#002552;--ink:#001c3f;--yel:#f4c400;--yel-d:#9a7800;--gold:#c89f00;
 --pale:#f0f3fa;--txt:#1d2a44;--sub:#56627a;--line:#d5dbe7;
 --serif:'Noto Serif JP',serif;--sans:'Noto Sans JP',sans-serif;--en:'Montserrat',sans-serif;--an:'Anton',sans-serif;
 --ease:cubic-bezier(.22,.8,.24,1);--hd:92px;--w:1160px;
}
@media (min-width:1600px){:root{--w:1320px}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hd) + 8px)}
body{margin:0;background:#fff;color:var(--txt);font-family:var(--serif);font-size:15.5px;line-height:2;letter-spacing:.04em;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
.in{width:min(var(--w),100% - 48px);margin-inline:auto}
.narrow{width:min(880px,100% - 48px)}
.nb{display:inline-block}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:8px 14px;z-index:999}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--yel);outline-offset:3px}
.sp{display:none}
@media (max-width:767px){.pc{display:none}.sp{display:inline}}

/* ---- ボタン ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-width:270px;padding:17px 30px;font-family:var(--sans);font-size:14.5px;font-weight:700;letter-spacing:.08em;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.btn .arr{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-y{background:var(--yel);color:var(--navy);border-color:var(--yel)}
.btn-y:hover{background:#fff;border-color:#fff}
.btn-n{background:var(--navy);color:var(--yel)}
.btn-n:hover{background:var(--ink)}
.btn-o{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-o:hover{background:var(--navy);color:#fff}
@media (max-width:640px){.btn{display:flex;width:100%;min-width:0}}

/* ---- ロゴ（Wix のマーク＋社名） ---- */
.hd-brand,.ft-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:#fff}
.mk{width:48px;height:auto;flex:none;--mk-b:#4a7fd6;--mk-g:#f0bd00}
.br-t{display:flex;flex-direction:column;line-height:1.25}
.br-ja{font-family:var(--serif);font-weight:700;font-size:22px;letter-spacing:.08em}
.br-en{font-family:var(--en);font-weight:600;font-size:10.5px;letter-spacing:.2em;color:var(--yel);margin-top:3px}

/* ---- ヘッダー ---- */
.hd{position:fixed;inset:0 0 auto;z-index:100;height:var(--hd);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 clamp(16px,3.6vw,64px);color:#fff;transition:height .35s var(--ease),background .35s}
.hd.sc{height:72px;background:rgba(0,37,82,.94);box-shadow:0 6px 24px rgba(0,20,50,.25)}
@supports (backdrop-filter:blur(1px)){.hd.sc{background:rgba(0,37,82,.82);backdrop-filter:blur(10px)}}
.hd-nav ul{display:flex;gap:clamp(18px,2.2vw,36px)}
.hd-nav a{position:relative;display:block;padding:8px 0;font-family:var(--sans);font-size:14.5px;font-weight:500;letter-spacing:.06em;text-decoration:none;transition:color .25s}
.hd-nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--yel);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.hd-nav a:hover,.hd-nav a[aria-current]{color:var(--yel)}
.hd-nav a:hover::after,.hd-nav a[aria-current]::after{transform:none}
.hd-btn{display:none;position:relative;z-index:2;width:48px;height:48px;border:0;background:transparent;color:var(--yel);cursor:pointer;padding:0}
.hb{display:grid;gap:7px;width:30px;margin:auto}
.hb i{display:block;height:2.5px;background:currentColor;transition:transform .3s,opacity .3s}
.hd-btn[aria-expanded=true] .hb i:nth-child(1){transform:translateY(9.5px) rotate(45deg)}
.hd-btn[aria-expanded=true] .hb i:nth-child(2){opacity:0}
.hd-btn[aria-expanded=true] .hb i:nth-child(3){transform:translateY(-9.5px) rotate(-45deg)}
.drawer{position:fixed;inset:0;z-index:90;background:var(--navy-d);color:#fff;padding:calc(var(--hd) + 24px) 28px 40px;overflow:auto}
.drawer ul{border-top:1px solid rgba(255,255,255,.18)}
.drawer li a{display:block;padding:18px 4px;border-bottom:1px solid rgba(255,255,255,.18);font-family:var(--sans);font-size:17px;font-weight:700;letter-spacing:.08em;text-decoration:none}
.drawer-info{margin-top:28px;font-family:var(--sans);font-size:13px;line-height:2;opacity:.8}
@media (max-width:1000px){.hd-nav{display:none}.hd-btn{display:block}}
@media (max-width:640px){:root{--hd:68px}.hd.sc{height:60px}.mk{width:min(44px,12vw)}.br-ja{font-size:min(19.5px,5.3vw)}.br-en{font-size:min(9px,2.5vw);letter-spacing:.14em}.hd-btn{width:44px;height:44px}}

/* ---- トップ：ヒーロー ---- */
.hero{position:relative;min-height:max(100svh,680px);display:flex;align-items:center;overflow:hidden;color:#fff;background:var(--navy)}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;animation:herozoom 14s ease-out both}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,34,80,.82) 0%,rgba(1,50,108,.6) 45%,rgba(1,57,118,.32) 100%),rgba(1,57,118,.18)}
@keyframes herozoom{from{transform:scale(1.08)}to{transform:none}}
.hero-circuit{position:absolute;inset:0;width:100%;height:100%;stroke:rgba(255,255,255,.45);stroke-width:1.3;animation:fadein 1.6s ease .8s both}
.hero-circuit .spk{stroke-width:2.2}
.hero-circuit circle{fill:rgba(244,196,0,.85)}
.hc-sp{display:none}
@media (max-width:640px){.hc-pc{display:none}.hc-sp{display:block}}
@keyframes fadein{from{opacity:0}}
.hero-mk{position:absolute;right:clamp(-40px,2vw,60px);top:52%;width:min(48vw,700px);height:auto;transform:translateY(-50%);--mk-b:#1f4fa6;--mk-g:#e2b400;opacity:.92;animation:heromk 1.6s var(--ease) .3s both}
@keyframes heromk{from{opacity:0;transform:translateY(-46%) rotate(-8deg) scale(.94)}to{opacity:.92;transform:translateY(-50%)}}
.hero-in{position:relative;z-index:2;padding:calc(var(--hd) + 40px) 0 90px}
.hero-sub{font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:.24em;color:var(--yel);margin-bottom:14px;animation:up .9s var(--ease) .2s both}
.hero-sub span::before{content:"— "}.hero-sub span::after{content:" —"}
.hero-en{display:flex;flex-direction:column;font-family:var(--sans);font-weight:900;font-size:clamp(50px,8.6vw,138px);line-height:.98;letter-spacing:.015em;color:#f6f2e9}
.hero-en span{display:block;animation:up 1s var(--ease) both}
.hero-en span:nth-child(1){animation-delay:.3s}.hero-en span:nth-child(2){animation-delay:.42s}.hero-en span:nth-child(3){animation-delay:.54s}
.hero-en .y{color:var(--yel)}
.hero-catch{margin-top:22px;font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.6vw,38px);letter-spacing:.3em;line-height:1.6;animation:up 1s var(--ease) .75s both}
.hero-catch::after{content:"";display:block;width:80px;height:1px;background:var(--yel);margin-top:22px}
.hero-lead{margin:24px 0 34px;font-size:15px;line-height:2.25;letter-spacing:.08em;text-shadow:0 1px 10px rgba(0,20,50,.5);animation:up 1s var(--ease) .9s both}
.hero .btn{animation:up 1s var(--ease) 1.05s both}
@keyframes up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.hero-scroll{position:absolute;right:clamp(16px,3vw,48px);bottom:0;z-index:2;display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--en);font-size:9.5px;font-weight:600;letter-spacing:.3em;text-decoration:none;color:#fff}
.hero-scroll::after{content:"";width:1px;height:72px;background:linear-gradient(var(--yel),var(--yel)) 0 0/1px 0 no-repeat,rgba(255,255,255,.4);animation:scl 2.2s ease-in-out infinite}
@keyframes scl{0%{background-size:1px 0;background-position:0 0}50%{background-size:1px 100%;background-position:0 0}100%{background-size:1px 0;background-position:0 100%}}
@media (max-width:900px){.hero-mk{width:120vw;left:-24vw;right:auto;top:calc(50% - 44vw);transform:none;opacity:.85;animation-name:heromksp}.hero-bg::after{background:linear-gradient(180deg,rgba(0,34,80,.42) 0%,rgba(1,50,108,.5) 60%,rgba(0,34,80,.72) 100%)}}
@media (max-width:379px){.hero-lead br{display:none}}
@keyframes heromksp{from{opacity:0;transform:rotate(-8deg) scale(.94)}to{opacity:.85;transform:none}}
@media (max-width:640px){.hero{min-height:max(100svh,600px)}.hero-mk{width:170vw;left:-30vw;top:calc(50% - 62vw)}.hero .in{width:calc(100% - 32px)}.hero-in{padding-bottom:84px}.hero-sub{font-size:min(12px,3.45vw);letter-spacing:.12em;margin-bottom:8px}.hero-en{font-size:12.4vw;line-height:.96}.hero-catch{margin-top:14px;font-size:4.5vw;letter-spacing:.14em}.hero-catch::after{width:56px;margin-top:14px}.hero-lead{margin:16px 0 26px;font-size:max(12.5px,3.1vw);line-height:2;letter-spacing:0}.hero-scroll{display:none}}

/* ---- 流れる帯 ---- */
.marq{background:var(--yel);color:var(--navy);overflow:hidden;padding:13px 0;font-family:var(--sans);font-weight:700;font-size:15px;letter-spacing:.12em;white-space:nowrap}
.marq-t{display:flex;width:max-content;animation:marq 48s linear infinite}
.marq-t span{padding:0 34px;position:relative}
.marq-t span::after{content:"";position:absolute;right:-3px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--navy);transform:translateY(-50%)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---- セクション共通 ---- */
.sec{padding:120px 0;position:relative}
.sec-navy{background:var(--navy);color:#fff}
.sec-pale{background:var(--pale)}
.sh{display:flex;align-items:flex-end;gap:16px;margin-bottom:52px}
.sh-no{font-family:var(--en);font-weight:500;font-size:68px;line-height:.8;color:transparent;-webkit-text-stroke:1.2px var(--yel)}
.sh-t{display:flex;flex-direction:column}
.sh-ja{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.24em;color:var(--yel);line-height:1.6}
.sh-en{font-family:var(--an);font-size:clamp(40px,4.6vw,58px);line-height:1;letter-spacing:.02em;margin-top:4px}
.sec-pale .sh-ja{color:var(--yel-d)}
.sec-pale .sh-en{color:var(--navy)}
@media (max-width:640px){.sec{padding:84px 0}.sh{margin-bottom:38px}.sh-no{font-size:50px}}

/* ---- トップ：会社紹介 ---- */
.tco{padding-bottom:clamp(170px,17vw,260px);overflow:hidden}
.tco::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:clamp(140px,15vw,230px);background:#fff;clip-path:polygon(0 72%,100% 0,100% 100%,0 100%)}
.tco-in{display:grid;grid-template-columns:1fr 1.08fr;gap:clamp(36px,5vw,80px);align-items:start}
.tco-txt>p{color:rgba(255,255,255,.92);margin-bottom:1.3em}
.tco-txt .btn{margin-top:14px}
.tco-pics{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:6px}
.tco-pics figure{overflow:hidden}
.tco-pics img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.tco-pics figure:hover img{transform:scale(1.04)}
.tco-p1,.tco-p2{aspect-ratio:4/3}
.tco-p3{grid-column:1/-1;aspect-ratio:16/8}
.tco-wm{position:absolute;right:clamp(16px,4vw,64px);bottom:clamp(6px,1vw,18px);z-index:1;font-family:var(--sans);font-weight:900;font-size:clamp(56px,9.6vw,150px);line-height:1;letter-spacing:.01em;color:var(--navy)}
@media (max-width:900px){.tco-in{grid-template-columns:1fr}}

/* ---- トップ：事業内容 ---- */
.tbz{background:var(--navy2)}
.tbz-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tbz-card{position:relative;display:flex;flex-direction:column;height:100%;min-height:290px;padding:34px 30px 28px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:#fff;text-decoration:none;transition:background .35s,border-color .35s}
.tbz-card:hover{background:rgba(255,255,255,.11);border-color:rgba(244,196,0,.6)}
.tbz-card .ic{width:30px;height:30px;fill:none;stroke:var(--yel);stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}
.tbz-no{position:absolute;right:26px;top:20px;font-family:var(--en);font-weight:500;font-size:52px;line-height:1;color:transparent;-webkit-text-stroke:1px var(--yel);opacity:.85}
.tbz-card h3{margin-top:22px;font-size:19px;font-weight:700;line-height:1.5;letter-spacing:.06em}
.tbz-en{font-family:var(--en);font-size:10px;font-weight:600;letter-spacing:.16em;color:var(--yel);margin-top:4px}
.tbz-txt{flex:1;margin-top:14px;font-size:13.5px;line-height:1.95;color:rgba(255,255,255,.84)}
.tbz-go{align-self:flex-end;display:grid;place-items:center;width:32px;height:32px;margin-top:16px;border:1px solid var(--yel);color:var(--yel);transition:background .3s,color .3s}
.tbz-go .arr{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}
.tbz-card:hover .tbz-go{background:var(--yel);color:var(--navy)}
.tbz-all{align-items:center;justify-content:center;text-align:center;background:rgba(0,0,0,.14)}
.tbz-all-en{font-family:var(--an);font-size:44px;line-height:1.05;letter-spacing:.03em;color:var(--yel)}
.tbz-all-ja{font-family:var(--sans);font-size:12.5px;font-weight:500;letter-spacing:.12em;margin-top:12px}
.tbz-all .tbz-go{align-self:center}
@media (max-width:1000px){.tbz-list{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.tbz-list{grid-template-columns:1fr}.tbz-card{min-height:0}}

/* ---- CONTACT US（黄色の帯） ---- */
.cband{position:relative;overflow:hidden;background:var(--yel);color:var(--navy);text-align:center;padding:110px 0 100px}
.cband-wm{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);font-family:var(--an);font-size:clamp(150px,24vw,380px);line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(1,57,118,.12);white-space:nowrap;pointer-events:none}
.cband-in{position:relative}
.cband .sh-ja{color:var(--navy);letter-spacing:.32em;font-size:12.5px}
.cband-en{font-family:var(--an);font-size:clamp(64px,8.2vw,116px);line-height:.98;letter-spacing:.02em;margin-top:6px}
.cband-lead{margin:26px auto 22px;font-weight:600;font-size:15px;line-height:2.05}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags li{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.04em;line-height:1.6;padding:3px 11px;border:1px solid var(--yel);color:var(--yel)}
.tags-n{justify-content:center;gap:8px;margin-bottom:34px}
.tags-n li{background:rgba(1,57,118,.09);border-color:transparent;color:var(--navy);padding:5px 14px}
.cband-info{display:flex;justify-content:center;gap:48px;margin-top:38px;text-align:left}
.cband-info dt{font-family:var(--en);font-size:11px;font-weight:600;letter-spacing:.22em;opacity:.65}
.cband-info dd{font-weight:700;font-size:14.5px;line-height:1.75;margin-top:4px}
@media (max-width:640px){.cband{padding:80px 0 76px}.cband-info{flex-direction:column;align-items:center;gap:20px;text-align:center}.cband-lead{font-size:14px}}

/* ---- フッター ---- */
.ft{background:var(--ink);color:#fff;padding:70px 0 26px}
.ft-in{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.ft-co address{font-style:normal;font-size:13.5px;line-height:2.1;margin-top:20px;opacity:.85}
.ft-nav{display:flex;gap:clamp(36px,6vw,90px)}
.ft-h{font-family:var(--en);font-size:10.5px;font-weight:600;letter-spacing:.24em;color:var(--yel);margin-bottom:10px}
.ft-nav li a{display:inline-block;padding:7px 0;font-family:var(--sans);font-size:13.5px;text-decoration:none;opacity:.88}
.ft-nav li a:hover{color:var(--yel);opacity:1}
.ft-copy{margin-top:56px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);text-align:center;font-family:var(--en);font-size:11px;letter-spacing:.14em;opacity:.6}
@media (max-width:640px){.ft-nav{width:100%;gap:28px}.ft-nav>div{flex:1}}

/* ---- 下層ページの見出し ---- */
.ph{position:relative;overflow:hidden;background:linear-gradient(180deg,#003e82 0%,var(--navy-d) 100%);color:#fff;padding:calc(var(--hd) + 48px) 0 110px}
.ph-circuit{position:absolute;right:0;top:0;width:66%;height:100%}
/* 回路の点線（下層見出し・トップのヒーロー共通）：点線は常に流れ、線の上を黄色い光が走る（電気が流れるイメージ） */
.circuit{fill:none;stroke:rgba(255,255,255,.16);stroke-width:1;stroke-dasharray:4 6;pointer-events:none}
.circuit circle{fill:rgba(244,196,0,.55);stroke:none;transform-box:fill-box;transform-origin:center;animation:cdot 2.4s ease-in-out var(--dl,0s) infinite}
.circuit .ln{animation:cflow 1.2s linear infinite}
.circuit .spk{stroke:var(--yel);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:7 193;filter:drop-shadow(0 0 3px rgba(244,196,0,.9));animation:cspark var(--du,5s) linear var(--dl,0s) infinite}
@keyframes cflow{to{stroke-dashoffset:-20}}
@keyframes cspark{from{stroke-dashoffset:200}to{stroke-dashoffset:0}}
@keyframes cdot{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.7)}}
.ph-wm{position:absolute;right:-.06em;bottom:-.2em;font-family:var(--sans);font-weight:700;font-size:clamp(90px,14vw,210px);line-height:1;letter-spacing:.02em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.13);white-space:nowrap;pointer-events:none}
.ph-in{position:relative}
.crumb ol{display:flex;flex-wrap:wrap;gap:4px 0;font-family:var(--sans);font-size:12.5px;letter-spacing:.06em}
.crumb li{opacity:.85}
.crumb li+li::before{content:">";margin:0 10px;opacity:.6}
.crumb a{display:inline-block;padding:4px 0;text-decoration:none}
.crumb a:hover{color:var(--yel)}
.ph-ja{margin-top:26px;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.3em;color:var(--yel)}
.ph-en{font-family:var(--sans);font-weight:700;font-size:clamp(52px,8vw,112px);line-height:1.05;letter-spacing:.02em;color:#f6f2e9;margin-top:6px}
.ph-line{display:block;width:60px;height:1px;background:var(--yel);margin:24px 0}
.ph-lead{max-width:600px;font-size:15px;line-height:2.2;color:rgba(255,255,255,.92)}
.ph-sub{position:relative;margin-top:70px;border-top:1px solid rgba(255,255,255,.5);margin-bottom:-110px;background:rgba(0,30,70,.4)}
.ph-sub ul{display:flex;flex-wrap:wrap;width:min(var(--w),100% - 48px);margin:auto}
.ph-sub a{display:block;padding:14px 26px 14px 0;margin-right:22px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--yel);text-decoration:none;letter-spacing:.06em}
.ph-sub a span{margin-right:6px;font-family:var(--en);font-weight:600}
.ph-sub a:hover{color:#fff}
@media (max-width:640px){.ph{padding-bottom:84px}.ph-sub{margin-bottom:-84px}.ph-sub ul{display:grid;grid-template-columns:1fr 1fr}.ph-sub a{padding:12px 0;margin:0;font-size:12px}.ph-lead{font-size:14px}}

/* ---- 会社概要 ---- */
.greet-lb{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.24em;color:var(--yel-d)}
.greet-h{margin:12px 0 30px;font-size:clamp(22px,2.6vw,32px);font-weight:700;color:var(--navy);letter-spacing:.08em;line-height:1.6}
.greet-txt p{margin-bottom:1.2em;line-height:2.15}
.info-tb>div{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:20px 8px;border-top:1px solid rgba(255,255,255,.3)}
.info-tb>div:last-child{border-bottom:1px solid rgba(255,255,255,.3)}
.info-tb dt{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--yel);letter-spacing:.1em}
.info-tb dd{font-size:15px;line-height:1.9}
.info-tb a{display:inline-block;padding:3px 0;text-decoration-color:rgba(244,196,0,.7);text-underline-offset:4px}
.info-tb a:hover{color:var(--yel)}
.access{display:grid;grid-template-columns:1fr 1fr;height:clamp(320px,34vw,480px)}
.access-map iframe{display:block;width:100%;height:100%;border:0;filter:saturate(.85)}
.access-img{position:relative;overflow:hidden}
.access-img img{width:100%;height:100%;object-fit:cover}
.access-img figcaption{position:absolute;left:0;bottom:0;background:var(--navy);color:#fff;font-family:var(--sans);font-size:12.5px;padding:8px 16px}
.str-list{display:grid;grid-template-columns:repeat(3,1fr);background:var(--navy-d);border:1px solid rgba(255,255,255,.1)}
.str-list li{padding:44px 36px 46px;border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.str-list li:nth-child(3n){border-right:0}
.str-list li:nth-last-child(-n+3){border-bottom:0}
.str-no{display:block;font-family:var(--en);font-weight:400;font-size:40px;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.75)}
.str-list h3{margin:16px 0 14px;font-size:19px;font-weight:700;line-height:1.55;letter-spacing:.06em}
.str-list p{font-size:14px;line-height:2;color:rgba(255,255,255,.85)}
@media (max-width:1000px){.str-list{grid-template-columns:1fr 1fr}.str-list li:nth-child(n){border-right:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.str-list li:nth-child(2n){border-right:0}.str-list li:nth-last-child(-n+2){border-bottom:0}}
@media (max-width:640px){.info-tb>div{grid-template-columns:1fr;gap:4px;padding:16px 4px}.access{grid-template-columns:1fr;height:auto}.access-map{height:300px}.access-img{aspect-ratio:4/3}.str-list{grid-template-columns:1fr}.str-list li:nth-child(n){border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}.str-list li:last-child{border-bottom:0}.str-list li{padding:34px 26px}}

/* ---- 対応エリア／安全・品質（2枚の青いパネル） ---- */
.as{padding:70px 0}
.as-in{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:min(1400px,100% - 48px);margin:auto}
.as-box{background:var(--navy);color:#fff;padding:56px clamp(28px,4vw,60px)}
.as-en{font-family:var(--en);font-size:10.5px;font-weight:600;letter-spacing:.24em;color:var(--yel)}
.as-h{margin:6px 0 22px;font-family:var(--sans);font-size:clamp(22px,2.4vw,30px);font-weight:700;letter-spacing:.06em;line-height:1.5}
.dash li{position:relative;padding-left:20px;font-size:14.5px;line-height:2.1;color:rgba(255,255,255,.9)}
.dash li::before{content:"";position:absolute;left:0;top:1.05em;width:10px;height:1px;background:var(--yel)}
.as-note{margin-top:14px;font-family:var(--sans);font-size:12.5px;font-weight:700}
@media (max-width:767px){.as-in{grid-template-columns:1fr;width:calc(100% - 32px)}.as-box{padding:42px 22px}.dash li{font-size:14px}}

/* ---- 事業内容 ---- */
.bzi{display:grid;grid-template-columns:1fr 1fr}
.bzi-l{background:var(--pale);padding:100px clamp(24px,5vw,80px) 90px max(24px,calc((100vw - var(--w)) / 2))}
.bzi-h{font-size:clamp(20px,2.1vw,27px);font-weight:700;line-height:1.75;letter-spacing:.06em;color:var(--navy);margin-bottom:22px}
.bzi-h em{font-style:normal;color:var(--yel-d)}
.bzi-l>p{line-height:2.1}
.bzi-tl{margin:26px 0 10px;font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.14em;color:var(--sub)}
.tags-y li{border-color:var(--yel-d);color:var(--yel-d);background:#fff}
.bzi-r{padding:100px max(24px,calc((100vw - var(--w)) / 2)) 90px clamp(24px,5vw,80px);border-left:2px solid var(--yel);align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.bzi-r li{display:flex;gap:18px;padding:13px 0;border-bottom:1px solid var(--line);color:var(--navy);font-size:15px;line-height:1.8}
.bzi-r li span{font-family:var(--en);font-weight:700;color:var(--yel-d);flex:none}
.bz{display:grid;grid-template-columns:minmax(300px,30%) 1fr;background:var(--navy);color:#fff;scroll-margin-top:72px}
.bz-side{position:relative;padding:72px clamp(24px,3.4vw,56px) 64px max(24px,calc((100vw - var(--w)) / 2))}
.bz-w .bz-side{background:#fff;color:var(--navy)}
.bz-ic{display:block;width:56px;height:56px;margin:0 0 22px auto;fill:none;stroke:var(--yel);stroke-width:1;stroke-linejoin:round;stroke-linecap:round}
.bz-w .bz-ic{stroke:var(--gold)}
.bz-lb{display:flex;align-items:center;gap:10px;font-family:var(--en);font-size:10.5px;font-weight:600;letter-spacing:.24em;color:var(--yel)}
.bz-lb span{display:inline-block;background:var(--yel);color:var(--navy);padding:5px 12px;letter-spacing:.06em}
.bz-w .bz-lb{color:var(--yel-d)}
.bz-h{margin:18px 0 12px;font-size:clamp(28px,2.8vw,38px);font-weight:700;line-height:1.35;letter-spacing:.06em}
.bz-en{font-family:var(--en);font-size:13.5px;font-weight:600;letter-spacing:.24em;line-height:1.65;color:var(--yel)}
.bz-w .bz-en{color:var(--yel-d)}
.bz-desc{margin:14px 0 26px;font-size:14.5px;line-height:2.15;opacity:.92}
.bz-img{overflow:hidden;max-width:320px;aspect-ratio:3/2}
.bz-img img{width:100%;height:100%;object-fit:cover}
.bz-rows{background:var(--navy2);padding:10px 0}
.bz-w .bz-rows{background:var(--navy)}
.bz-row{display:grid;grid-template-columns:34px 1fr;column-gap:18px;padding:38px clamp(24px,4vw,64px);border-bottom:1px solid rgba(255,255,255,.1)}
.bz-row:last-child{border-bottom:0}
.bz-row .ic{grid-row:1/4;width:30px;height:30px;fill:none;stroke:var(--yel);stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round}
.bz-row h3{font-size:18px;font-weight:700;line-height:1.6;letter-spacing:.06em}
.bz-row p{margin:12px 0 14px;font-size:14.5px;line-height:2.05;color:rgba(255,255,255,.88)}
.bz-row .tags{grid-column:2}
@media (max-width:1000px){.bz{grid-template-columns:1fr}.bz-side{padding:64px 24px 48px}.bz-ic{margin:0 0 18px}.bzi{grid-template-columns:1fr}.bzi-l{padding:72px 24px}.bzi-r{padding:56px 24px 64px;border-left:0;border-top:2px solid var(--yel)}}
@media (max-width:640px){.bz-row{grid-template-columns:28px 1fr;column-gap:14px;padding:30px 20px}.bz-row .ic{width:26px;height:26px}.bz-row h3{font-size:16.5px}.bz-img{max-width:none}}

/* ---- お問い合わせ ---- */
.ct{display:grid;grid-template-columns:1fr 1.35fr;gap:clamp(32px,5vw,80px);align-items:start}
.ct-h{font-size:22px;font-weight:700;color:var(--navy);letter-spacing:.06em;margin-bottom:16px}
.ct-side>p{line-height:2.1}
.ct-info{margin-top:28px;border-top:1px solid var(--line)}
.ct-info>div{padding:16px 0;border-bottom:1px solid var(--line)}
.ct-info dt{font-family:var(--sans);font-size:12.5px;font-weight:700;color:var(--yel-d);letter-spacing:.14em}
.ct-info dd{font-size:15px;line-height:1.8;margin-top:4px;color:var(--navy);font-weight:600}
.ct-info small{font-weight:400;font-size:12.5px;color:var(--sub)}
.ct-card{background:#fff;padding:clamp(28px,4vw,52px);box-shadow:0 14px 40px rgba(1,40,90,.08)}
.f{margin-bottom:22px}
.f label{display:block;font-family:var(--sans);font-size:14px;font-weight:700;color:var(--navy);margin-bottom:8px;letter-spacing:.06em}
.f em{font-style:normal;font-size:11.5px;background:var(--yel);color:var(--navy);padding:2px 8px;margin-left:6px;vertical-align:2px}
.f input:not([type=checkbox]),.f select,.f textarea{width:100%;font:inherit;font-family:var(--sans);font-size:16px;padding:13px 14px;border:1px solid #c3cbdb;background:#fbfcfe;border-radius:0;color:var(--txt)}
.f select{appearance:none;background:#fbfcfe url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23013976' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--navy);outline-offset:0;border-color:var(--navy);background:#fff}
.f [aria-invalid=true]{border-color:#c0392b;background:#fff7f6}
.f-agree label{display:flex;align-items:center;gap:10px;padding:6px 0;font-weight:500}
.f-agree input{flex:none;width:24px;height:24px;accent-color:var(--navy)}
.err{color:#c0392b;font-family:var(--sans);font-size:13px;margin-top:6px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.send{width:100%;margin-top:8px}
.send:hover{background:var(--navy);color:var(--yel);border-color:var(--navy)}
.send:disabled{opacity:.6;cursor:wait}
.st{margin-top:12px;font-family:var(--sans);font-size:13.5px;color:#c0392b;text-align:center}
.done{text-align:center;padding:30px 0}
.done-h{font-size:22px;font-weight:700;color:var(--navy);margin-bottom:12px}
@media (max-width:900px){.ct{grid-template-columns:1fr}}

/* ---- プライバシー・404 ---- */
.art>p{line-height:2.1}
.art h2{margin:2.2em 0 .7em;padding-left:14px;border-left:3px solid var(--yel);font-size:18px;font-weight:700;color:var(--navy);line-height:1.6}
.art a{color:var(--navy)}
.nf .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

/* ---- 表示アニメ（スクロールで現れる） ---- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease) var(--d,0s),transform .9s var(--ease) var(--d,0s)}
.rv.on{opacity:1;transform:none}
.rvi{position:relative;overflow:hidden}
.rvi::after{content:"";position:absolute;inset:0;background:var(--yel);transform:scaleX(0);transform-origin:left;z-index:2;pointer-events:none}
.rvi img{opacity:0}
.rvi.on::after{animation:wipe 1.1s cubic-bezier(.7,0,.25,1) var(--d,0s) both}
.rvi.on img{animation:imgin .01s linear calc(var(--d,0s) + .55s) both,imgzoom 1.4s var(--ease) calc(var(--d,0s) + .55s) both}
@keyframes wipe{0%{transform:scaleX(0);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}50.1%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
@keyframes imgin{to{opacity:1}}
@keyframes imgzoom{from{transform:scale(1.1)}to{transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv,.rvi img{opacity:1;transform:none}.marq-t{transform:none}}
