/* ==========================================================
   ガレージファクトリー 2026  site.css
   デザイン：design_handoff_gf_renewal（Home 2a / Subpages 1a–1k / GF Header / GF Footer）
   PC 1200px 基準・左右48px／スマホ 375px 基準・左右20px
   ========================================================== */

/* ---------- tokens ---------- */
:root{
  --bg:#faf7f2; --surface:#fff; --ink:#2a2725; --ink-2:#5e5853; --mute:#7a7470;
  --line:#e3dbcf; --line-in:#eee6da; --line-head:#ece4d8; --line-band:#e8e1d6;
  --stripe-a:#f3efe8; --stripe-b:#ebe5db; --bar-before:#e6dfd4; --arrow:#a39a8f;
  --seo:#FF8A3A; --seo-t:#c2621f; --seo-2:#FFB27A; --seo-3:#FFD2AF; --seo-4:#ffe7d4;
  --ec:#24C26A; --ec-t:#178a4a; --ec-2:#6fd79c; --ec-3:#c8f0d8; --ec-4:#e3f7eb;
  --mkt:#2A89B4; --mkt-t:#1f6c8f; --mkt-2:#7fb8d2; --mkt-3:#c6e1ee; --mkt-4:#e2f0f6;
  --dev:#9454BF; --dev-t:#7a3fa6; --dev-2:#bd95d8; --dev-3:#e2d1ee; --dev-4:#f1e8f6;
  --news:#FF5252; --news-t:#d63c3c;
  --hover:#1f6c8f;
  --pad:48px;
  --f:'Zen Kaku Gothic New',system-ui,-apple-system,'Hiragino Sans','Noto Sans JP',sans-serif;
  --f-en:'Outfit','Zen Kaku Gothic New',system-ui,sans-serif;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f);font-size:15px;line-height:1.8;font-feature-settings:"palt" 0;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .15s}
