
:root{
  --bg:#fff;--bg2:#fafafa;
  --g100:#f5f5f5;--g200:#ebebeb;--g300:#e3e3e3;--g400:#e0e0e0;--g500:#c9c9c9;--g600:#a8a8a8;--g700:#8f8f8f;--g800:#7d7d7d;--g900:#666;--g1000:#171717;
  --ink:#171717;--body:#3d3d3d;--muted:#666;--line:#e6e6e6;
  --c-lime:#e8ff3a;--c-sky:#d9e6ff;--c-lilac:#e9dcff;--c-mint:#c9f2e3;--c-paper:#f3ead6;--c-blue:#1266c9;--c-ink:#171717;
  --serif:"Hiragino Mincho ProN","Hiragino Mincho Pro","Yu Mincho","YuMincho","BIZ UDPMincho",serif;--sans:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","BIZ UDPGothic",Meiryo,-apple-system,BlinkMacSystemFont,sans-serif;
  --r:6px;--rc:12px;--wrap:1184px;
}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.8 var(--sans);line-break:strict;overflow-wrap:anywhere}h1,h2,h3,summary{word-break:keep-all;overflow-wrap:break-word}h2,h3{text-wrap:balance}.more wbr,.label wbr,.btn wbr,.marq wbr{display:none}.hero h1,.hang{text-indent:-.5em}.hero h1 .ln{text-indent:0}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 48px;position:relative}
@media(max-width:767px){.wrap{padding:0 20px}}
/* ---- Geist-style guide lines: section separators with crosses at the frame edges */
.rule{position:relative}.rule::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line);pointer-events:none}

