
:root{--navy:#0E1E36;--azure:#1FA8E8;--azure-deep:#0d7fc4;--ink:#0E1E36;--sub:#566784;--line:rgba(14,30,54,.10);
  --jp:"Zen Kaku Gothic New",sans-serif;--disp:"Fraunces",serif;}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--jp);color:var(--ink);background:#fff;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px;}
.grain{position:fixed;inset:0;z-index:50;pointer-events:none;opacity:.5;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='0.04'/></svg>");}
.eyebrow{font-family:var(--disp);font-style:italic;font-weight:500;letter-spacing:.06em;color:var(--azure);font-size:15px;}
.eyebrow::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--azure);margin-right:10px;vertical-align:middle;box-shadow:0 0 12px rgba(31,168,232,.7);}
h2.title{font-weight:900;font-size:clamp(28px,4vw,46px);letter-spacing:.02em;line-height:1.2;margin-top:14px;}
header{position:fixed;top:0;left:0;right:0;z-index:40;height:74px;display:flex;align-items:center;transition:all .4s ease;}
header.solid{background:rgba(255,255,255,.82);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line);height:64px;}
header .bar{display:flex;align-items:center;justify-content:space-between;width:100%;}
header .logo{height:34px;opacity:0;transition:opacity .8s ease;}
header.show .logo{opacity:1;}
nav.main{display:flex;gap:30px;align-items:center;font-size:13.5px;font-weight:500;opacity:0;transition:opacity .8s ease .1s;}
header.show nav.main{opacity:1;}
nav.main a:not(.cta){position:relative;color:#3a4a66;}
nav.main a:not(.cta)::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1.5px;background:var(--azure);transition:width .3s ease;}
nav.main a:not(.cta):hover::after{width:100%;}
.cta{display:inline-flex;align-items:center;gap:7px;background:var(--navy);color:#fff;padding:10px 18px;border-radius:999px;font-weight:700;font-size:13px;transition:all .25s ease;}
.cta:hover{transform:translateY(-2px);background:var(--azure-deep);}
@media(max-width:760px){nav.main a:not(.cta){display:none;}}
#hero{position:relative;height:100vh;min-height:640px;overflow:hidden;background:#fff;}
#heroart{position:absolute;inset:0;z-index:0;background:center/cover no-repeat;will-change:opacity,transform;}
#hero canvas{position:absolute;inset:0;width:100%;height:100%;}
#bgcv{z-index:1;}#pcv{z-index:2;}
#finalLogo{position:absolute;z-index:3;opacity:0;transition:opacity 1s ease;filter:drop-shadow(0 12px 38px rgba(14,30,54,.18));}
#finalLogo.show{opacity:1;}
.hero-copy{position:absolute;left:0;right:0;z-index:4;text-align:center;top:52vh;}
.hero-copy h1{font-weight:900;font-size:clamp(30px,5.2vw,60px);letter-spacing:.06em;line-height:1.18;}
.hero-copy h1 .ln{display:block;overflow:hidden;}
.hero-copy h1 .in{display:inline-block;transform:translateY(120%);transition:transform 1s cubic-bezier(.16,.84,.27,1);}
.hero-copy.reveal h1 .in{transform:translateY(0);}
.hero-copy .accent{height:3px;width:0;margin:22px auto 0;border-radius:3px;background:linear-gradient(90deg,var(--azure),#86d4f7);box-shadow:0 2px 14px rgba(31,168,232,.55);transition:width .8s cubic-bezier(.2,.7,.2,1) .35s;}
.hero-copy.reveal .accent{width:88px;}
.hero-copy p{margin-top:18px;color:#41506b;font-size:clamp(14px,1.4vw,18px);font-weight:500;text-shadow:0 1px 12px rgba(255,255,255,.8);opacity:0;transform:translateY(12px);transition:opacity .7s ease .55s,transform .7s ease .55s;}
.hero-copy.reveal p{opacity:1;transform:none;}
.hero-copy .btnrow{margin-top:30px;opacity:0;transform:translateY(12px);transition:opacity .7s ease .8s,transform .7s ease .8s;}
.hero-copy.reveal .btnrow{opacity:1;transform:none;}
.btn-primary{display:inline-flex;align-items:center;gap:9px;background:var(--azure);color:#fff;font-weight:700;font-size:15px;padding:15px 30px;border-radius:999px;box-shadow:0 14px 34px rgba(31,168,232,.42);transition:transform .25s ease;border:none;cursor:pointer;}
.btn-primary:hover{transform:translateY(-3px);}
.scrollcue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:4;font-family:var(--disp);font-style:italic;font-size:12px;letter-spacing:.3em;color:#7e93ab;opacity:0;transition:opacity 1s ease 1.2s;}
.hero-copy.reveal~.scrollcue{opacity:1;}
.scrollcue .ln2{display:block;width:1px;height:34px;background:linear-gradient(var(--azure),transparent);margin:8px auto 0;}
section.block{position:relative;z-index:2;padding:clamp(80px,11vw,150px) 0;}
.reveal-up{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal-up.in{opacity:1;transform:none;}
.d1{transition-delay:.08s;}.d2{transition-delay:.16s;}
#services{background:radial-gradient(60% 50% at 88% 0%,rgba(31,168,232,.10),transparent 60%),linear-gradient(180deg,#fff,#f6fafe);}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:54px;}
@media(max-width:820px){.svc-grid{grid-template-columns:1fr;}}
.svc{position:relative;background:rgba(255,255,255,.8);border:1px solid var(--line);border-radius:22px;overflow:hidden;backdrop-filter:blur(6px);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease,border-color .45s ease;}
.svc:hover{transform:translateY(-7px);box-shadow:0 34px 70px rgba(14,30,54,.14);border-color:rgba(31,168,232,.45);}
.artwrap{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eef6fd,#e1eefb);position:relative;overflow:hidden;}
.artwrap::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 80% 10%,rgba(31,168,232,.14),transparent 60%);pointer-events:none;}
.ill{width:74%;height:auto;overflow:visible;}
.svc .body{padding:24px 30px 30px;}
.svc .no{font-family:var(--disp);font-style:italic;font-weight:300;font-size:22px;color:var(--azure);}
.svc h3{font-weight:900;font-size:21px;margin:8px 0 12px;letter-spacing:.02em;}
.svc p{color:var(--sub);font-size:14px;}
.svc .more{display:inline-flex;align-items:center;gap:7px;margin-top:18px;font-weight:700;font-size:13px;}
.svc .more .ar{color:var(--azure);transition:transform .25s ease;}
.svc:hover .more .ar{transform:translateX(5px);}
/* illustration animations */
.ill .bar{fill:#1FA8E8;transform-box:fill-box;transform-origin:bottom;animation:grow 2.8s ease-in-out infinite;}
.ill .bar.b2{animation-delay:.2s;fill:#49b8ee}.ill .bar.b3{animation-delay:.4s}.ill .bar.b4{animation-delay:.6s;fill:#0d7fc4}
@keyframes grow{0%,100%{transform:scaleY(.5)}50%{transform:scaleY(1)}}
.ill .ln-draw{stroke:#0E1E36;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:340;stroke-dashoffset:340;animation:draw 3.2s ease forwards;}
@keyframes draw{to{stroke-dashoffset:0}}
.ill .code{fill:#1FA8E8;transform-box:fill-box;transform-origin:left;transform:scaleX(0);animation:type .5s ease forwards;}
.ill .code.c1{animation-delay:.3s}.ill .code.c2{animation-delay:.7s;fill:#0E1E36;opacity:.55}.ill .code.c3{animation-delay:1.1s}.ill .code.c4{animation-delay:1.5s;fill:#0E1E36;opacity:.55}
@keyframes type{to{transform:scaleX(1)}}
.ill .cursor{fill:#1FA8E8;animation:blink 1s steps(2) infinite;}
@keyframes blink{50%{opacity:0}}
.ill .step{fill:#fff;stroke:rgba(14,30,54,.18);transform-box:fill-box;transform-origin:bottom;transform:scaleY(0);animation:rise .6s cubic-bezier(.2,.7,.2,1) forwards;}
.ill .step.s2{animation-delay:.2s}.ill .step.s3{animation-delay:.4s}.ill .step.s4{animation-delay:.6s}
@keyframes rise{to{transform:scaleY(1)}}
.ill .gear{transform-box:fill-box;transform-origin:center;animation:spin 9s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.ill .pulse{animation:pulse 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center;}
@keyframes pulse{0%,100%{transform:scale(.7);opacity:.5}50%{transform:scale(1.1);opacity:1}}
.flowdot{fill:#1FA8E8;}
#about{position:relative;background:linear-gradient(180deg,#ffffff,#f7fbfe);overflow:hidden;}
#about .aboutart{position:absolute;right:-5%;top:50%;transform:translateY(-50%);width:54%;max-width:760px;opacity:.5;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);mask-image:linear-gradient(90deg,transparent,#000 40%);}
#about .wrap{position:relative;z-index:2;}
.about-lead{max-width:620px;color:var(--sub);font-size:clamp(15px,1.6vw,19px);font-weight:500;margin-top:18px;}
.about-lead b{color:var(--ink);font-weight:700;}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:56px;position:relative;max-width:760px;}
@media(max-width:820px){.steps{grid-template-columns:repeat(2,1fr);}#about .aboutart{display:none;}}
.steps::before{content:"";position:absolute;left:6%;right:6%;top:46px;height:1.5px;background:linear-gradient(90deg,transparent,var(--azure),transparent);opacity:.45;}
.step-b{position:relative;}
.step-b .num{font-family:var(--disp);font-style:italic;font-weight:300;font-size:38px;color:var(--azure);line-height:1;}
.step-b .dot{width:14px;height:14px;border-radius:50%;background:var(--azure);margin:14px 0 0;box-shadow:0 0 0 6px rgba(31,168,232,.14);}
.step-b .st{margin-top:16px;font-weight:900;font-size:18px;}
.step-b .sd{margin-top:6px;color:var(--sub);font-size:13px;}
#company{background:linear-gradient(180deg,#ffffff,#eef4fb);}
.ctable{margin-top:46px;border-top:1px solid var(--line);max-width:900px;}
.crow{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:20px 6px;border-bottom:1px solid var(--line);align-items:baseline;}
.crow dt{font-weight:700;color:var(--navy);font-size:14px;}
.crow dt::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--azure);margin-right:10px;vertical-align:middle;}
.crow dd{color:#37445e;font-size:15px;}
@media(max-width:620px){.crow{grid-template-columns:1fr;gap:4px;}}
#contact{background:radial-gradient(50% 70% at 100% 0%,rgba(31,168,232,.12),transparent 60%),linear-gradient(180deg,#eef4fb,#e9f2fb);}
.cform{max-width:680px;margin:46px auto 0;background:rgba(255,255,255,.8);border:1px solid var(--line);border-radius:22px;padding:38px;backdrop-filter:blur(8px);box-shadow:0 30px 60px rgba(14,30,54,.08);}
.cform .grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.cform label{display:block;font-size:12.5px;font-weight:700;margin-bottom:7px;color:var(--navy);}
.cform .full{grid-column:1/-1;}
.cform input,.cform textarea{width:100%;border:1px solid #cdd9e6;border-radius:12px;padding:13px 15px;font-family:var(--jp);font-size:15px;background:#fff;transition:all .25s ease;}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--azure);box-shadow:0 0 0 4px rgba(31,168,232,.16);}
.cform .note{margin-top:14px;font-size:13px;color:var(--sub);}
@media(max-width:620px){.cform .grid{grid-template-columns:1fr;}}
footer{position:relative;z-index:2;background:var(--navy);color:#cdd8ea;padding:64px 0 34px;overflow:hidden;}
footer::before{content:"";position:absolute;inset:0;opacity:.55;background:radial-gradient(50% 120% at 12% -10%,rgba(31,168,232,.30),transparent 60%);}
.flogo{height:38px;display:block;}
.fwordmark .d{color:var(--azure);}
.fcols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px;position:relative;}
.fcols nav a{display:block;color:#aebbd0;font-size:13.5px;margin:9px 0;opacity:.85;}
.fcols nav a:hover{color:#fff;}
.fcols .ttl{font-family:var(--disp);font-style:italic;color:var(--azure);font-size:13px;margin-bottom:6px;}
.fbottom{margin-top:46px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;color:#8194b0;position:relative;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;}}

#strengths{background:linear-gradient(180deg,#eaf3fc,#f5faff);}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:54px;}
@media(max-width:820px){.why-grid{grid-template-columns:1fr;}}
.why{position:relative;padding:32px 28px;border-radius:20px;background:rgba(255,255,255,.72);border:1px solid var(--line);backdrop-filter:blur(6px);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,border-color .4s ease;}
.why:hover{transform:translateY(-5px);box-shadow:0 26px 54px rgba(14,30,54,.10);border-color:rgba(31,168,232,.4);}
.why .wn{font-family:var(--disp);font-style:italic;font-weight:300;font-size:40px;color:var(--azure);line-height:1;}
.why h3{font-weight:900;font-size:18px;margin:10px 0 10px;letter-spacing:.02em;}
.why p{color:var(--sub);font-size:14px;}

/* ===================== Editorial Tech (services rows + value band) ===================== */
.svc-rows{margin-top:58px;display:flex;flex-direction:column;}
.srow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:center;padding:clamp(48px,7vw,84px) 0;border-bottom:1px solid var(--line);}
.srow:last-child{border-bottom:none;padding-bottom:6px;}
.srow.alt .srow-txt{order:2;}
.srow.alt .srow-art{order:1;}
.srow-txt .eyebrow{font-size:14px;}
.srow-txt h3{font-weight:900;font-size:clamp(24px,3vw,34px);letter-spacing:.02em;line-height:1.25;margin:13px 0 16px;}
.srow-txt p{color:var(--sub);font-size:15.5px;max-width:520px;}
.feat{list-style:none;margin:24px 0 0;display:flex;flex-direction:column;gap:11px;}
.feat li{position:relative;padding-left:26px;font-size:14.5px;font-weight:500;color:#37445e;}
.feat li::before{content:"";position:absolute;left:2px;top:8px;width:8px;height:8px;border-radius:50%;background:var(--azure);box-shadow:0 0 11px rgba(31,168,232,.65);}
.srow .more{margin-top:28px;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;color:var(--navy);cursor:pointer;}
.srow .more .ar{color:var(--azure);transition:transform .25s ease;}
.srow:hover .more .ar{transform:translateX(5px);}
.artpanel{position:relative;border-radius:24px;overflow:hidden;background:linear-gradient(rgba(14,30,54,.05) 1px,transparent 1px) 0 0/27px 27px,linear-gradient(90deg,rgba(14,30,54,.05) 1px,transparent 1px) 0 0/27px 27px,linear-gradient(150deg,#eef6fd,#dcebfa);border:1px solid var(--line);box-shadow:0 30px 70px rgba(14,30,54,.10),inset 0 1px 0 rgba(255,255,255,.75);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;}
.artpanel::after{content:"";position:absolute;inset:0;background:radial-gradient(62% 80% at 78% 12%,rgba(31,168,232,.18),transparent 60%);pointer-events:none;}
.artpanel .ill{width:90%;height:auto;overflow:visible;}
@media(max-width:860px){.srow{grid-template-columns:1fr;gap:30px;padding:48px 0;}.srow.alt .srow-txt{order:0;}.srow.alt .srow-art{order:0;}.artpanel{aspect-ratio:16/10;}}
/* value band (dark strip on light page) */
.band{position:relative;z-index:2;background:linear-gradient(120deg,var(--navy),#13294a);color:#fff;padding:clamp(48px,6vw,74px) 0;overflow:hidden;}
.band::before{content:"";position:absolute;inset:0;opacity:.55;background:radial-gradient(46% 130% at 12% -10%,rgba(31,168,232,.36),transparent 60%),radial-gradient(40% 120% at 92% 120%,rgba(31,168,232,.22),transparent 60%);}
.band-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:30px;text-align:center;}
@media(max-width:760px){.band-grid{grid-template-columns:1fr;gap:30px;}}
.bcell{position:relative;}
.bcell:not(:last-child)::after{content:"";position:absolute;right:-15px;top:12%;bottom:12%;width:1px;background:linear-gradient(transparent,rgba(255,255,255,.2),transparent);}
@media(max-width:760px){.bcell:not(:last-child)::after{display:none;}}
.bnum{font-family:var(--disp);font-weight:300;font-size:clamp(48px,6vw,72px);line-height:1;background:linear-gradient(180deg,#cdeafd,#1FA8E8);-webkit-background-clip:text;background-clip:text;color:transparent;}
.blab{font-weight:900;font-size:18px;margin-top:8px;letter-spacing:.02em;}
.bsub{color:#9fb2cc;font-size:13.5px;margin-top:7px;}

/* ===================== section seams (crisp boundaries) ===================== */
.seam::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(14,30,54,.16);box-shadow:0 1px 0 rgba(255,255,255,.85);z-index:3;}
.seam::after{content:"";position:absolute;left:50%;top:-3px;transform:translateX(-50%);width:66px;height:3px;border-radius:3px;background:linear-gradient(90deg,transparent,var(--azure),transparent);box-shadow:0 0 14px rgba(31,168,232,.6);z-index:3;}
/* ===================== rich service illustrations (.ill2) ===================== */
.ill2 .grid line{stroke:rgba(14,30,54,.07);stroke-width:1;}
.ill2 .axis{stroke:rgba(14,30,54,.18);stroke-width:1.5;}
.ill2 .area{opacity:0;animation:areaIn 1s ease .55s forwards;}
@keyframes areaIn{to{opacity:1}}
.ill2 .curve{fill:none;stroke:#1FA8E8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:560;stroke-dashoffset:560;animation:draw2 1.7s cubic-bezier(.4,.8,.3,1) .15s forwards;}
@keyframes draw2{to{stroke-dashoffset:0}}
.ill2 .dpt{opacity:0;transform-box:fill-box;transform-origin:center;animation:pop2 .55s cubic-bezier(.2,1.5,.4,1) forwards;}
.ill2 .p1{animation-delay:.85s}.ill2 .p2{animation-delay:1.05s}.ill2 .p3{animation-delay:1.25s}.ill2 .p4{animation-delay:1.45s}
@keyframes pop2{0%{opacity:0;transform:scale(0)}100%{opacity:1;transform:scale(1)}}
.ill2 .chip{opacity:0;transform:translateY(-6px);animation:chipIn .6s ease 1.25s forwards;}
@keyframes chipIn{to{opacity:1;transform:none}}
.ill2 .gauge{animation:gaugefill 1.4s ease 1.7s forwards;}
@keyframes gaugefill{to{stroke-dashoffset:34}}
/* dev / ide */
.ill2 .code{fill:#1FA8E8;transform-box:fill-box;transform-origin:left;transform:scaleX(0);animation:type2 .45s ease forwards;}
.ill2 .code.dim{fill:rgba(14,30,54,.42);}
@keyframes type2{to{transform:scaleX(1)}}
.ill2 .c1{animation-delay:.35s}.ill2 .c1b{animation-delay:.55s}.ill2 .c2{animation-delay:.75s}.ill2 .c2b{animation-delay:.95s}.ill2 .c3{animation-delay:1.15s}.ill2 .c4{animation-delay:1.35s}.ill2 .c4b{animation-delay:1.55s}
.ill2 .cursor{fill:#1FA8E8;animation:blink 1s steps(2) infinite;}
.ill2 .bob{animation:bob 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center;}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
/* education / network */
.ill2 .ed{stroke:#1FA8E8;stroke-width:2;stroke-linecap:round;opacity:.85;stroke-dasharray:170;stroke-dashoffset:170;animation:draw2 .7s ease forwards;}
.ill2 .e1{animation-delay:.4s}.ill2 .e2{animation-delay:.6s}.ill2 .e3{animation-delay:.8s}.ill2 .e4{animation-delay:1s}.ill2 .e5{animation-delay:1.2s}
.ill2 .nd{opacity:0;transform-box:fill-box;transform-origin:center;animation:pop2 .55s cubic-bezier(.2,1.5,.4,1) forwards;}
.ill2 .n1{animation-delay:.6s}.ill2 .n2{animation-delay:.8s}.ill2 .n3{animation-delay:1s}.ill2 .n4{animation-delay:1.2s}.ill2 .n5{animation-delay:1.4s}
.ill2 .ring{animation:ringfill 1.6s cubic-bezier(.3,.8,.3,1) .6s forwards;}
@keyframes ringfill{to{stroke-dashoffset:54}}
/* operation / pipeline */
.ill2 .wire{fill:none;stroke:rgba(14,30,54,.2);stroke-width:2;stroke-dasharray:4 5;}
.ill2 .pkt{fill:#1FA8E8;filter:drop-shadow(0 0 5px rgba(31,168,232,.75));}
.ill2 .pkt.out{fill:#0d7fc4;}
.ill2 .gear{transform-box:fill-box;transform-origin:center;animation:spin 9s linear infinite;}
.ill2 .gearR{transform-box:fill-box;transform-origin:center;animation:spinR 7s linear infinite;}
@keyframes spinR{to{transform:rotate(-360deg)}}


.hp-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;pointer-events:none;}
@media(max-width:620px){
  html,body{overflow-x:hidden;}
  .svc-break h2{font-size:23px;letter-spacing:0;}
  .svc-break p{font-size:13.5px;}
  .band h2,.band-copy h2{font-size:25px;}
  .model-board svg,.why-diagram svg,.service-lens svg,.prov-visual svg{max-width:100%;height:auto;}
}

/* ===================== multi-page additions ===================== */
a.svc{display:block;color:inherit;}
.more{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14px;color:var(--navy);cursor:pointer;}
.more .ar{color:var(--azure);transition:transform .25s ease;}
.more:hover .ar{transform:translateX(5px);}
nav.main a.active{color:var(--azure);}
nav.main a.active::after{width:100%;}
.fcols .fbrand{flex:1 1 300px;}
/* news panel (straddles hero bottom, shows two items) */
.newsbar{position:relative;z-index:5;margin-top:-118px;}
.newsbar-in{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(255,255,255,.97),rgba(245,251,255,.92));border:1px solid rgba(31,168,232,.18);border-radius:20px;box-shadow:0 28px 62px rgba(14,30,54,.13),inset 0 1px 0 rgba(255,255,255,.82);display:grid;grid-template-columns:minmax(118px,.18fr) minmax(0,1fr) auto;align-items:center;gap:22px;padding:18px 22px 18px 26px;}
.newsbar-in::before{content:"";position:absolute;left:18px;right:18px;top:0;height:3px;background:linear-gradient(90deg,transparent,rgba(31,168,232,.72),transparent);opacity:.78;}
.newsbar-in::after{content:"";position:absolute;right:-80px;top:-90px;width:260px;height:220px;background:radial-gradient(circle,rgba(31,168,232,.16),transparent 68%);pointer-events:none;}
.news-head{position:relative;z-index:1;display:flex;flex-direction:column;gap:4px;min-width:0;}
.news-label{display:flex;align-items:center;gap:9px;font-family:var(--disp);font-style:italic;font-weight:650;color:var(--azure);font-size:15px;flex:none;}
.news-label .nd{width:8px;height:8px;border-radius:50%;background:var(--azure);box-shadow:0 0 10px rgba(31,168,232,.7);}
.news-caption{font-family:var(--disp);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#8ca2bd;line-height:1;}
.news-window{position:relative;z-index:1;overflow:hidden;height:76px;display:flex;align-items:flex-start;min-width:0;}
.news-window::before,.news-window::after{content:"";position:absolute;left:0;right:0;height:12px;z-index:2;pointer-events:none;}
.news-window::before{top:0;background:linear-gradient(#fbfdff,rgba(251,253,255,0));}
.news-window::after{bottom:0;background:linear-gradient(rgba(251,253,255,0),#fbfdff);}
.news-list{list-style:none;margin:0;width:100%;display:flex;flex-direction:column;gap:7px;min-width:0;transition:transform .42s cubic-bezier(.2,.7,.2,1);will-change:transform;}
.news-list li{min-height:34px;display:grid;grid-template-columns:116px minmax(0,1fr);align-items:center;gap:16px;font-size:14px;}
.news-list time{font-family:var(--disp);color:var(--navy);font-size:12px;letter-spacing:.06em;line-height:1.2;background:rgba(31,168,232,.08);border:1px solid rgba(31,168,232,.18);border-radius:999px;padding:5px 10px;width:max-content;}
.news-list li span{color:#37445e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.news-controls{position:relative;z-index:1;display:grid;grid-template-columns:32px;gap:8px;align-items:center;justify-items:center;}
.news-btn{width:32px;height:32px;border-radius:50%;border:1px solid rgba(31,168,232,.25);background:rgba(255,255,255,.82);color:var(--navy);display:grid;place-items:center;box-shadow:0 8px 20px rgba(14,30,54,.08);cursor:pointer;transition:transform .22s ease,background .22s ease,border-color .22s ease,opacity .22s ease;}
.news-btn svg{width:15px;height:15px;stroke:currentColor;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.news-btn:hover:not(:disabled){transform:translateY(-1px);background:#fff;border-color:rgba(31,168,232,.55);}
.news-btn:disabled{opacity:.34;cursor:default;box-shadow:none;}
.news-more{flex:none;}
@media(max-width:760px){.newsbar{margin-top:-30px;}.newsbar-in{grid-template-columns:1fr auto;align-items:start;gap:14px;padding:18px 18px;border-radius:17px;}.news-window{grid-column:1/-1;height:90px;width:100%;}.news-list{gap:8px;}.news-list li{grid-template-columns:1fr;gap:3px;min-height:40px;}.news-list time{font-size:12px;padding:0;border:0;background:transparent;color:var(--sub);}.news-list li span{white-space:normal;line-height:1.55;}.news-controls{grid-template-columns:30px 30px;grid-template-rows:auto;gap:7px;}.news-btn{width:30px;height:30px;}.news-btn[data-news-prev]{order:1}.news-btn[data-news-next]{order:2}}
/* compact index hero for short desktop windows */
@media(max-height:760px) and (min-width:761px){
  #hero{height:clamp(520px,82vh,600px);min-height:520px;}
  #finalLogo{width:clamp(300px,34vw,420px)!important;left:50%!important;top:clamp(150px,24vh,190px)!important;transform:translateX(-50%);}
  .hero-copy{top:clamp(332px,50vh,390px)!important;}
  .hero-copy h1{font-size:clamp(30px,3.9vw,44px);line-height:1.12;}
  .hero-copy .accent{margin-top:12px;}
  .hero-copy p{margin-top:10px;font-size:13.5px;}
  .hero-copy .btnrow{margin-top:14px;}
  .hero-copy .btn-primary{padding:11px 24px;font-size:14px;}
  .scrollcue{display:none;}
  .newsbar{margin-top:-22px;}
  .newsbar-in{padding:16px 28px;}
}
@media(max-height:660px) and (min-width:761px){
  #hero{height:500px;min-height:500px;}
  #finalLogo{width:clamp(280px,30vw,360px)!important;top:138px!important;}
  .hero-copy{top:308px!important;}
  .hero-copy h1{font-size:clamp(28px,3.4vw,38px);}
  .hero-copy p{margin-top:8px;}
  .hero-copy .btnrow{margin-top:10px;}
  .hero-copy .btn-primary{padding:10px 22px;}
  .newsbar{margin-top:-12px;}
}
/* page hero */
.pagehero{position:relative;display:flex;align-items:center;min-height:clamp(300px,44vh,460px);padding:96px 0 40px;overflow:hidden;background:var(--navy);}
.pagehero .bg{position:absolute;inset:0;background:center/cover no-repeat;opacity:.68;will-change:transform;}
.pagehero::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(14,30,54,.92),rgba(14,30,54,.42)),radial-gradient(46% 130% at 10% -10%,rgba(31,168,232,.42),transparent 60%);}
.pagehero .ghost{position:absolute;right:2%;bottom:-.18em;font-family:var(--disp);font-weight:900;font-size:clamp(90px,20vw,260px);line-height:.8;color:rgba(255,255,255,.05);letter-spacing:.02em;pointer-events:none;user-select:none;z-index:1;}
.pagehero .wrap{position:relative;z-index:2;color:#fff;}
.pagehero .eyebrow{color:#8fd6f7;}
.pagehero h1{font-weight:900;font-size:clamp(30px,5.4vw,56px);letter-spacing:.05em;line-height:1.16;margin-top:12px;}
.pagehero .sub{margin-top:13px;color:#c4d6ee;font-size:clamp(14px,1.4vw,17px);font-weight:500;max-width:640px;}
.subpage section.block{z-index:1;}
/* mobile nav (hamburger) */
.navtoggle{display:none;width:30px;height:22px;position:relative;background:none;border:0;cursor:pointer;z-index:60;padding:0;}
.navtoggle span{position:absolute;left:0;width:100%;height:2px;background:var(--navy);border-radius:2px;transition:transform .3s ease,opacity .3s ease;}
.navtoggle span:nth-child(1){top:0;}.navtoggle span:nth-child(2){top:10px;}.navtoggle span:nth-child(3){top:20px;}
header.navopen .navtoggle span:nth-child(1){transform:translateY(10px) rotate(45deg);}
header.navopen .navtoggle span:nth-child(2){opacity:0;}
header.navopen .navtoggle span:nth-child(3){transform:translateY(-10px) rotate(-45deg);}
@media(max-width:760px){
  .navtoggle{display:block;}
  nav.main{position:fixed;inset:0;z-index:55;flex-direction:column;justify-content:center;gap:24px;background:#f4f9fe;transform:translateX(100%);transition:transform .4s cubic-bezier(.2,.7,.2,1);font-size:21px;opacity:1!important;}
  header.navopen nav.main{transform:none;}
  nav.main a:not(.cta){display:block!important;color:var(--navy);}
  nav.main a.cta{margin-top:8px;}
  header.navopen{z-index:300;background:transparent;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none;}
  header.navopen~#hero{visibility:hidden;}
}
/* ===================== Phase 2 content ===================== */
.lead-block{max-width:760px;}
.vision-h{font-weight:900;font-size:clamp(32px,5vw,58px);letter-spacing:.02em;line-height:1.22;margin-top:14px;}
/* designed section headers (Vision / Value) */
.sec{position:relative;overflow:hidden;}
.sec .wrap{position:relative;z-index:2;}
.sec-ghost{position:absolute;top:5%;right:3%;font-family:var(--disp);font-weight:900;font-size:clamp(70px,15vw,200px);line-height:1;color:rgba(14,30,54,.04);letter-spacing:.03em;pointer-events:none;z-index:0;white-space:nowrap;}
.sec-h{font-weight:900;font-size:clamp(30px,4.8vw,56px);letter-spacing:.03em;line-height:1.24;margin-top:14px;}
.sec-h .grad,.vision-h .grad{background:linear-gradient(100deg,var(--azure),#0d7fc4);-webkit-background-clip:text;background-clip:text;color:transparent;}
.sec-rule{width:74px;height:3px;border-radius:3px;margin:24px 0 0;background:linear-gradient(90deg,var(--azure),transparent);box-shadow:0 2px 12px rgba(31,168,232,.45);}
/* 代表メッセージ */
.msg{display:grid;grid-template-columns:300px 1fr;gap:clamp(32px,5vw,64px);margin-top:48px;align-items:start;}
.msg-photo{display:flex;flex-direction:column;gap:14px;}
.msg-frame{aspect-ratio:3/4;border-radius:18px;overflow:hidden;position:relative;background:linear-gradient(150deg,var(--navy),#13294a);display:flex;align-items:center;justify-content:center;box-shadow:0 26px 56px rgba(14,30,54,.18);}
.msg-frame::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 72% 8%,rgba(31,168,232,.42),transparent 60%);}
.msg-frame img{width:56%;position:relative;z-index:1;opacity:.92;}
.msg-photo .cap{font-size:13px;color:var(--sub);text-align:center;}
.msg-photo .cap b{display:block;color:var(--ink);font-size:16px;font-weight:900;margin-top:3px;}
.msg-body p{color:#37445e;font-size:15.5px;margin-bottom:16px;line-height:1.95;}
.msg-sign{margin-top:34px!important;display:flex;flex-direction:column;align-items:flex-end;gap:2px;color:var(--ink)!important;}
.msg-sign-co{font-size:12px;color:#566784;letter-spacing:.1em;font-weight:600;}
.msg-sign-name{font-family:"Klee One","Zen Kurenaido",cursive!important;font-size:36px;font-weight:600;line-height:1.25;letter-spacing:.14em;}
.msg-letter{max-width:760px;margin:40px auto 0;}
@media(max-width:760px){.msg{grid-template-columns:1fr;}.msg-frame{max-width:240px;}}
/* timeline */
.timeline{margin-top:46px;border-left:2px solid var(--line);max-width:720px;}
.tl-item{position:relative;padding:0 0 30px 34px;}
.tl-item::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--azure);box-shadow:0 0 0 5px rgba(31,168,232,.14);}
.tl-item:last-child{padding-bottom:0;}
.tl-date{font-family:var(--disp);font-style:italic;color:var(--azure);font-size:15px;}
.tl-text{font-weight:700;margin-top:4px;}
/* access */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:42px;align-items:center;}
@media(max-width:760px){.access-grid{grid-template-columns:1fr;}}
.mapwrap{border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 20px 44px rgba(14,30,54,.1);aspect-ratio:4/3;}
.mapwrap iframe{width:100%;height:100%;border:0;display:block;}
.access-info dt{font-weight:700;color:var(--navy);font-size:13px;margin-top:18px;}
.access-info dt:first-child{margin-top:0;}
.access-info dt::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--azure);margin-right:9px;vertical-align:middle;}
.access-info dd{color:#37445e;font-size:15px;margin-top:5px;}
/* faq */
.faq{margin-top:42px;max-width:880px;border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{list-style:none;cursor:pointer;padding:21px 44px 21px 30px;position:relative;font-weight:700;font-size:16px;color:var(--ink);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::before{content:"Q";position:absolute;left:2px;top:20px;font-family:var(--disp);font-style:italic;color:var(--azure);font-weight:600;}
.faq summary::after{content:"+";position:absolute;right:10px;top:15px;font-size:24px;color:var(--azure);transition:transform .3s ease;font-weight:300;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq .fa{padding:0 30px 24px 30px;color:var(--sub);font-size:14.5px;line-height:1.95;}
/* 代表メッセージ 手書き風 */
.msg-body p{font-family:"Zen Kurenaido",var(--jp);font-size:16.5px;line-height:2.15;color:#33415c;}

/* split (text + visual) */
.split{display:grid;grid-template-columns:1fr .82fr;gap:clamp(36px,5vw,72px);align-items:center;}
.split .split-txt{min-width:0;}
.split-img{border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 64px rgba(14,30,54,.14);background:linear-gradient(150deg,#eef6fd,#dcebfa);position:relative;}
.split-img::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 80% 12%,rgba(31,168,232,.16),transparent 60%);pointer-events:none;}
.split-img img{width:100%;display:block;}
@media(max-width:820px){.split{grid-template-columns:1fr;gap:30px;}}
/* vision bg accent */
#vision{position:relative;overflow:hidden;}
#vision .vbg{position:absolute;right:-6%;top:50%;transform:translateY(-50%);width:58%;max-width:740px;opacity:.5;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 45%);mask-image:linear-gradient(90deg,transparent,#000 45%);z-index:0;}
#vision .wrap{position:relative;z-index:2;}
/* mission (typographic, no image) */
#mission{position:relative;overflow:hidden;text-align:center;}
#mission .mission-inner{max-width:820px;margin:0 auto;position:relative;z-index:2;}
.mission-ghost{position:absolute;top:6%;left:50%;transform:translateX(-50%);font-family:var(--disp);font-weight:900;font-size:clamp(78px,17vw,230px);line-height:1;color:rgba(14,30,54,.045);letter-spacing:.03em;white-space:nowrap;pointer-events:none;z-index:0;}
.mission-h{font-weight:900;font-size:clamp(34px,6vw,66px);letter-spacing:.04em;line-height:1.22;margin-top:16px;}
.mission-h .grad{background:linear-gradient(100deg,var(--azure),#0d7fc4);-webkit-background-clip:text;background-clip:text;color:transparent;}
.mission-rule{width:90px;height:3px;border-radius:3px;margin:26px auto 30px;background:linear-gradient(90deg,transparent,var(--azure),transparent);box-shadow:0 2px 14px rgba(31,168,232,.5);}
.mission-lead{color:var(--sub);font-size:clamp(15px,1.5vw,17px);font-weight:500;max-width:680px;margin:0 auto 16px;line-height:1.95;}
.mission-lead b{color:var(--ink);font-weight:700;}
.mission-verbs{margin-top:40px;display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;}
.mission-verbs span{font-weight:900;font-size:clamp(17px,2.2vw,25px);color:var(--navy);letter-spacing:.06em;}
.mission-verbs i{width:7px;height:7px;border-radius:50%;background:var(--azure);box-shadow:0 0 10px rgba(31,168,232,.6);display:inline-block;}




/* philosophy right-side generated image */
#t-phil{overflow:hidden;padding:clamp(54px,5.6vw,78px) 0 clamp(44px,4.8vw,68px);background:radial-gradient(58% 78% at 74% 45%,rgba(31,168,232,.082),transparent 70%),radial-gradient(42% 56% at 71% 62%,rgba(13,78,174,.04),transparent 74%),#fff;}
.philo-grid{position:relative;display:grid;grid-template-columns:minmax(0,.86fr) minmax(560px,1.14fr);gap:0;align-items:center;}
.philo-copy{max-width:680px;position:relative;z-index:3;text-shadow:0 1px 0 rgba(255,255,255,.86),0 14px 34px rgba(255,255,255,.92),0 30px 70px rgba(255,255,255,.82);}
.philo-copy .title{font-size:clamp(40px,4.2vw,58px);line-height:1.06;letter-spacing:0;white-space:nowrap;}
.philo-copy .about-lead{max-width:560px;}
.philo-art{min-height:410px;display:flex;align-items:center;justify-content:flex-start;position:relative;z-index:1;pointer-events:none;margin-left:clamp(-220px,-13vw,-150px);}
.philo-art::before{content:"";position:absolute;inset:-4% -9% -4% -14%;background:radial-gradient(circle,rgba(31,168,232,.14),transparent 68%);filter:blur(24px);opacity:.82;}
.philo-art img{position:relative;display:block;width:min(162%,920px);max-width:none;height:auto;object-fit:contain;mix-blend-mode:multiply;opacity:.94;filter:drop-shadow(0 24px 38px rgba(14,30,54,.05));transform:translateX(clamp(-136px,-7.4vw,-88px));-webkit-mask-image:radial-gradient(ellipse at 58% 52%,#000 0 62%,rgba(0,0,0,.88) 73%,transparent 91%);mask-image:radial-gradient(ellipse at 58% 52%,#000 0 62%,rgba(0,0,0,.88) 73%,transparent 91%);}
@media(max-width:1120px){.philo-grid{grid-template-columns:minmax(0,.82fr) minmax(500px,1.18fr)}.philo-art{min-height:360px;margin-left:-130px}.philo-art img{width:min(148%,760px);transform:translateX(-68px)}}
@media(max-width:760px){.philo-grid{grid-template-columns:1fr;gap:26px}.philo-art{min-height:300px;justify-content:center;margin-left:0}.philo-art img{width:min(100%,600px);max-width:600px;transform:none}}
@media(max-width:620px){.philo-copy .title{font-size:clamp(28px,8vw,31px);line-height:1.15;white-space:nowrap}.philo-art{display:none}}

/* ===================== design polish pass ===================== */
section.block > .wrap, .band > .wrap, footer > .wrap{max-width:1120px;}
section.block{padding:clamp(72px,8vw,112px) 0;}
.subpage section.block{padding:clamp(72px,8vw,108px) 0;}
h2.title{font-size:clamp(28px,3.6vw,42px);line-height:1.18;}
.svc,.why,.cform,.artpanel,.split-img,.msg-frame,.mapwrap{border-radius:14px;}
.svc-grid{gap:22px;margin-top:42px;}
.svc .body{padding:24px 28px 28px;}
.svc:hover,.why:hover{transform:translateY(-4px);box-shadow:0 22px 54px rgba(14,30,54,.10);}
.why-grid{gap:22px;margin-top:44px;}
.why{padding:28px 26px;}
.band{padding:clamp(42px,5vw,62px) 0;}
.bnum{font-size:clamp(44px,5vw,64px);}
.srow{gap:clamp(34px,5vw,68px);padding:clamp(42px,5.5vw,66px) 0;}
.srow-txt h3{font-size:clamp(24px,2.7vw,32px);margin:10px 0 14px;}
.srow-txt p{font-size:15px;line-height:1.9;}
.feat{margin-top:20px;gap:9px;}
.artpanel{box-shadow:0 22px 56px rgba(14,30,54,.09),inset 0 1px 0 rgba(255,255,255,.78);}
.steps{margin-top:44px;}
.faq{margin-top:36px;}
.faq summary{padding-top:18px;padding-bottom:18px;}
.cform{padding:34px;box-shadow:0 24px 54px rgba(14,30,54,.08);}
footer{padding:58px 0 30px;}
.reveal-up{opacity:1;transform:none;}
@media(max-width:860px){
  section.block,.subpage section.block{padding:68px 0;}
  .srow{padding:42px 0;}
  .artpanel{border-radius:14px;}
}
@media(max-width:620px){
  h2.title{font-size:32px;}
  .svc .body,.why{padding:24px 22px;}
  .cform{padding:32px 28px;border-radius:18px;}
}


/* services page refinement */
.service-detail{position:relative;background:#fff;overflow:hidden;}
.service-detail::before{content:"";position:absolute;left:50%;top:0;width:min(1120px,86vw);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(31,168,232,.24),transparent);}
.service-intro{display:grid;grid-template-columns:minmax(0,.82fr) minmax(320px,1fr);gap:clamp(30px,5vw,72px);align-items:center;padding:clamp(30px,4vw,46px);border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;box-shadow:0 24px 78px rgba(14,30,54,.065);}
.service-intro-copy .title{font-size:clamp(30px,3.6vw,46px);line-height:1.24;letter-spacing:0;margin-top:12px;}
.service-intro-copy .about-lead{margin-top:18px;font-size:15px;line-height:1.9;}
.service-intro-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px;}
.service-intro-tags span{font-family:var(--disp);font-size:11px;font-weight:800;color:#0d7fc4;border:1px solid rgba(31,168,232,.18);border-radius:999px;padding:7px 10px;background:#fff;}
.service-lens svg{display:block;width:100%;height:auto;}
.svc-rows{margin-top:42px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.srow{position:relative;display:grid;grid-template-columns:1fr;gap:0;align-items:stretch;padding:0;border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 18px 56px rgba(14,30,54,.055);}
.srow:last-child{border-bottom:1px solid rgba(14,30,54,.09);padding-bottom:0;}
.srow.alt .srow-txt,.srow.alt .srow-art{order:0;}
.srow-txt{padding:30px 30px 24px;}
.srow-txt .eyebrow{font-size:13px;}
.srow-txt h3{font-size:clamp(22px,2.4vw,30px);margin:12px 0 12px;letter-spacing:0;}
.srow-txt p{font-size:14.5px;line-height:1.86;max-width:none;}
.feat{margin-top:20px;gap:8px;}
.feat li{font-size:13.5px;line-height:1.65;}
.srow-art{padding:0 24px 24px;}
.artpanel{border-radius:8px;aspect-ratio:16/10;background:#fff;border:1px solid rgba(31,168,232,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
.artpanel::after{display:none;}
.service-flow{position:relative;background:#fff;overflow:hidden;}
.flow-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,450px);gap:32px;align-items:end;}
.flow-head .title{margin-top:12px;}
.flow-head p{margin:0;color:var(--sub);font-size:15px;line-height:1.9;font-weight:650;}
.flow-board{position:relative;margin-top:42px;min-height:300px;border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;box-shadow:0 22px 70px rgba(14,30,54,.06);overflow:hidden;}
.flow-line{position:absolute;inset:32px;width:calc(100% - 64px);height:calc(100% - 64px);}
.flow-node{position:absolute;width:190px;padding:20px 18px;border-radius:8px;border:1px solid rgba(31,168,232,.2);background:rgba(255,255,255,.96);box-shadow:0 14px 40px rgba(14,30,54,.07);}
.flow-node span{font-family:var(--disp);font-style:italic;color:#1fa8e8;font-size:30px;line-height:1;}
.flow-node b{display:block;margin-top:10px;color:var(--navy);font-size:19px;}
.flow-node p{font-size:13px;line-height:1.75;color:#52637a;margin-top:8px;font-weight:600;}
.flow-node.n1{left:5%;bottom:34px}.flow-node.n2{left:29%;top:38px}.flow-node.n3{left:53%;bottom:42px}.flow-node.n4{right:5%;top:58px}
.service-faq{background:#fff;}
.faq-grid{display:grid;grid-template-columns:minmax(250px,.55fr) minmax(0,1fr);gap:clamp(30px,5vw,72px);align-items:start;}
.faq-copy{position:sticky;top:110px;}
.faq-copy .title{margin-top:12px;}
.faq-copy p{margin-top:16px;color:#52637a;font-size:15px;line-height:1.9;font-weight:650;}
.service-faq .faq{margin-top:0;max-width:none;border-top:0;border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;box-shadow:0 18px 56px rgba(14,30,54,.055);overflow:hidden;}
.service-faq .faq details{border-bottom:1px solid rgba(14,30,54,.08);}
.service-faq .faq details:last-child{border-bottom:none;}
.service-faq .faq summary{padding:22px 54px 22px 54px;}
.service-faq .faq summary::before{left:22px;}
.service-faq .faq summary::after{right:24px;}
.service-faq .faq .fa{padding:0 54px 24px 54px;}
@media(max-width:980px){.service-intro,.flow-head,.faq-grid{grid-template-columns:1fr}.faq-copy{position:relative;top:auto}.svc-rows{grid-template-columns:1fr}.flow-board{min-height:auto;padding:22px;display:grid;gap:12px}.flow-line{display:none}.flow-node{position:relative;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:auto}.service-lens{max-width:720px}}
@media(max-width:620px){.service-intro{padding:22px}.service-intro-copy .title{font-size:29px}.srow-txt{padding:26px 22px 20px}.srow-art{padding:0 18px 20px}.artpanel{aspect-ratio:16/11}.service-faq .faq summary{padding:20px 46px 20px 48px}.service-faq .faq .fa{padding:0 24px 22px 48px}}


/* top services refinement */
#t-svc{position:relative;overflow:hidden;padding:clamp(72px,7.4vw,104px) 0 clamp(68px,7.2vw,100px);background:#fff;}
#t-svc::before{content:"";position:absolute;left:50%;top:38px;width:min(1120px,86vw);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(31,168,232,.24),transparent);pointer-events:none;}
#t-svc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(14,30,54,.1),transparent);}
#t-svc .wrap{position:relative;z-index:1;}
.svc-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,430px);align-items:end;gap:32px;}
.svc-head .title{margin-top:12px;}
.svc-lead{margin:0;color:var(--sub);font-size:15px;line-height:1.9;font-weight:650;}
.svc-studio{margin-top:34px;display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);gap:28px;align-items:center;padding:28px;border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;box-shadow:0 22px 70px rgba(14,30,54,.065);}
.svc-studio-copy h3{font-size:25px;line-height:1.45;margin:12px 0 12px;color:var(--navy);letter-spacing:0;}
.svc-studio-copy p{font-size:14px;line-height:1.85;color:#52637a;font-weight:600;}
.studio-kicker{font-family:var(--disp);font-style:italic;color:#1fa8e8;font-weight:700;font-size:13px;}
.studio-points{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.studio-points span{font-size:12px;font-weight:800;color:#0d7fc4;border:1px solid rgba(31,168,232,.18);border-radius:999px;padding:6px 10px;background:#fff;}
.svc-map{min-width:0;}
.svc-map svg{display:block;width:100%;height:auto;}
#t-svc .svc-grid{margin-top:28px;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));}
#t-svc .svc{min-height:188px;border-radius:8px;background:#fff;border:1px solid rgba(14,30,54,.09);box-shadow:0 16px 50px rgba(14,30,54,.052),inset 0 1px 0 rgba(255,255,255,.9);}
#t-svc .svc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--azure),rgba(13,127,196,.18));opacity:.72;transition:width .28s ease,opacity .28s ease;}
#t-svc .svc::after{content:"";position:absolute;left:22px;right:22px;bottom:22px;height:1px;background:linear-gradient(90deg,rgba(31,168,232,.16),transparent);opacity:.8;pointer-events:none;}
#t-svc .svc:hover{transform:translateY(-4px);border-color:rgba(31,168,232,.28);box-shadow:0 24px 60px rgba(14,30,54,.09),inset 0 1px 0 rgba(255,255,255,1);}
#t-svc .svc:hover::before{width:4px;opacity:1;}
#t-svc .svc .body{position:relative;z-index:1;min-height:188px;padding:24px 22px 26px;display:flex;flex-direction:column;align-items:flex-start;}
#t-svc .svc .no{position:relative;right:auto;top:auto;display:inline-flex;align-items:center;min-height:26px;padding:6px 10px;border-radius:999px;border:1px solid rgba(31,168,232,.18);background:#fff;color:#0d7fc4;font-family:var(--disp);font-size:11px;line-height:1;font-weight:700;letter-spacing:0;}
#t-svc .svc h3{font-size:18px;margin:20px 0 12px;letter-spacing:0;line-height:1.45;}
#t-svc .svc p{font-size:13px;line-height:1.78;max-width:450px;}
#t-svc .svc .more{margin-top:auto;padding-top:18px;}
.svc-more{position:relative;display:flex;justify-content:center;align-items:center;margin-top:34px;}
.svc-more::before{content:"";position:absolute;left:8%;right:8%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(31,168,232,.28),transparent);}
.svc-more .more{position:relative;z-index:1;background:#fff;border:1px solid rgba(31,168,232,.18);border-radius:999px;padding:10px 18px;box-shadow:0 12px 30px rgba(14,30,54,.06);font-size:13px;}
@media(max-width:980px){.svc-studio{grid-template-columns:1fr}.svc-map{max-width:720px}#t-svc .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:820px){.svc-head{grid-template-columns:1fr;align-items:start;gap:14px}.svc-lead{max-width:620px}}
@media(max-width:620px){#t-svc{padding-top:64px}.svc-lead{font-size:14px;line-height:1.8}.svc-studio{padding:22px;gap:18px}.svc-studio-copy h3{font-size:21px}.svc-map svg{min-width:0;width:100%}.svc-map{overflow:visible}#t-svc .svc-grid{grid-template-columns:1fr;gap:14px;margin-top:22px}#t-svc .svc .body{padding:24px 22px;min-height:154px}#t-svc .svc .no{font-size:11px}#t-svc .svc h3{font-size:19px;margin-top:20px}.svc-more{margin-top:28px}}


/* lower journey refinement */
.band-pro{position:relative;margin-top:-1px;padding:clamp(72px,7.5vw,104px) 0;background:#fff;isolation:isolate;}
.band-pro::before,.band-pro::after,#t-why.why-section::before,#t-why.why-section::after,#t-cta.cta-section::before{content:"";position:absolute;left:50%;width:min(1120px,86vw);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(31,168,232,.24),transparent);pointer-events:none;}
.band-pro::before,#t-why.why-section::before,#t-cta.cta-section::before{top:0;}
.band-pro::after,#t-why.why-section::after{bottom:0;background:linear-gradient(90deg,transparent,rgba(14,30,54,.08),transparent);}
.model-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(280px,.76fr) minmax(0,1.24fr);gap:clamp(34px,5vw,72px);align-items:center;}
.band-copy{max-width:470px;}
.band-kicker{font-family:var(--disp);font-style:italic;color:#1fa8e8;font-weight:700;font-size:14px;letter-spacing:0;}
/* services 中盤ブレイク */
.svc-break{text-align:center;}
.svc-break .svc-break-inner{position:relative;z-index:1;}
.svc-break h2{margin-top:14px;font-size:clamp(26px,3.6vw,44px);font-weight:900;letter-spacing:.02em;color:#fff;}
.svc-break p{margin-top:16px;color:rgba(255,255,255,.78);font-size:15px;line-height:2.05;}

.band-copy h2{color:var(--navy);font-weight:900;font-size:clamp(29px,3.25vw,42px);line-height:1.24;letter-spacing:0;margin-top:14px;}
.band-copy p{color:#52637a;font-size:14.5px;line-height:1.9;margin-top:16px;font-weight:600;}
.band-note{display:inline-flex;align-items:center;gap:10px;margin-top:22px;color:#52637a;font-size:13px;font-weight:700;}
.band-note span{width:32px;height:1px;background:#1fa8e8;display:inline-block;}
.model-board{position:relative;min-height:356px;border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;box-shadow:0 22px 70px rgba(14,30,54,.065);overflow:hidden;}
.model-rail{position:absolute;inset:18px;width:calc(100% - 36px);height:calc(100% - 36px);}
.model-step{position:absolute;width:min(184px,30%);padding:18px 16px 20px;border:1px solid rgba(31,168,232,.2);border-radius:8px;background:rgba(255,255,255,.96);box-shadow:0 14px 40px rgba(14,30,54,.07);}
.model-step span,.why-reason span{font-family:var(--disp);font-style:italic;color:#0d7fc4;font-size:12px;font-weight:800;}
.model-step h3{font-size:18px;margin:12px 0 9px;color:var(--navy);line-height:1.45;}
.model-step p{font-size:13px;line-height:1.75;color:#52637a;font-weight:600;}
.step-a{left:3%;bottom:38px}.step-b{left:50%;transform:translateX(-50%);top:38px}.step-c{right:3%;bottom:50px}

#t-why.why-section{position:relative;overflow:hidden;padding:clamp(78px,8vw,118px) 0;background:#fff;}
#t-why .wrap{position:relative;z-index:1;}
.why-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,430px);gap:32px;align-items:end;}
.why-head .title{margin-top:12px;}
.why-lead{margin:0;color:var(--sub);font-size:15px;line-height:1.9;font-weight:650;}
.why-system{margin-top:42px;display:grid;grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr);gap:28px;align-items:center;}
.why-diagram{border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;box-shadow:0 22px 70px rgba(14,30,54,.06);overflow:hidden;}
.why-diagram svg{display:block;width:100%;height:auto;}
.why-reasons{display:flex;flex-direction:column;gap:14px;}
.why-reason{position:relative;padding:22px 24px 22px 30px;border:1px solid rgba(14,30,54,.09);border-radius:8px;background:#fff;box-shadow:0 14px 42px rgba(14,30,54,.052);}
.why-reason::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;background:linear-gradient(180deg,#1fa8e8,rgba(31,168,232,.12));}
.why-reason h3{font-size:20px;margin:8px 0 8px;color:var(--navy);}
.why-reason p{font-size:14px;line-height:1.78;color:#52637a;font-weight:600;}

#t-cta.cta-section{position:relative;overflow:hidden;padding:clamp(70px,8vw,116px) 0;background:#fff;}
.cta-panel{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:clamp(28px,4vw,58px);align-items:center;padding:clamp(34px,5vw,60px);border-radius:10px;background:#fff;color:var(--navy);border:1px solid rgba(14,30,54,.1);box-shadow:0 28px 86px rgba(14,30,54,.08),inset 0 1px 0 rgba(255,255,255,.96);}
.cta-panel::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--azure),rgba(31,168,232,.08));pointer-events:none;}
.cta-copy,.consult-visual{position:relative;z-index:1;}
.cta-copy .eyebrow{color:#1fa8e8;}
.cta-copy .title{color:var(--navy);font-size:clamp(30px,3.45vw,46px);line-height:1.2;max-width:760px;letter-spacing:0;}
.cta-copy .title span{display:inline-block;}
.cta-copy p{color:#52637a;font-size:15.5px;line-height:1.9;margin-top:16px;font-weight:650;max-width:680px;}
.cta-brief{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px;}
.cta-brief span{font-size:12px;border:1px solid rgba(31,168,232,.17);background:#fff;border-radius:999px;padding:7px 10px;color:#0d7fc4;font-weight:800;}
.consult-visual{display:flex;flex-direction:column;gap:16px;}
.sheet-card{border:1px solid rgba(31,168,232,.18);background:#f8fcff;border-radius:10px;padding:24px;box-shadow:inset 0 1px 0 rgba(255,255,255,.9);}
.sheet-card span{display:block;font-family:var(--disp);font-size:12px;letter-spacing:0;color:#0d7fc4;font-weight:800;}
.sheet-card b{display:block;font-size:23px;margin-top:8px;color:var(--navy);}
.sheet-card p{color:#52637a;font-size:13px;line-height:1.7;margin-top:8px;}
.sheet-lines{display:grid;gap:9px;margin-top:18px;}
.sheet-lines i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,rgba(31,168,232,.22),rgba(31,168,232,.05));}
.sheet-lines i:nth-child(2){width:76%}.sheet-lines i:nth-child(3){width:58%}
.mini-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.mini-flow span{text-align:center;font-size:12px;font-weight:800;color:#0d7fc4;border:1px solid rgba(31,168,232,.18);border-radius:8px;padding:10px 8px;background:#fff;}
.cta-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.cta-panel .btn-primary{background:var(--navy);color:#fff;box-shadow:0 18px 42px rgba(14,30,54,.18);}
.cta-panel .more{color:var(--navy);background:#fff;border:1px solid rgba(14,30,54,.12);border-radius:999px;padding:12px 18px;}

.site-footer{background:#071426;color:#cdd8ea;padding:0;overflow:hidden;}
.footer-shell{position:relative;padding:68px 0 32px;}
.footer-shell::before{content:"";position:absolute;inset:0;background:radial-gradient(56% 120% at 10% -20%,rgba(31,168,232,.2),transparent 62%);opacity:.9;pointer-events:none;}
.footer-word{position:absolute;right:-.04em;top:22px;font-family:var(--disp);font-weight:900;font-size:clamp(86px,15vw,220px);line-height:.8;color:rgba(255,255,255,.035);pointer-events:none;}
.site-footer .wrap{position:relative;z-index:1;}
.site-footer .fcols{display:grid;grid-template-columns:minmax(260px,1.45fr) repeat(3,minmax(130px,.62fr));gap:clamp(26px,4vw,56px);align-items:start;}
.site-footer .fbrand{max-width:390px;}
.footer-lead{margin-top:18px;max-width:340px;font-size:13.5px;line-height:1.9;color:#b4c4d8;}
.footer-contact{margin-top:22px;display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:800;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);border-radius:999px;padding:10px 16px;}
.site-footer .ttl{font-family:var(--disp);font-style:italic;color:#8fd6f7;font-size:13px;margin-bottom:12px;letter-spacing:0;}
.site-footer nav a{display:block;color:#aebbd0;font-size:13.5px;margin:10px 0;opacity:.9;transition:color .2s ease,transform .2s ease;}
.site-footer nav a:hover{color:#fff;transform:translateX(3px);}
.site-footer .fbottom{border-top:1px solid rgba(255,255,255,.1);margin-top:46px;padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;color:#91a5bf;font-size:12.5px;}
.footer-tagline{font-family:var(--disp);font-style:italic;color:#8fd6f7;}

@media(max-width:940px){.model-grid,.why-system,.cta-panel{grid-template-columns:1fr}.why-head{grid-template-columns:1fr;align-items:start;gap:14px}.why-lead{max-width:620px}.band-copy{max-width:680px}.model-board{min-height:auto;padding:22px;display:flex;flex-direction:column;gap:12px}.model-rail{display:none}.model-step{position:relative;width:auto;left:auto;right:auto;top:auto;bottom:auto}
.model-board .step-b{transform:none!important;left:auto!important;}.site-footer .fcols{grid-template-columns:1fr 1fr}.site-footer .fbrand{grid-column:1/-1}}
@media(max-width:620px){.band-pro{padding:58px 0}.band-copy h2{font-size:28px}.why-system{gap:18px}.why-diagram svg{min-width:0;width:100%}.why-diagram{overflow:visible}.cta-panel{border-radius:8px;padding:30px 22px}.cta-copy .title{font-size:30px}.cta-actions{align-items:stretch}.cta-actions a{justify-content:center;width:100%}.mini-flow{grid-template-columns:1fr}.site-footer .fcols{grid-template-columns:1fr}.site-footer .fbottom{align-items:flex-start;flex-direction:column}.footer-word{top:34px}}

/* services density and motion pass */
body.svc-page{background:#fff;}
body.svc-page::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,rgba(31,168,232,.045) 1px,transparent 1px),linear-gradient(180deg,rgba(31,168,232,.04) 1px,transparent 1px),radial-gradient(circle at 88% 18%,rgba(31,168,232,.10),transparent 28%),radial-gradient(circle at 10% 66%,rgba(31,168,232,.07),transparent 26%);background-size:88px 88px,88px 88px,auto,auto;opacity:.72;animation:svc-blueprint-drift 22s linear infinite;}
.svc-page .pagehero{min-height:clamp(260px,38vh,400px);}
.svc-page section.block{padding:clamp(54px,6.2vw,86px) 0;}
.svc-page .service-detail{padding-top:clamp(52px,6vw,82px);padding-bottom:clamp(34px,4.5vw,54px);}
.svc-page .service-detail::before{top:18px;}
.svc-page .service-detail::after,.svc-page .service-flow::before,.svc-page .service-faq::before{content:"";position:absolute;left:50%;bottom:0;width:min(1120px,86vw);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(31,168,232,.20),transparent);}
.svc-page .service-intro{position:relative;overflow:hidden;margin-bottom:clamp(24px,3.6vw,42px);box-shadow:0 18px 54px rgba(14,30,54,.06);}
.svc-page .service-intro::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,168,232,.055) 1px,transparent 1px),linear-gradient(180deg,rgba(31,168,232,.045) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(90deg,transparent,#000 18%,#000 88%,transparent);opacity:.8;pointer-events:none;}
.svc-page .service-intro-copy,.svc-page .service-lens{position:relative;z-index:1;}
.svc-page .service-lens svg{filter:drop-shadow(0 18px 32px rgba(31,168,232,.10));animation:svc-float 7s ease-in-out infinite;}
.svc-page .service-lens path{transition:stroke-dashoffset 1.2s ease,opacity .8s ease;}
.svc-page .svc-rows{margin-top:0;gap:16px;}
.svc-page .srow{isolation:isolate;transition:transform .34s ease,box-shadow .34s ease,border-color .34s ease;}
.svc-page .srow::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,rgba(31,168,232,.10),transparent 34%),linear-gradient(90deg,rgba(31,168,232,.045) 1px,transparent 1px);background-size:auto,34px 34px;opacity:.72;}
.svc-page .srow::after{content:"";position:absolute;left:24px;right:24px;bottom:0;height:2px;background:linear-gradient(90deg,rgba(31,168,232,.55),transparent);transform:scaleX(.28);transform-origin:left;transition:transform .34s ease;}
.svc-page .srow:hover{transform:translateY(-5px);box-shadow:0 24px 68px rgba(14,30,54,.10);border-color:rgba(31,168,232,.22);}
.svc-page .srow:hover::after{transform:scaleX(1);}
.svc-page .artpanel svg{transition:transform .44s ease,filter .44s ease;}
.svc-page .srow:hover .artpanel svg{transform:translateY(-4px) scale(1.015);filter:drop-shadow(0 12px 18px rgba(31,168,232,.10));}
.svc-page .band-pro{margin-top:-18px;padding:clamp(52px,6vw,82px) 0;background:#fff;}
.svc-page .model-grid{position:relative;}
.svc-page .model-grid::before{content:"";position:absolute;inset:-18px -30px;border:1px solid rgba(31,168,232,.10);border-radius:12px;pointer-events:none;background:linear-gradient(90deg,rgba(31,168,232,.035) 1px,transparent 1px);background-size:48px 48px;}
.svc-page .model-board{background:rgba(255,255,255,.9);backdrop-filter:blur(6px);}
.svc-page .model-rail path:last-child{animation:svc-dash 18s linear infinite;}
.svc-page .service-flow{position:relative;margin-top:-18px;padding-top:clamp(50px,5.8vw,78px);padding-bottom:clamp(30px,3.8vw,48px);}
.svc-page .flow-board{margin-top:28px;min-height:282px;background:linear-gradient(90deg,rgba(31,168,232,.05) 1px,transparent 1px),linear-gradient(180deg,rgba(31,168,232,.04) 1px,transparent 1px),#fff;background-size:46px 46px;box-shadow:0 18px 58px rgba(14,30,54,.065);}
.svc-page .flow-line path:first-child{stroke:rgba(31,168,232,.18);}
.svc-page .flow-line path:last-child{stroke-dasharray:1120;stroke-dashoffset:1120;transition:stroke-dashoffset 1.25s cubic-bezier(.2,.8,.2,1) .16s;}
.svc-page .flow-board.in .flow-line path:last-child{stroke-dashoffset:0;}
.svc-page .flow-node{opacity:0;transform:translateY(18px);transition:opacity .52s ease,transform .52s ease,box-shadow .34s ease,border-color .34s ease;}
.svc-page .flow-board.in .flow-node{opacity:1;transform:translateY(0);}
.svc-page .flow-board.in .flow-node.n2{transition-delay:.12s;}
.svc-page .flow-board.in .flow-node.n3{transition-delay:.24s;}
.svc-page .flow-board.in .flow-node.n4{transition-delay:.36s;}
.svc-page .flow-node:hover{box-shadow:0 18px 44px rgba(14,30,54,.10);border-color:rgba(31,168,232,.34);}
.svc-page .service-faq{position:relative;margin-top:-28px;padding-top:clamp(30px,3.8vw,48px);padding-bottom:clamp(58px,6vw,88px);}
.svc-page .faq-grid{position:relative;}
.svc-page .faq-grid::before{content:"";position:absolute;inset:-22px -28px;border:1px solid rgba(31,168,232,.10);border-radius:12px;pointer-events:none;background:radial-gradient(circle at 18% 12%,rgba(31,168,232,.09),transparent 30%);}
.svc-page .service-faq .faq{position:relative;box-shadow:0 16px 48px rgba(14,30,54,.06);}
.svc-page .service-faq .faq details[open]{background:linear-gradient(90deg,rgba(31,168,232,.055),transparent);}
.svc-page .service-rail{position:fixed;right:22px;top:50%;z-index:8;display:grid;gap:10px;transform:translateY(-50%);}
.svc-page .service-rail a{position:relative;display:flex;align-items:center;justify-content:flex-end;width:72px;height:24px;color:#87a1b9;text-decoration:none;font-family:var(--disp);font-size:11px;font-weight:800;letter-spacing:.02em;}
.svc-page .service-rail a::before{content:"";position:absolute;right:0;top:50%;width:16px;height:2px;background:rgba(31,168,232,.28);transform:translateY(-50%);transition:width .25s ease,background .25s ease;}
.svc-page .service-rail a span{padding-right:26px;opacity:.64;transition:opacity .25s ease,color .25s ease;}
.svc-page .service-rail a.active::before{width:34px;background:#1fa8e8;}
.svc-page .service-rail a.active span{opacity:1;color:#0d7fc4;}
.svc-page .reveal-up{opacity:0;transform:translateY(22px);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.8,.2,1);}
.svc-page .reveal-up.in{opacity:1;transform:none;}
@keyframes svc-blueprint-drift{from{background-position:0 0,0 0,0 0,0 0}to{background-position:88px 88px,88px 88px,0 0,0 0}}
@keyframes svc-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes svc-dash{to{stroke-dashoffset:-220}}
@media(max-width:1180px){.svc-page .service-rail{display:none}}
@media(max-width:980px){.svc-page .service-detail{padding-top:52px}.svc-page .band-pro,.svc-page .service-flow,.svc-page .service-faq{margin-top:0}.svc-page .model-grid::before,.svc-page .faq-grid::before{inset:0;border-radius:10px}.svc-page .flow-board{min-height:auto}.svc-page .flow-node{opacity:1;transform:none}}
@media(max-width:620px){.svc-page section.block{padding:50px 0}.svc-page .pagehero{min-height:300px}.svc-page .service-intro{margin-bottom:22px}.svc-page .service-lens svg{animation:none}.svc-page .service-flow,.svc-page .service-faq{padding-top:50px;padding-bottom:56px}}
@media(prefers-reduced-motion:reduce){body.svc-page::before,.svc-page .service-lens svg,.svc-page .model-rail path:last-child{animation:none}.svc-page .reveal-up,.svc-page .flow-node,.svc-page .flow-line path:last-child{transition:none;opacity:1;transform:none;stroke-dashoffset:0}}
@media(max-width:760px){header:not(.navopen) nav.main{transform:none;clip-path:inset(0 0 0 100%);visibility:hidden;pointer-events:none;}header.navopen nav.main{transform:none;clip-path:inset(0);visibility:visible;pointer-events:auto;}}


/* insights / content hub */
.insight-preview{background:#fff;position:relative;overflow:hidden;}
.insight-preview-head,.insight-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,440px);gap:32px;align-items:end;}
.insight-preview-head p,.insight-section-head p,.insight-lead p{color:#52637a;font-size:15px;line-height:1.9;font-weight:650;margin:0;}
.insight-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px;}
.insight-mini-grid article,.insight-card{border:1px solid rgba(31,168,232,.15);background:linear-gradient(135deg,#fff,#f8fcff);border-radius:8px;padding:22px 20px;box-shadow:0 16px 48px rgba(14,30,54,.055);}
.insight-mini-grid span,.insight-card-top span{font-family:var(--disp);font-weight:850;font-size:12px;color:#0d7fc4;}
.insight-mini-grid b{display:block;margin-top:9px;color:var(--navy);font-size:18px;}
.insight-mini-grid p{margin-top:8px;color:#52637a;font-size:13.5px;line-height:1.75;font-weight:650;}
.insight-hub{background:radial-gradient(circle at 80% 8%,rgba(31,168,232,.11),transparent 34%),#fff;}
.insight-lead{max-width:850px;}
.insight-lead .title{margin-top:12px;max-width:780px;}
.insight-lead p{margin-top:18px;max-width:760px;}
.insight-focus{display:flex;gap:9px;flex-wrap:wrap;margin-top:28px;}
.insight-focus span{border:1px solid rgba(31,168,232,.2);background:#fff;color:#0d7fc4;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;}
.insight-cases,.insight-articles{background:#fff;position:relative;}
.insight-grid{display:grid;gap:18px;margin-top:34px;}
.cases-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.article-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.insight-card{position:relative;min-height:230px;display:flex;flex-direction:column;}
.insight-card a{color:inherit;text-decoration:none;}
.insight-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;}
.insight-card-top em{font-style:normal;color:#7b91aa;font-size:11px;font-weight:850;text-align:right;}
.insight-card h3{font-size:clamp(19px,2vw,24px);line-height:1.45;color:var(--navy);letter-spacing:0;margin:0;}
.insight-card p{margin-top:12px;color:#52637a;font-size:14px;line-height:1.9;font-weight:650;}
.insight-status{margin-top:auto;width:max-content;border:1px solid rgba(31,168,232,.18);border-radius:999px;color:#0d7fc4;background:#fff;padding:7px 10px;font-size:11px;font-weight:900;}
.knowledge-card{padding:0;overflow:hidden;min-height:auto;background:#fff;}
.knowledge-card-link{display:flex;min-height:100%;flex-direction:column;}
.knowledge-thumb{position:relative;aspect-ratio:16/9;margin:0;background:linear-gradient(135deg,#f8fcff,#eaf8ff);border-bottom:1px solid rgba(31,168,232,.13);overflow:hidden;}
.knowledge-thumb img{display:block;width:100%;height:100%;object-fit:cover;}
.knowledge-card-body{display:flex;min-height:250px;flex-direction:column;padding:20px;}
.knowledge-card:hover{transform:translateY(-4px);box-shadow:0 24px 68px rgba(14,30,54,.09);}
.knowledge-card .insight-status{margin-top:auto;}
.article-carousel,.case-carousel{position:relative;margin-top:34px;}
.article-carousel-head,.case-carousel-head{display:flex;justify-content:flex-end;margin-bottom:14px;}
.article-controls,.case-controls{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(31,168,232,.16);border-radius:999px;background:#fff;box-shadow:0 16px 42px rgba(14,30,54,.055);padding:6px;}
.article-controls button,.case-controls button{width:38px;height:38px;border:0;border-radius:50%;display:grid;place-items:center;background:#f5fbff;color:#0d7fc4;font-size:18px;font-weight:900;cursor:pointer;transition:background .22s ease,color .22s ease,transform .22s ease,opacity .22s ease;}
.article-controls button:hover,.case-controls button:hover{background:#0e1e36;color:#fff;transform:translateY(-1px);}
.article-controls button:disabled,.case-controls button:disabled{opacity:.36;cursor:default;transform:none;background:#f5fbff;color:#8aa3bb;}
.article-viewport,.case-viewport{overflow:hidden;padding:2px 2px 30px;margin:0 -2px;}
.article-track,.case-track{display:flex;gap:18px;will-change:transform;transition:transform .5s cubic-bezier(.2,.78,.2,1);}
.article-track .knowledge-card{flex:0 0 calc((100% - 54px)/4);min-width:0;}
.article-track .knowledge-card .knowledge-card-body{min-height:270px;}
.case-track .achievement{flex:0 0 calc((100% - 36px)/3);min-width:0;}
.article-progress,.case-progress{position:relative;height:3px;border-radius:999px;background:rgba(31,168,232,.12);overflow:hidden;}
.article-progress span,.case-progress span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2d76e8,#42c3dc);transform-origin:left center;transition:transform .5s cubic-bezier(.2,.78,.2,1),width .3s ease;}
.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:34px;}
.insights-page .insight-card.achievement{padding:0;min-height:auto;overflow:hidden;background:linear-gradient(145deg,#fff,#f5fbff);}
.case-logo-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center;padding:20px 22px;border-bottom:1px solid rgba(14,30,54,.08);background:linear-gradient(135deg,rgba(31,168,232,.06),rgba(255,255,255,.96));}
.case-logo-box{width:112px;height:76px;border:1px solid rgba(31,168,232,.16);border-radius:10px;background:#fff;display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 14px 34px rgba(14,30,54,.055);}
.case-logo-box img{display:block;width:auto!important;height:auto!important;max-width:86%!important;max-height:64%!important;object-fit:contain!important;border-radius:0;}
.case-logo-box img[src$="vault-nagoya.jpg"]{max-width:66%!important;max-height:72%!important;border-radius:8px;}
.case-logo-box img[src$="tonton.png"],.case-logo-box img[src$="anonymous-oripa.svg"]{max-width:92%!important;max-height:58%!important;}
.case-logo-box img[src$="vlabo-logo.jpg"]{max-width:84%!important;max-height:48%!important;}
.case-kind{display:inline-flex;margin-bottom:7px;border:1px solid rgba(31,168,232,.18);border-radius:999px;background:#fff;color:#0d7fc4;padding:6px 9px;font-family:var(--disp);font-size:10.5px;font-weight:900;letter-spacing:.06em;}
.case-logo-row em{display:block;color:#667991;font-size:12px;line-height:1.55;font-style:normal;font-weight:850;}
.achievement-body{display:flex;min-height:320px;flex-direction:column;padding:22px;}
.achievement-body h3{font-size:clamp(20px,2vw,25px);line-height:1.4;margin:0;color:var(--navy);}
.achievement-body p{margin-top:12px;color:#52637a;font-size:13.6px;line-height:1.85;font-weight:650;}
.achievement-metric{margin:18px 0 16px;padding:15px 16px;border:1px solid rgba(31,168,232,.16);border-radius:10px;background:#fff;}
.achievement-metric strong{display:block;color:#0d7fc4;font-family:var(--disp);font-size:clamp(22px,2.5vw,32px);line-height:1.08;margin-bottom:6px;}
.achievement-metric span{display:block;color:#52637a;font-size:12.5px;line-height:1.65;font-weight:800;}
.achievement-note{margin:18px 0 0;color:#7d91a9;font-size:12px;line-height:1.7;font-weight:700;}
.case-archive{margin-top:28px;border:1px solid rgba(14,30,54,.08);border-radius:12px;background:#fff;box-shadow:0 18px 56px rgba(14,30,54,.055);overflow:hidden;}
.case-archive-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid rgba(14,30,54,.08);background:linear-gradient(135deg,rgba(31,168,232,.055),#fff);}
.case-archive-head span{font-family:var(--disp);font-size:11px;font-weight:900;letter-spacing:.14em;color:#0d7fc4;}
.case-archive-head b{color:var(--navy);font-size:17px;line-height:1.4;}
.case-archive-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;max-height:246px;overflow:auto;}
.case-archive-row{display:grid;grid-template-columns:92px minmax(0,1fr) 116px;gap:12px;align-items:center;padding:15px 18px;border-bottom:1px solid rgba(14,30,54,.07);min-width:0;}
.case-archive-row:nth-child(odd){border-right:1px solid rgba(14,30,54,.07);}
.case-archive-row span{font-family:var(--disp);font-size:11px;font-weight:900;color:#0d7fc4;}
.case-archive-row b{color:var(--navy);font-size:14px;line-height:1.45;min-width:0;}
.case-archive-row em{display:none;}
.case-archive-row strong{justify-self:end;color:#0d7fc4;font-family:var(--disp);font-size:14px;white-space:nowrap;}
.knowledge-taxonomy{margin-top:24px;border:1px solid rgba(31,168,232,.14);border-radius:12px;background:linear-gradient(135deg,#fff,#f8fcff);box-shadow:0 16px 48px rgba(14,30,54,.045);padding:18px 20px;}
.knowledge-taxonomy span{display:block;font-family:var(--disp);font-size:11px;font-weight:900;letter-spacing:.14em;color:#0d7fc4;margin-bottom:12px;}
.knowledge-taxonomy div{display:flex;gap:8px;flex-wrap:wrap;}
.knowledge-taxonomy b{display:inline-flex;border:1px solid rgba(31,168,232,.16);border-radius:999px;background:#fff;color:#52637a;padding:7px 10px;font-size:11.5px;font-weight:900;}
.insight-cta-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;box-shadow:0 24px 70px rgba(14,30,54,.065);padding:clamp(28px,4vw,44px);}
.insight-cta-panel .title{margin-top:10px;}
.insight-cta-panel p{margin-top:14px;color:#52637a;font-size:15px;line-height:1.9;font-weight:650;max-width:680px;}
.knowledge-detail{background:linear-gradient(180deg,#fff,#f8fcff 58%,#fff);position:relative;}
.knowledge-detail::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,168,232,.035) 1px,transparent 1px),linear-gradient(180deg,rgba(31,168,232,.028) 1px,transparent 1px);background-size:88px 88px;mask-image:linear-gradient(180deg,transparent,#000 12%,#000 72%,transparent);pointer-events:none;}
.knowledge-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start;}
.knowledge-article{min-width:0;}
.knowledge-back{display:inline-flex;align-items:center;gap:8px;color:#0d7fc4;font-size:13px;font-weight:900;text-decoration:none;margin-bottom:24px;}
.knowledge-hero-card{border:1px solid rgba(31,168,232,.16);border-radius:14px;background:rgba(255,255,255,.92);box-shadow:0 28px 90px rgba(14,30,54,.08);overflow:hidden;}
.knowledge-hero-card figure{margin:0;aspect-ratio:16/9;background:#f8fcff;border-bottom:1px solid rgba(31,168,232,.12);}
.knowledge-hero-card figure img{width:100%;height:100%;display:block;object-fit:cover;}
.knowledge-hero-copy{padding:clamp(26px,4vw,46px);}
.knowledge-meta{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px;}
.knowledge-meta span{display:inline-flex;border:1px solid rgba(31,168,232,.18);border-radius:999px;background:#fff;color:#0d7fc4;padding:7px 10px;font-family:var(--disp);font-size:11px;font-weight:900;}
.knowledge-hero-copy h2{font-size:clamp(30px,4.8vw,54px);line-height:1.16;letter-spacing:0;color:var(--navy);margin:0;}
.knowledge-hero-copy .lead{margin-top:20px;color:#52637a;font-size:16px;line-height:2;font-weight:700;}
.knowledge-section{margin-top:34px;padding:30px 0;border-top:1px solid rgba(14,30,54,.08);}
.knowledge-section h2{font-size:clamp(23px,3vw,32px);line-height:1.32;color:var(--navy);margin:0 0 18px;letter-spacing:0;}
.knowledge-section ul{display:grid;gap:12px;margin:0;padding:0;list-style:none;}
.knowledge-section li{position:relative;padding-left:22px;color:#52637a;font-size:15px;line-height:1.95;font-weight:650;}
.knowledge-section li::before{content:"";position:absolute;left:0;top:.78em;width:8px;height:8px;border-radius:50%;background:#1fa8e8;box-shadow:0 0 0 5px rgba(31,168,232,.1);}
.knowledge-side{position:sticky;top:100px;display:grid;gap:16px;}
.knowledge-side-card{border:1px solid rgba(31,168,232,.15);border-radius:12px;background:rgba(255,255,255,.9);box-shadow:0 18px 56px rgba(14,30,54,.055);padding:20px;}
.knowledge-side-card b{display:block;color:var(--navy);font-size:16px;margin-bottom:10px;}
.knowledge-side-card p,.knowledge-side-card li{color:#52637a;font-size:13px;line-height:1.8;font-weight:650;}
.knowledge-side-card ul{display:grid;gap:9px;margin:0;padding:0;list-style:none;}
.knowledge-side-card a{color:#0d7fc4;font-weight:900;text-decoration:none;}
.knowledge-sources a{display:block;margin-top:10px;padding-top:10px;border-top:1px solid rgba(14,30,54,.08);line-height:1.6;}
.knowledge-bottom-cta{margin-top:38px;border:1px solid rgba(31,168,232,.16);border-radius:14px;background:linear-gradient(135deg,#2478ec,#3fc0dc);color:#fff;padding:clamp(26px,4vw,40px);display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:0 26px 70px rgba(31,168,232,.22);}
.knowledge-bottom-cta h2{margin:0;font-size:clamp(24px,3vw,34px);line-height:1.3;letter-spacing:0;color:#fff;}
.knowledge-bottom-cta p{margin:10px 0 0;color:rgba(255,255,255,.86);font-weight:700;line-height:1.8;}
.knowledge-bottom-cta a{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;border-radius:999px;background:#fff;color:#0d7fc4;font-weight:900;text-decoration:none;padding:12px 18px;}
@media(max-width:980px){.insight-preview-head,.insight-section-head{grid-template-columns:1fr}.insight-mini-grid,.cases-grid{grid-template-columns:1fr}.article-grid{grid-template-columns:1fr 1fr}.article-track .knowledge-card,.case-track .achievement{flex-basis:calc((100% - 18px)/2)}.case-archive-list{grid-template-columns:1fr;max-height:292px}.case-archive-row:nth-child(odd){border-right:0}.insight-cta-panel{align-items:flex-start;flex-direction:column}}
@media(max-width:980px){.achievement-grid{grid-template-columns:1fr}.achievement-body{min-height:auto}.knowledge-layout{grid-template-columns:1fr}.knowledge-side{position:relative;top:auto;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.knowledge-bottom-cta{align-items:flex-start;flex-direction:column}.knowledge-bottom-cta a{width:100%;justify-content:center}.knowledge-side{grid-template-columns:1fr}}
@media(max-width:620px){.insight-mini-grid,.article-grid{grid-template-columns:1fr}.article-carousel-head,.case-carousel-head{justify-content:flex-start}.article-track .knowledge-card,.case-track .achievement{flex-basis:100%}.article-track .knowledge-card .knowledge-card-body{min-height:238px}.case-archive-row{grid-template-columns:1fr;gap:5px;align-items:start}.case-archive-row strong{justify-self:start}.knowledge-taxonomy{padding:16px}.insight-card{min-height:auto}.insight-cta-panel .btn-primary{width:100%;justify-content:center}.case-logo-row{grid-template-columns:82px minmax(0,1fr);gap:12px;padding:16px}.case-logo-box{width:82px;height:58px}.case-kind{font-size:9.8px;padding:5px 8px}.achievement-body{padding:18px}.achievement-metric{padding:13px 14px}}


/* MetaHeroes-inspired richness, translated for Aimo */
header{background:rgba(255,255,255,.9);backdrop-filter:blur(16px);box-shadow:0 10px 34px rgba(14,30,54,.055);}
header::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(31,168,232,.22),transparent);}
.float-consult{position:fixed;right:0;top:50%;z-index:40;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:44px;min-height:152px;padding:16px 9px;border-radius:12px 0 0 12px;background:linear-gradient(180deg,#2d76e8,#3fc0dc);box-shadow:0 18px 44px rgba(13,127,196,.28);color:#fff;text-decoration:none;font-size:13px;font-weight:900;letter-spacing:.08em;writing-mode:vertical-rl;}
.float-consult span{display:block;}
.float-consult:hover{filter:saturate(1.08) brightness(1.03);}
.mission-split{position:relative;background:radial-gradient(circle at 74% 22%,rgba(31,168,232,.09),transparent 28%),linear-gradient(180deg,#fff 0%,#f9fdff 100%);overflow:hidden;}
.mission-split::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,168,232,.045) 1px,transparent 1px),linear-gradient(180deg,rgba(31,168,232,.035) 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);pointer-events:none;}
.mission-title{position:relative;text-align:center;max-width:780px;margin:0 auto 54px;}
.mission-title .title{margin-top:12px;}
.mission-title::after{content:"";display:block;width:70px;height:3px;border-radius:99px;margin:18px auto 0;background:linear-gradient(90deg,#2d76e8,#42c3dc);}
.mission-layout{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);gap:clamp(40px,6vw,86px);align-items:center;}
.mission-copy h3{font-size:clamp(32px,4vw,48px);line-height:1.18;color:var(--navy);letter-spacing:0;margin:0 0 24px;}
.mission-copy p{font-size:15.5px;line-height:2;color:#52637a;font-weight:650;margin:0 0 16px;}
.mission-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:30px;}
.mission-visual{min-height:420px;display:grid;place-items:center;}
.mission-orbit{position:relative;width:min(100%,560px);height:390px;}
.mission-circle{position:absolute;top:78px;width:210px;height:210px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.72);border:2px solid rgba(45,118,232,.62);box-shadow:0 26px 68px rgba(14,30,54,.08),inset 0 0 0 10px rgba(255,255,255,.55);}
.mission-circle span{color:#2d76e8;font-weight:900;font-size:18px;}
.circle-a{left:28px;}
.circle-b{right:28px;border-color:rgba(66,195,220,.7);}
.mission-core{position:absolute;left:50%;top:150px;z-index:2;transform:translateX(-50%);width:112px;height:112px;border-radius:50%;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(135deg,#2d76e8,#42c3dc);box-shadow:0 18px 44px rgba(13,127,196,.25);}
.mission-core b{font-size:25px;line-height:1;}
.mission-core span{font-size:12px;font-weight:900;line-height:1;}
.mission-stem{position:absolute;left:50%;top:258px;width:1px;height:58px;background:linear-gradient(#9ddaf7,rgba(157,218,247,0));}
.mission-nodes{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:min(440px,100%);}
.mission-nodes span{display:grid;place-items:center;min-height:54px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.92);box-shadow:0 16px 42px rgba(14,30,54,.09);color:var(--navy);font-size:13px;font-weight:900;text-align:center;}
.showcase-band{position:relative;overflow:hidden;padding:clamp(76px,8vw,112px) 0;background:linear-gradient(180deg,#fff 0%,#f6fbff 100%);color:var(--navy);border-top:1px solid rgba(14,30,54,.07);border-bottom:1px solid rgba(14,30,54,.07);}
.showcase-band::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,168,232,.04) 1px,transparent 1px),linear-gradient(180deg,rgba(31,168,232,.032) 1px,transparent 1px);background-size:88px 88px;opacity:.8;mask-image:linear-gradient(180deg,transparent,#000 14%,#000 84%,transparent);}
.showcase-band::after{content:"Works";position:absolute;right:-2vw;bottom:-.16em;font-size:clamp(112px,18vw,250px);font-family:var(--disp);font-weight:900;color:rgba(14,30,54,.035);line-height:.8;pointer-events:none;}
.showcase-glow{position:absolute;right:8%;top:-220px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(31,168,232,.13),transparent 64%);}
.showcase-head{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px);gap:36px;align-items:end;margin-bottom:42px;}
.showcase-head .eyebrow{color:#0d7fc4;}
.showcase-head .eyebrow::before{background:#1fa8e8;box-shadow:0 0 16px rgba(31,168,232,.55);}
.showcase-head .title{color:var(--navy);}
.showcase-head p{margin:0;color:#52637a;font-size:15px;line-height:1.9;font-weight:750;}
.showcase-stage{position:relative;z-index:1;display:grid;grid-template-columns:minmax(190px,.58fr) minmax(0,1.62fr) minmax(190px,.58fr);gap:24px;align-items:center;}
.showcase-card{position:relative;min-height:238px;border:1px solid rgba(31,168,232,.16);border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 22px 70px rgba(14,30,54,.075);overflow:hidden;}
.showcase-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 12%,rgba(31,168,232,.12),transparent 34%);pointer-events:none;}
.showcase-card.side{padding:28px 24px;opacity:1;}
.showcase-card.side b{display:block;margin-top:24px;color:var(--navy);font-size:22px;line-height:1.35;}
.showcase-card.side p{margin-top:12px;color:#52637a;font-size:13px;line-height:1.8;font-weight:700;}
.showcase-card .status{display:inline-flex;border:1px solid rgba(31,168,232,.2);border-radius:999px;background:#f5fbff;padding:7px 10px;color:#0d7fc4;font-size:11px;font-weight:900;}
.showcase-card.main{min-height:390px;padding:44px 48px;background:linear-gradient(135deg,rgba(7,20,38,.86),rgba(16,86,153,.62)),radial-gradient(circle at 52% 30%,rgba(255,255,255,.16),transparent 36%);display:flex;flex-direction:column;justify-content:center;}
.showcase-card.main .ribbon{position:absolute;left:-46px;top:26px;transform:rotate(-42deg);width:170px;text-align:center;background:linear-gradient(90deg,#fff,#cfefff);color:#0d7fc4;padding:8px 0;font-size:12px;font-weight:900;box-shadow:0 10px 24px rgba(0,0,0,.16);}
.showcase-brand{font-family:var(--disp);font-size:19px;letter-spacing:.08em;color:rgba(255,255,255,.76);margin-bottom:24px;}
.showcase-card.main h3{color:#fff;font-size:clamp(34px,5.2vw,68px);line-height:1.02;letter-spacing:0;margin:0;text-shadow:0 16px 34px rgba(0,0,0,.22);}
.showcase-card.main p{max-width:680px;margin-top:20px;color:rgba(255,255,255,.83);font-size:15px;line-height:1.9;font-weight:700;}
.showcase-card.main a{width:max-content;margin-top:30px;display:inline-flex;align-items:center;gap:9px;text-decoration:none;color:#0d7fc4;background:#fff;border-radius:999px;padding:12px 18px;font-weight:900;box-shadow:0 16px 36px rgba(0,0,0,.16);}
.showcase-card.main a span{transition:transform .22s ease;}
.showcase-card.main a:hover span{transform:translateX(4px);}
.showcase-dots{position:relative;z-index:1;display:flex;justify-content:center;align-items:center;gap:14px;margin-top:36px;}
.showcase-dots span{width:78px;height:5px;border-radius:99px;background:rgba(31,168,232,.16);}
.showcase-dots span.active{background:#1fa8e8;box-shadow:0 0 18px rgba(31,168,232,.32);}
@media(max-width:1080px){.mission-layout{grid-template-columns:1fr}.mission-copy{max-width:820px}.showcase-stage{grid-template-columns:1fr}.showcase-card.side{min-height:auto}.showcase-card.main{min-height:320px}.showcase-dots span{width:46px}}
@media(max-width:760px){.float-consult{right:14px;top:auto;bottom:14px;transform:none;width:auto;min-height:0;writing-mode:horizontal-tb;border-radius:999px;padding:12px 15px;font-size:12px}.mission-split{padding-top:58px}.mission-title{text-align:left;margin-bottom:30px}.mission-title::after{margin-left:0}.mission-visual{min-height:310px}.mission-orbit{height:300px}.mission-circle{width:142px;height:142px;top:54px}.mission-circle span{font-size:14px}.circle-a{left:0}.circle-b{right:0}.mission-core{top:102px;width:90px;height:90px}.mission-core b{font-size:20px}.mission-stem{top:190px;height:36px}.mission-nodes{bottom:0;gap:7px}.mission-nodes span{min-height:48px;font-size:11px;padding:8px 6px}.mission-actions .btn-primary,.mission-actions .more{width:100%;justify-content:center}.showcase-band{padding:64px 0}.showcase-head{grid-template-columns:1fr;gap:16px;margin-bottom:28px}.showcase-card.main{padding:38px 24px;min-height:340px}.showcase-card.main h3{font-size:38px}.showcase-card.main p{font-size:14px}.showcase-card.main a{width:100%;justify-content:center}.showcase-dots span{width:38px}}
@media(max-width:420px){.mission-nodes{grid-template-columns:1fr;width:76%;bottom:-28px}.mission-orbit{height:340px}.showcase-card.main h3{font-size:34px}.showcase-card.side{padding:22px 20px}.float-consult{left:auto;right:14px;width:auto;min-width:138px}}
@media(prefers-reduced-motion:no-preference){.mission-circle{animation:mh-soft-float 6s ease-in-out infinite}.circle-b{animation-delay:-2.6s}.showcase-card.main{animation:mh-card-float 7s ease-in-out infinite}@keyframes mh-soft-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes mh-card-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}}


/* final polish pass: denser service tiles, animated brand rail, stronger contact close */
#t-svc{background:linear-gradient(180deg,#fff 0%,#f7fcff 100%);}
#t-svc .svc-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:30px;}
#t-svc .svc{min-height:276px;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,#fff,#f5fbff);border:1px solid rgba(31,168,232,.18);box-shadow:0 24px 70px rgba(14,30,54,.07);}
#t-svc .svc:nth-child(2){background:linear-gradient(145deg,#fff,#f7fbff);}
#t-svc .svc:nth-child(3){background:linear-gradient(145deg,#fff,#f8fcff);}
#t-svc .svc:nth-child(4){background:linear-gradient(145deg,#fff,#f4fbfd);}
#t-svc .svc::before{width:100%;height:4px;bottom:auto;background:linear-gradient(90deg,#2d76e8,#42c3dc);opacity:.95;}
#t-svc .svc::after{content:attr(data-ghost);left:auto;right:-10px;bottom:-20px;width:auto;height:auto;background:none;font-family:var(--disp);font-size:82px;font-weight:900;line-height:.8;color:rgba(31,168,232,.06);opacity:1;}
#t-svc .svc .body{min-height:276px;padding:28px 24px 26px;}
.svc-tile-head{display:flex;align-items:flex-start;justify-content:space-between;width:100%;gap:16px;}
#t-svc .svc .no{min-height:30px;padding:8px 12px;color:#0d7fc4;border-color:rgba(31,168,232,.24);background:rgba(255,255,255,.9);}
.svc-icon{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;color:#1fa8e8;background:linear-gradient(135deg,rgba(31,168,232,.14),rgba(45,118,232,.05));box-shadow:inset 0 0 0 1px rgba(31,168,232,.12);}
.svc-icon svg{width:42px;height:42px;}
#t-svc .svc h3{font-size:21px;line-height:1.38;margin:26px 0 14px;}
#t-svc .svc p{font-size:13.5px;line-height:1.86;color:#4f6078;}
.svc-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;}
.svc-tags span{font-family:var(--disp);font-size:11px;font-weight:850;color:#0d7fc4;border:1px solid rgba(31,168,232,.16);background:#fff;border-radius:999px;padding:6px 9px;}
#t-svc .svc .more{padding-top:18px;}
#t-svc .svc:hover .svc-icon{transform:translateY(-3px);box-shadow:0 16px 34px rgba(31,168,232,.14),inset 0 0 0 1px rgba(31,168,232,.18);}
.svc-icon{transition:transform .28s ease,box-shadow .28s ease;}
.aimo-marquee{position:relative;overflow:hidden;background:#071426;color:#fff;border-top:1px solid rgba(31,168,232,.26);border-bottom:1px solid rgba(31,168,232,.26);}
.aimo-marquee::before,.aimo-marquee::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;}
.aimo-marquee::before{left:0;background:linear-gradient(90deg,#071426,rgba(7,20,38,0));}
.aimo-marquee::after{right:0;background:linear-gradient(270deg,#071426,rgba(7,20,38,0));}
.marquee-track{display:flex;align-items:center;gap:22px;width:max-content;padding:20px 0;animation:aimo-marquee 36s linear infinite;}
.marquee-track span{font-family:var(--disp);font-size:clamp(18px,2.4vw,34px);font-weight:900;letter-spacing:.04em;color:rgba(255,255,255,.92);white-space:nowrap;}
.marquee-track i{width:9px;height:9px;border-radius:50%;background:#42c3dc;box-shadow:0 0 18px rgba(66,195,220,.7);}
@keyframes aimo-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
#t-cta.cta-section{background:radial-gradient(circle at 12% 18%,rgba(31,168,232,.12),transparent 31%),radial-gradient(circle at 88% 76%,rgba(45,118,232,.08),transparent 30%),linear-gradient(180deg,#f8fcff 0%,#fff 100%);padding:clamp(78px,8.4vw,120px) 0 clamp(88px,9vw,132px);}
#t-cta.cta-section::before{background:linear-gradient(90deg,transparent,rgba(31,168,232,.22),transparent);}
#t-cta.cta-section::after{content:"Aimo";position:absolute;right:-4vw;bottom:-.16em;font-family:var(--disp);font-size:clamp(120px,20vw,280px);font-weight:900;line-height:.8;color:rgba(14,30,54,.045);pointer-events:none;}
#t-cta .cta-panel{background:rgba(255,255,255,.92);border-color:rgba(31,168,232,.18);box-shadow:0 34px 92px rgba(14,30,54,.08);backdrop-filter:blur(12px);color:var(--navy);}
#t-cta .cta-panel::before{background:linear-gradient(90deg,#1fa8e8,rgba(31,168,232,.08));}
#t-cta .cta-copy .eyebrow{color:#0d7fc4;}
#t-cta .cta-copy .eyebrow::before{background:#1fa8e8;box-shadow:0 0 16px rgba(31,168,232,.55);}
#t-cta .cta-copy .title{color:var(--navy);}
#t-cta .cta-copy p{color:#52637a;}
#t-cta .cta-brief span{background:#fff;border-color:rgba(31,168,232,.18);color:#0d7fc4;}
#t-cta .sheet-card{background:linear-gradient(135deg,#fff,#f8fcff);border-color:rgba(31,168,232,.16);}
#t-cta .mini-flow span{background:#fff;border-color:rgba(31,168,232,.18);color:#0d7fc4;}
#t-cta .cta-panel .btn-primary{background:var(--navy);color:#fff;box-shadow:0 18px 42px rgba(14,30,54,.16);}
#t-cta .cta-panel .more{background:#fff;border-color:rgba(14,30,54,.12);color:var(--navy);}
@media(max-width:980px){#t-svc .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:620px){#t-svc .svc-grid{grid-template-columns:1fr;}#t-svc .svc,#t-svc .svc .body{min-height:238px}.aimo-marquee::before,.aimo-marquee::after{width:50px}.marquee-track{padding:15px 0;animation-duration:28s}#t-cta.cta-section{padding-bottom:96px}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}


/* insights page polish */
.insights-page .insight-hub{padding-top:clamp(58px,6vw,88px);background:linear-gradient(180deg,#fff 0%,#f6fcff 100%);}
.insight-hub-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);gap:clamp(28px,5vw,70px);align-items:center;border:1px solid rgba(31,168,232,.16);border-radius:14px;background:rgba(255,255,255,.9);box-shadow:0 26px 78px rgba(14,30,54,.07);padding:clamp(28px,4.4vw,52px);overflow:hidden;}
.insight-hub-visual{position:relative;min-height:310px;display:grid;place-items:center;}
.hub-ring{position:relative;width:min(320px,100%);height:240px;border-radius:18px;background:linear-gradient(135deg,#071426,#105699);box-shadow:0 26px 68px rgba(14,30,54,.18);display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden;}
.hub-ring::before{content:"";position:absolute;inset:22px;border:1px solid rgba(255,255,255,.28);border-radius:50%;}
.hub-ring::after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(66,195,220,.46);border-radius:50%;transform:translate(60px,-38px);}
.hub-ring b{position:relative;z-index:1;font-size:46px;font-family:var(--disp);}
.hub-ring span{position:relative;z-index:1;font-size:11px;font-weight:900;letter-spacing:.14em;color:rgba(255,255,255,.72);}
.hub-bars{position:absolute;left:8%;right:8%;bottom:18px;display:grid;gap:9px;}
.hub-bars i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,rgba(31,168,232,.36),rgba(31,168,232,.04));}
.hub-bars i:nth-child(2){width:74%}.hub-bars i:nth-child(3){width:52%}
.insights-page .insight-card{border-radius:12px;box-shadow:0 20px 62px rgba(14,30,54,.065);}
.insights-page .case{background:linear-gradient(145deg,#fff,#f4fbff);}
.insight-blue-rail{position:relative;overflow:hidden;padding:clamp(56px,6.2vw,86px) 0;background:linear-gradient(122deg,#245ee8 0%,#268fe2 50%,#49bfd4 100%);color:#fff;}
.insight-blue-rail::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.075) 1px,transparent 1px);background-size:84px 84px;opacity:.42;}
.rail-copy{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,.78fr) minmax(280px,.65fr);gap:28px;align-items:center;}
.rail-copy span{font-family:var(--disp);font-size:13px;font-weight:900;letter-spacing:.16em;color:rgba(255,255,255,.72);}
.rail-copy b{font-size:clamp(26px,3vw,42px);line-height:1.25;color:#fff;}
.rail-copy p{margin:0;color:rgba(255,255,255,.82);font-size:14px;line-height:1.85;font-weight:700;}
.insights-page .insight-cta-panel{background:linear-gradient(135deg,#fff,#f7fcff);}
@media(max-width:980px){.insight-hub-panel,.rail-copy{grid-template-columns:1fr}.insight-hub-visual{min-height:260px}}
@media(max-width:620px){.insight-hub-panel{padding:24px 20px}.hub-ring{height:220px}.rail-copy{gap:16px}.insights-page .insight-hub{padding-top:46px}}


/* plus ai LP bridge */
.plus-ai-promo{position:relative;padding:clamp(46px,5vw,70px) 0;background:#fff;}
.plus-ai-panel{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;border:1px solid rgba(31,168,232,.22);border-radius:14px;background:linear-gradient(122deg,#245ee8 0%,#268fe2 52%,#49bfd4 100%);box-shadow:0 28px 82px rgba(13,127,196,.18);padding:clamp(28px,4vw,46px);color:#fff;}
.plus-ai-panel::before{content:"＋AI";position:absolute;right:-.1em;bottom:-.26em;font-family:var(--disp);font-size:clamp(86px,13vw,170px);font-weight:900;line-height:1;color:rgba(255,255,255,.13);pointer-events:none;}
.plus-ai-panel .eyebrow,.plus-ai-panel h2,.plus-ai-panel p,.plus-ai-panel a{position:relative;z-index:1;}
.plus-ai-panel .eyebrow{color:#fff;margin:0;}
.plus-ai-panel .eyebrow::before{background:#fff;box-shadow:0 0 16px rgba(255,255,255,.7);}
.plus-ai-panel h2{margin-top:12px;font-size:clamp(28px,3.6vw,46px);line-height:1.2;letter-spacing:0;}
.plus-ai-panel .plus-ai-logo{position:relative;z-index:1;display:block;margin-top:16px;width:min(300px,68%);height:auto;box-sizing:content-box;background:#fff;padding:16px 26px;border-radius:16px;box-shadow:0 18px 44px rgba(8,52,84,.32);}
.plus-ai-panel p{margin-top:14px;max-width:720px;color:rgba(255,255,255,.86);font-size:15px;line-height:1.9;font-weight:700;}
.plus-ai-panel .btn-primary{background:#fff;color:#0d7fc4;box-shadow:0 18px 42px rgba(0,29,83,.16);white-space:nowrap;}
@media(max-width:760px){.plus-ai-panel{grid-template-columns:1fr}.plus-ai-panel .btn-primary{justify-content:center;width:100%}}

/* contact form expansion */
.contact-page #contact{background:linear-gradient(90deg,rgba(31,168,232,.045) 1px,transparent 1px),linear-gradient(180deg,rgba(31,168,232,.035) 1px,transparent 1px),radial-gradient(circle at 86% 8%,rgba(31,168,232,.12),transparent 32%),#fff;background-size:72px 72px,72px 72px,auto,auto;}
.contact-head{text-align:left;max-width:860px;margin:0 auto;}
.contact-head .title{margin-top:12px;}
.contact-head .about-lead{margin-top:16px;max-width:720px;}
.cform-rich{max-width:960px;margin-top:36px;padding:0;overflow:hidden;background:rgba(255,255,255,.94);border-radius:14px;box-shadow:0 24px 70px rgba(14,30,54,.09);}
.cform-rich .form-head{position:relative;padding:30px 34px;border-bottom:1px solid rgba(14,30,54,.08);background:linear-gradient(135deg,rgba(31,168,232,.08),transparent 44%),#fff;}
.cform-rich .form-head::after{content:"";position:absolute;left:34px;right:34px;bottom:0;height:2px;background:linear-gradient(90deg,rgba(31,168,232,.62),transparent);}
.form-kicker{font-family:var(--disp);font-style:italic;color:#1fa8e8;font-weight:800;font-size:13px;}
.cform-rich .form-head h2{margin:10px 0 8px;color:var(--navy);font-size:clamp(24px,2.8vw,34px);line-height:1.28;letter-spacing:0;}
.cform-rich .form-head p{margin:0;color:#52637a;font-size:14.5px;line-height:1.85;font-weight:650;}
.cform-rich .form-grid{padding:30px 34px 0;gap:20px 18px;}
.cform-rich .field{position:relative;}
.cform-rich label,.cform-rich legend{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900;color:var(--navy);margin-bottom:8px;}
.cform-rich label span,.cform-rich legend span{font-size:11px;color:#88a0b8;font-weight:800;}
.cform-rich label em{font-style:normal;font-size:10px;color:#fff;background:#1fa8e8;border-radius:999px;padding:2px 7px;line-height:1.5;}
.cform-rich input,.cform-rich textarea,.cform-rich select{width:100%;border:1px solid rgba(14,30,54,.14);border-radius:10px;padding:13px 14px;font-family:var(--jp);font-size:15px;background:#fff;color:var(--ink);transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease;}
.cform-rich select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#1fa8e8 50%),linear-gradient(135deg,#1fa8e8 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 12px) 52%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:38px;}
.cform-rich textarea{resize:vertical;min-height:150px;line-height:1.8;}
.cform-rich input:focus,.cform-rich textarea:focus,.cform-rich select:focus{outline:none;border-color:#1fa8e8;box-shadow:0 0 0 4px rgba(31,168,232,.15);transform:translateY(-1px);}
.cform-rich .is-error input,.cform-rich .is-error textarea,.cform-rich .is-error select,.cform-rich .agree.is-error{border-color:#e36b6b;box-shadow:0 0 0 4px rgba(227,107,107,.10);}
.cform-rich .choices{border:1px solid rgba(14,30,54,.09);border-radius:12px;padding:16px;background:linear-gradient(90deg,rgba(31,168,232,.045),transparent);}
.cform-rich .choices legend{padding:0 8px;margin-left:-8px;}
.inquiry-route{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid rgba(31,168,232,.16);border-radius:12px;padding:18px;background:linear-gradient(135deg,#f7fcff,#fff);box-shadow:0 16px 44px rgba(14,30,54,.045);}
.inquiry-route b{display:block;color:var(--navy);font-size:15px;line-height:1.55;margin-bottom:4px;}
.inquiry-route span{display:block;color:#63758b;font-size:12.8px;line-height:1.7;font-weight:750;}
.route-tags{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:360px;}
.route-tags span{display:inline-flex!important;align-items:center;justify-content:center;min-height:28px;padding:6px 10px;border:1px solid rgba(31,168,232,.18);border-radius:999px;background:#fff;color:#0d7fc4!important;font-size:11px!important;font-weight:900!important;}
.hearing-panel{position:relative;margin:0;border:1px solid rgba(31,168,232,.18);border-radius:14px;padding:20px;background:linear-gradient(135deg,rgba(31,168,232,.055),rgba(255,255,255,.98) 42%,#fff);box-shadow:0 18px 54px rgba(14,30,54,.055);}
.hearing-panel[hidden]{display:none!important;}
.hearing-panel.is-active{display:block;animation:panelIn .28s ease both;}
@keyframes panelIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.hearing-panel legend{display:inline-flex!important;margin:0 0 6px;padding:0 8px 0 0;color:var(--navy);font-size:15px;font-weight:950;}
.hearing-panel legend span{color:#1fa8e8!important;font-size:11px!important;font-family:var(--disp);font-style:italic;}
.panel-help{margin:0 0 16px;color:#63758b;font-size:13px;line-height:1.8;font-weight:700;}
.panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 14px;}
.panel-grid .field{margin:0;}
.panel-grid .full{grid-column:1/-1;}
.panel-grid textarea{min-height:118px;}
.choice-grid{display:flex;flex-wrap:wrap;gap:10px;}
.choice{margin:0!important;cursor:pointer;}
.choice input{position:absolute;opacity:0;pointer-events:none;}
.choice span{display:inline-flex!important;align-items:center;min-height:34px;padding:8px 13px;border:1px solid rgba(31,168,232,.22);border-radius:999px;background:#fff;color:#0d7fc4!important;font-size:12px!important;font-weight:900!important;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;}
.choice input:checked+span{background:#0e1e36;color:#fff!important;border-color:#0e1e36;transform:translateY(-1px);}
.agree{display:flex!important;align-items:flex-start!important;gap:10px;margin:24px 34px 0!important;padding:14px 16px;border:1px solid rgba(14,30,54,.10);border-radius:10px;background:#fff;color:#52637a!important;font-size:13px!important;line-height:1.7;cursor:pointer;}
.agree input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:#1fa8e8;}
.agree span{color:#52637a!important;font-size:13px!important;font-weight:800!important;}
.form-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:24px 34px 34px;}
.form-small{margin:0;color:#7d91a9;font-size:12.5px;font-weight:700;}
.cform-rich .note{margin:0 34px 32px;padding:13px 15px;border-radius:10px;font-size:13px;font-weight:800;}
.cform-rich .note.ok{color:#0d7fc4;background:rgba(31,168,232,.08);border:1px solid rgba(31,168,232,.18);}
.cform-rich .note.error{color:#9d3434;background:rgba(227,107,107,.08);border:1px solid rgba(227,107,107,.18);}
@media(max-width:760px){.contact-head{text-align:left}.cform-rich{margin-top:28px}.cform-rich .form-head,.cform-rich .form-grid{padding-left:22px;padding-right:22px}.agree{margin-left:22px!important;margin-right:22px!important}.form-actions{padding-left:22px;padding-right:22px}.cform-rich .note{margin-left:22px;margin-right:22px}.inquiry-route{grid-template-columns:1fr}.route-tags{justify-content:flex-start;max-width:none}.panel-grid{grid-template-columns:1fr}.hearing-panel{padding:18px}}
@media(max-width:620px){.contact-page #contact{background-size:54px 54px,54px 54px,auto,auto}.cform-rich .form-grid{grid-template-columns:1fr}.form-actions .btn-primary{width:100%;justify-content:center}.form-small{line-height:1.6}.route-tags span{font-size:10.5px!important;padding:6px 8px}.hearing-panel legend{font-size:14px}}


/* SEO/AIO answer surfaces */
.aio-brief{background:#fff;position:relative;overflow:hidden;padding-top:clamp(46px,5vw,70px);padding-bottom:clamp(46px,5vw,70px);}
.aio-panel{display:grid;grid-template-columns:minmax(0,.8fr) minmax(360px,1fr);gap:clamp(28px,4vw,56px);align-items:center;border:1px solid rgba(14,30,54,.09);border-radius:10px;background:#fff;box-shadow:0 24px 74px rgba(14,30,54,.06);padding:clamp(28px,4vw,46px);}
.aio-copy .title{font-size:clamp(28px,3.4vw,42px);letter-spacing:0;line-height:1.25;margin-top:12px;}
.aio-copy p{margin-top:18px;color:#52637a;line-height:1.9;font-weight:650;font-size:15px;}.aio-keywords{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.aio-keywords span{border:1px solid rgba(31,168,232,.18);background:#fff;color:#0d7fc4;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:900}
.aio-grid{display:grid;gap:12px;}
.aio-grid article{border:1px solid rgba(31,168,232,.14);background:linear-gradient(135deg,#fff,#f8fcff);border-radius:8px;padding:18px 18px;}
.aio-grid b{display:block;color:var(--navy);font-size:15px;margin-bottom:7px;}
.aio-grid span{display:block;color:#52637a;font-size:13.5px;line-height:1.75;font-weight:650;}
.service-answer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0 42px;}
.service-answer article{border:1px solid rgba(31,168,232,.16);background:#fff;border-radius:8px;padding:18px 16px;box-shadow:0 14px 42px rgba(14,30,54,.045);}
.service-answer span{display:block;color:#0d7fc4;font-weight:900;font-size:13px;margin-bottom:8px;}
.service-answer p{color:#52637a;font-size:13px;line-height:1.75;font-weight:650;}

/* Supported AI tool stack */
.tool-stack-section{position:relative;margin:6px 0 44px;}
.tool-stack-panel{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(260px,.58fr) minmax(0,1fr);gap:clamp(24px,4vw,46px);align-items:start;border:1px solid rgba(31,168,232,.18);border-radius:12px;background:linear-gradient(135deg,#fff,#f5fbff);box-shadow:0 24px 70px rgba(14,30,54,.06);padding:clamp(24px,3.6vw,42px);}
.tool-stack-panel::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,168,232,.045) 1px,transparent 1px),linear-gradient(180deg,rgba(31,168,232,.035) 1px,transparent 1px);background-size:50px 50px;mask-image:linear-gradient(90deg,transparent,#000 18%,#000 92%);pointer-events:none;}
.tool-copy,.tool-grid,.tool-note{position:relative;z-index:1;}
.tool-copy h3{margin-top:12px;color:var(--navy);font-size:clamp(24px,3vw,38px);line-height:1.28;letter-spacing:0;}
.tool-copy p{margin-top:14px;color:#52637a;font-size:14.5px;line-height:1.9;font-weight:650;}
.tool-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}
.tool-tags span{border:1px solid rgba(31,168,232,.18);background:#fff;border-radius:999px;padding:7px 10px;color:#0d7fc4;font-size:12px;font-weight:900;}
.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.tool-card{min-height:96px;display:flex;flex-direction:column;justify-content:space-between;gap:10px;border:1px solid rgba(14,30,54,.08);border-radius:10px;background:#fff;padding:14px;box-shadow:0 16px 40px rgba(14,30,54,.045);}
.tool-card .logo-row{display:flex;align-items:center;gap:10px;}
.tool-card img{width:25px;height:25px;object-fit:contain;opacity:.84;}
.tool-card b{color:var(--navy);font-size:13px;line-height:1.35;}
.tool-card small{display:block;color:#6f8196;font-size:11px;line-height:1.45;font-weight:800;}
.tool-note{grid-column:1/-1;margin:2px 0 0;color:#7d91a9;font-size:11px;line-height:1.7;font-weight:700;}
.tool-initial{width:25px;height:25px;display:inline-grid;place-items:center;border-radius:7px;background:#071426;color:#fff;font-family:var(--disp);font-size:14px;font-weight:900;line-height:1;}
.dev-tools{grid-column:1/-1;margin-top:4px;padding:16px;border:1px solid rgba(31,168,232,.14);border-radius:10px;background:linear-gradient(135deg,#fff,#f7fcff);}
.dev-tools b{display:block;color:var(--navy);font-size:13px;margin-bottom:10px;}
.dev-chip-row{display:flex;gap:8px;flex-wrap:wrap;}
.dev-chip-row span{display:inline-flex;border:1px solid rgba(31,168,232,.18);background:#fff;border-radius:999px;padding:7px 10px;color:#0d7fc4;font-size:12px;font-weight:900;}
.plus-ai-mini-tools{position:relative;z-index:1;display:flex;gap:7px;flex-wrap:wrap;margin-top:18px;}
.plus-ai-mini-tools span{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.12);border-radius:999px;padding:7px 10px;color:#fff;font-size:12px;font-weight:900;}
@media(max-width:980px){.aio-panel{grid-template-columns:1fr}.service-answer{grid-template-columns:repeat(2,minmax(0,1fr));}.tool-stack-panel{grid-template-columns:1fr}.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:760px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:620px){.aio-panel{padding:24px 20px}.service-answer{grid-template-columns:1fr}.aio-copy .title{font-size:28px;}.tool-stack-panel{padding:22px 18px}.tool-grid{grid-template-columns:1fr}.tool-card{min-height:auto;}}

/* readability polish: white/blue minimal, but easier to read */
body{color:#10213a;text-rendering:optimizeLegibility;}
.about-lead,.svc-lead,.why-lead,.flow-head p,.faq-copy p,.band-copy p,.mission-copy p,
.insight-preview-head p,.insight-section-head p,.insight-lead p,.insight-card p,.achievement-body p,
.insight-cta-panel p,.knowledge-hero-copy .lead,.knowledge-section li,.knowledge-side-card p,.knowledge-side-card li,
.aio-copy p,.aio-grid span,.service-answer p,.tool-copy p,.cform-rich .form-head p{
  color:#33415c;
  line-height:1.78;
  font-weight:700;
}
.insight-card h3,.achievement-body h3,.knowledge-section h2{line-height:1.34;}
.insight-card p,.achievement-body p{font-size:14.2px;}
.insight-section-head p,.insight-lead p,.about-lead,.svc-lead,.why-lead{font-size:15.4px;}
.knowledge-card-body{padding:22px;}
.achievement-body{min-height:300px;padding:24px;}
.insight-card,.case-archive,.knowledge-taxonomy,.insight-cta-panel{border-color:rgba(14,30,54,.12);}
.case-archive-row b,.knowledge-taxonomy b{color:#263752;}
.eyebrow{font-weight:900;}

/* numeric readability: keep decorative display type away from metrics */
.news-list time,
.tl-date,
.svc-tile-head .no,
#t-svc .svc .no,
.flow-node span,
.model-step span,
.wn,
.insight-mini-grid span,
.insight-card-top span,
.insight-status,
.case-kind,
.case-archive-head span,
.achievement-metric strong,
.achievement-metric span,
.case-archive-row span,
.case-archive-row strong,
.knowledge-meta span,
.knowledge-taxonomy span,
.article-controls button,
.case-controls button,
.showcase-card .status,
.showcase-card.main .ribbon,
.showcase-dots span,
.fbottom,
.fbottom span,
.insight-card-top em{
  font-family:var(--jp),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  font-style:normal!important;
  letter-spacing:0!important;
  font-variant-numeric:proportional-nums;
  font-feature-settings:"palt" 1;
}
.achievement-metric strong{
  font-size:clamp(20px,2.1vw,28px)!important;
  line-height:1.18;
  font-weight:850;
}
.achievement-metric span{
  font-size:12.5px;
  line-height:1.68;
  font-weight:750;
}
.case-archive-row strong{
  font-size:13px!important;
  font-weight:850!important;
}
.case-archive-row span,
.news-list time,
.tl-date,
.svc-tile-head .no,
#t-svc .svc .no,
.flow-node span,
.insight-mini-grid span,
.insight-card-top span,
.insight-status,
.case-kind,
.case-archive-head span,
.knowledge-meta span,
.knowledge-taxonomy span,
.insight-card-top em{
  font-weight:800!important;
}
@media(max-width:620px){.insight-section-head p,.insight-lead p,.about-lead,.svc-lead,.why-lead{font-size:14.6px;line-height:1.75}.insight-card p,.achievement-body p{font-size:13.8px;line-height:1.72}.achievement-body{padding:20px}.knowledge-card-body{padding:20px}}



/* ============ Motion & Asymmetry Pack (2026-06-10) ============ */
/* 1) トップ事業カードのbento化（1枚大＋3枚小） */
@media(min-width:881px){
  .svc-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;grid-template-areas:"a a b" "c d d"!important;}
  .svc-grid .svc:nth-child(1){grid-area:a;}
  .svc-grid .svc:nth-child(2){grid-area:b;}
  .svc-grid .svc:nth-child(3){grid-area:c;}
  .svc-grid .svc:nth-child(4){grid-area:d;}
}
/* 事業カードのやること3点リスト */
.svc-points{list-style:none;margin:14px 0 2px;padding:0;display:grid;gap:8px;}
.svc-points li{position:relative;padding-left:24px;font-size:13.5px;font-weight:650;color:#52637a;line-height:1.6;}
.svc-points li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:8px;border-left:2.5px solid #1FA8E8;border-bottom:2.5px solid #1FA8E8;transform:rotate(-45deg);}
@media(min-width:881px){
  .svc-grid .svc:nth-child(1) .svc-points,.svc-grid .svc:nth-child(4) .svc-points{grid-template-columns:1fr 1fr;column-gap:18px;max-width:560px;}
  .svc-grid .svc:nth-child(1) .body,.svc-grid .svc:nth-child(4) .body{padding-right:170px;}
}
/* 事業カードの透かしイラスト（アンダーレイ） */
.svc{overflow:hidden;}
.svc .svc-ghost{position:absolute;right:-26px;bottom:-30px;width:190px;height:190px;color:#1186c4;opacity:.08;pointer-events:none;z-index:0;transform:rotate(-3deg);transition:opacity .45s ease,transform .6s cubic-bezier(.2,.7,.2,1);}
.svc .svc-ghost svg{width:100%;height:100%;}
.svc:hover .svc-ghost{opacity:.15;transform:rotate(-7deg) scale(1.07);}
.svc .body{position:relative;z-index:1;}
@media(max-width:880px){.svc .svc-ghost{width:150px;height:150px;right:-20px;bottom:-24px;}}
/* 2) セクション重心の左右交互（insightsプレビューを右寄せ） */
@media(min-width:881px){
  .showcase-head{grid-template-columns:minmax(280px,430px) minmax(0,1fr);}
  .showcase-head>div:first-child{grid-column:2;grid-row:1;text-align:right;}
  .showcase-head>p{grid-column:1;grid-row:1;}
}
/* 3) ホバー：上辺アクセント線＋浮き */
.svc,.why-reason,.insight-card,.tool-card{position:relative;}
.svc::before,.why-reason::before,.insight-card::before,.tool-card::before,.flow-node::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,#1FA8E8,#0d7fc4);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1);border-radius:3px 3px 0 0;z-index:3;pointer-events:none;}
.svc:hover::before,.why-reason:hover::before,.insight-card:hover::before,.tool-card:hover::before,.flow-node:hover::before{transform:scaleX(1);}
.why-reason,.insight-card,.tool-card,.flow-node{transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,border-color .4s ease;}
.why-reason:hover,.insight-card:hover,.tool-card:hover{transform:translateY(-6px);box-shadow:0 28px 60px rgba(14,30,54,.13);}
.flow-node:hover{transform:translateY(-5px);}
.model-step{transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease;}
.model-step:hover{transform:translateY(-5px);box-shadow:0 22px 50px rgba(14,30,54,.14);}
.step-b:hover{transform:translateX(-50%) translateY(-5px);}
/* 4) ナビ下線スライド */
header nav.main a:not(.cta){position:relative;}
header nav.main a:not(.cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:2px;background:var(--azure);border-radius:2px;transition:right .3s cubic-bezier(.2,.7,.2,1);}
header nav.main a:not(.cta):hover::after,header nav.main a:not(.cta).active::after{right:0;}
/* 5) カード内画像のホバーズーム */
.insight-card img,.case-logo-box img{transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.insight-card:hover img{transform:scale(1.045);}
.case-logo-box:hover img{transform:scale(1.06);}
/* 6) CTAボタンの磁力感 */
.btn-primary,.nav-cta,.footer-contact{transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s ease,background .2s ease;}
.btn-primary:hover{transform:translateY(-2px);}
@media(prefers-reduced-motion:reduce){
  .svc,.why-reason,.insight-card,.tool-card,.flow-node,.model-step,.btn-primary{transition:none;}
}

/* ============ Carousel arrows v2: 左右オーバーレイ式 ============ */
.article-carousel-head,.case-carousel-head{margin-bottom:0;}
.article-controls,.case-controls{position:absolute;left:-16px;right:-16px;top:44%;transform:translateY(-50%);z-index:6;display:flex;justify-content:space-between;background:none;border:0;box-shadow:none;padding:0;pointer-events:none;}
.article-controls button,.case-controls button{pointer-events:auto;width:54px;height:54px;border-radius:50%;background:#fff;border:1.5px solid rgba(31,168,232,.4);box-shadow:0 16px 38px rgba(14,30,54,.22);color:#0d7fc4;font-size:24px;font-weight:900;}
.article-controls button:hover,.case-controls button:hover{background:#0d7fc4;color:#fff;border-color:#0d7fc4;transform:scale(1.08);}
.article-controls button:disabled,.case-controls button:disabled{opacity:0;pointer-events:none;}
@media(max-width:760px){
  .article-controls,.case-controls{left:-6px;right:-6px;}
  .article-controls button,.case-controls button{width:44px;height:44px;font-size:20px;}
}

/* LINE CTA */
.btn-line{display:inline-flex;align-items:center;gap:9px;background:#06C755;color:#fff;font-weight:700;font-size:15px;padding:15px 28px;border-radius:999px;box-shadow:0 14px 34px rgba(6,199,85,.4);transition:transform .25s ease,background .2s ease;}
.btn-line:hover{background:#05b34c;transform:translateY(-2px);}
.line-band{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border:1.5px solid rgba(6,199,85,.35);border-radius:16px;background:linear-gradient(135deg,#f2fff7,#fff);padding:20px 26px;margin:0 auto 28px;max-width:920px;}
.line-band b{font-size:15px;color:var(--ink);}
.line-band p{font-size:13px;color:var(--sub);margin-top:3px;}