a:hover{color:var(--hover)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--hover);outline-offset:2px;border-radius:6px}
h1,h2,h3,h4,p,ol,ul,dl,dd,figure{margin:0}
ol,ul{padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
b,strong{font-weight:700}
.num{font-family:var(--f-en);font-feature-settings:"tnum"}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:8px 16px;border-radius:999px}
.skip:focus{left:8px;color:#fff}
[hidden]{display:none!important}

.wrap{max-width:1200px;margin-inline:auto;padding-inline:var(--pad)}
.band{background:var(--surface)}
.sec{padding-block:52px}
.sec--top0{padding-top:0}
.sec--top24{padding-top:24px;padding-bottom:56px}
.mt14{display:inline-block;margin-top:14px}
.stack20{display:flex;flex-direction:column;gap:20px}
.stack28{display:flex;flex-direction:column;gap:28px}
.stack40{display:flex;flex-direction:column;gap:40px}
.pc-only{}
.sp-only{display:none}

/* service colors */
.bg-seo{background:var(--seo);color:var(--ink)} .bg-ec{background:var(--ec);color:var(--ink)}
.bg-mkt{background:var(--mkt);color:#fff} .bg-dev{background:var(--dev);color:#fff}
.t-seo{color:var(--seo-t)} .t-ec{color:var(--ec-t)} .t-mkt{color:var(--mkt-t)} .t-dev{color:var(--dev-t)}
.t-news{color:var(--news-t)} .t-mute{color:var(--mute)}
.tone-seo-1{background:var(--seo)} .tone-seo-2{background:var(--seo-2)} .tone-seo-3{background:var(--seo-3)}
.tone-ec-1{background:var(--ec)} .tone-ec-2{background:var(--ec-2)} .tone-ec-3{background:var(--ec-3)}
.tone-mkt-1{background:var(--mkt)} .tone-mkt-2{background:var(--mkt-2)} .tone-mkt-3{background:var(--mkt-3)}
.tone-dev-1{background:var(--dev)} .tone-dev-2{background:var(--dev-2)} .tone-dev-3{background:var(--dev-3)}
.tone-seo-stripe{background:repeating-linear-gradient(90deg,var(--seo-3) 0 8px,var(--seo-4) 8px 16px)}
.tone-ec-stripe{background:repeating-linear-gradient(90deg,var(--ec-3) 0 8px,var(--ec-4) 8px 16px)}
.tone-mkt-stripe{background:repeating-linear-gradient(90deg,var(--mkt-3) 0 8px,var(--mkt-4) 8px 16px)}
.tone-dev-stripe{background:repeating-linear-gradient(90deg,var(--dev-3) 0 8px,var(--dev-4) 8px 16px)}

/* ---------- typography ---------- */
.en{font:700 12px/1.4 var(--f-en);letter-spacing:.14em;text-transform:uppercase}
.h1-top{font-size:60px;line-height:1.22;font-weight:900;letter-spacing:.02em}
.h1-sub{margin:6px 0 10px;font-size:46px;line-height:1.3;font-weight:900}
.h1-art{font-size:38px;line-height:1.45;font-weight:900}
.h1-gl{margin-top:14px;font-size:40px;line-height:1.35;font-weight:900}
.h1-faq{margin-top:6px;font-size:40px;line-height:1.3;font-weight:900}
.h1-contact{margin-bottom:10px;font-size:40px;line-height:1.35;font-weight:900}
.h1-done{font-size:32px;font-weight:900;line-height:1.4}
.h1-au{margin-top:4px;font-size:48px;line-height:1.3;font-weight:900}
.h2{margin-bottom:18px;font-size:28px;line-height:1.45;font-weight:900}
.h2--30{font-size:30px;margin:0}
.h2--24{font-size:24px;margin-bottom:16px}
.h2--20{font-size:20px;margin-bottom:10px}
.h3{font-size:17px;font-weight:700;margin-bottom:8px}
.lead{font-size:15px;line-height:1.9;max-width:720px}
.note{margin-top:12px;font-size:12px;line-height:1.8;color:var(--mute)}
.note--ink{font-size:14px;color:var(--ink-2)}
.more{font-weight:700;font-size:13px}

/* section head: H2 + English label + link */
.sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:18px}
.sec-h__t{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.sec-h h2{font-size:28px;line-height:1.4;font-weight:900}
.sec-h h2:where(.h2--24){font-size:24px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;padding:15px 28px;border-radius:999px;font-weight:700;font-size:15px;line-height:1.4;border:1.5px solid var(--ink);transition:background .15s,border-color .15s,color .15s,transform .15s;white-space:nowrap}
.btn:hover{background:var(--hover);border-color:var(--hover);color:#fff}
.btn--ghost{background:transparent;color:var(--ink);padding:14px 24px}
.btn--ghost:hover{background:transparent;color:var(--hover)}
.btn--sm{padding:10px 20px;font-size:14px;font-weight:700}
.btn--lg{padding:16px 40px}
.btn--white{background:#fff;color:var(--ink);border-color:#fff}
.btn--white:hover{background:var(--bg);border-color:var(--bg);color:var(--hover)}
.btn--block{display:flex;width:100%}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* chips / pills */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;font-size:12px}
.chip{background:var(--bg);padding:4px 12px;border-radius:999px;line-height:1.6}
.chips--white .chip,.chip--white{background:#fff}
.chips--white{margin-top:0}
.chips--sm{margin-top:10px}
.chips--lg{font-size:14px;gap:8px;margin-top:0}
.chips--lg .chip{padding:7px 16px}
.chips--tags{font-size:13px;font-weight:700;gap:8px;margin-top:0}
.tag{padding:5px 14px;border-radius:999px}
.pill-mark{display:block;width:48px;height:12px;border-radius:0 999px 999px 0;flex:none}
.cat-pill{display:inline-block;padding:3px 12px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.6}
.cat-pill--sm{font-size:11px;padding:1px 10px}
.cat-pill--news{background:var(--news);color:#fff;font-family:var(--f-en);letter-spacing:.06em}
.draft-tag{display:inline-block;margin-left:8px;padding:0 8px;border-radius:999px;background:#fff3c4;color:#7a5b00;font-size:11px;font-weight:700;line-height:20px;vertical-align:middle}
.draft-bar{background:#fff3c4;color:#5b4500;font-size:13px;padding:10px var(--pad);text-align:center}
.draft-bar b{margin-right:10px;background:#5b4500;color:#fff;padding:1px 10px;border-radius:999px;font-size:12px}
.dots{display:flex;gap:18px;flex-wrap:wrap;font-size:13px}
.dots li{display:flex;gap:8px;align-items:center}
.dots i{width:8px;height:8px;border-radius:50%}
.dots--bold{gap:20px;font-weight:700;margin-top:4px}
.stripes{display:flex;gap:6px}
.stripes i{width:36px;height:10px;border-radius:999px}
.stripes--lg{flex-direction:column;gap:8px}
.stripes--lg i{height:12px;border-radius:0 999px 999px 0}
.stripes--lg i:nth-child(1){width:60%}.stripes--lg i:nth-child(2){width:80%}.stripes--lg i:nth-child(3){width:92%}.stripes--lg i:nth-child(4){width:70%}
.initial{width:var(--s);height:var(--s);flex:none;border-radius:50%;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:calc(var(--s) * .36);line-height:1}

/* ---------- header ---------- */
.gh{position:sticky;top:0;z-index:50;background:transparent;border-bottom:1px solid transparent;transition:background .2s,border-color .2s}
.gh.is-scrolled,.gh.is-open,.gh--simple{background:var(--bg);border-bottom-color:var(--line-head)}
.gh-in{max-width:1200px;margin-inline:auto;display:flex;justify-content:space-between;align-items:center;padding:18px var(--pad);gap:24px}
.gh-logo img{height:28px;width:auto}
.gh-back{font-size:13px;color:var(--mute)}
.gnav__list{display:flex;gap:28px;align-items:center;font-size:14px;font-weight:500}
.gnav__btn,.gnav__a{display:inline-flex;align-items:center;gap:6px;padding:6px 0;font-weight:500;position:relative}
.gnav__btn::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s;opacity:.6}
.gnav__btn[aria-expanded="true"]::after{transform:translateY(1px) rotate(-135deg)}
.gnav__btn[data-current],.gnav__a[aria-current]{font-weight:700}
.gnav__btn[data-current]::before,.gnav__a[aria-current]::before{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--ink)}
.gnav__btn:hover{color:var(--hover)}
.gnav__cta .btn{color:#fff}
.burger{display:none}
.spnav{display:none}

/* mega menu */
.mega{position:absolute;left:0;right:0;top:100%;background:var(--surface);border-top:1px solid var(--line-head);border-bottom:1px solid var(--line-head);opacity:0;transform:translateY(-6px);transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.mega.is-open{opacity:1;transform:none;pointer-events:auto}
.mega__in{max-width:1200px;margin-inline:auto;padding:28px var(--pad) 22px}
.mega__grid{display:grid;gap:14px}
.mega__grid--4{grid-template-columns:repeat(4,1fr)}
.mega__grid--k{grid-template-columns:1.3fr 1fr 1.2fr 1fr;gap:28px}
.mega__grid--c{grid-template-columns:1.4fr 1fr;gap:40px}
.mega-svc{background:var(--bg);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:8px}
.mega-svc__name{font-size:16px;font-weight:700}
.mega-svc__catch{font-size:12px;line-height:1.7;color:var(--ink-2)}
.mega-svc__links{margin-top:4px;display:flex;flex-direction:column;font-size:13px}
.mega-svc__links li{padding:7px 0;border-top:1px solid var(--line-in)}
.mega__foot{display:flex;gap:24px;justify-content:flex-end;margin-top:16px;font-size:13px;font-weight:700}
.mega-k{display:flex;flex-direction:column;gap:6px}
.mega-k__h{font-size:16px;font-weight:700}
.mega-k__h--sub{margin-top:14px}
.mega-k__d{font-size:12px;color:var(--ink-2);line-height:1.7}
.mega-k__cats{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin-top:6px;font-size:13px;font-weight:700}
.mega-k__cats a,.mega-k__cats span{display:flex;align-items:center;gap:8px}
.mega-k__cats span{color:var(--mute);font-weight:500}
.mega-k__cats i{width:20px;height:8px;border-radius:0 999px 999px 0}
.mega-c li a{display:flex;flex-direction:column;padding:12px 0;border-top:1px solid var(--line)}
.mega-c li:first-child a{border-top-color:var(--ink)}
.mega-c b{font-size:16px}
.mega-c span{font-size:12px;color:var(--ink-2)}
.mega-news{display:flex;flex-direction:column;gap:4px}
.mega-news__i{display:flex;flex-direction:column;font-size:13px;line-height:1.6;padding:10px 0;border-top:1px solid var(--line-in)}
.mega-news__i .num{font-size:11px;color:var(--mute)}

/* ---------- breadcrumbs ---------- */
.crumbs{max-width:1200px;margin-inline:auto;padding:14px var(--pad);font-size:12px;color:var(--mute)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px}
.crumbs li{display:flex;gap:8px}
.crumbs li+li::before{content:"›"}
.crumbs [aria-current]{color:var(--ink)}

/* ---------- page head ---------- */
.phead{padding-top:24px;padding-bottom:28px}
.phead--44{padding-bottom:44px}
.phead--row{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}
.phead--split{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:48px;align-items:end;padding-bottom:36px}
.phead .h1-sub{margin-bottom:10px}
.filter{display:flex;gap:6px;flex-wrap:wrap;font-size:13px;font-weight:700;justify-content:flex-end}
.fpill-btn{background:#fff;padding:7px 16px;border-radius:999px;line-height:1.6;transition:background .15s,color .15s}
.fpill-btn.is-on{background:var(--ink);color:#fff}
.fpill-btn:hover:not(.is-on){color:var(--hover)}

/* ---------- consult + footer (GF Footer) ---------- */
.consult{padding-block:56px}
.consult__card{background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 1px 0 var(--line-head)}
.consult__bar{display:grid;grid-template-columns:repeat(4,1fr);height:8px}
.consult__in{padding:48px 56px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:center}
.consult__text{display:flex;flex-direction:column;gap:16px}
.consult__text h2{font-size:32px;line-height:1.4;font-weight:900;word-break:keep-all}
.consult__text p{font-size:15px;line-height:1.9;color:var(--ink-2)}
.consult__act{display:flex;flex-direction:column;gap:12px}
.cbtn{display:flex;justify-content:space-between;align-items:center;border-radius:999px;font-weight:700;transition:background .15s,color .15s,border-color .15s}
.cbtn--main{background:var(--ink);color:#fff;padding:22px 28px;font-size:16px}
.cbtn--main:hover{background:var(--hover);color:#fff}
.cbtn--sub{border:1.5px solid var(--ink);padding:16px 28px;font-size:14px}
.cbtn--sub:hover{border-color:var(--hover)}
.consult__hours{font-size:12px;color:var(--mute);text-align:center}
.gf{background:#fff;font-size:13px}
.gf-in{max-width:1200px;margin-inline:auto;padding:44px var(--pad) 26px}
.gf-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:24px}
.gf-about{display:flex;flex-direction:column;gap:12px}
.gf-about img{height:24px;width:auto}
.gf-about p{font-size:12px;line-height:1.9;color:var(--ink-2)}
.gf-col{display:flex;flex-direction:column;gap:7px;line-height:1.6}
.gf-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:32px;padding-top:16px;border-top:1px solid var(--line-in);font-size:12px;color:var(--mute)}
.gf-legal{display:flex;gap:20px;flex-wrap:wrap}
.gf--simple .gf-in{padding-top:0}
.gf--simple .gf-bottom{margin-top:0}
.spcta{display:none}

/* ---------- lists ---------- */
.nlist,.tlist,.plist,.rlist,.mini-list{display:flex;flex-direction:column}
.nrow,.tlist__i,.plist a,.mini-list__i{display:block;padding:13px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.6}
.nrow:first-child,.tlist__i:first-child,.plist a:first-child,.mini-list__i:first-child{border-top-color:var(--ink)}
.nrow:last-child,.tlist__i:last-child,.plist a:last-child,.mini-list__i:last-child{border-bottom:1px solid var(--line)}
.nrow__meta{display:flex;gap:10px;font-size:12px;color:var(--mute);align-items:center}
.ntag{font:700 10px/18px var(--f-en);padding:0 8px;border-radius:999px;background:#fff;letter-spacing:.04em}
.nrow__t{display:block}
.nlist--lg .nrow{display:grid;grid-template-columns:190px 1fr;gap:16px;padding:18px 0;font-size:15px;align-items:baseline}
.tlist__i{padding:14px 0}
.tlist__m,.plist__m,.mini-list__m{display:block;font-size:12px;color:var(--mute)}
.plist__m{font:500 12px var(--f-en)}
.mini-list__d{display:block;font-size:13px;color:var(--ink-2)}
.dtable{display:grid;grid-template-columns:140px 1fr;font-size:15px;line-height:1.8}
.dtable dt,.dtable dd{padding:14px 0;border-top:1px solid var(--line)}
.dtable dt{color:var(--mute)}
.dtable dt:first-of-type,.dtable dt:first-of-type+dd{border-top-color:var(--ink)}
.dtable dt:last-of-type,.dtable dd:last-of-type{border-bottom:1px solid var(--line)}
.dtable--120{grid-template-columns:120px 1fr;font-size:14px}
.dtable--120 dt,.dtable--120 dd{padding:12px 0}
.dtable--80{grid-template-columns:80px 1fr;font-size:14px}
.dtable--80 dt{font:700 14px/1.8 var(--f-en);color:var(--ink);padding:13px 0}
.dtable--80 dd{padding:13px 0}
.checks li{position:relative;padding:6px 0 6px 22px;font-size:14px;line-height:1.75}
.checks li::before{content:"";position:absolute;left:2px;top:14px;width:10px;height:6px;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(-45deg)}

/* ---------- FAQ ---------- */
.faq__i summary{list-style:none;display:flex;justify-content:space-between;gap:16px;font-weight:700;cursor:pointer;line-height:1.6}
.faq__i summary::-webkit-details-marker{display:none}
.faq__ic{position:relative;width:14px;height:14px;flex:none;margin-top:5px}
.faq__ic::before,.faq__ic::after{content:"";position:absolute;left:0;right:0;top:6px;height:2px;background:currentColor;border-radius:2px;transition:transform .2s}
.faq__ic::after{transform:rotate(90deg)}
.faq__i[open] .faq__ic::after{transform:rotate(0)}
.faq__q{display:none}
.faq--line .faq__i{padding:14px 0;border-top:1px solid var(--line);font-size:14px}
.faq--line .faq__i:first-child{border-top-color:var(--ink)}
.faq--line .faq__i:last-child{border-bottom:1px solid var(--line)}
.faq--line .faq__a{font-size:13px;line-height:1.8;margin-top:6px;color:var(--ink-2)}
.faq--card{display:flex;flex-direction:column;gap:10px}
.faq--card .faq__i{background:#fff;border-radius:18px;padding:20px 26px}
.faq--card summary{font-size:16px}
.faq--card .faq__q{display:inline;font-family:var(--f-en);color:var(--mkt-t);margin-right:10px}
.faq--card .faq__a{font-size:15px;line-height:1.9;margin-top:10px;padding-left:24px}
.faq__rel{display:block;font-size:12px;color:var(--mute);margin-top:6px}
.faq__i:target{box-shadow:0 0 0 2px var(--mkt)}

/* ---------- aside ---------- */
.with-aside{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start}
.with-aside--56{gap:56px}
.aside{display:flex;flex-direction:column;gap:16px}
.aside--sticky{position:sticky;top:90px}
.aside-card{background:#fff;border-radius:20px;padding:22px}
.aside-card--pad{padding:24px}
.aside-card__h{display:block;font-size:14px}
.aside-card__h--15{font-size:15px}
.aside-link{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line-in);font-size:14px}
.aside-link:last-child{border-bottom:0}
.aside-link.is-current{font-weight:700}
.aside-dark{background:var(--ink);color:#fff;border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:12px}
.aside-dark b{font-size:16px;line-height:1.6}
.aside-dark span{font-size:13px;line-height:1.8;color:#ddd6cc}
.aside-dark .btn{padding:12px;font-size:14px}
.aside-svc{border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:8px;transition:transform .2s}
.aside-svc:hover{transform:translateY(-2px);color:inherit}
.aside-svc.bg-mkt:hover,.aside-svc.bg-dev:hover{color:#fff}
.aside-svc span:first-child{font-size:12px;font-weight:700}
.aside-svc b{font-size:17px}
.aside-svc span{font-size:13px;line-height:1.7}
.aside-toc{font-size:13px;line-height:1.7}
.aside-toc a{display:block;padding:8px 0;border-bottom:1px solid var(--line-in)}
.aside-toc a:last-child{border-bottom:0}
.aside-toc a.is-active{font-weight:700;color:var(--seo-t)}
.aside-news{display:block;padding:10px 0;border-bottom:1px solid var(--line-in);font-size:13px;line-height:1.6}
.aside-news:last-child{border-bottom:0}
.aside-news .num{display:block;font-size:11px;color:var(--mute)}

/* ==========================================================
   TOP（2a）
   ========================================================== */
.newsbar{display:flex;gap:14px;align-items:center;padding:8px 16px;background:#fff;border-radius:999px;font-size:13px;margin-top:2px}
.newsbar__tag{font:700 11px var(--f-en);letter-spacing:.1em;color:#fff;background:var(--news);padding:3px 10px;border-radius:999px}
.newsbar__date{color:var(--mute);font-family:var(--f-en)}
.newsbar__t{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.newsbar__more{color:var(--mute)}
.hero{display:grid;grid-template-columns:minmax(0,1fr) 560px;gap:48px;padding-top:48px;padding-bottom:52px;align-items:center}
.hero__copy{display:flex;flex-direction:column;gap:20px}
.hero__lead{font-size:16px;line-height:1.9;max-width:470px}
.hero__btns{display:flex;gap:12px;align-items:center}
.hero__dots{display:flex;gap:18px;font-size:13px;color:var(--ink-2)}
.hero__dots li::before{content:"● "}
.hero__svc{display:flex;flex-direction:column;gap:12px}
.hero__svc-h{padding-left:4px}
.lpill{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border-radius:0 999px 999px 0;padding:16px 28px 16px 24px;transition:transform .2s ease,filter .2s}
.lpill--short{width:86%}
.lpill--full{width:100%}
.lpill:hover{transform:translateX(6px);color:inherit}
.lpill.bg-mkt:hover,.lpill.bg-dev:hover{color:#fff}
.lpill__t{display:block;font-size:19px;font-weight:700;line-height:1.5}
.lpill__s{display:block;font-size:13px;margin-top:2px;line-height:1.6}
.lpill__arrow{font-weight:700}
.logos{background:#fff;border-top:1px solid var(--line-band);border-bottom:1px solid var(--line-band);overflow:hidden}
.logos__in{display:flex;gap:36px;align-items:center;padding-block:16px}
.logos__h{font-size:12px;color:var(--mute);white-space:nowrap}
.logos__track{display:flex;gap:40px;align-items:center;animation:marquee 40s linear infinite}
.logos__track img{height:26px;width:auto;filter:grayscale(1);opacity:.75}
@keyframes marquee{to{transform:translateX(-50%)}}
.grid-res-news{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:48px;padding-block:56px}
.why-card{background:#fff;border-radius:24px;padding:36px 40px;display:flex;flex-direction:column;gap:14px}
.why-card h2{font-size:28px;font-weight:900;line-height:1.45}
.why-card p{font-size:15px;line-height:2}
.rrow{display:grid;grid-template-columns:150px minmax(0,1fr) 140px;gap:20px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}
.rrow:first-child{border-top-color:var(--ink)}
.rrow:last-child{border-bottom:1px solid var(--line)}
.rrow__meta{display:block;font-size:12px;color:var(--mute)}
.rrow__label{display:block;font-size:14px;font-weight:700;margin-top:2px}
.rrow__bars{display:flex;flex-direction:column;gap:5px}
.rrow__bars i{display:block;height:8px;border-radius:999px;width:0;transition:width .6s ease-out}
.rrow__bars.is-in i{width:var(--w)}
.bar-before{background:var(--bar-before)}
.rrow__num{font:800 36px/1 var(--f-en);text-align:right}
.rlegend{display:flex;gap:16px;margin-top:10px;font-size:11px;color:var(--mute)}
.rlegend span{display:flex;gap:6px;align-items:center}
.rlegend i{width:16px;height:6px;border-radius:999px}
.bar-after-ink{background:var(--ink)}
.svc4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.svc4__c{background:var(--bg);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:10px}
.svc4__t{font-size:18px;font-weight:700;line-height:1.5}
.svc4__c p{font-size:13px;line-height:1.8}
.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}
.grid-2--how{gap:24px}
.grid-2--56{gap:56px}
.steps-list li{display:grid;grid-template-columns:56px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line)}
.steps-list li:first-child{border-top-color:var(--ink)}
.steps-list li:last-child{border-bottom:1px solid var(--line)}
.steps-list__n{font:800 28px/1 var(--f-en)}
.steps-list b{font-size:16px}
.steps-list b+span{display:block;font-size:13px;line-height:1.75;margin-top:2px}
.founder{background:#fff;border-radius:24px;overflow:hidden;display:grid;grid-template-columns:200px 1fr}
.founder__img{width:100%;height:100%;min-height:380px;object-fit:cover;object-position:50% 18%}
.founder__body{padding:32px 30px;display:flex;flex-direction:column;gap:14px;justify-content:center}
.founder__body h2{font-size:22px;line-height:1.5;font-weight:900}
.founder__body p{font-size:13px;line-height:1.9}
.founder__name{font-size:13px}
.founder__name b{font-size:16px}
.founder__links{display:flex;gap:16px;font-size:13px;font-weight:700;flex-wrap:wrap}
.grid-col-faq{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:40px}
.cgrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cgrid3--lg{gap:18px}
.ccard{display:flex;flex-direction:column;gap:8px}
.ccard:hover .thumb{transform:translateY(-3px)}
.ccard__meta{font-size:12px;color:var(--mute)}
.ccard__t{font-size:14px;font-weight:700;line-height:1.6}
.cgrid3--lg .ccard{gap:10px}
.cgrid3--lg .ccard__t{font-size:15px}
.kchips{display:flex;gap:8px;margin-top:16px;font-size:12px;flex-wrap:wrap;align-items:center}
.kchips span{color:var(--mute)}
.kchips a{border:1px solid var(--line);padding:2px 10px;border-radius:999px}

/* thumbnails（写真のかわりにサービス色の面と文字） */
.thumb{position:relative;overflow:hidden;height:110px;border-radius:12px;padding:16px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s}
.cgrid3--lg .thumb{height:150px;border-radius:16px;padding:18px}
.thumb--seo{background:var(--seo)} .thumb--ec{background:var(--ec)}
.thumb--mkt{background:var(--mkt);color:#fff} .thumb--dev{background:var(--dev);color:#fff}
.thumb--report{background:var(--ink);color:#fff}
.thumb--report .thumb__en{color:var(--seo-2)}
.thumb__en{font:700 10px var(--f-en);letter-spacing:.14em}
.thumb__t{font-size:17px;font-weight:900;line-height:1.4;position:relative}
.cgrid3--lg .thumb__t{font-size:22px}
.thumb--lg{height:auto;min-height:250px;border-radius:0;padding:28px}
.thumb--lg .thumb__en{font-size:11px}
.thumb--lg .thumb__t{font-size:28px;line-height:1.45}
.thumb__pills{position:absolute;right:-10px;bottom:24px;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.thumb__pills i{height:14px;border-radius:999px 0 0 999px;background:rgba(255,255,255,.5)}

/* ==========================================================
   SERVICE（1a）
   ========================================================== */
.svc-hero{display:grid;grid-template-columns:minmax(0,1fr) 520px;gap:48px;padding-top:24px;padding-bottom:48px;align-items:start}
.svc-hero__copy{display:flex;flex-direction:column;gap:18px}
.svc-hero__copy .h1-sub{margin:0}
.svc-hero__label{display:flex;gap:10px;align-items:center}
.svc-hero__catch{font-size:19px;font-weight:700;line-height:1.6}
.summary-box{background:#fff;border-radius:18px;padding:22px 26px}
.summary-box__h{font-size:12px;font-weight:700;margin-bottom:6px}
.summary-box p{font-size:15px;line-height:1.9}
.summary-box .summary-box__p17{font-size:17px;line-height:1.85;font-weight:500}
.gantt,.formula-card{background:#fff;border-radius:24px;padding:26px 28px}
.gantt__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.gantt__head b{font-size:15px}
.gantt__head span{font-size:11px;color:var(--mute)}
.gantt__row{display:grid;grid-template-columns:110px repeat(6,1fr);align-items:center}
.gantt__months{margin-top:16px;font:500 11px var(--f-en);color:var(--mute)}
.gantt__list{margin-top:16px}
.gantt__months+.gantt__list{margin-top:0}
.gantt__list .gantt__row{padding:10px 0;border-top:1px solid var(--line-in);font-size:13px;font-weight:700}
.gantt__list .gantt__row:last-child{border-bottom:1px solid var(--line-in)}
.gantt__l{grid-column:1;line-height:1.4;padding-right:8px}
.gantt__bar{height:20px;border-radius:999px;grid-row:1;transform-origin:left;animation:grow .6s ease-out both}
.gantt__list li:nth-child(2) .gantt__bar{animation-delay:.08s}.gantt__list li:nth-child(3) .gantt__bar{animation-delay:.16s}.gantt__list li:nth-child(4) .gantt__bar{animation-delay:.24s}.gantt__list li:nth-child(5) .gantt__bar{animation-delay:.32s}
@keyframes grow{from{transform:scaleX(0)}}
.gantt__foot{margin-top:16px;font-size:12px;color:var(--ink-2)}
.formula{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px;font-weight:700;margin-top:22px}
.formula .op{font-weight:700}
.fpill{background:var(--bg);border-radius:999px;padding:10px 18px;line-height:1.4}
.formula-card .fpill{background:var(--bg)}
.formula-card .fpill.bg-ec{background:var(--ec)}
.formula--sm{margin:0 0 14px}
.formula--sm .fpill{background:#fff}
.formula--sm .fpill.bg-ec,.formula--sm .fpill.bg-seo{background:var(--ec)}
.pagenav{display:flex;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:700;padding-bottom:8px}
.pagenav a{background:#fff;padding:8px 16px;border-radius:999px}
#problems{padding-top:44px;padding-bottom:44px}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cards4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.wcard{background:#fff;border-radius:18px;padding:22px}
.wcard--col{display:flex;flex-direction:column;gap:8px}
.wcard--link{transition:transform .2s}
.wcard--link:hover{transform:translateY(-3px);color:inherit}
.wcard__n{font:800 13px var(--f-en)}
.wcard__t{display:block;font-size:16px;margin:6px 0;line-height:1.6}
.wcard--col .wcard__t{margin:0}
.wcard__t--17{font-size:17px}
.wcard__d{display:block;font-size:13px;line-height:1.8;color:var(--ink-2)}
.wcard__d--ink{color:var(--ink)}
.wcard__link{font-size:12px;font-weight:700;margin-top:auto;padding-top:4px}
.why{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:56px;align-items:center}
.why__text{display:flex;flex-direction:column;gap:16px}
.why__text p{font-size:15px;line-height:2}
.why__text .more{font-size:14px}
.why__quote{background:var(--bg);border-radius:24px;padding:40px 36px;display:flex;flex-direction:column;gap:18px}
.why__q{font-size:24px;font-weight:900;line-height:1.6}
.why__bars{display:flex;flex-direction:column;gap:8px}
.why__bars i{height:12px;border-radius:0 999px 999px 0}
.deliver{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.deliver>div{background:#fff;border-radius:18px;padding:22px}
.price3{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--ink)}
.price3__c{padding:18px 16px;border-right:1px solid var(--line)}
.price3__c:first-child{padding-left:0}
.price3__c:last-child{border-right:0;padding-right:0}
.price3__c.is-pop{background:#fff;padding-left:16px}
.price3__v{font-size:20px;font-weight:900;margin:8px 0;line-height:1.3}
.price3__v .num{font:800 26px var(--f-en)}
.price3__d{font-size:12px;line-height:1.7;color:var(--ink-2)}
.price3+.note{margin-bottom:10px}
.owner{display:flex;gap:16px;align-items:center;font-size:14px;padding-top:24px;flex-wrap:wrap}

/* ==========================================================
   WORK（1b）
   ========================================================== */
.wgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.wcase{background:#fff;border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s}
a.wcase:hover{transform:translateY(-3px);color:inherit}
.wcase__top{height:190px;padding:22px 24px;display:flex;flex-direction:column;justify-content:space-between;position:relative}
.wcase__top .en{font-size:11px}
.wcase__num{font:800 56px/1 var(--f-en)}
.wcase__word{font:800 44px/1.1 var(--f-en);letter-spacing:.01em}
.wcase__pills{position:absolute;right:0;top:24px;display:flex;flex-direction:column;gap:6px;align-items:flex-end}
.wcase__pills i{height:10px;border-radius:999px 0 0 999px;background:rgba(255,255,255,.45)}
.wcase__b{padding:18px 22px;display:flex;flex-direction:column;gap:4px}
.wcase__m{font-size:12px;color:var(--mute)}
.wcase__b b{font-size:16px;line-height:1.6}
.wcase__d{font-size:13px;line-height:1.7;color:var(--ink-2)}
[data-filter-target] .is-hidden{display:none}

/* ==========================================================
   PROCESS（1d）
   ========================================================== */
.psum{background:#fff;border-radius:18px;padding:20px 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.psum span{display:block;font-size:12px;color:var(--mute)}
.psum b{font-size:20px;font-weight:900;line-height:1.5}
.psum b.num{font:800 24px var(--f-en)}
.flow{background:#fff;border-radius:24px;padding:28px 32px}
.flow__bar{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.flow__bar i{height:16px}
.flow__bar i:first-child{border-radius:999px 0 0 999px}
.flow__bar i:last-child{border-radius:0 999px 999px 0}
.flow__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px}
.flow__steps li{display:flex;flex-direction:column;gap:8px;padding-right:16px}
.flow__n{font:800 32px/1 var(--f-en)}
.flow__steps b{font-size:19px}
.flow__d{font-size:13px;line-height:1.85}
.flow__m{font-size:12px;color:var(--mute);border-top:1px solid var(--line-in);padding-top:8px;margin-top:4px}
.ptable-wrap{overflow-x:auto}
.ptable{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;min-width:760px;table-layout:fixed}
.ptable td:first-child,.ptable th[scope="row"]{width:160px}
.ptable thead th{text-align:left;padding:16px 20px;border-top:1px solid var(--ink);vertical-align:top;font-weight:400}
.ptable thead th b{font-size:17px}
.ptable thead th span:last-child{display:block;font-size:12px;color:var(--mute)}
.ptable thead th.is-pop{border-top:4px solid var(--seo);border-radius:12px 12px 0 0}
.pop{font:700 10px var(--f-en);background:var(--seo);padding:2px 8px;border-radius:999px;margin-left:8px;vertical-align:2px}
.ptable thead td{border:0}
.ptable tbody th,.ptable tbody td{padding:16px 20px;border-top:1px solid var(--line);vertical-align:top;text-align:left;line-height:1.8}
.ptable tbody th{padding-left:0;color:var(--mute);font-weight:400}
.ptable .is-pop{background:var(--bg)}
.ptable__price{font-size:18px;font-weight:900}
.ptable__last th,.ptable__last td{border-bottom:1px solid var(--line)}
.ptable__last td.is-pop{border-radius:0 0 12px 12px}
.ptable__last .btn{color:#fff}

/* ==========================================================
   CONTACT（1e）
   ========================================================== */
.contact{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;align-items:start;padding-top:44px;padding-bottom:56px}
.contact--done{display:block}
.contact__lead{font-size:15px;line-height:1.9;margin-bottom:24px}
.csteps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:28px;font-size:13px;font-weight:700}
.csteps li{padding:10px 16px;border-radius:999px;background:#fff;color:var(--mute)}
.csteps li.is-on{background:var(--ink);color:#fff}
.cform{background:#fff;border-radius:24px;padding:32px;font-size:14px}
.cform__view{display:flex;flex-direction:column;gap:22px}
.cfield{display:flex;flex-direction:column;gap:6px;font-weight:700;border:0;padding:0;margin:0;min-width:0}
.cfield legend{font-weight:700;margin-bottom:10px;padding:0}
.req{font-size:11px;color:var(--news-t)}
.hint{font-size:12px;color:var(--mute);font-weight:400;margin-left:8px}
label.cfield .hint{margin:-4px 0 0;font-size:11px}
.cfield input,.cfield textarea{font:inherit;font-weight:400;padding:13px 16px;border:1.5px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);width:100%}
.cfield textarea{resize:vertical;min-height:130px}
.cfield input:focus,.cfield textarea:focus{border-color:var(--ink);outline:0}
.cfield.has-err input,.cfield.has-err textarea{border-color:var(--news-t)}
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.err{font-size:12px;font-weight:700;color:var(--news-t);margin-top:2px}
.tpills{display:flex;gap:8px;flex-wrap:wrap;font-weight:700}
.tpill{position:relative;cursor:pointer}
.tpill input{position:absolute;opacity:0;inset:0;cursor:pointer}
.tpill span{display:inline-flex;gap:6px;padding:8px 17px;border-radius:999px;border:1.5px solid var(--line);transition:background .15s,border-color .15s}
.tpill input:checked+span{border-color:transparent;background:var(--ink);color:#fff}
.tpill input:checked+span::before{content:"✓"}
.tpill--seo input:checked+span{background:var(--seo);color:var(--ink)}
.tpill--ec input:checked+span{background:var(--ec);color:var(--ink)}
.tpill--mkt input:checked+span{background:var(--mkt)}
.tpill--dev input:checked+span{background:var(--dev)}
.tpill input:focus-visible+span{outline:2px solid var(--hover);outline-offset:2px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cform__foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:6px;flex-wrap:wrap}
.agree{display:flex;gap:8px;align-items:center;font-size:13px;cursor:pointer;position:relative}
.agree input{position:absolute;opacity:0;width:20px;height:20px;margin:0;cursor:pointer}
.agree__box{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);background:var(--bg);display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:#fff;flex:none}
.agree input:checked+.agree__box{background:var(--ink);border-color:var(--ink)}
.agree input:checked+.agree__box::after{content:"✓"}
.agree input:focus-visible+.agree__box{outline:2px solid var(--hover);outline-offset:2px}
.agree a{text-decoration:underline}
.confirm__lead{font-size:14px}
.confirm{display:grid;grid-template-columns:160px 1fr;font-size:14px;line-height:1.8}
.confirm dt,.confirm dd{padding:12px 0;border-top:1px solid var(--line);margin:0}
.confirm dt{color:var(--mute)}
.confirm dd{white-space:pre-wrap}
.form-status{color:var(--news-t);font-weight:700;font-size:13px}
.contact__aside{display:flex;flex-direction:column;gap:16px;padding-top:150px}
.cflow{display:flex;flex-direction:column;gap:10px;margin-top:14px;font-size:13px;line-height:1.7}
.cflow li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}
.cflow li span{width:28px;height:28px;border-radius:50%;font:800 13px/28px var(--f-en);text-align:center}
.aside-note{border-radius:20px;padding:22px 24px;border:1.5px solid var(--line);font-size:13px;line-height:1.85}
.aside-note__m{margin-top:8px;color:var(--mute)}
.done{background:#fff;border-radius:24px;padding:48px;display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:48px;align-items:center}
.done__main{display:flex;flex-direction:column;gap:14px}
.done__main p{font-size:15px;line-height:1.9}
.done__main .more{font-size:14px}
.done__side{background:var(--bg);border-radius:18px;padding:22px}
.done__h{font-size:14px}
.done__list a{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.done__list a:last-child{border-bottom:0}

/* ==========================================================
   COLUMN LIST（1f）・ARTICLE（1g）
   ========================================================== */
.feat{background:#fff;border-radius:24px;overflow:hidden;display:grid;grid-template-columns:400px 1fr;transition:transform .2s}
.feat:hover{transform:translateY(-3px);color:inherit}
.feat__b{padding:28px 32px;display:flex;flex-direction:column;gap:10px;justify-content:center}
.feat__m{font-size:12px;color:var(--mute)}
.feat__t{font-size:22px;line-height:1.55}
.feat__d{font-size:14px;line-height:1.85}
.art{display:flex;flex-direction:column;gap:28px;font-size:16px;line-height:2;min-width:0}
.art--narrow{max-width:760px;margin-inline:auto}
.art__head{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.byline{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--ink-2);flex-wrap:wrap;line-height:1.6}
.byline b{color:var(--ink)}
.eyecatch{height:300px;border-radius:24px;padding:36px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
.eyecatch__pills{position:absolute;right:-10px;top:40px;display:flex;flex-direction:column;gap:14px;align-items:flex-end}
.eyecatch__pills i{height:28px;border-radius:999px 0 0 999px;background:rgba(255,255,255,.55)}
.eyecatch__t{font-size:34px;font-weight:900;line-height:1.4;position:relative}
.toc-box{border:1.5px solid var(--line);border-radius:18px;padding:18px 24px;font-size:14px;line-height:2}
.toc-box ol{list-style:decimal;padding-left:1.4em}
.prose{font-size:16px;line-height:2}
.prose>*+*{margin-top:1.1em}
.prose h2{margin-top:2em;font-size:26px;line-height:1.5;font-weight:900;scroll-margin-top:90px}
.prose h3{margin-top:1.6em;font-size:19px;line-height:1.6;font-weight:700}
.prose ul{list-style:disc;padding-left:1.4em}
.prose ol{list-style:decimal;padding-left:1.4em}
.prose li+li{margin-top:.3em}
.prose a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.prose a:hover{text-decoration-color:currentColor}
.prose a.term-link{text-decoration-style:dotted;text-decoration-color:var(--ink-2)}
.prose table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.8;background:#fff;border-radius:14px;overflow:hidden}
.prose th,.prose td{padding:12px 16px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.prose thead th{background:var(--stripe-a);border-top:0;font-weight:700}
.prose tbody th{width:28%;color:var(--ink-2);font-weight:500}
.table-wrap{overflow-x:auto}
.prose .box{background:#fff;border-radius:18px;padding:22px 26px;font-size:15px;line-height:1.9}
.prose .marker{background:linear-gradient(transparent 62%,var(--seo-3) 62%)}
.prose .strike{text-decoration:line-through;text-decoration-color:var(--news);text-decoration-thickness:2px}
.prose h3 .strike{text-decoration-style:wavy}
.prose blockquote{margin:0}
.prose blockquote.big{font-size:24px;font-weight:900;line-height:1.6;padding-left:20px;border-left:4px solid var(--ink)}
.prose .link-arrow{font-weight:700;text-decoration:none}
.prose .link-arrow::after{content:" →"}
.prose .callout{background:#fff;border-left:4px solid var(--news);border-radius:0 12px 12px 0;padding:12px 18px;font-weight:700;font-size:15px}
.prose .ext{background:#fff;border-radius:14px;padding:14px 18px;line-height:1.6;font-size:15px}
.prose .ext a{font-weight:700;display:block;text-decoration:none}
.prose .ext a::after{content:" ↗";color:var(--mute)}
.prose .ext .url{display:block;font-family:var(--f-en);font-size:12px;color:var(--mute);overflow-wrap:anywhere}
.prose .hbar{background:#fff;border-radius:18px;padding:20px 24px}
.prose .hbar>b{display:block;font-size:15px;margin-bottom:12px;line-height:1.6}
.prose .hbar ul{list-style:none;padding:0;margin:0}
.prose .hbar li{display:grid;grid-template-columns:minmax(7em,9em) 1fr 3.4em;align-items:center;gap:12px;font-size:14px;line-height:1.5}
.prose .hbar li+li{margin-top:10px}
.prose .hbar .b{height:12px;background:var(--stripe-a);border-radius:0 999px 999px 0;overflow:hidden}
.prose .hbar .b i{display:block;height:100%;background:var(--bar-before);border-radius:0 999px 999px 0}
.prose .hbar li.on .b i{background:var(--seo)}
.prose .hbar li.on .l,.prose .hbar li.on .v{font-weight:700}
.prose .hbar .v{font-family:var(--f-en);font-weight:700;text-align:right}
.prose--15{font-size:15px}
.prose--msg{max-width:760px;margin-inline:auto}
.h2-art{font-size:26px;line-height:1.5;font-weight:900;margin-bottom:12px}
.svc-band{border-radius:20px;padding:22px 26px;display:flex;flex-direction:column;gap:4px;transition:transform .2s;line-height:1.7}
.svc-band:hover{transform:translateY(-2px);color:inherit}
.svc-band.bg-mkt:hover,.svc-band.bg-dev:hover{color:#fff}
.svc-band__l{font-size:12px;font-weight:700}
.svc-band b{font-size:18px}
.svc-band span:last-child{font-size:13px}
.author-box{background:#fff;border-radius:20px;padding:24px;display:grid;grid-template-columns:56px 1fr;gap:16px;align-items:center;line-height:1.7}
.author-box__l{font-size:12px;color:var(--mute)}
.author-box__n{font-size:17px}
.author-box__r{font-size:13px;margin-left:8px}
.author-box p{font-size:13px;line-height:1.8;margin-top:4px}

/* ==========================================================
   GLOSSARY（1h）・FAQ（1i）
   ========================================================== */
.gl-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:48px;align-items:start}
.gindex{background:#fff;border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:14px;position:sticky;top:90px}
.gindex__h{font-size:15px}
.gindex__search input{width:100%;font:inherit;font-size:13px;padding:10px 14px;border-radius:999px;background:var(--bg);border:0;color:var(--ink)}
.gindex__kana{display:flex;flex-wrap:wrap;gap:4px;font:700 12px var(--f-en)}
.gindex__kana button{padding:3px 8px;border-radius:6px}
.gindex__kana button.is-on{background:var(--ink);color:#fff}
.gindex__list{display:flex;flex-direction:column;font-size:14px}
.gindex__list a{padding:8px 0;border-bottom:1px solid var(--line-in)}
.gindex__list a:last-child{border-bottom:0}
.gindex__list a.is-current{font-weight:700}
.gindex__empty{font-size:13px;color:var(--mute)}
.gl{display:flex;flex-direction:column;gap:26px;max-width:760px;min-width:0}
.gl__read{font-size:13px;color:var(--mute);margin-top:8px}
.h2-gl{margin-bottom:12px;font-size:22px;font-weight:900;line-height:1.5}
.fbox{background:#fff;border-radius:20px;padding:28px;display:flex;align-items:center;justify-content:center;gap:18px;font-weight:900;flex-wrap:wrap}
.fbox__l{border-radius:16px;padding:18px 24px;font-size:20px}
.fbox__op{font-size:28px}
.fbox__frac{display:flex;flex-direction:column;align-items:center;gap:8px}
.fbox__frac>span:first-child,.fbox__t{border-radius:12px;padding:10px 20px;font-size:17px}
.fbox__frac i{width:100%;height:3px;background:var(--ink);border-radius:2px}
.fbox__den{background:var(--stripe-a);border-radius:12px;padding:10px 20px;font-size:17px}
.fbox__n{font:800 26px var(--f-en)}
.gl__ex{font-size:14px;color:var(--ink-2);margin-top:10px}
.gl__rel{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.gl__rel .aside-card{border-radius:18px;padding:20px}
.gl__rel .chips{font-size:13px;margin-top:10px}
.gl__rel .aside-svc{border-radius:18px;padding:20px;gap:6px}
.gl__by{font-size:12px;color:var(--mute)}
.gcards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.gcard{background:#fff;border-radius:18px;padding:20px 22px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;transition:transform .2s}
.gcard:hover{transform:translateY(-2px);color:inherit}
.gcard b{font-size:17px}
.gcard span:not(.cat-pill):not(.draft-tag){font-size:13px;line-height:1.8;color:var(--ink-2)}
.gcard .draft-tag{margin-left:0}
.empty-box{background:#fff;border-radius:20px;padding:28px}
.empty-box p{font-size:14px;margin-top:6px}
.empty-box a{text-decoration:underline}
.faq-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start}
.faq-aside{display:flex;flex-direction:column;gap:20px;position:sticky;top:90px}
.faq-cats{display:flex;flex-direction:column;font-size:14px;font-weight:700}
.faq-cats a{padding:11px 0;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center}
.faq-cats a:first-child{border-top-color:var(--ink)}
.faq-cats a:last-child{border-bottom:1px solid var(--line)}
.faq-cats i{width:8px;height:8px;border-radius:50%}
.dot-ink{background:var(--ink)} .dot-line{background:var(--line)} .dot-seo{background:var(--seo)} .dot-ec{background:var(--ec)} .dot-mkt{background:var(--mkt)} .dot-dev{background:var(--dev)}
.dark-band{background:var(--ink);color:#fff;border-radius:20px;padding:28px 32px;display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:17px;font-weight:700}

/* ==========================================================
   COMPANY（1j）・AUTHOR（1k）・MESSAGE
   ========================================================== */
.origin{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:48px;align-items:center;padding-bottom:52px}
.origin__text{display:flex;flex-direction:column;gap:18px}
.origin__text p{font-size:15px;line-height:2}
.origin__logo{background:#fff;border-radius:28px;padding:44px;display:flex;align-items:center;justify-content:center}
.origin__logo img{width:100%;max-width:340px}
.company-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px;align-items:start}
.fcard{background:var(--bg);border-radius:24px;overflow:hidden;display:grid;grid-template-columns:140px 1fr}
.fcard img{width:100%;height:100%;min-height:200px;object-fit:cover;object-position:50% 15%}
.fcard__b{padding:22px;display:flex;flex-direction:column;gap:8px;justify-content:center}
.fcard__r{font-size:12px;color:var(--mute)}
.fcard__b b{font-size:20px}
.fcard__d{font-size:13px;line-height:1.8}
.au-hero{display:grid;grid-template-columns:420px minmax(0,1fr);gap:56px;align-items:center;padding-top:24px;padding-bottom:52px}
.au-hero__img{width:100%;height:520px;object-fit:cover;object-position:50% 20%;border-radius:210px 210px 24px 24px}
.au-hero__b{display:flex;flex-direction:column;gap:18px}
.au-hero__b>p{font-size:15px;line-height:2}
.au-hero__r{font-size:14px;color:var(--mute)}
.au-hero__en{font:500 14px var(--f-en);color:var(--mute);letter-spacing:.06em}
.sns{display:flex;gap:10px;font-size:13px;font-weight:700}
.sns a{border:1.5px solid var(--ink);padding:7px 16px;border-radius:999px}
.au-work{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.au-work__c{border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:6px;transition:transform .2s;line-height:1.6}
.au-work__c:hover{transform:translateY(-2px);color:inherit}
.au-work__c.bg-mkt:hover,.au-work__c.bg-dev:hover{color:#fff}
.au-work__m{font-size:12px;font-weight:700}
.au-work__c b{font-size:16px}
.au-hero--msg{grid-template-columns:420px minmax(0,1fr)}
.msg-panel{height:360px;border-radius:210px 210px 24px 24px;background:#fff;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:32px}
.msg-panel__bars{position:absolute;left:0;top:96px;display:flex;flex-direction:column;gap:14px;width:100%}
.msg-panel__bars i{height:28px;border-radius:0 999px 999px 0}
.msg-panel__bars i:nth-child(1){width:70%}.msg-panel__bars i:nth-child(2){width:88%}.msg-panel__bars i:nth-child(3){width:88%}.msg-panel__bars i:nth-child(4){width:70%}
.msg-panel__en{font:800 28px var(--f-en);letter-spacing:.12em;color:var(--mute)}
.msg-lead{font-size:16px;line-height:1.9}
.notfound{padding-top:56px;padding-bottom:40px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.notfound p{max-width:620px;font-size:15px;line-height:1.9}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width:1100px){
  .hero{grid-template-columns:minmax(0,1fr) 460px}
  .svc-hero{grid-template-columns:minmax(0,1fr) 440px}
  .gnav__list{gap:20px}
}
@media (max-width:960px){
  :root{--pad:20px}
  body{font-size:14px}
  .pc-only{display:none!important}
  .sp-only{display:revert}
  /* header */
  .gh-in{padding:12px var(--pad)}
  .gh-logo img{height:22px}
  .gnav{display:none}
  .burger{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--ink)}
  .burger span{width:16px;height:2px;background:#fff;transition:transform .2s}
  .burger[aria-expanded="true"] span:first-child{transform:translateY(3px) rotate(45deg)}
  .burger[aria-expanded="true"] span:last-child{transform:translateY(-3px) rotate(-45deg)}
  .spnav{display:flex;flex-direction:column;padding:8px var(--pad) 24px;max-height:calc(100dvh - 68px);overflow-y:auto;background:var(--bg)}
  .spnav[hidden]{display:none!important}
  .spnav__a,.spnav__g summary{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-weight:700;font-size:16px;list-style:none;cursor:pointer}
  .spnav__g summary::-webkit-details-marker{display:none}
  .spnav__g summary::after{content:"＋";font-weight:400}
  .spnav__g[open] summary::after{content:"−"}
  .spnav__g ul{padding:6px 0 10px}
  .spnav__g li a{display:flex;gap:10px;align-items:center;padding:9px 4px;font-size:15px}
  .spnav__g li i{width:20px;height:8px;border-radius:0 999px 999px 0}
  .spnav .btn{margin-top:20px}
  /* sticky bottom CTA */
  .spcta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px 16px calc(16px + env(safe-area-inset-bottom));background:var(--bg);transition:transform .25s}
  .spcta.is-hidden{transform:translateY(110%)}
  .spcta .btn{padding:15px}
  body.has-spcta{padding-bottom:84px}
  /* type */
  .h1-top{font-size:38px;line-height:1.25}
  .h1-sub{font-size:32px}
  .h1-art{font-size:26px}
  .h1-gl,.h1-faq,.h1-contact{font-size:28px}
  .h1-au{font-size:34px}
  .h2,.sec-h h2,.why-card h2{font-size:22px}
  .h2--30,.consult__text h2{font-size:24px}
  .prose{font-size:15px}
  .prose h2{font-size:21px}
  .prose h3{font-size:17px}
  .sec{padding-block:28px}
  .sec--top0{padding-top:0}
  .sec--top24{padding-top:8px;padding-bottom:36px}
  /* layouts → 1 column */
  .hero,.svc-hero,.grid-res-news,.grid-2,.grid-col-faq,.why,.with-aside,.gl-layout,.faq-layout,.origin,.company-grid,.au-hero,.contact,.done,.phead--split,.consult__in{grid-template-columns:minmax(0,1fr)}
  .phead--row{flex-direction:column;align-items:flex-start;gap:16px}
  .filter{justify-content:flex-start}
  .newsbar{margin-inline:-4px;padding:8px 12px;font-size:12px;gap:8px}
  .newsbar__date,.newsbar__more{display:none}
  .newsbar__tag{font-size:10px;padding:2px 8px}
  .hero{padding-top:28px;padding-bottom:28px;gap:24px}
  .hero__copy{gap:14px}
  .hero__lead{font-size:14px;line-height:1.85}
  .hero__btns .btn{width:100%;padding:15px}
  .hero__svc{margin-left:calc(var(--pad) * -1);gap:8px}
  .hero__svc-h{display:none}
  .lpill{padding:13px 20px;font-size:15px}
  .lpill--short{width:88%}
  .lpill__t{font-size:15px}
  .lpill__s{display:none}
  .grid-res-news{padding-block:28px;gap:28px}
  .why-card{padding:24px 22px}
  .rrow{grid-template-columns:1fr auto;gap:8px 12px;padding:14px 0}
  .rrow__bars{grid-column:1 / -1;grid-row:2}
  .rrow__num{font-size:26px}
  .svc4,.cards3,.cards4,.wgrid,.cgrid3,.deliver,.gcards,.gl__rel,.au-work{grid-template-columns:minmax(0,1fr)}
  .cgrid3:not(.cgrid3--lg){grid-template-columns:repeat(2,minmax(0,1fr))}
  .founder{grid-template-columns:88px 1fr;padding:20px;gap:14px;align-items:center;border-radius:20px}
  .founder__img{width:88px;height:110px;min-height:0;border-radius:12px;object-position:50% 15%}
  .founder__body{padding:0;gap:6px}
  .founder__body .en{display:none}
  .founder__body h2{font-size:15px}
  .founder__name{font-size:12px}
  .founder__name b{font-size:13px}
  .founder__links{gap:12px;font-size:12px}
  .gantt,.formula-card{padding:20px}
  .gantt__row{grid-template-columns:92px repeat(6,1fr)}
  .gantt__list .gantt__row{font-size:12px}
  .pagenav{overflow-x:auto;flex-wrap:nowrap;margin-right:calc(var(--pad) * -1);padding-right:var(--pad)}
  .pagenav a{white-space:nowrap}
  #problems{padding-block:28px}
  .why{gap:24px}
  .why__quote{padding:28px 24px}
  .why__q{font-size:19px}
  .price3{grid-template-columns:1fr}
  .price3__c,.price3__c:first-child,.price3__c.is-pop{padding:14px 0;border-right:0;border-bottom:1px solid var(--line)}
  .price3__c.is-pop{padding-inline:14px}
  .flow{padding:20px}
  .flow__bar{display:none}
  .flow__steps{grid-template-columns:1fr;gap:0;margin-top:0}
  .flow__steps li{padding:16px 0 16px 0;border-top:4px solid;border-image:none}
  .flow__steps li:nth-child(1){border-top-color:var(--seo)} .flow__steps li:nth-child(2){border-top-color:var(--ec)} .flow__steps li:nth-child(3){border-top-color:var(--mkt)} .flow__steps li:nth-child(4){border-top-color:var(--dev)}
  .psum{padding:16px 18px}
  .psum b{font-size:15px}
  .dtable{grid-template-columns:96px 1fr;font-size:14px}
  .nlist--lg .nrow{grid-template-columns:1fr;gap:4px;padding:14px 0}
  .feat{grid-template-columns:1fr}
  .thumb--lg{min-height:180px;padding:22px}
  .thumb--lg .thumb__t{font-size:22px}
  .feat__b{padding:20px 22px}
  .feat__t{font-size:18px}
  .eyecatch{height:200px;padding:24px;border-radius:20px}
  .eyecatch__t{font-size:24px}
  .eyecatch__pills{top:24px;gap:10px}
  .eyecatch__pills i{height:18px}
  .aside--sticky,.gindex,.faq-aside{position:static}
  .gindex{order:2}
  .gl{order:1}
  .faq--card .faq__i{padding:16px 18px}
  .faq--card summary{font-size:15px}
  .faq--card .faq__a{padding-left:0;font-size:14px}
  .dark-band{flex-direction:column;align-items:flex-start;padding:24px}
  .fbox{padding:20px;gap:10px}
  .fbox__l{padding:12px 16px;font-size:16px}
  .fbox__op{font-size:20px}
  .fbox__frac>span:first-child,.fbox__t,.fbox__den{font-size:14px;padding:8px 12px}
  .origin__logo{padding:28px}
  .au-hero{gap:24px;padding-top:8px}
  .au-hero__img{height:420px;border-radius:170px 170px 20px 20px}
  .msg-panel{height:220px;border-radius:120px 120px 20px 20px}
  .msg-panel__bars{top:56px;gap:10px}
  .msg-panel__bars i{height:18px}
  .fcard{grid-template-columns:110px 1fr}
  .contact{padding-top:24px;gap:24px}
  .contact__aside{padding-top:0}
  .cform{padding:22px 18px}
  .cgrid{grid-template-columns:1fr}
  .csteps li{padding:8px 10px;text-align:center}
  .cform__foot{flex-direction:column;align-items:stretch}
  .cform__foot .btn{width:100%}
  .confirm{grid-template-columns:1fr}
  .confirm dd{border-top:0;padding-top:0}
  .done{padding:28px 22px;gap:24px}
  .consult{padding-block:32px}
  .consult__card{border-radius:24px}
  .consult__in{padding:28px 22px;gap:24px}
  .cbtn--main{padding:18px 24px}
  .gf-in{padding:32px var(--pad) 22px}
  .gf-grid{grid-template-columns:1fr 1fr;gap:24px 16px}
  .gf-about{grid-column:1 / -1}
  .gf-bottom{flex-direction:column}
  .mega{display:none}
  .owner{font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rrow__bars i{width:var(--w)}
}
.cfield__l{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.cfield__l .hint{margin:0}
label.cfield .cfield__l .hint{margin:0;font-size:11px}
.phead--row>div:first-child{flex:1;min-width:0}
.phead--row .filter{flex:none;max-width:50%}
@media (max-width:960px){.phead--row .filter{max-width:none}}