/* ---- header */
.hd{position:fixed;top:0;left:0;right:0;z-index:20;background:#fff;border-bottom:1px solid var(--line);transition:background .35s,border-color .35s}.hd.on{background:rgba(255,255,255,.96);backdrop-filter:saturate(150%) blur(12px);-webkit-backdrop-filter:saturate(150%) blur(12px)}body.is-intro .hd{opacity:0}body.is-intro.intro-done .hd{opacity:1}
.hd .wrap{height:71px;display:flex;align-items:center;gap:24px}
.hd .logo{width:260px}.hd nav{display:flex;gap:24px;margin-left:auto;font-size:15px;line-height:1.5;color:var(--ink)}
.hd nav a:hover{color:var(--ink)}
.hd .logo img,.ft a.logo img{margin-left:-3.8%}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--r);background:var(--ink);color:#fff;font-size:16px;line-height:1.5;font-weight:600;border:1.5px solid var(--ink);transition:background .15s}
.btn:hover{background:#383838}
.btn.lg{height:48px;padding:0 24px}@media(max-width:767px){.btn.lg{height:52px}}
.btn.ghost{background:#fff;color:var(--ink);border-color:var(--ink)}.btn.ghost:hover{background:var(--g100)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--ink)}
.menu{display:none}
@media(max-width:900px){.hd nav,.hd .hbtn{display:none}.hd .logo{width:224px}.menu{display:flex;align-items:center;gap:8px;margin-left:auto;height:44px;padding:0 0 0 10px;border:0;border-radius:var(--r);background:none;-webkit-appearance:none;appearance:none;cursor:pointer;color:var(--ink);font:600 14px/1.5 var(--sans)}.menu i{display:flex;flex-direction:column;gap:5px;width:22px}.menu span{display:block;height:2px;background:var(--ink);border-radius:1px}}
/* ---- type scale (SP / PC)
   display h1 (mincho) 31/42 lh1.4 | section h2 (mincho) 28/32 lh1.4 | card/quote/why h3 20/22 lh1.45 (quote lh1.6)
   sub h3 18/18 lh1.45 | body 16 lh1.8 | small 14 lh1.5 | label.mono 13/12 | counters 32/40
   buttons 16 | .go 13 | .all 14 | nav 15 | footer 14 | marquee 20/24 JP + 14/16 mono
   JP letter-spacing 0 (mincho headings .02em) */
.h-56{font-family:var(--serif);font-size:42px;line-height:1.4;letter-spacing:.02em;font-weight:600}
.h-32{font-family:var(--serif);font-size:32px;line-height:1.4;letter-spacing:.02em;font-weight:600}
.h-20{font-size:18px;line-height:1.45;letter-spacing:0;font-weight:600}
.copy-18{font-size:16px;line-height:1.8;color:var(--body)}
.label{font-size:14px;line-height:1.5;color:var(--g900);letter-spacing:0}
.label.mono{font-family:ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.04em;font-size:12px;color:var(--g700)}
/* ---- hero */
.hero{padding:72px 0 72px}@media(max-width:767px){.hero{padding-top:64px}}
.hero .top{display:flex;flex-direction:column}.hero .slides{order:-1}.hero .copy{display:block;max-width:760px;margin:56px 0 0}
.hero p.copy-18{margin:24px 0 40px;max-width:30em}
.hero .acts{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;max-width:300px}.hero .acts .btn{width:100%;white-space:nowrap}
.hero .slides{position:relative;margin:0;width:100%;height:min(52vh,520px);overflow:hidden;background:var(--g100)}
.hero .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease-in-out;transform:scale(1.18) translateX(7%)}.hero .slides img.on,.hero .slides img.off{animation:drift 7s linear forwards}.hero .slides img.on{opacity:1}@keyframes drift{from{transform:scale(1.18) translateX(7%)}to{transform:scale(1.18) translateX(-7%)}}@media(prefers-reduced-motion:reduce) and (min-width:99999px){.hero .slides img.on,.hero .slides img.off{animation:none;transform:none}}
@media(max-width:900px){.hero{padding:64px 0 48px}.hero .copy{margin-top:32px}.hero .slides{height:auto;aspect-ratio:4/3;max-height:56vh;margin:0 -20px;width:auto}}
@media(min-width:901px){.hero{padding-top:144px}.hero .top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:64px;align-items:center}.hero .copy{margin:0;max-width:none}.hero .h-56{font-size:36px}.hero p.copy-18{font-size:16px;margin:20px 0 32px}.hero{overflow-x:clip}.hero .slides{order:0;width:auto;height:480px;margin-right:calc(-1 * max(20px,min(176px,(100vw - 1088px)/2)));will-change:transform}
}
/* ---- facts strip: cells divided by lines */
.facts{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;border:1px solid var(--line);border-radius:var(--rc);overflow:hidden;margin-top:72px}
.facts>div{padding:28px;border-left:1px solid var(--line)}.facts>div:first-child{border-left:0}
.facts .n{font-size:40px;line-height:1.1;letter-spacing:-.03em;font-weight:600;font-variant-numeric:tabular-nums;margin:8px 0 4px}.facts .n span{font-size:16px;letter-spacing:0;margin-left:4px;font-weight:500}
@media(max-width:900px){.facts{grid-template-columns:1fr 1fr;margin-top:48px}.facts>div:nth-child(3){grid-column:1/-1;border-left:0}.facts>div:nth-child(n+3){border-top:1px solid var(--line)}.facts>div:nth-child(4){grid-column:1/-1;border-left:0}.facts .n{font-size:32px}}
/* ---- section head */
.sec{padding:112px 0}@media(max-width:767px){.sec{padding:64px 0}}
.head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:48px}
.head .label{margin-bottom:8px}
.head p{margin-top:12px;color:var(--body);max-width:34em;text-wrap:pretty}
.more{font-size:14px;line-height:1.5;font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;color:var(--ink)}.more:after{content:'→';transition:transform .15s}.more:hover:after{transform:translateX(3px)}
/* ---- Linear-style color cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ccard{display:flex;flex-direction:column;justify-content:space-between;min-height:360px;padding:28px;border-radius:var(--rc);color:var(--ink);transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s cubic-bezier(.2,.7,.2,1);position:relative;overflow:hidden}.ccard .ph img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}@media(hover:hover){a.ccard:hover{transform:translateY(-4px);box-shadow:0 12px 32px -16px rgba(23,23,23,.25)}a.ccard:hover .ph img{transform:scale(1.03)}}@media(hover:none){a.ccard:active{transform:scale(.985);transition-duration:.12s}}

.ccard h3{font-size:22px;line-height:1.45;letter-spacing:0;font-weight:600}
.ccard p{margin-top:8px;font-size:16px;line-height:1.8;color:rgba(23,23,23,.78);max-width:22em}
.ccard .foot{display:flex;align-items:center;gap:16px;margin-top:40px;font-size:14px;line-height:1.5}
.ccard .foot b{display:block;font-weight:600}.ccard .foot span{display:block;color:rgba(23,23,23,.6)}
.ccard .foot i{width:1px;height:36px;background:rgba(23,23,23,.18)}.quote .foot>b{font-size:22px}
.ccard .num,.ccard .shot{display:none}
.ccard.lime{background:var(--c-lime)}.ccard.sky{background:linear-gradient(180deg,#d9e6ff 0%,#ebe0ff 100%)}.ccard.lilac{background:var(--c-lilac)}.ccard.mint{background:var(--c-mint)}.ccard.paper{background:var(--c-paper)}.ccard.blue{background:var(--c-blue);color:#fff}.ccard.blue p,.ccard.blue .foot span{color:rgba(255,255,255,.85)}.ccard.blue .foot i{background:rgba(255,255,255,.3)}
.ccard.ink{background:var(--c-ink);color:#fff}.ccard.ink p,.ccard.ink .k,.ccard.ink .foot span{color:rgba(255,255,255,.7)}.ccard.ink .foot i{background:rgba(255,255,255,.25)}
.ccard .ph{margin:32px 0 0;border-radius:var(--r);overflow:hidden}.ccard .ph img{width:100%;aspect-ratio:16/10;object-fit:cover}
@media(max-width:900px){
.cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:20px;gap:12px;margin:0 -20px;padding:0 20px 8px;scrollbar-width:none}.cards::-webkit-scrollbar{display:none}.cards .ccard{flex:0 0 80%;scroll-snap-align:start;min-height:300px;padding:22px}.ccard h3{font-size:20px}.ccard .ph{margin-top:24px}.quote .foot>b{font-size:20px}
}
/* quotes: big text, logo/name at bottom (Linear). lh 1.6: multi-line sentence, not a title */
.quote h3{font-family:var(--serif);font-size:22px;line-height:1.6;letter-spacing:.02em;font-weight:500;text-wrap:pretty}
/* DOD-style link: underlined text + circle arrow */
.go{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;font-size:13px;line-height:1.5;font-weight:600;color:inherit}
.go u,.all u{text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:2px}
.go i,.all i{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;font-style:normal;font-size:12px;line-height:1;transition:transform .25s,background .2s,color .2s}
.ccard.blue .go i{background:#fff;color:var(--ink)}
a:hover .go i,.all:hover i{transform:translate(2px,-2px)}
.all{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:24px;padding:8px 0;font-size:14px;line-height:1.5;font-weight:600;color:var(--ink)}.all.left{justify-content:flex-start}.all:hover i{background:var(--ink);color:#fff}

.all i{width:26px;height:26px;font-size:12px;background:#fff;color:var(--ink);border:1px solid var(--ink)}
.prog{display:none;height:2px;background:var(--line);margin-top:16px;border-radius:2px;overflow:hidden}.prog i{display:block;height:100%;width:34%;background:var(--ink);border-radius:2px;transition:transform .15s}
@media(max-width:900px){.prog{display:block}}
/* ---- works: photo tiles on gray-100 */
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wk{border:0;border-radius:0;overflow:visible;background:#fff}
.wk figure{margin:0;background:none;padding:16px 40px 0;display:flex;align-items:flex-end;justify-content:center}
.wk figure img{width:100%;height:100%;object-fit:cover;display:block}.wk{cursor:pointer}
.wk .t{padding:24px 40px 0;border-top:0;text-align:left}.wk .t .go{display:flex;margin-top:0}
@media(max-width:900px){.works{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:20px;gap:12px;margin:0 -20px;padding:0 20px 8px;scrollbar-width:none}.works .wk{flex:0 0 80%;scroll-snap-align:start}.wk figure{padding:8px 20px 0}.wk .t{padding:16px 20px 0}}
/* page curl (Vercel): the corner lifts, what is underneath shows */
.peel{--d:72px;position:relative;isolation:isolate;cursor:pointer}
.peel .flap{position:absolute;right:0;bottom:0;width:var(--d);height:var(--d);z-index:2;clip-path:polygon(0 0,100% 0,0 100%);filter:drop-shadow(-4px 5px 7px rgba(0,0,0,.25))}
/* colour service cards: photo underneath */
.ccard.peel{aspect-ratio:1/1;min-height:0;justify-content:flex-start}
.ccard.peel .txt{position:relative;z-index:3;transition:opacity .3s}.ccard.peel.is-on .txt{opacity:0}
.ccard.peel .under{position:absolute;inset:0;z-index:1;clip-path:polygon(calc(100% - var(--d)) 100%,100% calc(100% - var(--d)),100% 100%)}
.ccard.peel .under img{width:100%;height:100%;object-fit:cover}
/* works: the printed piece itself curls (no box behind it) */
.sheet{--d:56px;--a:56px;--b:56px;--fu:56px;--fv:56px;--fg:linear-gradient(135deg,#fff,#c9c9c9);width:min(100%,300px);aspect-ratio:3/4.2;border-radius:2px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.08),0 10px 24px -12px rgba(0,0,0,.22)}
.sheet .cover{position:absolute;inset:0;z-index:1;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--b)),calc(100% - var(--a)) 100%,0 100%)}
.sheet .under{position:absolute;inset:0;z-index:0;padding:20px 20px 20px 40%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;text-align:right;gap:4px}.sheet .under>*{opacity:var(--tx,0)}
.sheet.lime .under{background:var(--c-lime)}.sheet.sky .under{background:linear-gradient(180deg,#d9e6ff,#ebe0ff)}.sheet.blue .under{background:var(--c-blue);color:#fff}
.sheet .under b{font-size:18px;line-height:1.45;letter-spacing:0;font-weight:600}.sheet .under span{font-size:14px;line-height:1.5;opacity:.8}.sheet .under em{font-style:normal;font-size:14px;line-height:1.5;font-weight:600;margin-top:12px;display:inline-block;align-self:flex-start;padding:8px 16px;border:1px solid currentColor;border-radius:var(--r)}
.sheet .flap{position:absolute;inset:0;width:auto;height:auto;z-index:2;clip-path:none;pointer-events:none;filter:drop-shadow(4px 6px 8px rgba(0,0,0,.30)) drop-shadow(1px 1px 1px rgba(0,0,0,.18))}
.sheet .flap::before{content:'';position:absolute;inset:0;background:var(--fg);clip-path:polygon(calc(100% - var(--a)) 100%,100% calc(100% - var(--b)),calc(100% - var(--fu)) calc(100% - var(--fv)))}
/* ---- reasons: bordered grid cells, Geist */
.cells{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--rc);overflow:hidden}
.cells>div{padding:28px;border-top:1px solid var(--line)}.cells>div:nth-child(-n+2){border-top:0}.cells>div:nth-child(2n){border-left:1px solid var(--line)}
.cells h3{font-size:18px;line-height:1.45;font-weight:600;letter-spacing:0;margin-bottom:8px}.cells p{color:var(--body);font-size:16px}
@media(max-width:767px){.cells{grid-template-columns:1fr}.cells>div{border-left:0!important;border-top:1px solid var(--line)!important;padding:22px}.cells>div:first-child{border-top:0!important}}
.about{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}.about figure{margin:0;border-radius:var(--rc);overflow:hidden}.about figure img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}@media(max-width:900px){.about figure img{aspect-ratio:1920/1000}}@media(max-width:900px){.about{grid-template-columns:1fr;gap:24px}}
@media(min-width:901px){.about{align-items:stretch;grid-template-columns:1.1fr 1fr}.about figure{height:100%}.about figure img{height:100%;aspect-ratio:auto;object-position:32% 50%}}.about figure.rv.in img{animation:none!important}
.about h2{margin-top:8px}.about p:not(.label){margin-top:16px;color:var(--g900)}.about .h-32+p{margin-top:12px}.about .all{margin-top:40px}@media(max-width:767px){.about .all{margin-top:24px}}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--rc);overflow:hidden}
.flow li{padding:28px;border-left:1px solid var(--line)}.flow li:first-child{border-left:0}.flow h3{font-size:18px;line-height:1.45;font-weight:600;letter-spacing:0;margin:8px 0}.flow p{font-size:16px;color:var(--body)}
@media(max-width:900px){.flow{grid-template-columns:1fr}.flow li{border-left:0;border-top:1px solid var(--line);padding:22px}.flow li:first-child{border-top:0}}
.why{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.why li{display:grid;grid-template-columns:120px 1fr;gap:32px;padding:32px 0;border-bottom:1px solid var(--line);align-items:start}
.why .no{font-family:var(--serif);font-size:40px;line-height:1;letter-spacing:.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.why h3{font-family:var(--serif);font-size:22px;line-height:1.45;letter-spacing:.02em;font-weight:600;margin-bottom:8px}
.why p{color:var(--body);font-size:16px;max-width:36em}
@media(max-width:767px){.why li{grid-template-columns:1fr;gap:8px;padding:24px 0}.why .no{font-size:32px}.why h3{font-size:20px}}
@media(min-width:901px){.why{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:0}.why li{display:grid;grid-template-columns:56px 1fr;gap:24px;padding:32px;border-bottom:0;border-radius:var(--rc);align-items:start}.why .no{margin:0;padding:0}.why h3{font-size:22px}.why h3 wbr{display:none}.why p{font-size:16px;color:rgba(23,23,23,.78)}
.why li:nth-child(1){background:var(--c-lime)}.why li:nth-child(2){background:linear-gradient(180deg,#d9e6ff 0%,#ebe0ff 100%)}.why li:nth-child(3){background:var(--c-paper)}.why li:nth-child(4){background:var(--c-mint)}}
/* ---- journal + news */
.jn{display:grid;grid-template-columns:1.4fr 1fr;gap:48px}.newsonly{max-width:760px}
.post{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line);align-items:center}
.post:last-child{border-bottom:1px solid var(--line)}.post img{width:120px;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}
.post span{display:block;font-size:14px;line-height:1.5;color:var(--g900)}.post b{display:block;font-weight:600;font-size:16px;margin-top:4px;line-height:1.5}
.news>a:not(.all){display:grid;grid-template-columns:84px 1fr;gap:12px;padding:16px 0;border-top:1px solid var(--line);font-size:16px}.news>a:not(.all):last-of-type{border-bottom:1px solid var(--line)}.news>a.all{border:0}
.news time{font-size:14px;line-height:1.5;color:var(--g900);font-variant-numeric:tabular-nums;padding-top:4px}
@media(max-width:900px){.jn{grid-template-columns:1fr;gap:40px}}
/* ---- FAQ */
.faq{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:20px 48px 20px 0;font-size:18px;line-height:1.45;font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';position:absolute;right:0;top:22px;font-size:22px;line-height:1;font-weight:400;color:var(--ink)}
.faq summary:after{transition:transform .24s cubic-bezier(.2,.7,.2,1)}.faq details[open] summary:after{transform:rotate(45deg)}.faq .a{padding:0 0 24px;color:var(--body);max-width:40em}.faq .a-w{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s cubic-bezier(.2,.7,.2,1)}.faq .a-w>div{overflow:hidden}.faq details.is-open .a-w{grid-template-rows:1fr}
/* ---- CTA */
.cta{padding:112px 0;text-align:center}.cta .label{margin-bottom:8px}.cta p{margin:12px auto 40px;color:var(--g900)}
.cta .tel{display:inline-block;margin-top:24px;font-size:22px;line-height:1.45;font-weight:600;letter-spacing:-.01em}.cta .tel small{display:block;font-size:14px;line-height:1.5;font-weight:400;color:var(--g900);margin-top:4px}
@media(max-width:767px){.cta{padding:64px 0}.cta p{margin-bottom:24px}.cta .btn{width:100%}.cta .tel{font-size:20px}}
/* ---- footer */
.ft{border-top:0;padding:64px 0 32px;font-size:14px;line-height:1.5;color:var(--g900)}
.ft .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}.ft .logo{width:280px}.ft .co p{margin-top:16px;line-height:1.8}
.ft h4{margin:0 0 8px;font-size:14px;line-height:1.5;font-weight:600;color:var(--ink)}.ft .cols a{display:block;padding:12px 0}.ft .cols a:hover{color:var(--ink)}.ft .co p a{display:inline;padding:0;color:var(--ink);font-weight:600}.ft .co a.logo{display:block;width:280px;padding:0}
.ft .bt{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px}
@media(max-width:900px){.ft{padding:40px 0 24px}.ft .cols{grid-template-columns:1fr 1fr;gap:24px 16px}.ft .co{grid-column:1/-1}.ft .bt{margin-top:32px}}
.bar{display:none}
@media(max-width:767px){.bar{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;padding:8px 16px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);backdrop-filter:blur(8px);border-top:1px solid var(--line);z-index:30;transition:transform .35s cubic-bezier(.2,.7,.2,1)}.bar.hide{transform:translateY(110%)}.bar .btn{height:48px;padding:0 8px;font-size:15px;white-space:nowrap}body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}
@media(max-width:767px){.quote h3{font-size:20px}}

/* scroll reveal v2 — keyframes (hover transitions stay untouched). --d is set per element by the script so items in one view come in one by one */
.rv{--d:0s;opacity:0}
.rv.in{opacity:1;animation:rvUp 1s cubic-bezier(.2,.7,.2,1) var(--d) backwards}
@keyframes rvUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes rvIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes rvImg{from{opacity:0;transform:scale(1.07)}to{opacity:1;transform:none}}
@keyframes rvLine{from{transform:scaleX(0)}to{transform:none}}
.why li.rv.in>*,.head.rv.in>div>*{animation:rvIn .9s cubic-bezier(.2,.7,.2,1) calc(var(--d) + .2s) backwards}
.why li.rv.in>*:nth-child(2),.head.rv.in>div>*:nth-child(2){animation-delay:calc(var(--d) + .36s)}.head.rv.in>div>*:nth-child(3){animation-delay:calc(var(--d) + .52s)}
.why li.rv.in>div>p{animation:rvIn .9s cubic-bezier(.2,.7,.2,1) calc(var(--d) + .55s) backwards}
.ccard.rv.in .ph img,.about figure.rv.in img,.hero-ph.rv.in img,.wbig.rv.in img,.plist a.rv.in img{animation:rvImg 1.3s cubic-bezier(.2,.7,.2,1) calc(var(--d) + .15s) backwards}
.ccard.rv.in>*,.flow li.rv.in>*,.faq details.rv.in>summary{animation:rvIn .9s cubic-bezier(.2,.7,.2,1) calc(var(--d) + .25s) backwards}
.sec-rv.rule::before{transform-origin:left}.sec-rv:not(.sec-in).rule::before{transform:scaleX(0)}.sec-rv.sec-in.rule::before{animation:rvLine 1.3s cubic-bezier(.2,.7,.2,1) backwards}
@media(prefers-reduced-motion:reduce) and (min-width:99999px){@keyframes rvUp{from{opacity:0}to{opacity:1}}@keyframes rvIn{from{opacity:0}to{opacity:1}}@keyframes rvImg{from{opacity:0}to{opacity:1}}}
/* marquee */
.marq{overflow:hidden;background:var(--g100);color:var(--ink);padding:18px 0;white-space:nowrap}
.marq .track{display:inline-flex;align-items:center;gap:56px;animation:marq 44s linear infinite;will-change:transform}.marq .track>span{flex:none;white-space:nowrap}.marq:hover .track{animation-play-state:paused}
.marq span{font-size:18px;line-height:1;font-weight:600;letter-spacing:0;color:var(--ink)}.marq span.en{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-weight:500;font-size:15px;letter-spacing:.04em;color:var(--g900)}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce) and (min-width:99999px){.marq .track{animation:none}}
@media(max-width:767px){.marq{padding:14px 0}.marq span{font-size:15px}.marq span.en{font-size:13px}.marq .track{animation-duration:36s;gap:40px}}
/* opening */
.intro{position:fixed;inset:0;z-index:100;background:#fff;pointer-events:none}.intro{--lgL:11.5px;--lgT:3.5px;--lgW:224px}@media(min-width:901px){.intro{--lgL:calc(max(48px,50% - 544px) - 9.9px);--lgT:3px;--lgW:260px}}.intro .lg{position:absolute;left:50%;top:50%;width:min(60vw,300px);opacity:0;transform:translate(-50%,-50%)}.intro .lg img{width:100%;display:block}body.is-intro .intro .lg{animation:lgIn .9s ease forwards,lgUp 1.3s cubic-bezier(.2,.7,.2,1) 1.5s forwards}@keyframes lgIn{to{opacity:1}}@keyframes lgUp{to{left:var(--lgL);top:var(--lgT);width:var(--lgW);transform:none}}.intro .plate{position:absolute;left:50%;top:50%;width:min(66vw,320px);aspect-ratio:1;border-radius:28px;background:var(--g100);transform:translate(-50%,-50%) rotate(-10deg) scale(.6);opacity:0}.intro .th{position:absolute;overflow:hidden;background:var(--g100);opacity:0;will-change:transform;z-index:2}.intro .plate{z-index:1}.intro .lg{z-index:3}.intro .th img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.18) translateX(7%)}



@keyframes introOut{to{opacity:0;visibility:hidden}}
body.is-intro .hero .slides{opacity:0}body.is-intro.intro-done .hero .slides{opacity:1}

body.is-intro .hero .ln{display:inline-block;opacity:0;transform:translateY(12px);animation:fadeUp 1s cubic-bezier(.2,.7,.2,1) both}
body.is-intro .hero h1 .ln:nth-child(1){animation-delay:5.9s}body.is-intro .hero h1 .ln:nth-child(3){animation-delay:6.15s}
body.is-intro .hero .copy-18 .ln:nth-child(1){animation-delay:6.3s}body.is-intro .hero .copy-18 .ln:nth-child(3){animation-delay:6.45s}body.is-intro .hero .copy-18 .ln:nth-child(5){animation-delay:6.6s}
body.is-intro .hero .acts{animation:fadeUp .7s ease 6.8s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce) and (min-width:99999px){.intro{display:none}body.is-intro .hero .slides,body.is-intro .hero .ln,body.is-intro .hero .acts{animation:none;opacity:1;transform:none}}
/* ---- SP (≤767) overrides, one place */
@media(max-width:767px){
.hd .wrap{height:63px}.menu b{white-space:nowrap}
.h-56{font-size:31px}.h-32{font-size:28px}.label.mono{font-size:13px;white-space:nowrap}.faq summary:after{font-size:20px;top:23px}
.hero .copy-18 br{display:none}.hero p.copy-18{margin:16px 0 24px}.hero .acts{display:grid;grid-template-columns:1fr;gap:12px;max-width:300px}.hero .acts .btn{width:100%;height:52px}
.facts{margin-top:40px}.facts>div{padding:22px}
.head{display:grid;grid-template-columns:1fr;gap:12px;justify-items:start;margin-bottom:24px}.head .more{white-space:nowrap}
}
/* motion: minimal */
@media(prefers-reduced-motion:reduce) and (min-width:99999px){*{transition:none!important}}
/* ---- sub pages ---- */

body.sub main{padding-top:72px}@media(max-width:767px){body.sub main{padding-top:64px}}
/* ---- hierarchy on sub pages (decided 2026-10-27 with the reviewer) ----
   PC 36 hero(top only) > 32 page h1 > 24 h2 > 18 h3 > 16 body / SP 31 hero > 28 page h1 (doc-type 24) > 22 h2 > 18 h3 > 16
   body width 640px (40 chars), SP gutters 20. Spacing steps SP 8/16/24/32/48/64, PC +80/112 */
.crumbs{font-size:13px;color:var(--g900);display:flex;gap:8px;flex-wrap:nowrap;padding-top:16px;white-space:nowrap}.crumbs>*{flex:none}.crumbs>:last-child{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.crumbs a:hover{color:var(--ink)}.crumbs span{color:var(--g600)}
.pintro{padding-top:24px;padding-bottom:32px}.pintro .label{margin-bottom:8px}.pintro h1{font-family:var(--serif);font-size:28px;line-height:1.4;letter-spacing:.02em;font-weight:600;text-wrap:balance}.pintro.doc h1{font-size:24px;line-height:1.5}.pintro p{margin-top:12px;color:var(--body);max-width:40em;text-wrap:pretty}
body.sub main .pintro+.sec{padding-top:0}
body.sub main .sec{padding:48px 0}body.sub main .sec .head{margin-bottom:24px}body.sub main .sec .head h2{font-size:22px}
@media(min-width:768px){.crumbs{font-size:14px;padding-top:24px;gap:10px}.pintro{padding-top:32px;padding-bottom:48px}.pintro h1{font-size:32px}.pintro.doc h1{font-size:28px}body.sub main .sec{padding:80px 0}body.sub main .sec .head{margin-bottom:32px}body.sub main .sec .head h2{font-size:24px}}
time,.num{font-variant-numeric:tabular-nums}
/* chips: one scrolling row */
.chips{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;margin:0 -20px 24px;padding:0 20px 4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;height:40px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff;font:600 14px var(--sans);color:var(--ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}.chip small{font-size:13px;font-weight:400;color:var(--g900)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}.chip[aria-pressed=true] small{color:rgba(255,255,255,.7)}
@media(min-width:768px){.chips{margin:0 0 32px;padding:0;flex-wrap:wrap}}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:900px){.grid3{grid-template-columns:1fr 1fr;gap:12px}}@media(max-width:480px){.grid3{grid-template-columns:1fr}}
.grid3 .ccard{min-height:0;padding:24px}.grid3 .ccard[hidden]{display:none}
.empty{display:none;color:var(--g900);padding:24px 0}.empty.show{display:block}
/* services index: category h2 + list (SP) / photo-less colour cards (PC) */
.svcgrp{margin-top:32px}.svcgrp:first-child{margin-top:0}.svcgrp h2{font-family:var(--serif);font-size:22px;line-height:1.4;letter-spacing:.02em;font-weight:600;margin:0 0 12px}.svcgrp .cnt{font-family:var(--sans);font-size:14px;color:var(--g900);letter-spacing:0;margin-left:8px;font-weight:400}
.svclist{border-top:1px solid var(--line)}.svclist a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px;font-weight:600}.svclist a small{display:block;font-size:14px;font-weight:400;color:var(--g900);margin-top:2px}.svclist a i{flex:none;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:13px}
@media(min-width:768px){.svcgrp{margin-top:48px}.svcgrp h2{font-size:24px;margin-bottom:16px}.svclist{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;border:0}.svclist a{flex-direction:column;align-items:flex-start;justify-content:space-between;min-height:200px;padding:24px;border:0;border-radius:var(--rc);color:var(--ink)}.svclist a i{align-self:flex-end}
.svclist a.lime{background:var(--c-lime)}.svclist a.sky{background:linear-gradient(180deg,#d9e6ff 0%,#ebe0ff 100%)}.svclist a.paper{background:var(--c-paper)}.svclist a.mint{background:var(--c-mint)}.svclist a.lilac{background:var(--c-lilac)}.svclist a.blue{background:var(--c-blue);color:#fff}.svclist a.blue small{color:rgba(255,255,255,.8)}.svclist a.blue i{background:#fff;color:var(--ink)}}
/* detail layout: 640 + 240 (PC); on SP the side block follows the article */
.split{display:grid;grid-template-columns:minmax(0,640px) 240px;justify-content:space-between;gap:64px;align-items:start}@media(max-width:1023px){.split{grid-template-columns:1fr;gap:48px}}
.side{position:sticky;top:96px}.side h3{font-size:14px;color:var(--g900);font-weight:600;margin-bottom:8px}.side a:not(.btn):not(.all){display:block;padding:12px 0;border-top:1px solid var(--line);font-size:16px}.side a:not(.btn):not(.all):has(+.all),.side a:not(.btn):not(.all):has(+.btn),.side a:not(.btn):not(.all):last-child{border-bottom:1px solid var(--line)}.side a.cur{font-weight:600}.side .btn{margin-top:24px;width:100%;height:48px}.side .all{margin-top:16px}
@media(max-width:1023px){.side{position:static;max-width:640px}}
.art{max-width:640px}.art>:first-child{margin-top:0}.art h2{font-family:var(--serif);font-size:22px;line-height:1.4;letter-spacing:.02em;font-weight:600;margin:48px 0 16px;padding-top:16px;border-top:1px solid var(--line)}.art h3{font-size:18px;line-height:1.45;font-weight:600;margin:32px 0 8px}.art h2+h3{margin-top:24px}.art p{margin:0 0 16px;color:var(--body)}.art ul,.art ol{margin:0 0 16px;padding-left:1.4em;color:var(--body)}.art li{margin:4px 0}.art figure{margin:24px 0}.art figure img{width:100%;border-radius:var(--rc)}.art .lead{font-size:16px;line-height:1.8;color:var(--ink)}
.art a:not(.btn):not(.all):not(.go){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--g600)}.art a:not(.btn):not(.all):not(.go):hover{text-decoration-color:var(--ink)}
@media(min-width:768px){.art h2{font-size:24px;margin:64px 0 24px;padding-top:16px}.art .lead{font-size:18px}}
.art.doc p{margin-bottom:24px}.sign{margin-top:32px;text-align:right}.sign b{display:block;font-weight:600}.sign small{font-size:14px;color:var(--g900)}
.spec{display:grid;grid-template-columns:120px 1fr;gap:0;border-top:1px solid var(--line);margin:8px 0 0}.spec dt,.spec dd{padding:12px 0;border-bottom:1px solid var(--line);margin:0}.spec dt{font-weight:600;font-size:14px;color:var(--g900)}.spec dd{color:var(--body)}@media(max-width:480px){.spec{grid-template-columns:96px 1fr}}
.tbl{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}.tbl th,.tbl td{text-align:left;vertical-align:top;padding:16px 12px 16px 0;border-bottom:1px solid var(--line);font-size:16px}.tbl th{width:160px;font-weight:600;color:var(--g900);font-size:14px}
@media(max-width:480px){.tbl.stack th,.tbl.stack td{display:block;width:100%}.tbl.stack th{padding:16px 0 4px;border:0}.tbl.stack td{padding:0 0 16px}.tbl:not(.stack) th{width:96px;padding-right:8px}}
.hero-ph{border-radius:var(--rc);overflow:hidden;margin:0 0 32px}@media(min-width:768px){.hero-ph{margin-bottom:40px}}.hero-ph img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.hero-ph img.wide{aspect-ratio:1920/1000}@media(max-width:767px){.hero-ph img{aspect-ratio:4/3}}
.ph-ph{background:var(--g100);border-radius:var(--rc);aspect-ratio:3/2;display:flex;align-items:center;justify-content:center;color:var(--g700);font-size:14px}
/* form */
.form{max-width:640px}.f{margin-bottom:24px}.f label,.f .lab{display:block;font-weight:600;font-size:14px;margin-bottom:8px}.f .req{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;color:#fff;background:var(--ink);padding:1px 6px;border-radius:3px}.f .opt{display:inline-block;margin-left:8px;font-size:12px;color:var(--g900);border:1px solid var(--line);padding:0 6px;border-radius:3px}
.f input[type=text],.f input[type=email],.f input[type=tel],.f select,.f textarea{width:100%;height:52px;padding:0 14px;border:1px solid var(--g500);border-radius:var(--r);font:16px var(--sans);background:#fff;color:var(--ink)}.f textarea{height:180px;padding:12px 14px;line-height:1.7}.f select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23171717' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center}
@media(min-width:768px){.f input[type=text],.f input[type=email],.f input[type=tel],.f select{height:48px}}
.f .radios{display:flex;gap:8px;flex-wrap:wrap}.f .radios label{display:flex;align-items:center;gap:8px;height:48px;padding:0 16px;border:1px solid var(--g500);border-radius:var(--r);font-weight:500;font-size:16px;margin:0;cursor:pointer}.f .radios input{width:18px;height:18px;margin:0}
@media(max-width:480px){.f .radios{flex-direction:column}.f .radios label{height:52px;width:100%}}
.f.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}@media(max-width:480px){.f.two{grid-template-columns:1fr;gap:24px}}
.f .check{display:flex;align-items:flex-start;gap:10px;font-weight:400;font-size:16px}.f .check input{width:20px;height:20px;margin-top:3px}
.f .note{font-size:14px;color:var(--g900);margin-top:8px}
.f .file{border:1px dashed var(--g500);border-radius:var(--r);padding:16px;font-size:14px;color:var(--g900)}
.form .btn{width:100%}
.art .flow{grid-template-columns:1fr 1fr}.art .flow li:nth-child(2n+1){border-left:0}.art .flow li:nth-child(n+3){border-top:1px solid var(--line)}.art .flow li{padding:20px 24px}.art .flow li .label{margin:0}.art .flow h3{margin:4px 0 4px}@media(max-width:767px){.art .flow li{padding:16px 20px}}
.aside-box{background:var(--g100);border-radius:var(--rc);padding:24px}.aside-box h3{font-size:18px;margin-bottom:8px}.aside-box .tel{font-size:22px;font-weight:600;display:block;margin:12px 0 4px}.aside-box small{color:var(--g900);font-size:14px}
.cgrid{display:grid;grid-template-columns:minmax(0,640px) 320px;justify-content:space-between;gap:64px;align-items:start}@media(max-width:1023px){.cgrid{grid-template-columns:1fr;gap:32px}.cgrid .aside-box{order:-1}}
body.contact .bar{grid-template-columns:1fr}body.contact .bar .btn:last-child{display:none}
/* faq */
.search{position:relative;max-width:640px;margin-bottom:24px}.search input{width:100%;height:52px;padding:0 14px 0 44px;border:1px solid var(--g500);border-radius:var(--r);font:16px var(--sans)}.search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--g900);pointer-events:none}@media(min-width:768px){.search input{height:48px}}
.faqwrap{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:64px;align-items:start}.faqwrap>*{min-width:0}.faqwrap>.faqcat{grid-column:2;grid-row:1}.faqwrap>#faq{grid-column:1;grid-row:1}@media(max-width:1023px){.faqwrap{grid-template-columns:1fr;gap:16px}.faqwrap>.faqcat,.faqwrap>#faq{grid-column:auto;grid-row:auto}}
.faqcat{position:sticky;top:96px}@media(min-width:1024px){.faqcat .chips{flex-direction:column;align-items:stretch;flex-wrap:nowrap}.faqcat .chip{justify-content:space-between}}@media(max-width:1023px){.faqcat{position:static}}
.faqgrp{margin-top:40px;scroll-margin-top:88px}.faqgrp:first-child{margin-top:0}.faqgrp h2{font-family:var(--serif);font-size:22px;line-height:1.4;letter-spacing:.02em;font-weight:600;margin:0 0 4px}.faqgrp[hidden]{display:none}
@media(min-width:768px){.faqgrp{margin-top:56px}.faqgrp h2{font-size:24px}}
.faq details[hidden]{display:none}.faq summary{font-size:18px}
/* works */
.wgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}@media(max-width:900px){.wgrid{grid-template-columns:1fr 1fr;gap:16px}}@media(max-width:480px){.wgrid{grid-template-columns:1fr;gap:32px}}
.wgrid .wk{border:0}.wgrid .wk figure{padding:0;justify-content:flex-start}.wgrid .sheet{width:100%}.wgrid .wk .t{padding:16px 0 0}.wgrid .wk .t>span:first-child{display:block;font-size:14px;color:var(--g900)}.wgrid .wk .t b{display:block;font-size:20px;font-weight:600;margin-top:4px}.wgrid .wk[hidden]{display:none}
.wbig{border-radius:var(--rc);overflow:hidden;background:var(--g100);padding:32px;display:flex;justify-content:center}.wbig img{max-width:420px;width:100%;box-shadow:0 1px 2px rgba(0,0,0,.08),0 14px 30px -14px rgba(0,0,0,.25)}
/* blog top */
.feat{display:grid;grid-template-columns:1.55fr 1fr;gap:0;border-radius:var(--rc);overflow:hidden;background:linear-gradient(180deg,#d9e6ff 0%,#ebe0ff 100%);color:var(--ink)}.feat img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}.feat .tx{padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}.feat .tag{font-size:14px;color:rgba(23,23,23,.7)}.feat h3{font-family:var(--serif);font-size:22px;line-height:1.5;letter-spacing:.02em;font-weight:600;margin:8px 0}.feat p{font-size:16px;color:rgba(23,23,23,.78);margin:0}
@media(max-width:767px){.feat{grid-template-columns:1fr}}@media(min-width:768px){.feat .tx{padding:32px}.feat h3{font-size:24px}}
.tabs{display:flex;gap:8px;margin-bottom:8px}.tabs button{height:40px;padding:0 16px;border:0;border-bottom:2px solid transparent;background:none;font:600 16px var(--sans);color:var(--g900);cursor:pointer}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}
.plist .no{font-family:var(--serif);font-size:20px;color:var(--g700);font-variant-numeric:tabular-nums;display:none}
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:767px){.cats{grid-template-columns:1fr;gap:12px}}.cats a{min-height:0}.cats .ccard{min-height:160px}
.tagrow{display:flex;flex-wrap:wrap;gap:8px}.tagrow a{height:40px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r);display:inline-flex;align-items:center;font-size:14px;font-weight:600}.tagrow a:hover{border-color:var(--ink)}
.fcard{display:grid;grid-template-columns:1fr 1.1fr;border-radius:var(--rc);overflow:hidden;background:var(--c-mint);color:var(--ink)}.fcard img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}.fcard .tx{padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:24px}.fcard .tag{font-size:14px;color:rgba(23,23,23,.7)}.fcard h3{font-family:var(--serif);font-size:22px;line-height:1.5;letter-spacing:.02em;font-weight:600;margin:8px 0}.fcard p{font-size:16px;color:rgba(23,23,23,.78);margin:0}.fcard .meta2{display:block;margin-top:12px;font-size:14px;color:rgba(23,23,23,.7)}@media(max-width:767px){.fcard{grid-template-columns:1fr}}@media(min-width:768px){.fcard .tx{padding:32px}.fcard h3{font-size:24px}}
.toc2{display:flex;flex-wrap:wrap;gap:8px}.toc2 a{height:40px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r);display:inline-flex;align-items:center;font-size:14px;font-weight:600}.toc2 a:hover{border-color:var(--ink)}
.edit{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start}@media(max-width:900px){.edit{grid-template-columns:1fr;gap:24px}}.edit .plist{border-top:1px solid var(--line)}
.ext{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px;border-radius:var(--rc);background:var(--g100)}@media(max-width:767px){.ext{flex-direction:column;align-items:flex-start}}.ext h3{font-size:20px;margin:0 0 4px}.ext p{margin:0;color:var(--body)}
/* journal / news list */
.plist{border-top:1px solid var(--line)}.plist a{display:grid;grid-template-columns:160px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);align-items:start}.plist img{width:160px;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r)}.plist span{display:block;font-size:14px;color:var(--g900)}.plist b{display:block;font-size:18px;line-height:1.5;font-weight:600;margin-top:4px}.plist time{font-size:14px;color:var(--g900)}
@media(max-width:480px){.plist a{grid-template-columns:96px 1fr;gap:16px}.plist img{width:96px}.plist b{font-size:16px;line-height:1.6}.plist span{font-size:13px}}
.nlist{border-top:1px solid var(--line)}.nlist a{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.nlist time{font-size:14px;color:var(--g900);padding-top:3px}@media(max-width:480px){.nlist a{grid-template-columns:1fr;gap:4px}}
.meta{display:flex;gap:16px;font-size:14px;color:var(--g900);margin-top:12px}.pintro p .meta{margin:0}
.toc{background:var(--g100);border-radius:var(--rc);padding:20px 24px;margin:32px 0}.toc b{display:block;font-size:14px;margin-bottom:8px}.toc ol{margin:0;padding-left:1.4em;font-size:16px;color:var(--body)}.toc li{margin:4px 0}@media(min-width:768px){.toc ol{font-size:15px}}
.center{text-align:center}.center .btn{margin-top:24px}.center .btn+.btn{margin-left:8px}
.sdgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:24px 0}.sdgs div{border:1px solid var(--line);border-radius:var(--rc);padding:20px}.sdgs b{display:block;font-size:16px;margin-bottom:6px}.sdgs p{font-size:14px;margin:0;color:var(--body)}

