:root{
  --ink:#0B2A4A; --text:#27343F; --muted:#5A6672; --line:#DCE2E7; --paper:#F3F7FA; --white:#FFFFFF; --accent:#009ADA; --accent-d:#0079AD; --sky:#7CCBEF;
  --sans:"IBM Plex Sans JP","Hiragino Sans","Yu Gothic",Meiryo,sans-serif; --en:"Barlow","IBM Plex Sans JP",sans-serif; --mono:"IBM Plex Mono",monospace;
  --gutter:clamp(20px,5.4vw,84px); --head:76px; --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 8px)}
body{margin:0;background:var(--white);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.9;letter-spacing:.015em;line-break:strict;overflow-wrap:anywhere}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0}
ul,ol{list-style:none;margin:0;padding:0}
figure{margin:0}
h1,h2,h3{margin:0;color:var(--ink);font-weight:700;font-feature-settings:"palt"}
.wrap{padding-inline:var(--gutter)}
.sec{padding-block:clamp(80px,11vw,172px)}

/* 英語の大見出し */
.ttl .en{display:block;font:500 clamp(58px,8.6vw,132px)/1 var(--en);letter-spacing:-.022em;color:var(--ink);overflow-wrap:normal}
.ttl .ja{display:block;margin-top:clamp(10px,1vw,16px);font:500 15px/1.6 var(--sans);letter-spacing:.06em;color:var(--muted)}
html.js .ttl:not(.in) .en{opacity:0;transform:translateY(26px)}
.ttl .en{transition:opacity .7s var(--ease),transform .7s var(--ease)}

