/* AX Partners — shared site styles (extracted from index.html) */
  :root{
    --ink:#1d1d1f;
    --ink-2:#6e6e73;
    --line:#d2d2d7;
    --gray:#f5f5f7;
    --blue:#1366e8;
    --navy:#14233f;
    --maxw:1080px;
    --ease:cubic-bezier(.22,.61,.36,1);
    --font:-apple-system,BlinkMacSystemFont,"SF Pro JP","Helvetica Neue","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden}
  body{font-family:var(--font);color:var(--ink);background:#fff;line-height:1.6;letter-spacing:.012em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
  body.intro-lock{overflow:hidden;height:100vh}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
  section{scroll-margin-top:64px}

  /* ---------- Buttons / links ---------- */
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;font-family:inherit;font-size:1.0625rem;font-weight:500;line-height:1;
    padding:13px 24px;border-radius:980px;border:1px solid transparent;cursor:pointer;transition:background .25s var(--ease),transform .2s var(--ease),opacity .2s}
  .btn-fill{background:var(--blue);color:#fff}
  .btn-fill:hover{background:#0a5bd0}
  .btn-soft{background:rgba(0,0,0,.05);color:var(--ink)}
  .btn-soft:hover{background:rgba(0,0,0,.09)}
  .link-arr{display:inline-flex;align-items:center;gap:.2em;color:var(--blue);font-size:1.0625rem;font-weight:500}
  .link-arr::after{content:"›";font-size:1.25em;line-height:1;transform:translateY(-2px);transition:transform .2s var(--ease)}
  .link-arr:hover::after{transform:translate(3px,-2px)}
  .link-arr:hover{text-decoration:underline}

  /* ---------- Nav ---------- */
  header.nav{position:fixed;top:0;left:0;right:0;z-index:9000;height:52px;
    background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
    border-bottom:1px solid rgba(0,0,0,.08)}
  .nav-in{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:1200px;margin:0 auto;padding:0 22px}
  .nav-logo{display:flex;align-items:center;gap:9px}
  .nav-logo img{height:22px;width:auto}
  .nav-logo b{font-size:1.0rem;font-weight:700;letter-spacing:.01em}
  .nav-menu{display:flex;align-items:center;gap:30px}
  .nav-menu a{font-size:.82rem;font-weight:500;color:var(--ink);opacity:.82;transition:opacity .2s}
  .nav-menu a:hover{opacity:1}
  .nav-cta{font-size:.82rem!important;color:#fff!important;background:var(--blue);padding:6px 14px;border-radius:980px;opacity:1!important}
  .nav-cta:hover{background:#0a5bd0}
  .nav-burger{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;padding:9px}
  .nav-burger span{display:block;width:20px;height:1.5px;background:var(--ink);margin:5px auto;transition:.3s var(--ease)}

  /* ---------- Intro animation (4 parts converge → form logo) ---------- */
  .intro{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;
    --spread:clamp(98px,27vw,188px);--spreadY:clamp(82px,21vw,140px)}
  .intro.dismiss{opacity:0;transform:translateY(-30px);transition:opacity .55s var(--ease),transform .55s var(--ease);pointer-events:none}
  .intro-bg{position:absolute;inset:0;background:#fff;z-index:0}
  .intro-bg.out{opacity:0;transition:opacity .85s var(--ease)}
  .intro-stage{position:relative;z-index:2;width:100%;max-width:760px;height:clamp(330px,68vh,460px)}
  .intro-parts{position:absolute;inset:0}
  .ipart{position:absolute;left:50%;top:50%;display:flex;flex-direction:column;align-items:center;gap:12px;width:clamp(70px,18vw,116px);
    opacity:0;transform:translate(-50%,-50%) translate(var(--sx,0),var(--sy,0)) scale(.84);
    transition:opacity .5s var(--ease),transform .6s var(--ease)}
  .ipart.in{opacity:1;transform:translate(-50%,-50%) translate(var(--sx,0),var(--sy,0)) scale(1)}
  .ipart.merge{opacity:0;transform:translate(-50%,-50%) translate(0,0) scale(.3);
    transition:opacity .55s ease-in,transform .6s cubic-bezier(.55,0,.75,0)}
  .intro-parts .ipart:nth-child(1){--sx:calc(-1 * var(--spread));--sy:0}
  .intro-parts .ipart:nth-child(2){--sx:var(--spread);--sy:0}
  .intro-parts .ipart:nth-child(3){--sx:0;--sy:calc(-1 * var(--spreadY))}
  .intro-parts .ipart:nth-child(4){--sx:0;--sy:var(--spreadY)}
  .ipart .ico{width:clamp(52px,12vw,82px);height:clamp(52px,12vw,82px);display:grid;place-items:center}
  .ipart .ico svg{width:100%;height:100%}
  .ipart .lab{font-size:clamp(10px,2.3vw,12.5px);font-weight:700;color:var(--ink-2);text-align:center;letter-spacing:.02em;white-space:nowrap}
  .intro-logo{position:absolute;left:50%;top:50%;z-index:2;width:clamp(150px,24vw,260px);height:auto;opacity:0;
    transform:translate(-50%,-50%) scale(.8);transition:opacity .5s var(--ease),transform .85s cubic-bezier(.2,.9,.25,1.12)}
  .intro-logo.in{opacity:1;transform:translate(-50%,-50%) scale(1)}
  .intro-skip{position:fixed;bottom:26px;right:26px;background:none;border:0;color:var(--ink-2);font-family:inherit;font-size:.8rem;cursor:pointer;opacity:.7;letter-spacing:.04em}
  .intro-skip:hover{opacity:1}

  /* ---------- Section base ---------- */
  .sec{padding:120px 0;text-align:center}
  .sec.gray{background:var(--gray)}
  .sec.dark{background:#000;color:#f5f5f7;position:relative;overflow:hidden}
  .sec.dark>*{position:relative;z-index:1}
  .sec.dark::before{content:"";position:absolute;inset:-20%;z-index:0;pointer-events:none;filter:blur(30px);
    background:radial-gradient(32% 40% at 22% 30%, rgba(47,139,255,.30), transparent 65%),radial-gradient(34% 42% at 80% 70%, rgba(123,92,255,.28), transparent 65%)}
  .eyebrow{font-size:1.25rem;font-weight:700;color:var(--blue);margin-bottom:8px;letter-spacing:.01em}
  .dark .eyebrow{color:#2f8bff}
  h2.title{font-size:clamp(2rem,5vw,3.4rem);font-weight:700;line-height:1.08;letter-spacing:-.022em}
  .lead{font-size:clamp(1.05rem,2.1vw,1.45rem);font-weight:500;color:var(--ink-2);max-width:680px;margin:22px auto 0;line-height:1.5}
  h1.hero-h1,h2.title,.lead,.hero-sub{text-wrap:balance}
  .dark .lead{color:#a1a1a6}
  .sec .cta-row{margin-top:30px;display:flex;gap:26px;justify-content:center;flex-wrap:wrap}

  /* ---------- Hero ---------- */
  .hero{padding:128px 0 96px;text-align:center;position:relative;overflow:hidden}
  .hero>*{position:relative;z-index:1}
  .hero::before{content:"";position:absolute;inset:-55%;z-index:0;pointer-events:none;filter:blur(72px) saturate(1.3);
    background:
      radial-gradient(26% 30% at 30% 32%, rgba(31,111,255,.95), transparent 60%),
      radial-gradient(24% 28% at 70% 26%, rgba(56,189,248,.9), transparent 60%),
      radial-gradient(28% 32% at 76% 70%, rgba(99,102,241,.85), transparent 60%),
      radial-gradient(24% 28% at 32% 74%, rgba(37,99,235,.9), transparent 60%),
      radial-gradient(22% 26% at 52% 50%, rgba(123,92,255,.68), transparent 60%);
    animation:heroswirl 18s linear infinite}
  .hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
    background:radial-gradient(58% 62% at 50% 43%, rgba(255,255,255,.9), rgba(255,255,255,.45) 42%, transparent 75%)}
  @keyframes heroswirl{to{transform:rotate(360deg)}}
  .hero .mark{width:clamp(96px,16vw,150px);margin:0 auto 30px;animation:floaty 6s ease-in-out infinite}
  @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
  h1.hero-h1{font-size:clamp(2.6rem,7.2vw,5.4rem);font-weight:900;line-height:1.05;letter-spacing:-.03em}
  .hero-sub{font-size:clamp(1.1rem,2.4vw,1.7rem);font-weight:500;color:var(--ink-2);margin:24px auto 0;max-width:640px;line-height:1.5}
  .hero .cta-row{margin-top:34px}

  /* ---------- Services (bento) ---------- */
  .svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:64px;text-align:center}
  .svc{background:#fff;border-radius:28px;padding:48px 44px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:340px;
    transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
  .gray .svc{box-shadow:0 1px 0 rgba(0,0,0,.04)}
  .svc:hover{transform:translateY(-6px);box-shadow:0 30px 60px rgba(0,0,0,.10)}
  .svc .ico{width:74px;height:74px;margin-bottom:26px}
  /* service icons — scroll-coupled via JS --p (paused animation + negative delay). works in every browser; reverses on scroll up. base = final state */
  .svc .ico .s1h{transform-box:fill-box;transform-origin:center}
  .svc .ico .s1l{stroke-dasharray:64;stroke-dashoffset:0}
  .svc .ico .s2a,.svc .ico .s2b,.svc .ico .s2c{transform-box:fill-box;transform-origin:left center}
  .svc .ico .s2d{transform-box:fill-box;transform-origin:center}
  .svc .ico .s1h,.svc .ico .s1l,.svc .ico .s2a,.svc .ico .s2b,.svc .ico .s2c,.svc .ico .s2d{animation-duration:1s;animation-timing-function:linear;animation-iteration-count:2;animation-direction:alternate;animation-fill-mode:both;animation-play-state:paused;animation-delay:calc(var(--p,1) * -2s)}
  .svc .ico .s1h{animation-name:bullpop}
  .svc .ico .s1l{animation-name:draw64}
  .svc .ico .s2a{animation-name:growx}
  .svc .ico .s2b{animation-name:growx}
  .svc .ico .s2c{animation-name:growx}
  .svc .ico .s2d{animation-name:bullpop}
  @keyframes draw64{from{stroke-dashoffset:64}to{stroke-dashoffset:0}}
  @keyframes growx{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  .svc h3{font-size:clamp(1.45rem,2.6vw,1.7rem);font-weight:700;letter-spacing:-.02em;line-height:1.25;text-wrap:balance}
  .svc p{margin-top:16px;color:var(--ink-2);font-size:1.02rem;font-weight:500;line-height:1.65;flex:1}
  .svc ul{margin:18px 0 24px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
  .svc li{font-size:.84rem;font-weight:600;color:var(--ink);background:var(--gray);padding:7px 13px;border-radius:980px}
  .svc .ml{margin-top:auto}

  /* ---------- Cases carousel ---------- */
  .carousel{position:relative;margin-top:48px}
  .car-viewport{overflow:hidden;border-radius:28px}
  .car-track{display:flex;transition:transform .6s var(--ease)}
  .case{flex:0 0 100%;display:grid;grid-template-columns:.92fr 1.08fr;background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;text-align:left;text-decoration:none;color:inherit;cursor:pointer}
  .case .case-media{transition:transform .45s var(--ease)}
  .case:hover{border-color:var(--blue)}
  .case:hover .case-media{transform:scale(1.05)}
  .case-more{display:inline-flex;align-items:center;gap:.3em;margin-top:20px;color:var(--blue);font-weight:600;font-size:.95rem}
  .case:hover .case-more{text-decoration:underline}
  .case-media{position:relative;padding:38px 36px;min-height:300px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(135deg,var(--g1,#2f8bff),var(--g2,#7b5cff),var(--g1,#2f8bff));background-size:220% 220%;animation:casegrad 9s ease-in-out infinite alternate}
  @keyframes casegrad{0%{background-position:0% 50%}100%{background-position:100% 50%}}
  .case-cat{font-size:.82rem;font-weight:700;letter-spacing:.04em}
  .case-client{display:flex;align-items:baseline;gap:.4em}
  .case-client b{font-size:2.6rem;font-weight:800;letter-spacing:.01em}
  .case-client span{font-size:1rem;font-weight:600;opacity:.9}
  .case-logo{align-self:flex-start;background:#fff;border-radius:14px;padding:13px 18px;display:inline-flex}
  .case-logo img{height:34px;width:auto;display:block}
  .case-body{padding:42px 40px;display:flex;flex-direction:column;justify-content:center}
  .case-body h3{font-size:clamp(1.35rem,2.5vw,1.85rem);font-weight:700;letter-spacing:-.01em;line-height:1.34}
  .case-body p{margin-top:15px;color:var(--ink-2);font-size:1rem;font-weight:500;line-height:1.75}
  .case-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0;padding:0}
  .case-tags li{font-size:.8rem;font-weight:600;background:var(--gray);color:var(--ink);padding:7px 13px;border-radius:980px}
  .car-btn{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink);font-size:1.5rem;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.10);transition:transform .2s var(--ease),background .2s;z-index:3}
  .car-btn:hover{background:#fff;transform:translateY(-50%) scale(1.07)}
  .car-btn.prev{left:-14px}
  .car-btn.next{right:-14px}
  .car-dots{display:flex;gap:8px;justify-content:center;margin-top:26px}
  .car-dot{width:8px;height:8px;border-radius:50%;background:var(--line);border:0;padding:0;cursor:pointer;transition:background .25s,width .25s}
  .car-dot.active{background:var(--blue);width:22px;border-radius:980px}
  .carousel.single .car-btn,.carousel.single .car-dots{display:none}
  @media(max-width:760px){.case{grid-template-columns:1fr}.case-media{min-height:180px;padding:30px}.case-body{padding:32px 28px}.car-btn.prev{left:6px}.car-btn.next{right:6px}}

  /* ---------- Cases marquee ---------- */
  .marquee{margin-top:48px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;cursor:grab;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
  .marquee::-webkit-scrollbar{display:none}
  .marquee.dragging,.marquee.dragging *{cursor:grabbing}
  .mq-track{display:flex;gap:20px;width:max-content}
  .mq-card{flex:0 0 320px;width:320px;background:linear-gradient(162deg,#eef5ff,#dbe8ff);border:1px solid #d2e3ff;border-radius:22px;padding:30px 28px;text-align:left;text-decoration:none;color:inherit;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(19,102,232,.07);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}
  /* case cards cycle through 3 soft on-brand tints (blue / indigo / cyan) so the row isn't a flat white block */
  .mq-card:nth-child(3n+2){background:linear-gradient(162deg,#f1f0ff,#e1e1ff);border-color:#dad6ff}
  .mq-card:nth-child(3n){background:linear-gradient(162deg,#e9f7ff,#d3edff);border-color:#c6e6fb}
  .mq-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(20,35,63,.13);border-color:var(--blue)}
  .mq-cat{font-size:.74rem;font-weight:700;color:var(--blue);letter-spacing:.05em}
  .mq-card h3{font-size:1.17rem;font-weight:700;letter-spacing:-.01em;line-height:1.4;margin:12px 0 9px}
  .mq-card p{color:var(--ink-2);font-size:.92rem;font-weight:500;line-height:1.65;flex:1}
  .mq-more{margin-top:18px;color:var(--blue);font-weight:600;font-size:.9rem}

  /* ---------- Stance (dark) ---------- */
  .stance-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:60px;text-align:center}
  .stance{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:38px 36px}
  .stance .ico{width:60px;height:60px;margin:0 auto 24px;color:#2f8bff}
  /* the brightest accent (cyan) lands only on the MOVING parts of each promise icon; the static parts (rings, clock face, check circle, bar baseline) keep the base blue */
  .stance .ico .arrow,.stance .ico .check,.stance .ico .hand,.stance .ico .bar{color:#2ed2ff}
  .stance .ico svg{width:100%;height:100%;overflow:visible}
  /* scroll-coupled icon animations — JS sets --p (0..1) from the block's center position: empty until the center nears the middle of the screen, fully formed when centered (--p 0.5), reverse-plays back to empty just past the middle. a paused animation + negative delay shows the frame at --p; iteration-count:2 + direction:alternate gives the forward-then-reverse. works in EVERY browser; reverses on scroll up too. */
  .stance .ico .arrow{opacity:1}
  .stance .ico .bull{transform-box:fill-box;transform-origin:center}
  .stance .ico .check{stroke-dasharray:13;stroke-dashoffset:0}
  .stance .ico .hand{transform-box:view-box;transform-origin:12px 12px}
  .stance .ico .bar{transform-box:fill-box;transform-origin:center bottom}
  .stance .ico .arrow,.stance .ico .bull,.stance .ico .check,.stance .ico .mn,.stance .ico .hr,.stance .ico .b1,.stance .ico .b2,.stance .ico .b3{animation-duration:1s;animation-timing-function:linear;animation-iteration-count:2;animation-direction:alternate;animation-fill-mode:both;animation-play-state:paused;animation-delay:calc(var(--p,1) * -2s)}
  .stance .ico .arrow{animation-name:shoot}
  .stance .ico .bull{animation-name:bullpop}
  .stance .ico .check{animation-name:draw}
  .stance .ico .mn{animation-name:sweep}
  .stance .ico .hr{animation-name:sweep2}
  .stance .ico .b1{animation-name:growb1}
  .stance .ico .b2{animation-name:growb2}
  .stance .ico .b3{animation-name:growb3}
  @keyframes shoot{0%{opacity:0;transform:translateX(-22px)}30%{opacity:1}68%{transform:translateX(3px)}100%{opacity:1;transform:translateX(0)}}
  @keyframes bullpop{0%{transform:scale(0)}68%{transform:scale(1.28)}100%{transform:scale(1)}}
  @keyframes draw{from{stroke-dashoffset:13}to{stroke-dashoffset:0}}
  @keyframes sweep{from{transform:rotate(-540deg)}to{transform:rotate(0)}}
  @keyframes sweep2{from{transform:rotate(-160deg)}to{transform:rotate(0)}}
  /* bars sprout one after another (b1 -> b2 -> b3), each easing up gradually over its own window; alternate then retracts them in reverse */
  @keyframes growb1{0%{transform:scaleY(0)}40%{transform:scaleY(1)}100%{transform:scaleY(1)}}
  @keyframes growb2{0%{transform:scaleY(0)}30%{transform:scaleY(0)}70%{transform:scaleY(1)}100%{transform:scaleY(1)}}
  @keyframes growb3{0%{transform:scaleY(0)}60%{transform:scaleY(0)}100%{transform:scaleY(1)}}
  .stance h3{font-size:1.4rem;font-weight:700;letter-spacing:-.01em}
  .stance p{margin-top:12px;color:#a1a1a6;font-size:1.0rem;font-weight:500;line-height:1.65}

  /* ---------- Flow ---------- */
  .flow{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:64px;text-align:center}
  .fstep{position:relative;overflow:hidden;padding:30px 28px 26px 34px;background:color-mix(in srgb,var(--c,var(--blue)) 9%,#fff);transition:background .25s var(--ease);
    clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%,16px 50%)}
  .flow .fstep:first-child{clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%)}
  .flow .fstep:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,16px 50%)}
  .fstep::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;
    background:repeating-linear-gradient(90deg,var(--c,var(--blue)) 0,var(--c,var(--blue)) 16px,color-mix(in srgb,var(--c,var(--blue)) 40%,#fff) 24px,var(--c,var(--blue)) 32px);
    background-size:32px 100%;animation:barscroll 1.3s linear infinite}
  @keyframes barscroll{from{background-position:0 0}to{background-position:32px 0}}
  /* perf: pause the always-on decorative animations while their section is off-screen (no on-screen visual change; stops continuous GPU/paint when scrolled away). toggled by IntersectionObserver adding .aoff */
  .hero.aoff::before,.sec.dark.aoff::before,.flow.aoff .fstep::before{animation-play-state:paused}
  .fstep .n{font-size:.78rem;font-weight:700;color:var(--c,var(--blue));letter-spacing:.1em}
  .fstep h4{font-size:1.13rem;font-weight:700;margin:14px 0 9px;letter-spacing:-.01em;transition:color .25s var(--ease)}
  .fstep p{color:var(--ink-2);font-size:.9rem;font-weight:500;line-height:1.6}
  .fstep:hover{background:color-mix(in srgb,var(--c,var(--blue)) 22%,#fff)}
  .fstep:hover h4{color:var(--c,var(--blue))}
  .flow .fstep:nth-child(1){--c:#2f8bff}
  .flow .fstep:nth-child(2){--c:#2d6ff0}
  .flow .fstep:nth-child(3){--c:#5159e6}
  .flow .fstep:nth-child(4){--c:#6f54e0}
  .flow .fstep:nth-child(5){--c:#7b5cff}

  /* ---------- Company ---------- */
  .co{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:60px;text-align:left;align-items:stretch}
  .co-table{width:100%;border-collapse:collapse}
  .co-table th,.co-table td{text-align:left;padding:18px 2px;border-bottom:1px solid var(--line);font-size:1rem;vertical-align:top}
  .co-table td{word-break:keep-all;overflow-wrap:anywhere}
  .co-table th{width:32%;font-weight:700;white-space:nowrap}
  .co-table td{color:var(--ink-2);font-weight:500}
  .leaders{display:flex;flex-direction:column;gap:18px}
  .leader{flex:1;display:flex;align-items:center;gap:24px;background:#fff;border-radius:22px;padding:30px 32px;box-shadow:0 1px 0 rgba(0,0,0,.05)}
  .leader .av{width:116px;height:116px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;color:#fff;font-size:1.5rem;font-weight:700;
    background:linear-gradient(140deg,#2f8bff,#14233f);overflow:hidden}
  .leader .av img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
  .leader .role{font-size:.8rem;font-weight:700;color:var(--blue);letter-spacing:.05em}
  .leader .nm{font-size:1.35rem;font-weight:700;margin-top:2px;letter-spacing:.01em}
  .leader .nm small{font-weight:500;color:var(--ink-2);font-size:.82rem;margin-left:8px}

  /* ---------- Contact ---------- */
  .contact-wrap{max-width:720px;margin:54px auto 0;text-align:left}
  .cform{display:grid;gap:16px}
  .cform .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .field label{display:block;font-size:.84rem;font-weight:700;margin-bottom:7px}
  .field input,.field select,.field textarea{width:100%;font-family:inherit;font-size:1rem;color:var(--ink);
    padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .2s,box-shadow .2s}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(19,102,232,.12)}
  .field textarea{resize:vertical;min-height:130px}
  .cform .submit{justify-self:center;margin-top:6px}
  .hp{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  #formMsg{margin-top:18px;font-size:.95rem;font-weight:600;display:none}
  #formMsg.ok{display:block;color:#1a8a3a}
  #formMsg.warn{display:block;color:var(--ink-2)}
  .contact-info{display:flex;flex-wrap:wrap;gap:14px 40px;margin-top:34px;justify-content:center;text-align:center;color:var(--ink-2);font-size:.98rem;font-weight:500}
  .contact-info a{color:var(--blue);font-weight:600}

  /* ---------- Footer ---------- */
  footer.ft{background:var(--gray);padding:46px 0;font-size:.82rem;color:var(--ink-2)}
  .ft-in{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
  .ft-in img{height:20px}
  .ft-links{display:flex;gap:22px;flex-wrap:wrap}
  .ft-links a:hover{color:var(--ink)}
  .ft-social{display:flex;gap:11px}
  .sns{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2);transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
  .sns svg{width:17px;height:17px}
  .sns:hover{background:var(--blue);border-color:var(--blue);color:#fff;transform:translateY(-2px)}

  /* ---------- Reveal ---------- */
  [data-rv]{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
  [data-rv].in{opacity:1;transform:none}
  [data-rv][data-d="1"]{transition-delay:.1s}
  [data-rv][data-d="2"]{transition-delay:.2s}
  [data-rv][data-d="3"]{transition-delay:.3s}
  [data-rv][data-d="4"]{transition-delay:.4s}

  /* ---------- Responsive ---------- */
  @media(max-width:900px){
    .svc-grid,.stance-grid,.co{grid-template-columns:1fr}
    .flow{grid-template-columns:repeat(2,1fr);gap:24px}
    .nav-menu{position:fixed;top:52px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
      background:rgba(255,255,255,.96);backdrop-filter:blur(20px);border-bottom:1px solid var(--line);
      padding:6px 22px 20px;transform:translateY(-10px);opacity:0;pointer-events:none;transition:.3s var(--ease)}
    .nav-menu.open{transform:none;opacity:1;pointer-events:auto}
    .nav-menu a{padding:15px 0;border-bottom:1px solid var(--line);opacity:1;font-size:1rem}
    .nav-menu .nav-cta{margin-top:14px;text-align:center;border-bottom:0}
    .nav-burger{display:block}
    .nav-burger.x span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
    .nav-burger.x span:nth-child(2){opacity:0}
    .nav-burger.x span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
    .sec{padding:88px 0}
    .hero{padding:104px 0 72px}
    .svc{padding:38px 30px;min-height:0}
    .cform .row{grid-template-columns:1fr}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important}
    html{scroll-behavior:auto}
    [data-rv]{opacity:1;transform:none;transition:none}
    .hero .mark{animation:none}
  }

/* ---- sub-page helpers ---- */
.subhead{padding-bottom:36px}
.rec-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:50px;text-align:left}
.rec-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 32px;box-shadow:0 1px 0 rgba(0,0,0,.04)}
.rec-card h3{font-size:1.18rem;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:11px}
.rec-card h3 .rc-no{flex:0 0 auto;width:30px;height:30px;border-radius:9px;background:var(--blue);color:#fff;font-size:.92rem;display:grid;place-items:center}
.rec-card p{color:var(--ink-2);font-weight:500;font-size:.98rem}
.rec-note{max-width:720px;margin:40px auto 0;padding:18px 22px;border:1px dashed var(--line);border-radius:14px;background:var(--gray);color:var(--ink-2);font-size:.9rem;font-weight:500;text-align:left}
.tags{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:24px}
.tag{font-size:.86rem;font-weight:600;color:var(--blue);background:rgba(19,102,232,.08);border:1px solid rgba(19,102,232,.18);border-radius:980px;padding:7px 16px}
.cta-band{margin-top:56px}
@media(max-width:760px){.rec-grid{grid-template-columns:1fr}}

/* ---- cases index grid ---- */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px;text-align:left}
.cs-card{display:flex;flex-direction:column;gap:11px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px 28px;color:var(--ink);transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}
.cs-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(20,35,63,.10);border-color:transparent}
.cs-cat{align-self:flex-start;font-size:.74rem;font-weight:700;color:var(--blue);background:rgba(19,102,232,.08);border-radius:980px;padding:5px 12px}
.cs-card h3{font-size:1.12rem;font-weight:700;line-height:1.42}
.cs-card p{font-size:.94rem;color:var(--ink-2);font-weight:500;flex:1;line-height:1.55}
.cs-more{font-size:.86rem;font-weight:700;color:var(--blue);margin-top:2px}
@media(max-width:980px){.case-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.case-grid{grid-template-columns:1fr}}