.pager{display:flex;gap:8px;flex-wrap:wrap;margin-top:32px}.pager .page-numbers{min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.pager .current{background:var(--ink);color:#fff;border-color:var(--ink)}
.art img{max-width:100%;height:auto;border-radius:var(--r)}.art table{width:100%;border-collapse:collapse;margin:0 0 24px}.art th,.art td{padding:12px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.sub .pt{font-size:14px;color:var(--g900)}
@media(max-width:767px){.art .flow{grid-template-columns:1fr}.art .flow li{border-left:0!important}.art .flow li:nth-child(n+2){border-top:1px solid var(--line)}}

/* works carousel (PC): cards run off to the right; mouse drag / arrow buttons / trackpad */
.wnav{display:none}
@media(min-width:901px){
.works{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:24px;scrollbar-width:none;cursor:grab;padding-bottom:8px;-webkit-overflow-scrolling:touch}
.works::-webkit-scrollbar{display:none}
.works .wk{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start;min-width:0}
.works.drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}.works.drag a{pointer-events:none}
.works img{-webkit-user-drag:none;user-select:none}
.prog{display:block}.prog[hidden]{display:none}
.wnav{display:flex;gap:8px;justify-content:flex-end;margin:0;flex:none}.wnav[hidden]{display:none}
.wnav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--ink);background:#fff;color:var(--ink);font:600 18px/1 var(--sans);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,color .2s,opacity .2s}
.wnav button:hover:not(:disabled){background:var(--ink);color:#fff}.wnav button:disabled{opacity:.3;cursor:default}
}
.works.loop{scroll-snap-type:none!important}
@media(max-width:900px){.wnav{display:none!important}}

.art figure{margin:0}.art hr{border:0;border-top:1px solid var(--line);margin:48px 0}.art td:first-child{color:var(--g600);font-size:14px;line-height:1.7;width:34%}.art td{font-size:16px;line-height:1.8}.art iframe.izmap{display:block;width:100%;aspect-ratio:16/10;border:0;border-radius:var(--r);background:var(--c-paper)}@media(min-width:768px){.art td:first-child{width:13em}.art td{padding:16px 12px}}
.art hr:has(+h2){display:none}.art hr+h2{margin-top:0}

/* ---- フォーム（Contact Form 7）と画像 ---- */
body.sub .art .wp-block-image img,body.sub .art figure img{width:100%;height:auto}
body.sub .art figure.wp-block-image{margin:32px 0}
body.sub .wpcf7 p{margin:0 0 24px;font-size:16px;line-height:1.8}
body.sub .wpcf7 label{display:block;font-size:14px;line-height:1.7;font-weight:600;color:var(--ink)}
body.sub .wpcf7 .wpcf7-form-control-wrap{display:block;margin-top:8px}
body.sub .wpcf7 input[type=text],body.sub .wpcf7 input[type=email],body.sub .wpcf7 input[type=tel],body.sub .wpcf7 input[type=number],body.sub .wpcf7 input[type=url],body.sub .wpcf7 textarea,body.sub .wpcf7 select{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:16px;font-weight:400;line-height:1.6;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}
body.sub .wpcf7 textarea{min-height:200px;resize:vertical}
body.sub .wpcf7 input:focus,body.sub .wpcf7 textarea:focus,body.sub .wpcf7 select:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px rgba(23,23,23,.1)}
body.sub .wpcf7 .wpcf7-list-item{display:inline-block;margin:0 20px 8px 0}
body.sub .wpcf7 .wpcf7-list-item label{display:inline-flex;align-items:center;gap:8px;font-weight:400;font-size:16px;cursor:pointer}
body.sub .wpcf7 input[type=checkbox],body.sub .wpcf7 input[type=radio]{width:20px;height:20px;accent-color:var(--ink)}
body.sub .wpcf7 input[type=submit]{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 40px;border:0;border-radius:var(--r);background:var(--c-ink);color:#fff;font:inherit;font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s}
body.sub .wpcf7 input[type=submit]:hover{opacity:.85}
body.sub .wpcf7 .wpcf7-not-valid-tip{display:block;margin-top:6px;font-size:14px;color:#c0392b}
body.sub .wpcf7 .wpcf7-response-output{margin:24px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);font-size:15px;line-height:1.7}
@media(max-width:767px){body.sub .wpcf7 input[type=submit]{width:100%}}
body.sub .art .alignleft{float:left;margin:0 20px 12px 0}body.sub .art .alignright{float:right;margin:0 0 12px 20px}body.sub .art .aligncenter{display:block;margin:0 auto}body.sub .art::after{content:"";display:block;clear:both}body.sub .art figcaption{font-size:14px;line-height:1.7;color:var(--g600);margin-top:8px}

.wpcf7 fieldset.hidden-fields-container{display:none!important}.wpcf7 fieldset{border:0;margin:0;padding:0;min-width:0}.wpcf7 .screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.wpcf7 .wpcf7-spinner{display:none}
/* works archive: quiet gallery — small tiles, generous margins (v0.4.19) */
.wgrid{grid-template-columns:repeat(4,1fr);gap:88px 44px;max-width:960px;margin:24px auto 0;padding:0 0 40px}
.wgrid .wk .t{padding:20px 0 0}.wgrid .wk .t>span:first-child{font-size:12px;letter-spacing:.12em;color:var(--g600,#8a8a8a)}
.wgrid .wk .t b{font-size:14px;font-weight:500;line-height:1.7;margin-top:6px;letter-spacing:.04em}
.wgrid .wk figure{opacity:.96;transition:opacity .6s ease}.wgrid .wk:hover figure{opacity:1}
@media(max-width:1100px){.wgrid{grid-template-columns:repeat(3,1fr);gap:72px 36px}}
@media(max-width:700px){.wgrid{grid-template-columns:1fr 1fr;gap:56px 24px}}
@media(max-width:380px){.wgrid{grid-template-columns:1fr;gap:56px}}
/* services archive: photo on top, quiet tile below (v0.4.20) */
.svclist a.hasimg{flex-direction:column;align-items:stretch;justify-content:flex-start;padding:0;overflow:hidden;min-height:0;gap:0}
.svclist a.hasimg .sv-img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;order:-1}
.svclist a.hasimg>span{padding:20px 24px 24px;display:block}
.svclist a.hasimg>i{position:absolute;right:16px;bottom:16px}
.svclist a.hasimg{position:relative}
@media(min-width:768px){.svclist{gap:40px 28px}}
.izcore-faq details{border-bottom:1px solid rgba(0,0,0,.1);padding:4px 0}.izcore-faq summary{cursor:pointer;padding:18px 0;font-weight:600;list-style:none}.izcore-faq summary::-webkit-details-marker{display:none}.izcore-faq .a{padding:0 0 20px;color:#444;line-height:1.9}.izcore-faq .faqgrp-h{margin:48px 0 8px;font-size:20px}
/* forms: kubun/yoken radios, empty response box (v0.4.21) */
.wpcf7 form .wpcf7-response-output:empty{display:none}
.wpcf7 form.init .wpcf7-response-output,.wpcf7 form .wpcf7-response-output[hidden]{display:none}
.wpcf7 .wpcf7-radio{display:flex;flex-wrap:wrap;gap:12px 28px;padding:6px 0}
.wpcf7 .wpcf7-radio label{display:inline-flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}
.wpcf7 .wpcf7-radio input{width:auto;margin:0;accent-color:#171717}
.wpcf7 label.iz-req::after{content:"必須";margin-left:8px;font-size:13px;font-weight:600;color:#171717}
.iz-est[hidden]{display:none!important}
/* ===== sub pages v0.4.22: breathing room, same card system as the top ===== */
/* frame: narrower content, wider side margins (PC) */
@media(min-width:1024px){body.sub .wrap{max-width:1120px;padding:0 64px}}
@media(min-width:1280px){body.sub .wrap{max-width:1184px;padding:0 80px}}
/* intro block: crumbs → title → lead, with top-page rhythm */
body.sub .crumbs{padding-top:24px}
body.sub .pintro{padding-top:40px;padding-bottom:48px}
body.sub .pintro p{max-width:34em;text-wrap:pretty}
@media(min-width:768px){body.sub .crumbs{padding-top:32px}body.sub .pintro{padding-top:64px;padding-bottom:80px}body.sub main .sec{padding:0 0 112px}body.sub main .pintro+.sec{padding-top:0}}
/* category chips: quiet, no counts */
body.sub .chip{height:40px;padding:0 16px;font-weight:500;color:var(--body);background:#fff;border-color:var(--line)}
body.sub .chip:hover{color:var(--ink);border-color:var(--ink)}
@media(min-width:768px){body.sub .chips{margin-bottom:64px;gap:10px}}
/* service groups */
body.sub .svcgrp{margin-top:64px}body.sub .svcgrp:first-child{margin-top:0}
body.sub .svcgrp h2{font-family:var(--serif);font-size:22px;line-height:1.4;letter-spacing:.02em;font-weight:600;margin:0 0 20px;padding-top:24px;border-top:1px solid var(--line)}
@media(min-width:768px){body.sub .svcgrp{margin-top:96px}body.sub .svcgrp h2{font-size:24px;margin-bottom:32px;padding-top:32px}}
/* service cards: top-page .ccard, laid out as a grid on every width */
body.sub .cards.sgrid{display:grid;grid-template-columns:1fr;gap:16px;margin:0;padding:0;overflow:visible;scroll-snap-type:none}
body.sub .cards.sgrid .ccard{flex:none;min-height:0;padding:24px;scroll-snap-align:none}
body.sub .cards.sgrid .ccard .ph{margin-top:24px}
body.sub .cards.sgrid .ccard .ph img{aspect-ratio:4/3}
@media(min-width:600px){body.sub .cards.sgrid{grid-template-columns:1fr 1fr;gap:20px}}
@media(min-width:1024px){body.sub .cards.sgrid{grid-template-columns:repeat(3,1fr);gap:24px}body.sub .cards.sgrid .ccard{padding:28px}}
/* works gallery: a touch more air above */
body.sub .wgrid{margin-top:8px}
@media(min-width:768px){body.sub .wgrid{margin-top:16px}}
/* retire the old svclist look */
body.sub .svclist{display:none}
.iz-item[hidden]{display:none!important}.iz-note{font-size:14px;color:var(--g900);margin:0 0 16px;line-height:1.7}
.wpcf7 fieldset.iz-kubun,.wpcf7 fieldset.iz-yoken{border:0;padding:0;margin:0 0 20px}.wpcf7 fieldset legend{font-weight:600;font-size:16px;margin-bottom:6px;padding:0}
.wpcf7 .wpcf7-acceptance label{display:inline-flex;gap:8px;align-items:center;font-weight:400}.wpcf7 .wpcf7-acceptance input{width:auto}
/* v0.4.23: top works cards keep each image's own ratio (width is the base) */
.works .sheet.peel:has(.cover img){aspect-ratio:auto;height:auto}
.works .sheet.peel:has(.cover img) .cover{position:relative;inset:auto;width:100%}
.works .sheet.peel .cover img{position:static;width:100%;height:auto;display:block;object-fit:fill}
.works .sheet.peel .under,.works .sheet.peel .flap{position:absolute;inset:0}
/* v0.4.23: services archive — group heading above the card titles in scale */
body.sub .svcgrp h2{font-size:26px;letter-spacing:.03em}
body.sub .cards.sgrid .ccard h3{font-size:20px;line-height:1.45}
body.sub .cards.sgrid .ccard p{font-size:15px;line-height:1.8;margin-top:8px;color:rgba(23,23,23,.74)}
body.sub .cards.sgrid .ccard.blue p{color:rgba(255,255,255,.85)}
@media(min-width:768px){body.sub .svcgrp h2{font-size:30px}}
/* v0.4.23: works cards bottom-align so the row of 「詳しく見る」 lines up */
.works .wk{display:flex;flex-direction:column;justify-content:flex-end}.works .wk figure{flex:1 1 auto;align-items:flex-end}

/* v0.4.24 */
/* a: 読み込み直後に一度見えて消える（ちらつき）を防ぐ。JS が .rv を付けるまで、同じ対象を先に隠しておく */
html.izr body.sub :is(.cards>*,.why>li,.works>*,.wgrid>*,.flow>li,.faq>*,.faqgrp,.news>*,.nlist>*,.plist>*,.cats>*,.grid3>*,.svclist>*,.svcgrp,.tagrow,.toc2,.chips,.about>figure,.about>div>*,.pintro>*,.art>*,.side>*,.ext,.feat,.fcard,.hero-ph,.wbig,.sign,.sdgs>*,.cta>.wrap>*,.f>*,.aside-box,.tabs,.crumbs):not(:is(.hero,.hd,.ft,.bar,.intro,.marq) *){opacity:0}
/* c: 営業品目 — カテゴリーごとに開閉 */
details.svcgrp>summary{list-style:none;cursor:pointer;position:relative;display:block;padding-right:48px;min-height:44px}
details.svcgrp>summary::-webkit-details-marker{display:none}
details.svcgrp>summary::after{content:'+';position:absolute;right:0;top:34px;font-size:24px;line-height:1;color:var(--ink);transition:transform .24s cubic-bezier(.2,.7,.2,1)}
details.svcgrp[open]>summary::after{transform:rotate(45deg)}
details.svcgrp>summary h2{margin-bottom:8px!important}
details.svcgrp[open]>summary h2{margin-bottom:20px!important}
details.svcgrp:not([open])>summary{padding-bottom:8px}
.svnames{margin:0;font-size:14px;line-height:1.7;color:var(--body)}
details.svcgrp[open] .svnames{display:none}
@media(min-width:768px){details.svcgrp>summary::after{top:42px}details.svcgrp[open]>summary h2{margin-bottom:32px!important}}
/* b: FAQ — 分類ごとに開閉 */
.izcore-faq details.fgrp{padding:0;border-bottom:1px solid var(--line)}
.faq summary.fgs{font-family:var(--serif);font-size:22px;line-height:1.4;letter-spacing:.02em;padding:24px 48px 24px 0}
.faq summary.fgs:after{top:26px}
.fgs .cnt{font:400 14px var(--sans);letter-spacing:0;margin-left:8px;color:var(--body)}
.fgb{padding:0 0 16px}
.fgb details{border-bottom:1px solid var(--line)}.fgb details:last-child{border-bottom:0}
@media(min-width:768px){.faq summary.fgs{font-size:24px}}
/* d: 旧サイトから引き継いだ本文のはみ出しを抑える */
.art{overflow-wrap:break-word}
.art *{min-width:0}
.art img,.art video{max-width:100%!important;height:auto!important}
.art iframe{max-width:100%}
.art div[style*="width"],.art p[style*="width"],.art span[style*="width"],.art figure[style*="width"],.art section[style*="width"]{max-width:100%!important;box-sizing:border-box}
.tbw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 24px;max-width:100%}
.tbw table{width:100%!important;max-width:none!important;margin:0!important}
.art td[style*="width"],.art th[style*="width"]{width:auto!important}
.art td,.art th{overflow-wrap:anywhere}
.art .one-anim,.art .one-anim *{animation:none!important;opacity:1!important;transform:none!important;visibility:visible!important}
.art .one-anim *{display:inline!important}

/* v0.4.25 */
.faq details.is-open details:not(.is-open) .a-w{grid-template-rows:0fr}
.izcore-faq .a-w{overflow:hidden}
.izcore-faq details:not(.is-open) .a-w>div{min-height:0}
.faq .fgrp,.svcgrp{scroll-margin-top:88px}
.faqchips{margin-bottom:8px}
.relsvc{font-size:14px;line-height:1.7;margin:12px 0 0}
.faq .a a{text-decoration:underline;text-decoration-color:#999;text-underline-offset:3px}
.faq .a a:hover{text-decoration-color:var(--ink)}

/* v0.4.25 (2) 開閉の文字ラベル・タグの折り返し・閉じた品目名は2行まで */
details.svcgrp>summary::after,.faq summary.fgs::after{content:'+'}
details.svcgrp>summary::before,.faq summary.fgs::before{content:'開く';position:absolute;right:30px;font:600 14px var(--sans);letter-spacing:0;color:var(--body)}
details.svcgrp>summary::before{top:38px}.faq summary.fgs::before{top:30px}
details.svcgrp[open]>summary::before,.faq details.fgrp.is-open>summary.fgs::before{content:'閉じる'}
.svnames{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
details.svcgrp>summary,.faq summary.fgs{padding-right:96px}
details.svcgrp>summary:focus-visible,.faq summary:focus-visible{outline:0;box-shadow:0 0 0 2px #fff,0 0 0 5px #171717}
body.sub .chips{flex-wrap:wrap;overflow:visible;margin:0 0 24px;padding:0}
@media(min-width:768px){details.svcgrp>summary::before{top:46px}}

/* v0.4.26 スマホのメニュー */
@media(max-width:900px){
.hd.mo{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
.hd.mo nav{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;height:calc(100vh - 64px);height:calc(100dvh - 64px);margin:0;padding:8px 20px 40px;background:#fff;overflow-y:auto;font-size:16px;line-height:1.5}
.hd.mo nav a{display:flex;align-items:center;min-height:56px;font-size:16px;border-bottom:1px solid var(--line)}
.hd.mo nav a.mcta{margin-top:24px;justify-content:center;min-height:52px;border-bottom:0}
html.mo-lock,html.mo-lock body{overflow:hidden}
html.mo-lock .bar{display:none}
.hd.mo .menu i span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hd.mo .menu i span:nth-child(2){opacity:0}
.hd.mo .menu i span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.menu i span{transition:transform .24s,opacity .24s}
.menu:focus-visible,.hd.mo nav a:focus-visible{outline:0;box-shadow:0 0 0 2px #fff,0 0 0 5px #171717}
}

/* v0.4.26 FAQ：分類と質問を見分けやすく（質問は字下げ＋細め＋左に線）、質問の右は×でなくV字 */
.faq .fgb{margin-left:12px;padding:0 0 16px 16px;border-left:2px solid var(--line)}
.faq .fgb summary{font-weight:500;padding:18px 36px 18px 0}
.faq .fgb summary:after{content:'';width:8px;height:8px;border:solid var(--body);border-width:0 1.5px 1.5px 0;font-size:0;right:8px;top:24px;transform:rotate(45deg)}
.faq .fgb details[open]>summary:after{transform:rotate(-135deg);top:28px}

/* v0.4.27 PCではメニュー内CTAを出さない */
.hd nav .mcta{display:none}
@media(max-width:900px){.hd.mo nav a.mcta{display:flex}}

/* v0.4.28 ヒーロー写真の切り替え：丸いドット（自分でも送れる） */
.hero .sdots{display:flex;justify-content:center;gap:0;margin:8px 0 0;order:-1}
.hero .sdots button{appearance:none;border:0;background:none;padding:10px 7px;margin:0;cursor:pointer;line-height:0;-webkit-tap-highlight-color:transparent}
.hero .sdots button:before{content:'';display:block;width:10px;height:10px;border-radius:50%;background:#c9c9c9;transition:background .25s,transform .25s}
.hero .sdots button:hover:before{background:#8a8a8a}
.hero .sdots button.on:before{background:#171717;transform:scale(1.15)}
.hero .sdots button:focus-visible{outline:2px solid #171717;outline-offset:-2px;border-radius:8px}
@media(min-width:901px){.hero .sdots{grid-column:2;grid-row:2;order:0;margin:0;justify-content:flex-start}.hero .top>.copy,.hero .top>div:first-child{grid-row:1}}

/* v0.4.29 ヒーロー: ドラッグ/スワイプ、スマホ下のバーを細く */
.hero .slides{touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab}.hero .slides.drag{cursor:grabbing}.hero .slides img{-webkit-user-drag:none;pointer-events:none}
@media(max-width:767px){.bar{gap:6px;padding:6px 12px calc(6px + env(safe-area-inset-bottom))}.bar .btn{height:38px;font-size:13px;border-radius:8px}body{padding-bottom:calc(52px + env(safe-area-inset-bottom))}}

/* v0.4.30 ヒーローのドットを細い線に（営業品目カードの進み線と同じ見た目） */
.hero .sdots{position:relative;display:flex;justify-content:stretch;height:20px;margin:12px 0 0;gap:0}
.hero .sdots:before{content:'';position:absolute;left:0;right:0;top:9px;height:2px;background:var(--line);border-radius:2px}
.hero .sdots:after{content:'';position:absolute;top:9px;left:calc(var(--i,0) * 100% / var(--n,3));width:calc(100% / var(--n,3));height:2px;background:var(--ink);border-radius:2px;transition:left .45s cubic-bezier(.2,.7,.2,1)}
.hero .sdots button{position:relative;z-index:1;flex:1;padding:0;height:20px}
.hero .sdots button:before,.hero .sdots button:hover:before,.hero .sdots button.on:before{content:none}
.hero .sdots button:focus-visible{outline:2px solid var(--ink);outline-offset:0;border-radius:2px}
@media(min-width:901px){.hero .sdots{margin:-40px 0 0;width:min(100%,520px);justify-self:start}}

/* ===== v0.4.31 専門家レビュー（8名）対応 ===== */
/* コントラスト */
.label.mono{color:#767676}
.art td:first-child,.art th{color:#666}
body.sub .cards.sgrid .ccard.blue p{color:rgba(255,255,255,.94)}
/* 会社案内の表と事業内容 */
.art table.kv{border-collapse:collapse;width:100%}.art table.kv th,.art table.kv td{border:0;border-bottom:1px solid var(--line);padding:14px 8px;text-align:left;vertical-align:top;font-size:16px;line-height:1.7}.art table.kv th{width:11em;font-weight:600;color:var(--ink)}
@media(max-width:600px){.art table.kv th,.art table.kv td{display:block;width:auto}.art table.kv th{padding-bottom:0;border-bottom:0;font-size:14px;color:#666}.art table.kv td{padding-top:4px}}
.art ul.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px}.art ul.tags li{white-space:nowrap;margin:0;padding:0}
.art .btn{text-decoration:none;margin:4px 8px 8px 0}.art p>small{display:block;color:#666;font-size:13px}
/* スキップリンク・現在地 */
.skip{position:absolute;left:-9999px;top:8px;z-index:1000;background:#171717;color:#fff;padding:10px 16px;border-radius:6px;font-size:14px}.skip:focus{left:16px;outline:2px solid #fff}
.hd nav a[aria-current=page]{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:2px}
/* スマホ下の固定バー: タップ領域44px（専門家の基準） */
@media(max-width:767px){.bar{gap:8px;padding:8px 16px calc(8px + env(safe-area-inset-bottom))}.bar .btn{height:44px;font-size:14px}body{padding-bottom:calc(60px + env(safe-area-inset-bottom))}}
/* ヒーロー線ナビのタップ領域 */
.hero .sdots{height:44px}.hero .sdots:before,.hero .sdots:after{top:21px}.hero .sdots button{height:44px}
@media(max-width:900px){.hero .sdots{margin-top:0}}@media(min-width:901px){.hero .sdots{margin-top:-52px}}
/* フッター・パンくず・チップのタップ領域 */
.ft .co p a{display:inline-block;padding:6px 0}.crumbs a{display:inline-block;padding:8px 0}.chip{min-height:44px}
/* メニュー内の電話 */
.hd nav .mtel{display:none}
@media(max-width:900px){.hd.mo nav a.mtel{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;margin-top:12px;border:1px solid var(--line);border-radius:var(--r);font-weight:600}.hd.mo nav a.mtel svg{width:18px;height:18px}}
/* トップのFAQを /faq/ と同じ見た目に */
.faq.qlist summary{font-weight:500;padding:18px 36px 18px 0}
.faq.qlist summary:after{content:'';width:8px;height:8px;border:solid var(--body);border-width:0 1.5px 1.5px 0;font-size:0;right:8px;top:24px;transform:rotate(45deg)}
.faq.qlist details[open]>summary:after{transform:rotate(-135deg);top:28px}
/* 営業品目一覧: 閉じた分類の罫線と品目名 */
body.sub details.svcgrp>summary{border-top:1px solid var(--line)}body.sub details.svcgrp>summary h2{border-top:0}
.svnames{white-space:normal;overflow:visible;text-overflow:clip}
/* 制作実績: 仕上がり全体を見せる */
.wgrid .sheet img,.wgrid .sheet .cover img{object-fit:contain;background:#f3f3f3;padding:10px;box-sizing:border-box}
/* トップ制作実績カード: 作品名を見せる */
.works .wk .t b{display:block;font-size:16px;font-weight:600;line-height:1.5}.works .wk .t .wc{display:block;font-size:13px;color:#666;margin-top:2px}.works .wk .t .go{margin-top:10px}
/* 流れの下の相談ボタン */
.minicta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:40px;padding:24px;border:1px solid var(--line);border-radius:var(--rc,12px)}.minicta p{margin:0;font-size:16px}
@media(max-width:767px){.minicta{flex-direction:column;align-items:stretch;text-align:center}.minicta .btn{width:100%}}
/* スマホ: 相談ボタンの三重化を避ける */
@media(max-width:1023px){.side .btn{display:none}}
@media(max-width:900px){.cards .ccard{flex:0 0 78%}}
/* お問い合わせフォーム（Contact Form 7） */
body.sub .wpcf7 p.iz-lead{font-size:16px;line-height:1.8;margin:0 0 32px}
body.sub .wpcf7 .req{display:inline-block;margin-left:8px;font-size:12px;font-weight:600;color:#fff;background:var(--ink);padding:1px 6px;border-radius:3px;vertical-align:middle;line-height:1.6}
body.sub .wpcf7 .opt{display:block;font-size:13px;font-weight:400;color:#666;margin-top:2px}
body.sub .wpcf7 label{margin:0 0 20px}body.sub .wpcf7 fieldset{margin:0 0 20px}body.sub .wpcf7 legend{font-size:14px;font-weight:600;margin-bottom:8px;padding:0}
body.sub .wpcf7 .iz-note{font-size:14px;color:#666;margin:0 0 16px;line-height:1.7}
body.sub .wpcf7 .iz-est{padding:20px;border:1px solid var(--line);border-radius:var(--r);margin:0 0 24px}body.sub .wpcf7 .iz-est .iz-item{margin-top:8px}
body.sub .wpcf7 .wpcf7-acceptance .wpcf7-list-item{margin:0 0 16px}
body.sub .wpcf7 input[type=submit]{min-width:240px}
body.sub .wpcf7 .wpcf7-form-control-wrap,body.sub .wpcf7 label,body.sub .wpcf7 fieldset{scroll-margin-top:96px}
body.sub .wpcf7 .wpcf7-not-valid{border-color:#c0392b!important}
body.sub .wpcf7 form.invalid .wpcf7-response-output,body.sub .wpcf7 form.failed .wpcf7-response-output{border-color:#c0392b;color:#c0392b;background:#fff6f5}
body.sub .wpcf7 form.sent .wpcf7-response-output{border-color:#2e7d32;color:#2e7d32;background:#f3faf4}
body.sub .wpcf7 label.iz-req::after{content:none}body.sub .wpcf7 label.iz-req .opt:before{content:'必須';display:inline-block;margin-right:8px;font-size:12px;font-weight:600;color:#fff;background:var(--ink);padding:1px 6px;border-radius:3px}
@media(max-width:767px){.bar.hide-ft{transform:translateY(110%)}}
/* v0.4.33 営業品目: 閉じた分類の間の空白を詰める */
body.sub details.svcgrp:not([open])+details.svcgrp{margin-top:0}body.sub details.svcgrp:not([open])>summary{padding-bottom:24px}body.sub details.svcgrp:not([open])>summary h2{margin-bottom:8px!important}
/* v0.4.36 分類チップの下線（枠線と重なって見える）を消す */
a.chip,.chips a,.faqcat a{text-decoration:none!important}
/* 0.4.42 form focus (Safari visibility) */
body.sub .wpcf7 input:not([type=submit]):not([type=radio]):not([type=checkbox]):focus,body.sub .wpcf7 textarea:focus,body.sub .wpcf7 select:focus{border-color:#1a56db;box-shadow:0 0 0 4px rgba(26,86,219,.2);background:#f5f8ff}
body.sub .wpcf7 p:focus-within>label,body.sub .wpcf7 p:focus-within>label.iz-req::after{color:#1a56db}
body.sub .wpcf7 .wpcf7-radio input:focus-visible,body.sub .wpcf7 input[type=checkbox]:focus-visible{outline:3px solid #1a56db;outline-offset:2px}