/* ヘッダー */
.head{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:clamp(18px,3vw,46px);height:var(--head);padding-inline:var(--gutter);background:var(--white);border-bottom:1px solid var(--line);transition:background .35s,border-color .35s}
.logo{margin-right:auto;line-height:0}
.logo img{height:46px;width:auto;margin-left:-10px}
.nav{display:flex;gap:clamp(20px,2.6vw,40px);font:500 16.5px var(--en);letter-spacing:.02em}
.nav a{text-decoration:none;padding:6px 0;background:linear-gradient(var(--ink),var(--ink)) 0 100%/0 1px no-repeat;transition:background-size .3s var(--ease)}
.nav a:hover{background-size:100% 1px}
.nav small{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:12px 26px;background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:0;font:500 16.5px var(--en);letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:background .25s,border-color .25s}
.btn svg{width:18px;height:10px;transition:transform .3s var(--ease)}
.btn:hover{background:var(--accent-d);border-color:var(--accent-d)}
.btn:hover svg{transform:translateX(4px)}
.more{display:inline-flex;align-items:center;gap:10px;font:500 16.5px var(--en);letter-spacing:.04em;color:var(--ink);text-decoration:none;padding:12px 0;background:linear-gradient(var(--ink),var(--ink)) 0 85%/100% 1px no-repeat}
.more svg{width:10px;height:18px}
.menu-btn{display:none;background:none;border:1px solid var(--line);padding:8px 12px;font:500 15px var(--en);color:var(--ink)}
.logo .lw{display:none}
.head.is-top{background:transparent;border-color:transparent}
.head.is-top .logo .lc{display:none}
.head.is-top .logo .lw{display:block}
.head.is-top .nav{color:#fff}
.head.is-top .nav a{background-image:linear-gradient(#fff,#fff)}
.head.is-top .btn{background:transparent;border-color:rgba(255,255,255,.7)}
.head.is-top .btn:hover{background:#fff;color:var(--ink);border-color:#fff}
.head.is-top .menu-btn{color:#fff;border-color:rgba(255,255,255,.6)}
.nav a[aria-current=page]{background-size:100% 1px}
.nav .ext::after{content:"";display:inline-block;width:7px;height:7px;margin-left:6px;border:solid currentColor;border-width:1px 1px 0 0;vertical-align:.32em}

/* 建物が固定される舞台 */
.stage{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);border-top:1px solid var(--line)}
.stage-l{min-width:0}
.stage-r{min-width:0;border-left:1px solid var(--line);background-color:var(--paper);
  background-image:linear-gradient(rgba(11,42,74,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(11,42,74,.045) 1px,transparent 1px);background-size:44px 44px}
.pin{position:sticky;top:var(--head);height:calc(100vh - var(--head));min-height:520px;display:flex;flex-direction:column;justify-content:center;padding:0 0 0 clamp(4px,1vw,16px);overflow:hidden}
.pin-label{position:absolute;left:clamp(20px,2.4vw,36px);top:clamp(16px,2vw,28px);display:flex;align-items:baseline;gap:12px;font:500 16.5px var(--en);color:var(--ink);letter-spacing:.02em}
.pin-label b{font-weight:600;color:var(--accent-d)}
.pin-label span{transition:opacity .25s}

/* トップ：全画面スライド */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;margin-top:calc(var(--head) * -1);overflow:hidden;background:var(--ink);color:#fff}
.slides{position:absolute;inset:-4% 0;will-change:transform}
.slide{position:absolute;inset:0;overflow:hidden;visibility:hidden}
.slide img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}
.slide.prev{visibility:visible;z-index:1}
.slide.prev img{transform:scale(1.02)}
.slide.cur{visibility:visible;z-index:2}
.slide.cur.go{animation:wipe 1.35s cubic-bezier(.77,0,.18,1) both}
.slide.cur img{animation:kb 8.5s linear both}
@keyframes wipe{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
@keyframes kb{from{transform:scale(1.14)}to{transform:scale(1.02)}}
.scan{position:absolute;top:0;bottom:0;left:100%;z-index:3;width:2px;background:var(--sky);box-shadow:0 0 18px rgba(124,203,239,.75);opacity:0;pointer-events:none}
.scan.run{animation:scanx 1.35s cubic-bezier(.77,0,.18,1) both}
@keyframes scanx{0%{left:100%;opacity:1}88%{opacity:1}100%{left:0;opacity:0}}
.shade{position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(180deg,rgba(6,24,44,.5) 0%,rgba(6,24,44,0) 20%),linear-gradient(0deg,rgba(6,24,44,.82) 0%,rgba(6,24,44,.4) 40%,rgba(6,24,44,.1) 100%)}
.frame{position:absolute;z-index:5;inset:calc(var(--head) + 6px) clamp(14px,2.2vw,32px) clamp(14px,2.2vw,32px);pointer-events:none}
.frame i{position:absolute;width:26px;height:26px;border:0 solid rgba(255,255,255,.72)}
.frame i:nth-child(1){left:0;top:0;border-width:1px 0 0 1px}
.frame i:nth-child(2){right:0;top:0;border-width:1px 1px 0 0}
.frame i:nth-child(3){left:0;bottom:0;border-width:0 0 1px 1px}
.frame i:nth-child(4){right:0;bottom:0;border-width:0 1px 1px 0}
.hero-in{position:absolute;z-index:6;left:var(--gutter);right:var(--gutter);bottom:clamp(106px,13.5vh,148px);will-change:transform,opacity}
.rtb,.shinrai{display:block}
.rtb{color:#fff;font:500 clamp(74px,10vw,250px)/1.02 var(--en);letter-spacing:-.026em;font-feature-settings:normal}
.rtb .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.04em .04em .1em 0;margin:-.04em 0 -.1em}
.rtb .w>span{display:inline-block;transition:transform 1.1s var(--ease)}
.rtb .w:nth-child(2)>span{transition-delay:.1s}
.rtb .w:nth-child(3)>span{transition-delay:.2s}
html.js .hero:not(.on) .rtb .w>span{transform:translateY(116%)}
.shinrai{margin-top:clamp(12px,1.5vw,22px);font:700 clamp(23px,2.8vw,46px)/1.4 var(--sans);letter-spacing:.2em;color:#fff}
.shinrai span{display:inline-block;transition:opacity .6s ease,transform .6s var(--ease)}
html.js .hero:not(.on) .shinrai span{opacity:0;transform:translateY(10px)}
.hero-bar{position:absolute;z-index:6;left:var(--gutter);right:var(--gutter);bottom:clamp(30px,4.4vh,46px);display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,.3)}
.hero-cap{display:flex;align-items:baseline;gap:16px;min-width:0;transition:opacity .4s ease,transform .4s var(--ease)}
.hero-cap.swap{opacity:0;transform:translateY(8px)}
.hero-cap b{flex:none;font:500 17px var(--en);letter-spacing:.04em;color:var(--sky)}
.hero-cap span{font-weight:500;font-size:clamp(15.5px,1.25vw,18px);line-height:1.5}
.hero-nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,34px);flex:none}
.dots{display:flex;gap:7px}
.dots button{position:relative;width:clamp(30px,3.4vw,46px);height:24px;padding:0;background:none;border:0;cursor:pointer}
.dots button::before,.dots button::after{content:"";position:absolute;left:0;right:0;top:11px;height:2px}
.dots button::before{background:rgba(255,255,255,.34)}
.dots button::after{background:#fff;transform:scaleX(0);transform-origin:left}
.dots button.cur::after{animation:fill var(--slide) linear both}
@keyframes fill{to{transform:scaleX(1)}}
.scroll{font:500 15px var(--en);letter-spacing:.08em;color:#fff;text-decoration:none}

/* About */
.about{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
.about .tag-en{grid-column:1/3;font:500 17px var(--en);letter-spacing:.04em;color:var(--accent-d);padding-top:.5em}
.about-in{grid-column:3/-1}
.about h2{font-size:clamp(33px,5.4vw,88px);line-height:1.3;letter-spacing:-.005em}
.about p{margin-top:clamp(20px,2.4vw,34px);max-width:32em;font-size:clamp(16px,1.3vw,19px)}
.about .more{margin-top:clamp(16px,1.8vw,26px)}

/* Service */
.svc-head{padding:clamp(64px,7vw,104px) clamp(24px,3.6vw,60px) clamp(40px,4vw,64px) var(--gutter)}
.svc-head p{margin-top:20px;max-width:27em;font-size:clamp(16px,1.2vw,18px)}
.svc-head .ttl .en{font-size:clamp(58px,7vw,112px)}
.panel{min-height:88vh;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,5vw,72px) clamp(24px,3.6vw,60px) clamp(40px,5vw,72px) var(--gutter);border-top:1px solid var(--line)}
.panel .no{font:600 16px var(--en);letter-spacing:.06em;color:var(--accent-d)}
.panel h3{margin-top:2px}
.panel h3 .en{display:block;font:500 clamp(32px,3.2vw,48px)/1.12 var(--en);letter-spacing:-.012em;color:var(--ink)}
.panel h3 .ja{display:block;margin-top:6px;font:500 15px/1.6 var(--sans);letter-spacing:.06em;color:var(--muted)}
.panel .tx{margin-top:16px;max-width:31em}
.panel figure{margin-top:clamp(20px,2.2vw,32px);overflow:hidden}
.panel img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(.92)}
.ex{margin-top:16px}
.ex li{padding:2px 0 2px 14px;border-left:1px solid var(--accent);font-size:15px;line-height:1.75;color:var(--muted)}
.ex li+li{margin-top:7px}

/* 断面図 */
.section{display:block;width:100%;height:auto;overflow:visible}
.section .cut{fill:var(--ink)}
.section .gl{stroke:var(--ink);stroke-width:2.4;fill:none}
.section .th{stroke:var(--ink);stroke-opacity:.34;stroke-width:1;fill:none}
.section .ln{fill:none;stroke:var(--ink);stroke-opacity:.6;stroke-width:1.1;transition:stroke .3s,stroke-opacity .3s,stroke-width .3s}
.section .sf{fill:var(--paper);stroke:var(--ink);stroke-opacity:.6;stroke-width:1.1;transition:stroke .3s,stroke-opacity .3s,fill .3s}
.section .lnw{fill:none;stroke:var(--ink);stroke-opacity:.6;stroke-width:1.1;transition:stroke .3s}
.section .ev{fill:var(--paper);stroke:var(--ink);stroke-opacity:.45}
.section .gl-door{fill:rgba(0,154,218,.08);stroke:var(--ink);stroke-opacity:.6;stroke-width:1.1}
.section .pipe{fill:none;stroke:var(--ink);stroke-opacity:.55;stroke-width:1.3;transition:stroke .3s,stroke-opacity .3s}
.section .pipe-s{fill:none;stroke:var(--ink);stroke-opacity:.38;stroke-width:1;transition:stroke .3s,stroke-opacity .3s}
.section .cone{fill:var(--accent);fill-opacity:.055;transition:fill-opacity .35s}
.section .fx{fill:var(--paper);stroke:var(--ink);stroke-opacity:.7;stroke-width:1;transition:fill .3s,stroke .3s}
.section .exit{stroke:var(--ink);stroke-opacity:.6}
.section .man{fill:var(--ink);fill-opacity:.82}
.section .dim{stroke:var(--ink);stroke-opacity:.4;stroke-width:1;fill:none}
.section .lb{font:500 14px var(--mono);fill:var(--ink);fill-opacity:.72;letter-spacing:.02em}
.section .tbf{fill:var(--white);stroke:var(--ink);stroke-opacity:.5}
.section .sys{cursor:pointer;transition:opacity .3s}
.section[data-on=air] .room,.section[data-on=air] .light,.section[data-on=air] .power,
.section[data-on=light] .room,.section[data-on=light] .air,.section[data-on=light] .power,
.section[data-on=power] .room,.section[data-on=power] .light,.section[data-on=power] .air,
.section[data-on=room] .light,.section[data-on=room] .air,.section[data-on=room] .power{opacity:.5}
.section[data-on=air] .air .pipe,.section[data-on=power] .power .pipe{stroke:var(--accent);stroke-opacity:1;stroke-width:2.4;stroke-dasharray:9 7;animation:flow 1.1s linear infinite}
.section[data-on=air] .air .pipe-s,.section[data-on=power] .power .pipe-s{stroke:var(--accent);stroke-opacity:1;stroke-width:1.5}
.section[data-on=air] .air .sf,.section[data-on=power] .power .sf,.section[data-on=room] .room .sf{stroke:var(--accent-d);stroke-opacity:1;fill:#DFF1FA}
.section[data-on=air] .air .ln,.section[data-on=power] .power .ln,.section[data-on=power] .power .lnw,.section[data-on=room] .room .ln{stroke:var(--accent-d);stroke-opacity:1}
.section[data-on=light] .cone{fill-opacity:.34}
.section[data-on=light] .fx{fill:var(--accent);stroke:var(--accent-d);stroke-opacity:1}
@keyframes flow{to{stroke-dashoffset:-16}}
.tag{cursor:pointer}
.tag .lead{fill:none;stroke:var(--ink);stroke-opacity:.5;stroke-width:1}
.tag .dot{fill:var(--ink)}
.tag .bub{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;transition:fill .25s,stroke .25s}
.tag .no{font:600 17px var(--en);fill:var(--ink);transition:fill .25s}
.tag .tagname{font:500 20px var(--en);fill:var(--ink);letter-spacing:.01em}
.section[data-on=air] .tag[data-sys=air] .bub,.section[data-on=light] .tag[data-sys=light] .bub,.section[data-on=power] .tag[data-sys=power] .bub,.section[data-on=room] .tag[data-sys=room] .bub{fill:var(--accent-d);stroke:var(--accent-d)}
.section[data-on=air] .tag[data-sys=air] .no,.section[data-on=light] .tag[data-sys=light] .no,.section[data-on=power] .tag[data-sys=power] .no,.section[data-on=room] .tag[data-sys=room] .no{fill:#fff}
html.js .pre .section .base,html.js .pre .section .sys,html.js .pre .section .ppl{opacity:0}
html.js .pre .section .tags,html.js .pre .section .anno{opacity:0}
.section .base,.section .ppl,.section .tags,.section .anno{transition:opacity .7s ease}

/* Works */
.bar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.works{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(36px,4.4vw,64px) clamp(16px,2vw,28px);margin-top:clamp(36px,4.6vw,68px)}
.work{position:relative}
.work a{display:block;text-decoration:none}
.work figure{position:relative;overflow:hidden}
.work img{width:100%;object-fit:cover;filter:saturate(.92);transition:transform .9s var(--ease)}
.work:hover img{transform:scale(1.035)}
.w1{grid-column:1/9}.w1 img{aspect-ratio:16/10;object-position:50% 62%}
.w2{grid-column:9/-1}.w2 img{aspect-ratio:8/10;object-position:50% 46%}
.w3{grid-column:1/5}.w3 img{aspect-ratio:8/10;object-position:60% 50%}
.w4{grid-column:5/-1}.w4 img{aspect-ratio:16/10;object-position:50% 50%}
.cap{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 14px;margin-top:12px}
.cap b{flex:none;font:500 17px var(--en);letter-spacing:.02em;color:var(--accent-d)}
.cap span{font-weight:500;color:var(--ink);line-height:1.6}

/* Deadlines */
.limit{background:var(--ink);color:#D6E2EC}
.limit .ttl .en{color:#fff}
.limit .ttl .ja{color:#A9BDCD}
.limit .lead{max-width:30em;margin:0}
.ruler{margin-top:clamp(36px,4.8vw,70px)}
.ruler svg{display:block;width:100%;height:auto;overflow:visible}
.ruler .ax{stroke:#fff;stroke-opacity:.8;stroke-width:1.2}
.ruler .tk{stroke:#fff;stroke-opacity:.42}
.ruler .tx{font:500 16px var(--en);fill:#A9BDCD;letter-spacing:.04em}
.ruler .mk{fill:var(--sky)}
.limits{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,44px);margin-top:clamp(20px,2.4vw,34px)}
.limits b{display:block;font:500 clamp(36px,4.2vw,62px)/1.1 var(--en);letter-spacing:-.01em;color:#fff}
.limits p{margin-top:8px;font-size:15.5px;line-height:1.8}
.src{margin-top:clamp(20px,2.4vw,32px);font-size:14px;color:#A9BDCD}

/* Process */
.flow{display:grid;grid-template-columns:repeat(5,1fr);column-gap:clamp(16px,2vw,28px);margin-top:clamp(36px,4.6vw,68px)}
.flow li{border-top:1px solid var(--ink);padding-top:14px}
.flow .n{display:block;font:500 16px var(--en);letter-spacing:.06em;color:var(--accent-d)}
.flow h3 .en{display:block;margin-top:4px;font:500 clamp(24px,2.2vw,31px)/1.2 var(--en);letter-spacing:-.005em}
.flow h3 .ja{display:block;margin-top:2px;font:500 14.5px/1.6 var(--sans);color:var(--muted)}
.flow p{margin-top:10px;font-size:15px;line-height:1.8}

/* Company */
.co{background:var(--paper)}
.co-grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
.co-grid .ttl{grid-column:1/6}
.co-tb{grid-column:6/-1;margin:0;border-bottom:1px solid var(--line)}
.co-tb div{display:grid;grid-template-columns:8.5em 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.co-tb dt{color:var(--muted);font-size:15px}
.co-tb dd{margin:0;color:var(--ink)}

/* Contact */
.contact{background:var(--ink);color:#D6E2EC}
.contact .ttl .en{color:#fff}
.contact .ttl .ja{color:#A9BDCD}
.cta{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px}
.cta-l{grid-column:1/6}
.cta-l .lead{margin-top:26px;max-width:26em}
.note{margin-top:24px;border-top:1px solid rgba(255,255,255,.2)}
.note li{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.2);font-size:15px;line-height:1.8}
.form{grid-column:6/-1;background:var(--white);color:var(--text);padding:clamp(22px,3vw,44px)}
.f{display:block;margin-bottom:20px}
.f>span,.f>legend{display:flex;align-items:center;gap:9px;margin-bottom:7px;padding:0;font-weight:700;font-size:15.5px;color:var(--ink)}
.f em{font-style:normal;font-size:13px;font-weight:500;color:var(--accent-d)}
.f em.opt{color:var(--muted)}
fieldset.f{border:0;padding:0;margin-inline:0}
.f input[type=text],.f input[type=email],.f input[type=tel],.f textarea{width:100%;padding:12px 13px;border:0;border-bottom:1px solid rgba(11,42,74,.45);border-radius:0;background:var(--paper);font:inherit;color:var(--text)}
.f textarea{min-height:140px;resize:vertical}
.f input:focus,.f textarea:focus{outline:0;border-bottom:2px solid var(--accent-d)}
.kinds{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.kinds label{position:relative;display:block;cursor:pointer}
.kinds input{position:absolute;opacity:0;inset:0}
.kinds span{display:flex;align-items:center;height:100%;padding:9px 12px;border:1px solid rgba(11,42,74,.3);font-size:14.5px;line-height:1.45;background:var(--white);transition:background .15s,color .15s}
.kinds input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.kinds input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}
.check{display:flex;gap:10px;align-items:flex-start;margin:4px 0 20px;font-size:15px;line-height:1.7}
.check input{margin-top:5px;width:17px;height:17px;accent-color:var(--ink)}
.form .btn{width:100%;padding:15px}
.sent{margin-top:12px;font-size:15px;color:var(--ink);min-height:1.7em}
.sent a{color:inherit;text-decoration:underline}
.form .btn:disabled{opacity:.6;cursor:wait}
.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.done{padding:clamp(18px,3vw,34px) 0}
.done:focus{outline:none}
.done-en{font:500 16px var(--en);letter-spacing:.08em;color:var(--accent-d)}
.done h2{margin-top:8px;font-size:clamp(23px,2.5vw,30px);line-height:1.5}
.done #doneText{margin-top:14px;font-size:16px;line-height:1.9}

/* フッター */
.foot{background:var(--ink);color:#D6E2EC;padding:0 var(--gutter) 26px}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:26px 60px;padding-top:clamp(32px,3.6vw,48px);border-top:1px solid rgba(255,255,255,.2)}
.foot img{height:56px;width:auto;margin-left:-12px}
.foot address{font-style:normal;font-size:14.5px;margin-top:8px}
.foot ul{display:flex;flex-wrap:wrap;gap:6px 26px;font:500 16px var(--en);letter-spacing:.02em}
.foot a{text-decoration:none}
.foot a:hover{text-decoration:underline;text-underline-offset:4px}
.foot .group{font:500 14.5px var(--sans);letter-spacing:.015em}
.copy{margin-top:26px;font:400 14px var(--en);letter-spacing:.03em;color:#A9BDCD}

html.js .rv{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
html.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.js .rv,html.js .ttl:not(.in) .en{opacity:1;transform:none;transition:none}
  .section .pipe{animation:none!important;stroke-dasharray:none!important}
  .slide.cur img,.slide.cur.go,.scan.run,.dots button.cur::after{animation:none}
  .dots button.cur::after{transform:scaleX(1)}
  .work img{transition:none}
}

/* スマホ・タブレット：建物を上部に固定し、説明が下を流れる */
@media (max-width:1060px){
  :root{--head:64px}
  .nav{display:none;position:absolute;top:var(--head);left:0;right:0;flex-direction:column;gap:0;background:var(--white);padding:6px var(--gutter) 14px;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{display:flex;align-items:baseline;gap:12px;padding:11px 0;font-size:19px;background:none}
  .nav small{display:inline;font:500 14px var(--sans);color:var(--muted);letter-spacing:.04em}
  .menu-btn{display:block}
  .head{gap:10px}
  .head .btn{padding:8px 14px;font-size:15px}
  .logo img{height:38px;margin-left:-8px}
  .stage{display:flex;flex-direction:column}
  .stage-l,.stage-r{display:contents}
  .head.is-top .nav.open{color:var(--ink)}
  .head.is-top .nav.open a{background:none}
  .hero-in{bottom:clamp(132px,19vh,170px)}
  .rtb{font-size:clamp(70px,19.5vw,150px)}
  .rtb .br{display:block}
  .shinrai{letter-spacing:.16em}
  .hero-bar{display:block}
  .hero-cap{min-height:3.1em;align-items:flex-start}
  .hero-nav{justify-content:space-between;margin-top:6px}
  .scroll{display:none}
  .dots{width:100%}
  .dots button{flex:1}
  .about{display:block}
  .about .tag-en{padding:0 0 10px}
  .pin{order:2;position:sticky;top:var(--head);z-index:20;height:auto;min-height:0;padding:30px 0 2px;background-color:var(--paper);border-block:1px solid var(--line);
    background-image:linear-gradient(rgba(11,42,74,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(11,42,74,.045) 1px,transparent 1px);background-size:32px 32px}
  .pin-label{left:var(--gutter);top:6px;font-size:15px}
  .svc-head{order:1;padding:clamp(44px,8vw,64px) var(--gutter) 26px}
  .panel{order:3;min-height:0;padding:34px var(--gutter)}
  .section{max-height:42vh}
  .section .tagname,.section .lb,.section .tb{display:none}
  .tag .bub{r:22px}
  .tag .no{font-size:26px}
  .limit .bar{display:block}
  .limit .lead{margin-top:16px}
  .works{display:block}
  .work+.work{margin-top:32px}
  .work img{aspect-ratio:16/10!important}
  .ruler{display:none}
  .limits{grid-template-columns:1fr;margin-top:32px}
  .limits>div{padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.2)}
  .flow{grid-template-columns:1fr;row-gap:22px}
  .co-grid,.cta{display:block}
  .co-tb{margin-top:34px}
  .co-tb div{grid-template-columns:7em 1fr}
  .form{margin-top:34px;margin-inline:calc(var(--gutter) * -1)}
  .kinds{grid-template-columns:1fr 1fr}
}
@media (max-width:430px){.logo img{height:32px;margin-left:-7px}.head .btn{padding:7px 11px;font-size:14.5px}.menu-btn{padding:7px 9px;font-size:14.5px}}

/* 一時停止 */
.pause{flex:none;white-space:nowrap;background:none;border:0;padding:4px 0;font:500 15px var(--en);letter-spacing:.06em;color:#fff;cursor:pointer}
.hero.paused .slide.cur img,.hero.paused .dots button.cur::after{animation-play-state:paused}

/* 共通 */
.btn.inv{background:#fff;color:var(--ink);border-color:#fff}
.btn.inv:hover{background:var(--sky);border-color:var(--sky);color:var(--ink)}
.more.on-dark{color:#fff;background-image:linear-gradient(#fff,#fff)}
.svc-head .more{margin-top:14px}
.page-head{padding:clamp(52px,6.6vw,108px) var(--gutter) clamp(30px,3.4vw,52px)}
.page-lead{margin-top:clamp(18px,2vw,28px);max-width:34em;font-size:clamp(16px,1.3vw,19px)}
.cta-band{background:var(--ink);color:#D6E2EC;padding-block:clamp(64px,8vw,120px)}
.cta-in{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 40px;flex-wrap:wrap}
.cta-in .ttl .en{color:#fff}
.cta-in .ttl .ja{color:#A9BDCD}
.cta-in p{margin-bottom:16px}
.co-r{grid-column:6/-1}
.co-r .co-tb{grid-column:auto}
.co-r .more{margin-top:14px}

/* AI導入コンサルティング */
.ai{background:#071F38;color:#D6E2EC;overflow:hidden}
.ai .ttl .en{color:#fff}
.ai .ttl .ja{color:#A9BDCD}
.ai-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,48px);align-items:center;margin-top:clamp(28px,3.4vw,52px)}
.ai-page.sec{padding-top:clamp(40px,4vw,64px)}
.ai-page .ai-grid{margin-top:0}
.ai-catch{font:700 clamp(28px,3.2vw,50px)/1.35 var(--sans);letter-spacing:.01em;color:#fff;font-feature-settings:"palt";word-break:keep-all;overflow-wrap:anywhere}
.ai-tx>p:not(.ai-catch){margin-top:16px;max-width:31em}
.ai-steps{margin-top:clamp(18px,2vw,28px);border-top:1px solid rgba(255,255,255,.22)}
.ai-steps li{border-bottom:1px solid rgba(255,255,255,.22)}
.ai-btn{display:flex;align-items:baseline;gap:12px;width:100%;padding:11px 2px;background:none;border:0;color:#A9BDCD;font:500 clamp(19px,1.6vw,23px) var(--en);letter-spacing:.01em;text-align:left;cursor:pointer;transition:color .25s}
.ai-btn i{font:500 15px var(--en);font-style:normal;color:inherit}
.ai-btn span{margin-left:auto;font:500 14.5px var(--sans);letter-spacing:.04em}
.ai-btn[aria-expanded=true]{color:#fff}
.ai-btn[aria-expanded=true] i{color:var(--sky)}
.ai-tx .more{margin-top:16px}
.ai-fig{min-width:0}
.aiv{display:block;width:100%;height:auto;overflow:visible}
.aiv .cut{fill:#fff;fill-opacity:.9}
.aiv .gl{stroke:#fff;stroke-opacity:.85;stroke-width:2;fill:none}
.aiv .th{stroke:#fff;stroke-opacity:.3;fill:none}
.aiv .ln{fill:none;stroke:#fff;stroke-opacity:.42;stroke-width:1}
.aiv .sf{fill:#0B2A4A;stroke:#fff;stroke-opacity:.42;stroke-width:1}
.aiv .man{fill:#fff;fill-opacity:.82}
.aiv .lb{font:500 14px var(--en);letter-spacing:.03em;fill:#A9BDCD}
.aiv .dim{stroke:#fff;stroke-opacity:.35}
.aiv .tbf{fill:#0B2A4A;stroke:#fff;stroke-opacity:.4}
.aiv .core{fill:rgba(124,203,239,.12);stroke:var(--sky);stroke-opacity:.8}
.aiv .unit{fill:#0F3A66;stroke:var(--sky)}
.aiv .ai-mark{font:600 32px var(--en);letter-spacing:.04em;fill:#fff}
.aiv .pulse{fill:var(--sky);opacity:0;animation:rise 2.2s linear infinite}
@keyframes rise{0%{transform:translateY(440px);opacity:0}12%{opacity:.9}88%{opacity:.9}100%{transform:translateY(-10px);opacity:0}}
.aiv .br{fill:none;stroke:var(--sky);stroke-opacity:.2;stroke-width:1.2;transition:stroke-opacity .35s}
.aiv .br-s{fill:none;stroke:var(--sky);stroke-opacity:.14;stroke-width:1;transition:stroke-opacity .35s}
.aiv .node{fill:#0B2A4A;stroke:var(--sky);stroke-opacity:.4;transition:fill .35s,stroke-opacity .35s}
.aiv .rule{fill:none;stroke:var(--sky);stroke-width:1.6;opacity:0;transition:opacity .4s}
.aiv .loop{transform-box:fill-box;transform-origin:center;opacity:0;transition:opacity .4s}
.aiv .lp{fill:none;stroke:var(--sky);stroke-width:1.8}
.aiv .lp-h{fill:var(--sky)}
.aiv .sweep{fill:var(--sky);opacity:0;filter:drop-shadow(0 0 6px rgba(124,203,239,.9))}
.aiv[data-on=survey] .sweep{opacity:1;animation:sweep 3.4s ease-in-out infinite alternate}
@keyframes sweep{from{transform:translateY(4px)}to{transform:translateY(476px)}}
.aiv[data-on=design] .rule{opacity:1}
.aiv[data-on=install] .br,.aiv[data-on=maintain] .br{stroke-opacity:1;stroke-width:1.8;stroke-dasharray:8 6;animation:flow 1.1s linear infinite}
.aiv[data-on=install] .br-s,.aiv[data-on=maintain] .br-s{stroke-opacity:.9}
.aiv[data-on=install] .node,.aiv[data-on=maintain] .node{fill:var(--sky);stroke-opacity:1}
.aiv[data-on=maintain] .rule{opacity:.5}
.aiv[data-on=maintain] .loop{opacity:1;animation:spin 7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* AIページ */
.issues{grid-column:6/-1;border-bottom:1px solid var(--line)}
.issues li{padding:17px 0;border-top:1px solid var(--line);font-weight:500;font-size:clamp(17px,1.5vw,21px);line-height:1.6;color:var(--ink)}
.method{display:grid;grid-template-columns:repeat(4,1fr);column-gap:clamp(16px,2vw,28px);margin-top:clamp(32px,4vw,60px)}
.method li{border-top:1px solid var(--ink);padding-top:14px}
.method .n{display:block;font:500 16px var(--en);letter-spacing:.06em;color:var(--accent-d)}
.method h3 .en{display:block;margin-top:4px;font:500 clamp(24px,2.2vw,31px)/1.2 var(--en)}
.method h3 .ja{display:block;margin-top:2px;font:500 14.5px/1.6 var(--sans);color:var(--muted)}
.method p{margin-top:10px;font-size:15px;line-height:1.8}

/* Service ページ */
.sv{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:center;padding-block:clamp(40px,5vw,76px);border-top:1px solid var(--line)}
.sv figure{grid-column:1/8;overflow:hidden}
.sv img{width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(.92)}
.sv .tx{grid-column:8/-1;padding-left:clamp(0px,1.6vw,26px)}
.sv.rev figure{grid-column:6/-1;grid-row:1}
.sv.rev .tx{grid-column:1/6;grid-row:1;padding:0 clamp(0px,1.6vw,26px) 0 0}
.sv-ai .tx.wide{grid-column:1/-1;padding:0}
.sv .no{font:600 16px var(--en);letter-spacing:.06em;color:var(--accent-d)}
.sv h2 .en{display:block;margin-top:2px;font:500 clamp(30px,3vw,46px)/1.12 var(--en);letter-spacing:-.012em;color:var(--ink)}
.sv h2 .ja{display:block;margin-top:6px;font:500 15px/1.6 var(--sans);letter-spacing:.06em;color:var(--muted)}
.sv .d{margin-top:14px;max-width:36em}
.sv .more{margin-top:10px}
.sv-list{margin-top:16px;border-top:1px solid var(--line)}
.sv-list li{padding:9px 0;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.7;color:var(--ink)}
.sv-note{margin-top:14px;font-size:14.5px;line-height:1.8;color:var(--muted)}
.co-tb.bld div{grid-template-columns:12em 1fr}

/* Works ページ */
.works-page{padding-bottom:clamp(72px,9vw,140px)}
.filter{display:flex;flex-wrap:wrap;gap:4px 26px;border-bottom:1px solid var(--line)}
.filter button{margin-bottom:-1px;padding:8px 0;background:none;border:0;border-bottom:2px solid transparent;font:500 17px var(--en);letter-spacing:.02em;color:var(--muted);cursor:pointer}
.filter button.cur{color:var(--ink);border-color:var(--ink)}
.w-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,3.4vw,50px) clamp(16px,2vw,28px);margin-top:clamp(30px,3.4vw,50px)}
.w-item[hidden]{display:none}
.w-item figure{overflow:hidden}
.w-item img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.92);transition:transform .9s var(--ease)}
.w-item:hover img{transform:scale(1.035)}

/* Company ページ */
.phil{background:var(--ink);color:#D6E2EC;padding-block:clamp(64px,8.6vw,130px)}
.phil-en{font:500 clamp(50px,8vw,136px)/1.04 var(--en);letter-spacing:-.024em;color:#fff}
.phil-ja{margin-top:clamp(10px,1.2vw,18px);font:700 clamp(21px,2.2vw,34px)/1.4 var(--sans);letter-spacing:.2em;color:#fff}
.phil-tx{margin-top:clamp(20px,2.4vw,34px);max-width:32em;font-size:clamp(16px,1.25vw,18px)}
.access{grid-column:6/-1}
.access p{margin-bottom:10px;color:var(--ink)}

/* Privacy Policy */
.doc{max-width:calc(48em + var(--gutter) * 2);padding-bottom:clamp(72px,9vw,140px)}
.doc h2{margin:clamp(30px,3.2vw,44px) 0 10px;font-size:clamp(19px,1.6vw,22px);line-height:1.5}
.doc ul{margin:10px 0}
.doc li{position:relative;padding-left:1.1em}
.doc li::before{content:"・";position:absolute;left:0}
.doc p+p{margin-top:10px}
.doc dl{margin:14px 0 0;border-bottom:1px solid var(--line)}
.doc dl div{display:grid;grid-template-columns:6em 1fr;gap:14px;padding:11px 0;border-top:1px solid var(--line)}
.doc dt{color:var(--muted);font-size:15px}
.doc dd{margin:0}
.doc .date{margin-top:26px;color:var(--muted);font-size:15px}

@media (max-width:1060px){
  .ai-grid{grid-template-columns:1fr}
  .ai-fig{order:-1}
  .aiv .lb,.aiv .tb{display:none}
  .method{grid-template-columns:1fr 1fr;row-gap:26px}
  .issues,.access,.co-r{margin-top:30px}
  .sv,.sv.rev{display:block}
  .sv .tx,.sv.rev .tx{padding:18px 0 0}
  .sv-ai .tx.wide{padding:0}
  .w-grid{grid-template-columns:1fr 1fr}
  .co-tb.bld div{grid-template-columns:1fr;gap:2px}
  .cta-in{display:block}
  .cta-in p{margin-top:18px}
}
@media (max-width:560px){
  .w-grid,.method{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .aiv .pulse,.aiv .sweep,.aiv .loop,.aiv .br{animation:none!important}
  .aiv .sweep{transform:translateY(240px)}
}

/* Before / After */
.ba{position:relative;overflow:hidden;background:var(--paper);user-select:none;aspect-ratio:16/10}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.95)}
.ba .ba-b{clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.ba-t{position:absolute;bottom:14px;padding:3px 12px;background:rgba(6,24,44,.72);color:#fff;font:500 15px var(--en);letter-spacing:.04em}
.ba-t.l{left:14px}
.ba-t.r{right:14px}
.ba-line{position:absolute;top:0;bottom:0;left:var(--p);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 12px rgba(6,24,44,.45);pointer-events:none}
.ba-line b{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#fff;box-shadow:0 2px 12px rgba(6,24,44,.3)}
.ba-line b::before,.ba-line b::after{content:"";position:absolute;top:50%;width:9px;height:9px;margin-top:-5px;border:solid var(--ink);border-width:2px 0 0 2px}
.ba-line b::before{left:12px;transform:rotate(-45deg)}
.ba-line b::after{right:12px;transform:rotate(135deg)}
.ba-r{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.ba-r:focus-visible{opacity:.01}
.ba:focus-within .ba-line b{box-shadow:0 0 0 3px var(--accent)}
.ba-one{margin-top:clamp(28px,3.6vw,52px)}
.ba-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px)}
.ba-two .ba{aspect-ratio:1/1}
.ttl.small .en{font-size:clamp(44px,5.4vw,84px)}
.bar .lead{color:var(--muted);font-size:15.5px}
.limit .bar .lead{color:#D6E2EC}

/* Tools */
.tool-list{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(24px,4vw,64px);margin-top:clamp(28px,3.6vw,52px)}
.tool-list a{position:relative;display:block;padding:18px 44px 22px 0;border-top:1px solid var(--ink);text-decoration:none;transition:padding .3s var(--ease)}
.tool-list a:hover{padding-left:10px}
.tool-list a::after{content:"";position:absolute;right:6px;top:30px;width:13px;height:13px;border:solid var(--ink);border-width:1.5px 1.5px 0 0;transform:rotate(45deg)}
.tool-list b{display:block;font:500 clamp(30px,3.2vw,48px)/1.15 var(--en);letter-spacing:-.012em;color:var(--ink)}
.tool-list .j{display:block;margin-top:4px;font-weight:500;font-size:15px;color:var(--muted)}
.tool-list .d{display:block;margin-top:10px;font-size:15.5px;line-height:1.75;color:var(--text)}

/* Column */
.col-page{padding-bottom:clamp(72px,9vw,140px)}
.col-list{margin-top:clamp(24px,3vw,44px);border-bottom:1px solid var(--line)}
.col-page .col-list{margin-top:0}
.col-list a{display:flex;align-items:baseline;gap:clamp(16px,3vw,48px);padding:20px 0;border-top:1px solid var(--line);text-decoration:none;transition:padding .3s var(--ease)}
.col-list a:hover{padding-left:10px}
.col-list b{flex:none;width:6.5em;font:500 16px var(--en);letter-spacing:.03em;color:var(--accent-d)}
.col-list span{font-weight:500;font-size:clamp(17px,1.5vw,21px);line-height:1.6;color:var(--ink)}
.art{padding-block:clamp(44px,5.6vw,88px) clamp(60px,7vw,110px)}
.art-tag{font:500 16px var(--en);letter-spacing:.03em;color:var(--accent-d)}
.art-tag a{text-decoration:none;color:var(--muted)}
.art h1{max-width:21em;margin-top:12px;font-size:clamp(27px,3.4vw,50px);line-height:1.4}
.art .doc{padding:clamp(24px,3vw,44px) 0 0;max-width:46em}
.src-line{margin-top:26px!important;font-size:14px;color:var(--muted)}

/* Self Check */
.tool-sec{padding-bottom:clamp(72px,9vw,140px)}
.chk{max-width:52em}
.chk-bar{height:2px;background:var(--line)}
.chk-bar i{display:block;height:100%;width:0;background:var(--ink);transition:width .35s var(--ease)}
.chk-no{margin-top:clamp(24px,3vw,42px);font:500 16px var(--en);letter-spacing:.05em;color:var(--accent-d)}
.chk-q{min-height:3.1em;margin-top:8px;font-weight:700;font-size:clamp(23px,2.7vw,38px);line-height:1.5;color:var(--ink);font-feature-settings:"palt"}
.chk-a{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:clamp(22px,2.6vw,36px)}
.chk-a button{padding:16px 10px;background:#fff;border:1px solid var(--ink);font:700 16px var(--sans);color:var(--ink);cursor:pointer;transition:background .2s,color .2s}
.chk-a button:hover{background:var(--ink);color:#fff}
.chk-back{margin-top:16px;padding:6px 0;background:none;border:0;border-bottom:1px solid var(--muted);font:500 15px var(--sans);color:var(--muted);cursor:pointer}
.chk-h{margin-top:clamp(24px,3vw,42px);font:500 clamp(40px,5vw,72px)/1 var(--en);letter-spacing:-.02em}
.chk-h span{display:block;margin-top:10px;font:500 15px var(--sans);letter-spacing:.06em;color:var(--muted)}
.chk-res{margin-top:clamp(20px,2.4vw,32px);border-bottom:1px solid var(--line)}
.chk-res li{display:grid;grid-template-columns:9em 6em 1fr;gap:6px 18px;align-items:baseline;padding:15px 0;border-top:1px solid var(--line)}
.chk-res b{font:500 18px var(--en);color:var(--ink)}
.chk-res em{font-style:normal;font-weight:700;font-size:15px;color:var(--muted)}
.chk-res em.act{color:#B42318}
.chk-res em.plan{color:var(--accent-d)}
.chk-res p{font-size:15px;line-height:1.75}
.chk-note{margin-top:14px;font-size:14.5px;color:var(--muted)}
.chk-cta{display:flex;align-items:center;flex-wrap:wrap;gap:12px 26px;margin-top:22px}
.chk-cta .chk-back{margin-top:0}

/* LED Simulator */
.sim{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:0;border:1px solid var(--line)}
.sim-f{padding:clamp(20px,2.8vw,40px)}
.s{display:block;margin-bottom:16px}
.s>span{display:block;margin-bottom:6px;font-weight:700;font-size:15px;color:var(--ink)}
.s input,.s select{width:100%;padding:11px 12px;border:0;border-bottom:1px solid rgba(11,42,74,.45);border-radius:0;background:var(--paper);font:inherit;color:var(--text)}
.s input:focus,.s select:focus{outline:0;border-bottom:2px solid var(--accent-d)}
.s2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sim-r{display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,3.2vw,48px);background:var(--ink);color:#D6E2EC}
.sim-l{font-size:15.5px;font-weight:500}
.sim-big{margin-top:4px;font:500 clamp(52px,6.6vw,104px)/1.05 var(--en);letter-spacing:-.02em;color:#fff}
.sim-big small{margin-left:8px;font:500 clamp(15px,1.5vw,20px) var(--sans);letter-spacing:.02em}
.sim-rate{margin-top:6px;font:500 20px var(--en);color:var(--sky)}
.sim-bars{margin:clamp(20px,2.6vw,34px) 0 clamp(20px,2.6vw,30px)}
.sim-bars>div+div{margin-top:12px}
.sim-bars p{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.sim-bars b{font:500 17px var(--en);color:#fff}
.sim-bars i{display:block;height:8px;margin-top:5px;background:rgba(255,255,255,.14)}
.sim-bars u{display:block;height:100%;background:#AFC2D3;transition:width .4s var(--ease);text-decoration:none}
.sim-bars .led u{background:var(--sky)}
.sim-r .btn{align-self:flex-start}
.sim-note{margin-top:14px;font-size:14.5px;line-height:1.8;color:var(--muted)}
.method.three{grid-template-columns:repeat(3,1fr)}

@media (max-width:1060px){
  .ba-two{grid-template-columns:1fr}
  .tool-list{grid-template-columns:1fr}
  .sim{grid-template-columns:1fr}
  .chk-res li{grid-template-columns:1fr 1fr}
  .chk-res p{grid-column:1/-1}
  .col-list a{display:block}
  .col-list b{display:block;width:auto;margin-bottom:2px}
  .bar.stack-sp,.ba-sec .bar{display:block}
  .ba-sec .bar .lead{margin-top:10px}
  .ba{aspect-ratio:1/1}
  .method.three{grid-template-columns:1fr}
}
@media (max-width:430px){.chk-a{grid-template-columns:1fr}.s2{grid-template-columns:1fr}}

.art .doc dl div{grid-template-columns:9.5em 1fr}
@media (max-width:480px){.ttl .en{font-size:clamp(44px,14.4vw,58px)}}
