/* InnovationX renewal — authored for k-innovationx.com */
:root{
  --red:#9c1b14;--ink:#181818;--char:#333;--mid:#3c3c3c;--mute:#686868;
  --teal:#73a9b4;--teal-l:#b3d0d4;--sky:#2fc2e1;--slate:#465464;
  --bg1:#ecf2f6;--bg2:#f5f9fc;--line:#ddd;
  --en:"Jost",sans-serif;
  --jp:"Noto Sans JP",YuGothic,"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  --min:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --inner:62.5vw;
  --ease:cubic-bezier(.65,.05,.36,1);
  --ease2:cubic-bezier(.43,.05,.17,1);
  --arw-w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M8 14h12M15.6 10.3 19.5 14l-3.9 3.7' fill='none' stroke='%23fff'/%3E%3C/svg%3E");
  --arw-m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M8 14h12M15.6 10.3 19.5 14l-3.9 3.7' fill='none' stroke='%233c3c3c'/%3E%3C/svg%3E");
  --arw-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M8 14h12M15.6 10.3 19.5 14l-3.9 3.7' fill='none' stroke='%239c1b14'/%3E%3C/svg%3E");
  --arw-up-w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M14 20V8M10.3 11.6 14 7.9l3.7 3.7' fill='none' stroke='%23fff'/%3E%3C/svg%3E");
  --arw-up-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M14 20V8M10.3 11.6 14 7.9l3.7 3.7' fill='none' stroke='%239c1b14'/%3E%3C/svg%3E");
  --ico-line-w:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 3C6.5 3 2 6.6 2 11c0 3.9 3.5 7.2 8.3 7.9.3.1.8.2.9.5.1.3.1.7 0 1l-.1.9c0 .3-.2 1 .9.6s5.8-3.4 7.9-5.8C21.3 14.5 22 12.8 22 11c0-4.4-4.5-8-10-8z'/%3E%3C/svg%3E");
  --ico-line-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239c1b14'%3E%3Cpath d='M12 3C6.5 3 2 6.6 2 11c0 3.9 3.5 7.2 8.3 7.9.3.1.8.2.9.5.1.3.1.7 0 1l-.1.9c0 .3-.2 1 .9.6s5.8-3.4 7.9-5.8C21.3 14.5 22 12.8 22 11c0-4.4-4.5-8-10-8z'/%3E%3C/svg%3E");
  --arw-g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Cpath d='M8 14h12M15.6 10.3 19.5 14l-3.9 3.7' fill='none' stroke='%2306c755'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%;scroll-padding-top:110px}
body{margin:0;position:relative;padding-top:176px;font-family:var(--jp);font-size:1rem;line-height:1.75;letter-spacing:.1em;color:var(--ink);background:#fff;font-weight:500;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;letter-spacing:inherit}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,h4,p,figure,dl,dd,blockquote{margin:0}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.font-en{font-family:var(--en);font-weight:500;letter-spacing:0}
.font-jp{font-family:var(--min);font-weight:700}
.inner{width:var(--inner);margin-inline:auto}
.skip{position:fixed;left:8px;top:-60px;z-index:100000;padding:.6em 1em;background:#fff;border:1px solid var(--ink)}
.skip:focus{top:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.container{position:relative;overflow-x:clip}
.pc-none{display:none}
.br-sp{display:none}
/* WordPress core block styles: start from a neutral base; the components below set their own */
.wp-block-image,.wp-block-table,.wp-block-quote,.wp-block-details{margin:0}
.wp-block-image figcaption,.wp-block-table figcaption{margin:0}
.wp-block-table thead{border-bottom:0}.wp-block-table tfoot{border-top:0}
.wp-block-table td,.wp-block-table th{border:0;padding:0}

/* ---- page transition ---- */
.loading-wrapper,.loading-fadeout{position:fixed;inset:0;width:100vw;height:100vh;background:var(--bg1);z-index:999999;pointer-events:none;transition:all .3s cubic-bezier(.51,.01,0,.98)}
.loading-wrapper{transform:translateX(0)}
.is-loading .loading-wrapper{transform:translateX(-100vw)}
.loading-fadeout{transform:translateX(100vw)}
.is-fadeout .loading-fadeout{transform:translateX(0)}
html:not(.js-load) .loading-wrapper{display:none}

/* ---- vertical guide lines ---- */
.bg-line{position:absolute;top:-176px;bottom:0;left:50%;width:var(--inner);transform:translateX(-50%);z-index:2;border-inline:1px solid #8d8d8d;opacity:.3;pointer-events:none}
.bg-line::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#8d8d8d}

/* ---- diagonal decorations ---- */
.deco-line{position:absolute!important;z-index:1;display:block;width:520px;height:496px;clip-path:polygon(95% 0,100% 0,5% 100%,0 100%);opacity:.2;overflow:hidden;pointer-events:none}
.deco-line.sm{width:378px;height:364px}
.deco-line.thin{clip-path:polygon(99% 0,100% 0,1% 100%,0 100%);opacity:.05}
.deco-line.reverse{transform:scaleX(-1)}
.deco-line::before{content:"";position:absolute;inset:0;background:var(--slate);transform:translateY(100%)}
.deco-line.wh::before{background:var(--teal-l)}
.deco-line.bl::before{background:var(--sky)}
.show .deco-line::before{animation:deco_line cubic-bezier(.86,0,.07,1) 6s infinite}
.show .deco-line.stop::before,.is-loading .hero .deco-line.stop::before,.is-loading .page_ttl .deco-line.stop::before{animation:deco_line_stop cubic-bezier(.86,0,.07,1) 1.5s forwards}
.is-loading .hero .deco-line.stop::before,.is-loading .page_ttl .deco-line.stop::before{animation-delay:1s}
html:not(.js) .deco-line::before{transform:none}
.deco-red{position:absolute!important;width:4000px;height:4000px;border-top:7px solid var(--red);border-right:7px solid var(--red);transform:translateX(-100px) rotate(45deg);mix-blend-mode:multiply;transition:all .5s cubic-bezier(.19,1,.22,1);opacity:0;pointer-events:none}
.show .deco-red{transform:translateX(0) rotate(45deg);opacity:1}
.is-loading .home_pickup:not(.voice) .deco-red,.is-loading .page_ttl .deco-red{animation:red cubic-bezier(.19,1,.22,1) .9s forwards;animation-delay:1.7s}
html:not(.js) .deco-red{opacity:1;transform:rotate(45deg)}
@keyframes deco_line{0%{transform:translateY(-100%)}25%{transform:translateY(100%)}100%{transform:translateY(100%)}}
@keyframes deco_line_stop{0%{transform:translateY(-100%)}50%{transform:translateY(100%)}75%{transform:translateY(100%)}75.1%{transform:translateY(-100%)}100%{transform:translateY(0)}}
@keyframes slidein{0%{transform:translateX(-100px);opacity:0}100%{transform:translateX(0);opacity:1}}
@keyframes hero_slide_lft{0%{clip-path:polygon(0 0,0 0,0 100%,0 100%)}100%{clip-path:polygon(0 0,61% 0,100% 100%,0 100%)}}
@keyframes hero_slide_rgt{0%{clip-path:polygon(0 0,0 0,31% 100%,31% 100%)}100%{clip-path:polygon(0 0,63% 0,94% 100%,31% 100%)}}
@keyframes red{0%{transform:translateX(-100px) rotate(45deg);opacity:1}100%{transform:translateX(0) rotate(45deg);opacity:1}}
@keyframes header{0%{transform:translateY(-100%)}100%{transform:translateY(0)}}
@keyframes gnav_bg{0%{height:0}to{height:100%}}
@keyframes rotate_anime{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
@keyframes hero_anime{0%{-webkit-mask-position:-100% 0;mask-position:-100% 0}100%{-webkit-mask-position:100% 0;mask-position:100% 0}}
@keyframes slide{0%{transform:translateX(0)}to{transform:translateX(100%)}}

/* ---- image reveal ---- */
.img_anime{position:relative;display:block;overflow:hidden}
.img_anime::before{content:"";position:absolute;inset:0;z-index:10;background:linear-gradient(114deg,rgba(156,27,20,0),rgba(156,27,20,.8) 30%,rgba(156,27,20,.8) 80%,rgba(156,27,20,0) 110%);opacity:.85;pointer-events:none;transform:translateX(-100%);transition:all .4s ease-out}
.img_anime.active::before{animation:slide 1s var(--ease2) .25s forwards;transform:translateX(0)}
.js .img_anime img,.js .img_anime>.viz{clip-path:inset(0 100% 0 0);transition:clip-path .8s var(--ease2)}
.js .img_anime.active img,.js .img_anime.active>.viz{clip-path:inset(0 0 0 0)}

/* ---- headings ---- */
.ttl-01{margin-bottom:4em;font-size:1rem;line-height:1.4;font-weight:700;letter-spacing:.1em;position:relative;z-index:3}
.ttl-01 .en{display:inline-block;margin-bottom:1.2em;font-size:clamp(1.05rem,1.56vw,1.9rem);line-height:1.5;font-weight:500;letter-spacing:0;font-family:var(--en)}
.ttl-01 .en::before{content:"";display:inline-block;width:1.125em;height:1em;margin-right:.25em;background:var(--red);clip-path:polygon(88% 0,100% 0,12% 100%,0 100%);transform:translateY(.25em)}
.ttl-01 .jp{display:block;font-family:var(--min);font-weight:700;font-size:clamp(1.5rem,2.5vw,3rem);line-height:1.5;letter-spacing:.05em;font-style:italic}
.ttl-01.ctr{text-align:center}
.txt-wh{color:#fff}
.txt{line-height:2}

/* ---- buttons ---- */
.btn{display:block}
.btn a,.btn button{position:relative;z-index:1;display:block;width:100%;max-width:320px;padding:16px 56px;border-radius:100px;color:var(--mid);text-align:center;background:#fff;border:1px solid var(--mid);overflow:hidden;font-weight:500;transition:color .4s}
.btn.ctr a,.btn.ctr button{margin-inline:auto}
.btn a::before,.btn button::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--mid);border-radius:50px;transform:scaleX(0);transform-origin:100% 50%;transition:transform .4s ease}
.btn a:hover,.btn button:hover{color:#fff}
.btn a:hover::before,.btn button:hover::before{transform:scaleX(1);transform-origin:0 50%}
.btn a::after,.btn button::after{content:"";position:absolute;top:0;bottom:0;right:16px;margin:auto;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--mid) var(--arw-w) center/28px 28px no-repeat;transition:all .4s ease-out}
.btn a:hover::after,.btn button:hover::after{background-color:#fff;background-image:var(--arw-m)}
.btn.red a,.btn.red button{color:#fff;background:var(--red);border-color:var(--red)}
.btn.red a::before,.btn.red button::before{background:#fff}
.btn.red a:hover,.btn.red button:hover{color:var(--red)}
.btn.red a::after,.btn.red button::after{background-color:#fff;background-image:var(--arw-r)}
.btn.red a:hover::after,.btn.red button:hover::after{background-color:var(--red);background-image:var(--arw-w)}
.btn.wh a{color:var(--mid)}
.link-ext::after{content:"";display:inline-block;width:.75em;height:.75em;margin-left:.45em;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:translateY(-.05em)}

/* ---- header ---- */
.header{position:fixed;top:0;left:0;right:0;height:120px;z-index:9990;transition:all .4s ease-out}
.header::before{content:"";position:absolute;top:0;left:0;width:42.5vw;height:6px;background:var(--red);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 100%,0 100%)}
.js-load .home .header{transform:translateY(-100%)}
.js-load .home.is-loading .header{animation:header cubic-bezier(.33,1,.68,1) 1s forwards;animation-delay:3s}
.header.header-sm,.header.mega-open{height:96px;background:#fff}
.header>.inner{width:100%;height:100%;padding-left:1vw;padding-right:.75vw;display:flex;align-items:center;justify-content:space-between}
.header--logo{font-weight:700}
.header--logo a{display:block;transition:opacity .3s}
.header--logo a:hover{opacity:.7}
.header--logo img{width:auto;height:92px;transition:height .4s ease-out}
.header-sm .header--logo img,.mega-open .header--logo img{height:80px}
.gnav{display:flex;align-items:center}
.gnav--menu{display:flex;align-items:center}
.gnav--menu>li{margin-left:1.8vw;letter-spacing:0}
.gnav--link{display:block;padding:.25rem 0;font-family:var(--en);font-weight:500;font-size:.875rem;line-height:1.75;text-transform:uppercase;letter-spacing:0;border-bottom:2px solid transparent;transition:all .3s;white-space:nowrap}
.gnav--link:hover,.gnav--link[aria-current=page],.gnav--link.current{color:var(--red);border-color:var(--red)}
.gnav--toggle::after{content:"";display:inline-block;width:6px;height:6px;margin-left:.45em;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .3s}
.gnav--toggle[aria-expanded=true]{color:var(--red);border-color:var(--red)}
.gnav--toggle[aria-expanded=true]::after{transform:translateY(0) rotate(-135deg)}
.gnav--fav{margin-left:1.88vw}
.gnav--fav a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid #a5a5a5;border-radius:50%;background:transparent;transition:all .3s}
.gnav--fav a:hover{border-color:var(--red)}
.gnav--fav svg{width:24px;fill:#a5a5a5;transition:fill .3s}
.gnav--fav a:hover svg{fill:var(--red)}
.gnav--scout a{display:block;padding:15px 32px;margin-left:1.7vw;font-size:1rem;border-radius:100px;color:#fff;background:var(--red);border:1px solid var(--red);font-weight:400;white-space:nowrap;transition:all .3s}
.gnav--scout a:hover{color:var(--red);background:#fff}

/* mega menu */
.mega{position:fixed;left:0;right:0;top:96px;z-index:9980;background:#fff;box-shadow:0 30px 40px -24px rgba(0,0,0,.2);visibility:hidden;clip-path:polygon(0 0,0 0,0 100%,0 100%);transition:clip-path .55s cubic-bezier(1,0,0,1),visibility 0s linear .55s;max-height:calc(100vh - 96px);overflow:auto}
.mega.open{visibility:visible;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transition:clip-path .55s cubic-bezier(1,0,0,1),visibility 0s}
.mega_in{position:relative;display:grid;grid-template-columns:minmax(220px,17vw) 1fr;gap:3.2vw;padding:36px 3.2vw 40px}
.mega_lead{position:relative;z-index:2}
.mega_lead .en{display:block;font-family:var(--en);font-size:clamp(2.4rem,4vw,4.2rem);font-weight:500;letter-spacing:0;line-height:1}
.mega_lead .jp{display:block;margin:.8em 0 1.5em;font-family:var(--min);font-weight:700;font-style:italic;font-size:1.15rem;letter-spacing:.05em;line-height:1.6}
.mega_lead .btn a{padding:12px 48px 12px 20px;font-size:.875rem}
.mega_groups{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-flow:row dense;gap:28px 24px}
.mega_group.c4{grid-column:span 4}.mega_group.c3{grid-column:span 3}.mega_group.c2{grid-column:span 2}.mega_group.c1{grid-column:span 1}
.mega_group.c4 ul{grid-template-columns:repeat(4,1fr)}
.mega_group h3,.mega_group .mega_ttl{margin-top:0;margin-bottom:.9em;padding-bottom:.55em;border-bottom:1px solid var(--line);font-family:var(--en);font-weight:500;font-size:.95rem;letter-spacing:.04em}
.mega_group h3::before,.mega_group .mega_ttl::before{content:"";display:inline-block;width:1em;height:.9em;margin-right:.3em;background:var(--red);clip-path:polygon(88% 0,100% 0,12% 100%,0 100%);transform:translateY(.12em)}
.mega_group ul{display:grid;gap:24px}
.mega_group.c3 ul{grid-template-columns:repeat(3,1fr)}
.mega_group.c2 ul{grid-template-columns:repeat(2,1fr)}
.mega_group.c1 ul{grid-template-columns:1fr}
.mega_card{display:block}
.mega_card .imgarea{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:var(--bg1)}
.mega_card .imgarea img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease-out}
.mega_card .imgarea::after{content:"";position:absolute;inset:0;background:var(--red);opacity:0;transition:opacity .2s}
.mega_card:hover .imgarea img{transform:scale(1.05)}
.mega_card:hover .imgarea::after{opacity:.25}
.mega_card .name{display:block;margin-top:.6em;font-size:1rem;font-weight:500;letter-spacing:.04em;line-height:1.5}
.mega_card:hover .name{color:var(--red)}
.mega_card .lead{display:block;margin-top:.2em;font-size:.8125rem;line-height:1.6;color:var(--mute);letter-spacing:.02em}
.mega-veil{position:fixed;inset:0;z-index:9970;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .4s}
.mega-veil.open{opacity:1;pointer-events:auto}

/* mobile menu */
.gnav_btn{display:none;position:fixed;top:0;right:0;width:64px;height:64px;border-left:1px solid #e7e5e4;z-index:9999;align-items:center;justify-content:center}
.gnav_btn--lines{position:relative;display:block;width:24px;height:16px}
.gnav_btn--lines span{position:absolute;left:0;width:100%;height:2px;background:var(--mid);transition:all .4s ease-out}
.gnav_btn--lines span:nth-of-type(1){top:0}
.gnav_btn--lines span:nth-of-type(2){top:7px}
.gnav_btn--lines span:nth-of-type(3){bottom:0}
.gnav_btn.active{background:#333;border-color:#333}
.gnav_btn.active .gnav_btn--lines span{background:#fff}
.gnav_btn.active .gnav_btn--lines span:nth-of-type(1){transform:translateY(7px) rotate(-45deg)}
.gnav_btn.active .gnav_btn--lines span:nth-of-type(2){opacity:0}
.gnav_btn.active .gnav_btn--lines span:nth-of-type(3){transform:translateY(-7px) rotate(45deg)}
.spnav{position:fixed;inset:0;z-index:9995;visibility:hidden;color:#fff}
.spnav.open{visibility:visible}
.spnav_bg{position:absolute;inset:0;overflow:hidden}
.spnav_bg .bg{position:absolute;top:0;width:80vw;height:0;background:#333;transform:skewX(45deg);transform-origin:0 0}
.spnav.open .bg{animation:gnav_bg 1s var(--ease2) forwards}
.spnav_bg .bg01{left:-216vw;animation-delay:.15s!important}
.spnav_bg .bg02{left:-136.3vw}
.spnav_bg .bg03{left:-56.6vw;animation-delay:.05s!important}
.spnav_bg .bg04{left:23vw;animation-delay:.1s!important}
.spnav_body{position:absolute;inset:0;padding:84px 8vw 40px;overflow:auto;opacity:0;transition:opacity .3s}
.spnav.open .spnav_body{opacity:1;transition:opacity .4s .55s}
.spnav_list>li{border-bottom:1px solid rgba(255,255,255,.2)}
.spnav_list a,.spnav_list button{display:flex;width:100%;align-items:baseline;gap:.9em;padding:.95em 0;font-size:.95rem;text-align:left}
.spnav_list .en{font-family:var(--en);font-weight:500;font-size:1.2rem;letter-spacing:0}
.spnav_list .jp{font-size:.72rem;opacity:.7;letter-spacing:.05em}
.spnav_list button .go{margin-left:auto}
.spnav_back{display:block;margin-bottom:1em;font-size:.85rem}
.spnav_sub[hidden],.spnav_main[hidden]{display:none}
.spnav_sub .spnav_ttl{margin-top:0;margin-bottom:.6em;font-family:var(--en);font-weight:500;font-size:1.8rem;letter-spacing:0}
.spnav_sub ul{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px}
.spnav_sub img{width:100%;aspect-ratio:16/10;object-fit:cover}
.spnav_sub .name{display:block;margin-top:.5em;font-size:.75rem;line-height:1.5;letter-spacing:.03em}
.spnav .btn{margin-top:28px}
.spnav .btn a{color:#fff;background:var(--red);border-color:var(--red);max-width:100%}

/* ---- fixed circle ---- */
.fixed_search{position:fixed;right:56px;bottom:48px;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;width:144px;height:144px;color:#fff;font-weight:400;font-size:.875rem;background:var(--ink);border:2px solid var(--ink);border-radius:50%;text-align:center;transition:all .4s ease-out;letter-spacing:.05em}
.fixed_search:hover{background:var(--red);border-color:var(--red)}
.fixed_search.none{opacity:0;pointer-events:none}
.fixed_search.sp{display:none}
.fixed_scout{display:none;position:fixed;left:3vw;bottom:14px;z-index:999;width:calc(100% - 136px);transition:all .4s ease-out}
.fixed_scout.none{opacity:0;pointer-events:none}
.fixed_scout a{display:block;padding:15px 0;border-radius:100px;background:var(--red);color:#fff;text-align:center;font-size:.9375rem}
.gnav_btn .txt{display:none}
.fixed_search svg.ico{width:1.75rem;margin-bottom:.45em;fill:none;stroke:#fff;stroke-width:1.4}
.fixed_search .ring{position:absolute;inset:-20px;z-index:-1;width:auto;max-width:none;animation:rotate_anime 40s linear infinite}
.fixed_search .ring text{font-family:var(--en);font-size:12.6px;letter-spacing:.14em;fill:var(--ink);font-weight:500}

/* ---- hero ---- */
.hero{position:relative;padding-bottom:56px;z-index:10}
.hero_slide{position:absolute;z-index:-1;overflow:hidden}
.hero_slide.lft{top:0;right:35.52vw;width:1236px;height:477px;clip-path:polygon(0 0,61% 0,100% 100%,0 100%)}
.hero_slide.rgt{left:50%;bottom:-68px;width:1142px;height:343px;clip-path:polygon(0 0,63% 0,94% 100%,31% 100%)}
.js-load .hero_slide.lft{clip-path:polygon(0 0,0 0,0 100%,0 100%)}
.js-load .hero_slide.rgt{clip-path:polygon(0 0,0 0,31% 100%,31% 100%)}
.is-loading .hero_slide.lft{animation:hero_slide_lft cubic-bezier(1,0,0,1) 1s forwards;animation-delay:2.2s}
.is-loading .hero_slide.rgt{animation:hero_slide_rgt cubic-bezier(1,0,0,1) 1s forwards;animation-delay:2.2s}
.hero_slide .s img{width:100%;height:100%;object-fit:cover}
.hero_slide .s{margin:0;position:absolute;inset:0;background-size:cover;background-position:center;-webkit-mask-image:linear-gradient(225deg,#000 50%,transparent 50%);mask-image:linear-gradient(225deg,#000 50%,transparent 50%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-mask-position:-100% 0;mask-position:-100% 0;z-index:0}
.hero_slide.lft .s::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,0) 44%,rgba(255,255,255,.7) 76%)}
.hero_slide .s.prev{-webkit-mask-position:100% 0;mask-position:100% 0;z-index:1}
.hero_slide .s.cur{animation:hero_anime 1s forwards;z-index:2}
html:not(.js) .hero_slide .s:first-child{-webkit-mask-position:100% 0;mask-position:100% 0}
.hero_txtarea{position:relative;z-index:10}
.js-load .hero_txtarea{transform:translateX(-100px);opacity:0}
.is-loading .hero_txtarea{animation:slidein cubic-bezier(1,0,0,1) .5s forwards;animation-delay:2.05s}
.hero--catch{padding-top:72px;margin-bottom:40px;margin-right:14.3%;margin-left:auto;text-align:right;font-family:var(--min);font-weight:700;font-size:min(70px,4.76vw);line-height:1.4;letter-spacing:.07em;font-style:italic}
.hero--en{position:relative;display:block;z-index:10;margin-left:3.8vw;font-family:var(--en);font-weight:500;letter-spacing:0}
.hero--en.lg{font-size:15.2vw;line-height:.88;height:14.7vw}
@media (max-width:1500px){
  .hero--catch{margin-right:3%}
  .hero--en.lg{font-size:18.2vw;height:17.6vw}
}
@media (max-width:1300px){
  .hero_slide.lft{right:20%}
}
.hero--en.sm{flex:none;margin-right:1.5rem;font-size:min(120px,8.2vw);line-height:.92;letter-spacing:-.01em;font-weight:700}
.hero--row{display:flex;align-items:center}
.hero--side{position:relative;z-index:10}
.hero--txt{font-size:1.125rem;line-height:2.3;letter-spacing:.09em}
.hero--side .btn{margin-top:.6em}
.hero--side .btn a{max-width:280px}
.hero .copyright{position:absolute;top:38%;right:-4.8em;height:1em;transform:rotate(90deg);pointer-events:none;font-family:var(--en);font-size:13px;color:#565656;letter-spacing:.05em;white-space:nowrap}
.hero .line01,.page_ttl .line01{top:-176px;left:-100px;z-index:-5}
.hero .line02,.page_ttl .line02{top:-320px;right:48%;opacity:.25}
.hero .line03,.page_ttl .line03{top:50px;left:52%}
.hero .line04,.page_ttl .line04{top:-68px;left:75%}
.hero .line05,.page_ttl .line05{top:412px;left:81%}
.hero .line06,.page_ttl .line06{top:109px;right:86%}

/* ---- approach (mission) ---- */
.home_mission{position:relative;padding-bottom:204px;z-index:5}
.blind{position:relative;margin-bottom:-75vh;height:100vh;overflow:hidden;transition:all .3s var(--ease);z-index:3;pointer-events:none}
.blind.active{opacity:0}
.blind_wrap{width:250vw;height:300vh;background:var(--ink);font-size:0;transform:translate(-43%) rotate(-45deg)}
.blind_bg{width:100%;height:20%;position:relative;background:#fff;overflow:hidden}
.home_mission .txtarea{position:relative;z-index:4}
.js .home_mission .txtarea{opacity:0;transition:all .3s var(--ease)}
.js .home_mission .txtarea.active{opacity:1}
.home_mission .ttl-01{margin-top:200px}
.home_mission .ttl-01 .en{margin-bottom:2em}
.home_mission .txt{font-size:clamp(1rem,1.25rem,1.25rem);line-height:2.5;letter-spacing:.1em;text-align:center;font-weight:500}
.home_mission .txt+.txt{margin-top:2.5em}
.home_mission .img{position:absolute;margin:0;z-index:5}
.home_mission .img img{width:100%;height:100%;object-fit:cover}
.home_mission .img01{top:-56px;right:calc(50% + 500px);width:min(505px,calc(50vw - 500px));height:666px}
.home_mission .img02{right:calc(50% + 420px);bottom:-100px;width:min(438px,calc(50vw - 420px));height:298px;z-index:6}
.home_mission .img03{top:-27px;left:calc(50% + 455px);width:min(405px,calc(50vw - 455px));height:340px;z-index:6}
.home_mission .img04{bottom:-148px;left:calc(50% + 500px);width:min(465px,calc(50vw - 500px));height:666px}
.pos_rel{position:relative}
.mt12{margin-top:12px}.mt2e{margin-top:2em}.mt24e{margin-top:2.4em}.mt25e{margin-top:2.5em}.ctr-txt{text-align:center}
.home_job.pt110{padding-top:110px}
.home_mission .line01{top:210px;right:57%;opacity:.05}
.home_mission .line02{top:-180px;left:43%}
.home_mission .line03{top:-122px;left:80%}
.home_mission .line04{right:85%;bottom:-200px}
.home_mission .line05{bottom:-250px;left:60%}
.home_mission .deco-red{left:-2400px;bottom:800px;z-index:0;width:2400px;height:2400px;border-top:none;transform-origin:left bottom}

/* ---- service (feature) ---- */
.home_feature{position:relative;z-index:10;background:var(--red);color:#fff}
.home_feature .bg-line{border-color:#fff;opacity:.14;top:0}
.home_feature .bg-line::before{background:#fff}
.feature_merit{position:relative;z-index:10;padding-top:160px;padding-bottom:64px}
.feature_merit .img{position:relative;z-index:10;clip-path:polygon(0 0,70% 0,100% 68%,100% 100%,23.5% 100%,0 54%)}
.feature_merit .img img{width:100%;aspect-ratio:1470/940;object-fit:cover}
.feature_merit .ttl{position:relative;z-index:10}
.feature_merit .ttl .en{display:block;margin-top:-.35em;margin-left:3%;font-family:var(--en);font-size:min(200px,13.6vw);font-weight:500;line-height:1;letter-spacing:0}
.feature_merit .ttl .jp{display:block;margin-top:.25em;margin-bottom:.75em;font-family:var(--min);font-weight:700;font-size:clamp(1.6rem,3rem,3rem);letter-spacing:.1em;font-style:italic;line-height:1.4}
.feature_merit .ttl .jp,.feature_inner{width:81.5%;margin-left:auto}
.feature_inner{position:relative;z-index:10;padding-right:3%}
.feature_ttl{display:inline-block;margin-bottom:1.5em;padding:1.125rem 1.5rem;background:var(--ink);font-family:var(--min);font-size:1.625rem;font-weight:700;letter-spacing:.1em;line-height:1;font-style:italic}
.feature_list{column-count:2;font-size:1.125rem}
.feature_list li{position:relative;break-inside:avoid;padding-bottom:1.75em;padding-right:5%;letter-spacing:.01em;overflow:hidden;font-weight:400}
.js .feature_list li::before{content:"";position:absolute;top:0;left:0;z-index:10;background:var(--red);width:100%;height:100%;transition:all cubic-bezier(.39,.575,.565,1) 1s}
.js .feature_list.active li::before{left:100%}
.feature_list.active li:nth-child(2)::before{transition-delay:.1s}
.feature_list.active li:nth-child(3)::before{transition-delay:.2s}
.feature_list.active li:nth-child(4)::before{transition-delay:.3s}
.feature_list.active li:nth-child(5)::before{transition-delay:.4s}
.feature_list.active li:nth-child(6)::before{transition-delay:.5s}
.feature_list.active li:nth-child(7)::before{transition-delay:.6s}
.feature_list a{position:relative;display:block;padding-left:58px;padding-top:8px;min-height:46px;transition:opacity .3s}
.feature_list a:hover{opacity:.72}
.feature_list .num{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;color:var(--red);background:#fff;font-family:var(--en);font-size:1.25rem;line-height:1;letter-spacing:-.05em;font-weight:600}
.feature_list .nm{display:block;font-weight:500;letter-spacing:.06em;line-height:1.5}
.feature_list .ld{display:block;margin-top:.2em;font-size:.9rem;line-height:1.7;opacity:.85;letter-spacing:.04em}
.home_feature .line01{top:-420px;right:70%}
.home_feature .line03{top:210px;left:52px}
.home_feature .line04{top:-106px;right:-10%}
.home_feature .deco-red{bottom:-300px;right:-100px;width:2000px;height:2000px;z-index:2;border-right:none;mix-blend-mode:normal}

/* ---- service panels (job) ---- */
.home_job{position:relative;z-index:11;padding-top:170px;padding-bottom:88px;overflow:hidden}
.home_job::before{content:"";position:absolute;top:0;bottom:0;right:0;z-index:4;width:2%;background:var(--red)}
.home_job::after{content:"";position:absolute;bottom:0;left:0;right:0;z-index:1;height:30%;background:var(--teal)}
.home_job>*{position:relative;z-index:5}
.home_job.top{padding-top:0}
.home_job.top .job_list:first-of-type{margin-top:0}
.home_job .ttl-01{margin-bottom:3em}
.txt-lg{font-size:1.25rem}
.scroll-deco{position:absolute!important;top:230px;left:0;width:100vw;z-index:0!important;white-space:nowrap;font-family:var(--en);font-weight:500;font-size:300px;letter-spacing:0;line-height:1;color:var(--ink);opacity:.045;pointer-events:none}
.scroll-deco span{display:inline-block;padding-right:.25em}
.job_list{display:flex;margin-top:88px;margin-right:6.3%;margin-bottom:0}
.job_list.second{margin-top:0}
.job_list .item{position:relative;width:25%;height:714px;overflow:hidden;transition:all .3s var(--ease);display:flex;align-items:center;color:#fff}
.job_list .item>.bg{position:absolute;inset:0;z-index:-1;margin:0}
.job_list .item>.bg img{width:100%;height:100%;object-fit:cover}
.job_list .item>.bg::after{content:"";position:absolute;inset:0;background:#000;opacity:.5;transition:all .4s ease-out;pointer-events:none}
.job_list .item:hover>.bg::after,.job_list .item:focus-within>.bg::after{opacity:.2}
.job_list .link::after{content:"";position:absolute;inset:0;z-index:12}
.job_list .link:focus-visible{outline:0}
.job_list .item:has(.link:focus-visible){outline:2px solid #fff;outline-offset:-6px}
.job_list.second{margin-top:0}
.job_list .txtarea{position:static;margin-left:10%;width:max-content;max-width:90%;transition:all .4s ease-out}
@media (hover:hover) and (min-width:1081px){
  .job_list:hover .item{width:5%}
  .job_list:hover .item .txtarea{opacity:0}
  .job_list .item:hover{width:90%!important}
  .job_list .item:hover .txtarea{opacity:1}
}
.job_list .gotxt{transition:all .3s var(--ease)}

.job_list .num{display:block;font-family:var(--en);font-size:1rem;line-height:3;letter-spacing:0;font-weight:700;margin-top:12px}
.job_list .ttl{display:block;margin-bottom:1em;font-size:1.25rem;line-height:3;font-weight:700}
.job_list .en{display:block;margin-bottom:3rem;font-family:var(--en);font-weight:500;font-size:min(4rem,3vw);letter-spacing:-.02em;line-height:1.03}
.job_list .go{display:flex;align-items:center}
.job_list .gotxt{max-width:0;white-space:nowrap;overflow:hidden;transition:all .3s var(--ease);font-size:1rem}
.job_list .item:hover .gotxt,.job_list .item:focus-within .gotxt{max-width:100%;padding-right:1.5em}
.a-circle{position:relative;display:block;flex:none;width:108px;height:108px;border:1px solid #fff;border-radius:50%;overflow:hidden;transition:all .3s var(--ease)}
.a-circle .ar{position:absolute;inset:0;display:block;font-size:0;transition:transform .3s var(--ease)}
.a-circle .ar::before{content:"";position:absolute;top:0;bottom:0;right:calc(50% - 6px);margin:auto;width:8px;height:8px;border-top:1px solid #fff;border-right:1px solid #fff;transform:rotate(45deg)}
.a-circle .ar::after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;margin:auto;width:12px;height:0;border-top:1px solid #fff}
.a-circle .ar+.ar{transform:translateX(-100%)}
.job_list .item:hover .a-circle,.job_list .item:focus-within .a-circle{background:#fff}
.job_list .item:hover .a-circle .ar,.job_list .item:focus-within .a-circle .ar{filter:invert(1);transform:translateX(100%)}
.job_list .item:hover .a-circle .ar+.ar,.job_list .item:focus-within .a-circle .ar+.ar{transform:translateX(0)}
.home_job .line02{top:448px;right:57%}
.home_job .line03{top:74px;left:42%}
.home_job .line04{top:134px;right:-130px}
.home_job .deco-red{top:-140px;right:-100px;width:1600px;height:1600px;z-index:2;border-top:none;transform-origin:right top}

/* ---- works (advise) ---- */
.home_advise{position:relative;padding-top:120px;padding-bottom:104px;z-index:5;overflow:hidden}
.home_advise::before{content:"";position:absolute;top:0;bottom:0;left:0;width:2%;background:var(--red)}
.home_advise>*{position:relative;z-index:5}
.home_advise .ttl-01{margin-bottom:2rem}
.home_advise .txt{margin-bottom:48px;line-height:2}
.home_advise .sub{margin-bottom:1.75em;font-size:1.25rem;text-align:center}
.home_advise .deco{padding-right:1vw;margin-bottom:3.5rem;font-family:var(--en);font-weight:500;font-size:9vw;text-align:right;letter-spacing:-.01em;line-height:1;color:var(--red);white-space:nowrap}
.gallery{overflow:hidden;padding-block:4px}
.gallery_track{display:flex;width:max-content;will-change:transform}
.gallery_item{position:relative;flex:none;width:calc(100vw/3.05);padding-inline:1rem}
.gallery_item .im{display:block;overflow:hidden;aspect-ratio:16/9;background:var(--red)}
.gallery_item .im a{display:block;height:100%}
.gallery_item .im a::after{content:"";position:absolute;inset:0;z-index:2}
.gallery_item img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease-out,opacity .2s}
.gallery_item:hover img{transform:scale(1.05);opacity:.8}
.gallery_item .ty{display:block;margin-top:.9em;font-family:var(--en);font-size:.8125rem;color:var(--red);letter-spacing:.02em}
.gallery_item .nm{display:block;margin-top:.2em;font-size:.95rem;font-weight:500;line-height:1.6;letter-spacing:.05em}
.gallery_ctrl{display:flex;justify-content:center;align-items:center;gap:12px;margin:28px 0 44px}
.gallery_ctrl button{width:52px;height:52px;border:1px solid var(--mid);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--en);transition:all .3s;background:#fff}
.gallery_ctrl button:hover{background:var(--mid);color:#fff}
.gallery_ctrl .pause{width:auto;padding:0 1.5em;border-radius:100px;font-family:var(--jp);font-size:.8125rem}
.home_advise .line01{top:326px;right:80%}
.home_advise .line03{top:72px;left:43%}
.home_advise .line04{top:132px;left:80%}

/* ---- voice (pickup) ---- */
.home_pickup{position:relative;padding-top:56px;background:var(--red);color:#fff;z-index:5}
.home_pickup.voice{overflow:hidden}
.fv_strip{height:112px;padding:0}
.home_pickup .inner{width:84.9vw;max-width:1630px;position:relative;z-index:5}
.home_pickup .ttl{display:flex;align-items:center;justify-content:center;margin-bottom:1rem;font-weight:500}
.home_pickup .ttl .en{font-family:var(--en);font-size:3.75rem;line-height:1;letter-spacing:.02em;white-space:nowrap}
.home_pickup .ttl .jp{margin-left:1em;font-size:1.25rem;line-height:1;letter-spacing:.1em}
.home_pickup .lead{text-align:center;margin-bottom:1.75rem;font-family:var(--min);font-weight:700;font-style:italic;font-size:1.25rem}
.voice_box{padding:20px 6.6%;background:#f7f7f7;color:var(--ink);border-radius:6px 6px 0 0}
.voice_row{display:flex;align-items:center;gap:1.75rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.voice_row:last-child{border-bottom:0}
.voice_row .tag{flex:none;width:200px;padding:.7em .5em;border:1px solid var(--ink);text-align:center;font-size:.75rem;line-height:1.4;background:#fff}
.voice_row blockquote{flex:1;font-size:1rem;font-weight:500;line-height:1.95;letter-spacing:.06em}
.voice_row .stars{flex:none;color:#d4a017;letter-spacing:.08em;font-family:var(--en);font-size:.8125rem;white-space:nowrap}
.home_pickup .after{padding:30px 0 56px;background:var(--red)}
.home_pickup .deco-red{top:-400px;right:180px;z-index:-10;width:2000px;height:1000px;transform-origin:right top}
.home_pickup.voice .deco-red{z-index:0;border-color:#6d120c;mix-blend-mode:normal}

/* ---- plan ---- */
.home_plan{position:relative;padding-top:110px;padding-bottom:110px;background:var(--bg2);z-index:5;overflow:hidden}
.home_plan>*{position:relative;z-index:5}
.plan_scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;box-shadow:7px 7px 30px rgba(0,0,0,.06)}
.plan_hint{display:none;margin-bottom:.6em;font-size:.75rem;color:var(--mute)}
.plan_table{margin:0}
.plan_table table{width:100%;min-width:760px;border-collapse:collapse;font-size:.9375rem;letter-spacing:.04em}
.plan_table th,.plan_table td{padding:1.05em .9em;text-align:center;border-bottom:1px solid var(--line);border-left:1px solid var(--line);line-height:1.6;font-weight:400}
.plan_table th:first-child,.plan_table td:first-child{border-left:0}
.plan_table td:first-child{text-align:left;font-weight:500;background:var(--bg2);white-space:nowrap}
.plan_table thead th{padding:1.8em .9em;background:var(--red);color:#fff;border-color:rgba(255,255,255,.25);font-weight:500}
.plan_table thead th:first-child{background:#fff}
.plan_table .pname{display:block;font-family:var(--min);font-weight:700;font-style:italic;font-size:1.25rem;letter-spacing:.06em}
.plan_table .price{display:block;margin:.3em 0;font-family:var(--en);font-size:2.25rem;font-weight:500;letter-spacing:0;line-height:1.1}
.plan_table .price small{font-family:var(--jp);font-size:.875rem;margin-left:.1em}
.plan_table .for{display:block;font-size:.75rem;opacity:.9}
.plan_table .ok{color:var(--red);font-weight:500}
.plan_table .no{color:#b9b9b9}
.plan_table .tbtn{position:relative;z-index:1;display:block;max-width:220px;margin-inline:auto;padding:12px 40px 12px 18px;border-radius:100px;border:1px solid var(--red);background:var(--red);color:#fff;font-size:.8125rem;font-weight:500;text-align:center;overflow:hidden;transition:color .4s}
.plan_table .tbtn::before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;border-radius:50px;transform:scaleX(0);transform-origin:100% 50%;transition:transform .4s ease}
.plan_table .tbtn::after{content:"";position:absolute;top:0;bottom:0;right:8px;margin:auto;width:1.5rem;height:1.5rem;border-radius:50%;background:#fff var(--arw-r) center/24px 24px no-repeat;transition:all .4s ease-out}
.plan_table .tbtn:hover{color:var(--red)}
.plan_table .tbtn:hover::before{transform:scaleX(1);transform-origin:0 50%}
.plan_table .tbtn:hover::after{background-color:var(--red);background-image:var(--arw-w)}
.price-notes{margin-top:1.6em;font-size:.8125rem;line-height:2;color:var(--mid);letter-spacing:.04em}
.home_plan .line01{top:60px;right:80%}
.home_plan .line03{bottom:0;left:72%}

/* ---- about (clients) ---- */
.home_clients{position:relative;padding-top:168px;padding-bottom:200px;background:var(--char);z-index:6;overflow:hidden;color:#fff}
.home_clients>*{position:relative;z-index:5}
.home_clients .imgarea{position:relative}
.home_clients .img{width:85%;height:1092px;margin-inline:auto;overflow:hidden;transition:all .2s ease-out}
.home_clients .img img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.home_clients .ttl-01{margin-top:10rem}
.home_clients .txt{margin-bottom:64px;line-height:2.1}
.home_clients .deco-line{z-index:-1}
.home_clients .line01{top:150px;left:90%}
.home_clients .line02{top:550px;right:90%}
.home_clients .line05{top:520px;left:62%}

/* ---- blog ---- */
.home_blog{position:relative;padding-top:88px;padding-bottom:100px;background:var(--bg1);z-index:7;overflow:hidden}
.home_blog>*{position:relative;z-index:5}
.home_blog .ttl-01{margin-bottom:1rem}

.home_blog .txt{margin-bottom:3rem}
.blog_sort{position:relative;z-index:10;display:flex;flex-wrap:wrap;gap:.25em}
.blog_sort button{margin-inline:1em;margin-bottom:-4px;padding-bottom:.5rem;letter-spacing:0;border-bottom:4px solid transparent;font-weight:700;font-size:1rem}
.blog_sort button:first-child{margin-left:.15em;font-family:var(--en)}
.blog_sort button[aria-pressed=true]{color:var(--red);border-color:var(--red)}
.posts-wrap{padding-bottom:68px;background:#fff}
.posts-blog{display:flex;justify-content:center;padding-top:52px;padding-bottom:.5rem;margin-bottom:2rem;overflow-x:auto;-webkit-overflow-scrolling:touch}
.post{display:block;padding:32px 20px 48px;background:#fff;transition:all .4s ease-out;position:relative}
.posts-blog .post{width:400px;flex-shrink:0}
.post:hover{z-index:10;box-shadow:7px 7px 30px rgba(0,0,0,.2)}
.post[hidden]{display:none}
.post--meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5em .6em;margin-bottom:1em;min-height:2.1em}
.chip{display:inline-block;padding:.32em 1em;border-radius:100px;background:var(--teal);color:#fff;font-size:.75rem;line-height:1.4;letter-spacing:.03em}
.chip.alt{background:#f0966c}
.date{font-family:var(--en);font-size:.875rem;letter-spacing:.02em}
.post--img{position:relative;display:block;aspect-ratio:360/202;background:#e8f0f1;overflow:hidden;margin-bottom:1em}
.post--img img{width:100%;height:100%;object-fit:cover}
.post--ttl{display:block;font-weight:700;font-size:1.125rem;line-height:1.6;letter-spacing:.05em}
.home_blog .post--txt{display:none}
.post--txt{display:block;margin-top:.75em;color:var(--mute);font-size:.875rem;line-height:2}
.home_blog .deco-red{top:0;left:0;width:1200px;height:1200px;z-index:2;border-right:none;transform-origin:left top;mix-blend-mode:normal}
.home_blog .line01{top:0;left:55%}

/* ---- footer cta ---- */
.footer_cta{position:relative;padding-top:230px;padding-bottom:110px;background:var(--char);overflow:hidden;color:#fff;z-index:8}
.scroll-txt{position:absolute;top:44px;left:0;white-space:nowrap;font-family:var(--en);font-weight:500;font-size:140px;letter-spacing:0;line-height:1;z-index:11;will-change:transform}
.scroll-txt span{display:inline-block;padding:0 .15em;color:#fff}
.footer_cta .cta-list{position:relative;z-index:10}
.footer_cta .imgarea-wrap{position:absolute;top:0;right:0;bottom:0;width:54%;z-index:9}
.footer_cta .imgarea{width:100%;height:100%;clip-path:polygon(30% 0,100% 0,100% 100%,0 100%);overflow:hidden}
.footer_cta .imgarea::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(51,51,51,.55),rgba(51,51,51,0) 60%)}
.footer_cta .imgarea img{width:100%;height:100%;object-fit:cover}
.footer_cta .imgarea-wrap::after{content:"";position:absolute;left:0;bottom:0;z-index:10;width:180px;height:180px;background:var(--red);clip-path:polygon(0 0,0 100%,100% 100%)}
.footer_cta .wrap{width:min(1200px,84vw);margin-inline:auto}
.cta-list .cta-item{display:flex;flex-direction:column;align-items:flex-start;gap:34px;width:46%}
.cta-list .cta-item:not(:last-child){margin-bottom:74px}
.cta-list .cta-item>*{width:100%}
.cta-list .cta-item>.btn{max-width:440px}
.footer_cta .ttl-01{margin-bottom:.25em;color:#a2a2a2}
.footer_cta .ttl-01 .en{margin-bottom:0;font-size:1.5rem}
.footer_cta .cta-h{font-family:var(--min);font-weight:700;font-style:italic;font-size:1.5rem;margin-bottom:.4em;letter-spacing:.06em}
.footer_cta .btn a{max-width:100%;padding-block:26px;font-size:1.2rem;font-weight:700;border-color:transparent}
.footer_cta .btn a::after{right:26px;width:3.5rem;height:3.5rem;background-size:36px 36px}
.footer_cta .line01{top:20px;right:72%}
.footer_cta .line03{top:36%;left:82%}
.footer_cta .line05{right:37%;bottom:126px}
.footer_cta .line06{right:75.3%;bottom:188px}

/* ---- footer ---- */
.footer{position:relative;z-index:10;background:#fff}
.footer .inner{width:90%}
.footer_top{display:flex;justify-content:space-between;padding-top:88px;padding-bottom:64px}
.footer_top>*{width:44%}
.footer--logo{margin:0}
.footer--logo a{display:block}
.prof .txt+.txt{margin-top:.8em}
.footer--logo img{width:264px;height:auto}
.address{margin-top:48px;line-height:2.2;font-size:.9375rem}
.map{display:inline-flex;align-items:center;margin-top:.4em;font-family:var(--en);font-weight:500;letter-spacing:0}
.map::before{content:"";width:1.875em;height:1.875em;margin-right:.75em;border-radius:50%;background:var(--char) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 3a6.5 6.5 0 0 0-6.5 6.5C5.5 14.4 12 21 12 21s6.5-6.6 6.5-11.5A6.5 6.5 0 0 0 12 3zm0 9a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E") center/62% no-repeat}
.footer_menu{display:grid;grid-template-columns:repeat(2,1fr);gap:0 2em;font-size:.9375rem}
.footer_menu ul+ul{}
.footer_menu li{margin-bottom:1em;letter-spacing:.03em;line-height:1.6}
.footer_menu>ul>li{position:relative;padding-left:1.2em}
.footer_menu>ul>li::before{content:"";position:absolute;left:0;top:.6em;width:.4em;height:.4em;background:#a5a5a5;border-radius:50%}
.footer_menu .top{font-family:var(--en);font-weight:500;letter-spacing:0}
.footer_menu .sub{margin-top:.7em}
.footer_menu .sub li{position:relative;padding-left:1.8em;color:#8d8d8d;margin-bottom:.6em}
.footer_menu .sub li::before{content:"";position:absolute;left:0;top:.8em;width:.6em;border-top:1px solid #a5a5a5}
.footer_menu a:hover{color:var(--red)}
.footer_mid{display:flex;align-items:center;justify-content:space-between;padding-bottom:24px;font-size:.8125rem;border-bottom:1px solid var(--line)}
.footer_mid ul{display:flex;gap:2em}
.footer_mid li{position:relative;padding-left:1.2em}
.footer_mid li::before{content:"";position:absolute;left:0;top:.65em;width:.6em;border-top:1px solid #a5a5a5}
.footer_mid a:hover{color:var(--red)}
.copy{font-family:var(--en);letter-spacing:0;font-size:.75rem;font-weight:500}
.footer_btm{display:flex;align-items:center;justify-content:space-between;padding-top:44px;padding-bottom:32px}
.sns{display:flex;gap:2em}
.sns a{display:flex;align-items:center;gap:.7em;font-family:var(--en);font-weight:500;letter-spacing:0}
.sns a::before{content:"";flex:none;width:2.75em;height:2.75em;border-radius:50%;background:var(--char) var(--ico-line-w) center/62% no-repeat}
.sns a:hover{color:var(--red)}
.page_top{display:flex;align-items:center;font-family:var(--en);font-weight:500;font-size:.875rem;letter-spacing:0;line-height:1}
.page_top::after{content:"";flex:none;width:88px;height:88px;margin-left:1rem;border-radius:50%;background:var(--char) var(--arw-up-w) center/32px 32px no-repeat;transition:background-color .4s}
.page_top:hover::after{background-color:var(--red)}

/* ---- sub page title ---- */
.page_ttl{position:relative;z-index:10;height:620px;display:flex;align-items:flex-end;overflow:clip}
.page_ttl::before{content:"";position:absolute;right:-20vw;bottom:5%;z-index:-1;width:85vw;height:80%;background:var(--red);clip-path:polygon(0 0,100% 0,100% 100%,33% 100%)}
.page_ttl::after{content:"";position:absolute;top:50%;left:0;right:0;bottom:0;z-index:-10;background:var(--bg2)}
.page_ttl--bg{position:absolute;z-index:-1;background-size:cover;background-position:center}
.page_ttl--bg.lft{top:0;right:35%;width:1800px;height:77%;clip-path:polygon(0 0,72.5% 0,100% 100%,27% 100%)}
.page_ttl--bg.rgt{left:61%;bottom:0;width:1017px;height:56%;clip-path:polygon(0 0,63% 0,100% 100%,35% 100%)}
.page_ttl h1{position:relative;z-index:10;display:block;margin-left:3%;margin-bottom:1.5%;font-weight:500}
.page_ttl-en{display:block;font-family:var(--en);text-transform:uppercase;font-size:var(--ttl-size,min(14.375rem,15vw));letter-spacing:0;line-height:1;font-weight:500;white-space:nowrap}
.page_ttl-jp{position:absolute;left:1%;bottom:calc(100% + 6px);display:inline-block;padding:.35em .7em;font-family:var(--min);font-weight:700;font-size:clamp(1rem,1.9vw,1.75rem);letter-spacing:.1em;font-style:italic;line-height:1;white-space:nowrap;color:#fff;background:var(--ink)}
.page_ttl .deco-red{top:467px;right:80px;z-index:-3;width:2000px;height:350px;transform-origin:right top;mix-blend-mode:normal}

/* ---- sub page body ---- */
.bg-lbl{position:relative;background:#f5f9fb;z-index:5}
.page_nav{position:sticky;top:80px;left:0;z-index:9999;height:0;transform:translateY(120px);font-family:var(--en);letter-spacing:.05em;font-size:.875rem;font-weight:400;mix-blend-mode:difference;transition:.4s ease-out}
.page_nav.none{opacity:0;pointer-events:none}
.page_nav a{display:table;color:#fff;margin-bottom:.5em;transition:.4s ease-out;white-space:nowrap}
.page_nav a::before{content:"";display:inline-block;width:2em;height:0;margin-right:1em;border-top:1px solid transparent;transform:translateY(-.3em)}
.page_nav a.cur,.page_nav a:hover{color:#50d7e2}
.page_nav a.cur::before{border-color:#50d7e2}
.lps_sec{position:relative;padding-top:88px;padding-bottom:120px;background:#f5f9fb}
.lps_sec:nth-child(2n){background:var(--bg1)}
.lps_sec::before{content:"";position:absolute;top:-40px;left:0;z-index:1;width:326px;height:335px;background:var(--red);clip-path:polygon(0 0,0 100%,100% 0)}
.lps_sec>.inner{position:relative;z-index:4}
.lps_sec .ttl-01{transform:translateX(-4em);margin-bottom:2.5em}
.lps_sec.intro .ttl-01{margin-bottom:1.5em}
.lps_sec .deco-line{z-index:1}
.lps_sec .line01{top:40px;left:70%}
.lps_sec .line02{bottom:0;right:82%}
.lps_sec:nth-child(2n) .deco-line{transform:scaleX(-1)}
.lps_sec{overflow-x:clip}
.parts{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;background:#fff;box-shadow:7px 7px 30px rgba(0,0,0,.04)}
.parts .media{position:relative;min-height:440px;overflow:hidden;background:var(--bg1)}
.parts figure.media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.parts .body{padding:46px 5%;display:flex;flex-direction:column;justify-content:center}
.parts .body p{line-height:2.1;letter-spacing:.06em}
.parts .btn{margin-top:1.6em}
.parts.rev .media{order:2}
.parts.wide{grid-template-columns:1fr}
.parts.wide .media{min-height:0;background:#fff;border-bottom:1px solid var(--line);padding:0}
.parts.wide .body{padding:36px 40px}
.parts.work3 .media{display:grid;grid-template-columns:repeat(3,1fr);gap:0;min-height:0;background:#fff}
.parts.work3 figure{position:relative;overflow:hidden}
.parts.work3 figure img{position:static;width:100%;aspect-ratio:16/10;object-fit:cover}
.parts.work3 figcaption{padding:.6em .8em;font-size:.75rem;line-height:1.5;letter-spacing:.03em;text-align:center}
.compare-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:1.5em}
.compare-tools>div{padding:1.1em 1.2em;background:var(--bg2);border-left:3px solid var(--red)}
.compare-tools h3{font-family:var(--en);font-weight:500;letter-spacing:0;font-size:1.05rem}
.compare-tools p{margin-top:.3em;font-size:.875rem;line-height:1.8!important}
.breadcrumbs-wrap{position:relative;z-index:10;background:#fff;padding:32px 0}
.breadcrumbs{font-size:.875rem;letter-spacing:.03em}
.breadcrumbs::before{content:"";display:inline-block;width:.4em;height:.4em;margin-right:.5em;background:var(--red);border-radius:50%;transform:translateY(-.125em)}
.breadcrumbs a{font-family:var(--en);font-weight:500}
.breadcrumbs a:hover{color:var(--red)}
.breadcrumbs .cur{opacity:.55}
.page_body{position:relative;padding-top:100px;padding-bottom:110px;overflow:hidden;background:#f5f9fb}
.page_body>.inner{position:relative;z-index:4}
.page_body .deco-line{z-index:1}
.page_body .line01{top:40px;left:72%}
.page_body .line02{bottom:0;right:82%}
.h3-min{font-family:var(--min);font-weight:700;font-style:italic;font-size:1.5rem;letter-spacing:.05em;line-height:1.6;margin-bottom:.8em}

/* cards & lists on sub pages */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.grid3 .post{background:#fff}
.work_sort{display:flex;flex-wrap:wrap;justify-content:center;gap:.25em;margin-bottom:0;border-bottom:4px solid transparent}
.work_sort button{margin-inline:1em;padding-bottom:.5rem;margin-bottom:-4px;border-bottom:4px solid transparent;font-weight:500;font-size:.9375rem;letter-spacing:.03em}
.work_sort button[aria-pressed=true]{color:var(--red);border-color:var(--red)}
.work_wrap{background:#fff;padding:36px 20px}
.work_card{display:block;padding:20px;position:relative;transition:box-shadow .4s}
.work_card:has(a):hover{box-shadow:7px 7px 30px rgba(0,0,0,.18);z-index:2}
.work_card .im a{display:block;height:100%}
.work_card .im a::after{content:"";position:absolute;inset:0;z-index:2}
.work_card[hidden]{display:none}
.work_card .im{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--bg1)}
.work_card .im img{width:100%;height:100%;object-fit:cover}
.work_card .ty{display:inline-block;margin-top:.9em}
.work_card p{margin-bottom:0}
.work_card .nm{display:block;margin-top:.6em;font-weight:500;line-height:1.7;font-size:.9375rem;letter-spacing:.04em}
.work_card.phone .im{aspect-ratio:4/5;background:#fff}
.work_card.phone .im img{object-fit:contain}
.note{margin-top:1.5em;font-size:.8125rem;color:var(--mute);line-height:1.9}
.voice_page{background:#fff;padding:20px 48px}
.prof{display:grid;grid-template-columns:42% 1fr;gap:0;background:#fff;box-shadow:7px 7px 30px rgba(0,0,0,.04)}
.prof .im{position:relative;min-height:440px;overflow:hidden}
.prof .im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.prof .bd{padding:48px 44px}
.prof .dl{display:grid;grid-template-columns:auto 1fr;gap:.4em 1.5em;margin-top:1em;font-size:.95rem;line-height:1.9}
.prof .dt{font-weight:500;color:var(--mute)}
.name-en{display:block;margin-top:.2em;font-family:var(--en);font-size:.875rem;font-style:normal;font-weight:500;letter-spacing:0;color:var(--red)}
.tl{margin-top:2em;border-left:1px solid var(--line)}
.tl li{position:relative;padding:0 0 1.6em 1.8em;line-height:1.95;font-size:.95rem;letter-spacing:.05em}
.tl li::before{content:"";position:absolute;left:-5px;top:.65em;width:9px;height:9px;background:var(--red);border-radius:50%}
.tl b,.tl strong{display:block;font-family:var(--en);font-weight:500;color:var(--red);letter-spacing:0}
.rtxt p{line-height:2.2;margin-bottom:1.1em;letter-spacing:.06em}
.about_sec{margin-top:72px}
.about_sec>.h3-min{margin-bottom:.9em}
.vision{background:#fff;padding:44px 52px;box-shadow:7px 7px 30px rgba(0,0,0,.04)}
.vision p{line-height:2.15;letter-spacing:.06em}
.vision p+p{margin-top:1.2em}
.vision .lead{font-family:var(--min);font-weight:700;font-style:italic;font-size:1.375rem;line-height:1.9;letter-spacing:.06em;color:var(--red)}
.story{display:grid;gap:16px}
.story_item{position:relative;padding:40px 52px 40px 190px;background:#fff;box-shadow:7px 7px 30px rgba(0,0,0,.04)}
.story_label{position:absolute;left:52px;top:40px;font-family:var(--en);font-weight:500;font-size:1.5rem;letter-spacing:0;line-height:1.2;color:var(--red)}
.story_ttl{margin-bottom:.9em;font-family:var(--min);font-weight:700;font-style:italic;font-size:1.25rem;line-height:1.6;letter-spacing:.05em}
.story_item p:not(.story_label){line-height:2.15;letter-spacing:.06em}
.story_item p+p{margin-top:1em}
.about_btns{display:flex;flex-wrap:wrap;gap:16px;margin-top:56px}
.about_btns .btn{flex:1 1 300px;max-width:320px}
.table2{margin:0}
.table2 table{width:100%;border-collapse:collapse;background:#fff;font-size:.9375rem}
.table2 th,.table2 td{padding:1.25em 1.5em;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.95;letter-spacing:.04em;font-weight:400}
.table2 th{width:26%;font-weight:500;background:var(--bg2)}
.table2 tr:last-child th,.table2 tr:last-child td{border-bottom:0}
.table2 a{color:var(--red);text-decoration:underline}
.policy{background:#fff;padding:48px 52px}
.policy h2{margin:2em 0 .6em;padding-bottom:.4em;font-size:1.125rem;font-weight:700;border-bottom:1px solid var(--line);letter-spacing:.06em}
.policy h2:first-child{margin-top:0}
.policy p,.policy li{line-height:2.05;font-size:.9375rem;letter-spacing:.04em}
.policy ul{margin:.5em 0}
.policy li{padding-left:1.1em;position:relative}
.policy li::before{content:"";position:absolute;left:0;top:.85em;width:.35em;height:.35em;background:var(--red);border-radius:50%}
.faq{background:#fff;margin-bottom:12px}
.faq summary{position:relative;display:flex;gap:1em;padding:1.5em 4em 1.5em 1.75em;cursor:pointer;font-weight:500;line-height:1.7;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq .q{font-family:var(--en);color:var(--red);font-size:1.25rem;line-height:1.35;letter-spacing:0}
.faq summary::after{content:"";position:absolute;right:1.75em;top:50%;width:14px;height:14px;margin-top:-7px;background:linear-gradient(var(--mid),var(--mid)) center/100% 1px no-repeat,linear-gradient(var(--mid),var(--mid)) center/1px 100% no-repeat;transition:transform .3s}
.faq[open] summary::after{transform:rotate(135deg)}
.faq .a{padding:0 1.75em 1.75em 4.1em;line-height:2.05;letter-spacing:.05em}
.formwrap{display:grid;grid-template-columns:38% 1fr;gap:40px;align-items:start}
.form{background:#fff;padding:44px}
.form label,.form .lbl{display:block;margin-bottom:1.5em;font-weight:500;font-size:.9375rem;letter-spacing:.05em}
.req{display:inline-block;margin-left:.6em;padding:.1em .6em;background:var(--red);color:#fff;font-size:.6875rem;letter-spacing:.05em;vertical-align:.1em}
.form input[type=text],.form input[type=email],.form select,.form textarea{display:block;width:100%;margin-top:.55em;padding:.85em 1em;border:1px solid #ccc;border-radius:2px;background:#fff;font:inherit;font-weight:400;letter-spacing:.03em;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--red);outline-offset:0;border-color:var(--red)}
.form .check{display:flex;align-items:flex-start;gap:.6em;font-weight:400;line-height:1.7;font-size:.875rem}
.form .check input{margin-top:.35em;accent-color:var(--red)}
.form .check a{text-decoration:underline}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.form .btn button{max-width:100%}
.errmsg{margin-top:1.2em;padding:1em 1.25em;background:#fbecea;border-left:3px solid var(--red);font-size:.875rem;line-height:1.9}
.errmsg a{text-decoration:underline}
dialog.confirm{width:min(620px,92vw);padding:0;border:0;box-shadow:0 30px 80px rgba(0,0,0,.35)}
dialog.confirm::backdrop{background:rgba(0,0,0,.55)}
.confirm_in{padding:40px}
.confirm_in h2{font-family:var(--min);font-style:italic;font-size:1.5rem;margin-bottom:1em;letter-spacing:.05em}
.confirm_in dl{display:grid;grid-template-columns:auto 1fr;gap:.6em 1.25em;font-size:.9375rem;line-height:1.8;max-height:50vh;overflow:auto;margin-bottom:1.75em}
.confirm_in dt{font-weight:500;color:var(--mute);white-space:nowrap}
.confirm_in dd{white-space:pre-wrap;word-break:break-word}
.confirm_btns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.confirm_btns .btn button{padding:14px 44px 14px 20px;max-width:100%}
.contact_side p{line-height:2.1;letter-spacing:.05em}
.contact_tel{margin-top:1.6em;padding:1.4em 1.5em;background:#fff}
.contact_tel b{display:block;font-family:var(--en);font-size:1.6rem;font-weight:500;letter-spacing:.02em}
.contact_tel small{display:block;margin-top:.3em;font-size:.8125rem;color:var(--mute)}
.contact_tel+.contact_tel{margin-top:10px}
.contact_tel a[href^="mailto:"]{text-decoration:underline}
.line-btn a{background:#06c755!important;border-color:#06c755!important;color:#fff!important;max-width:100%!important}
.line-btn a::before{background:#fff}
.line-btn a:hover{color:#06c755!important}
.line-btn a::after{background-color:#fff;background-image:var(--arw-g)}
.line-btn a:hover::after{background-color:#06c755;background-image:var(--arw-w)}

/* ---- diagrams ---- */
.viz{--fs:clamp(10.5px,1.55cqw,14px);container-type:inline-size;position:relative;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;padding:clamp(18px,3.4cqw,34px);background:#fff;font-size:var(--fs);line-height:1.6;letter-spacing:.03em;color:var(--ink)}
.viz-wrap{container-type:inline-size;height:100%}
.viz .cap{position:absolute;right:12px;bottom:8px;font-family:var(--en);font-size:10px;letter-spacing:.04em;color:#a0a0a0}
.viz b{font-weight:700}
.v-flow{display:flex;align-items:stretch;gap:6px}
.v-flow .st{margin:0;position:relative;flex:1;min-width:0;padding:1.2em .6em;background:var(--bg1);text-align:center;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%,10px 50%)}
.v-flow .st:first-child{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%)}
.v-flow .st.on{background:var(--red);color:#fff}
.v-flow .st.dk{background:var(--char);color:#fff}
.v-flow .n{display:block;font-family:var(--en);font-weight:500;font-size:1.2em;letter-spacing:0;opacity:.75}
.v-flow .l{display:block;font-weight:500;line-height:1.45}
.v-flow .d{display:block;margin-top:.35em;font-size:.86em;line-height:1.5;opacity:.85}
.v-table{margin:0}
.v-table table{width:100%;border-collapse:collapse}
.v-table th,.v-table td{padding:.7em .7em;border:1px solid var(--line);text-align:left;font-weight:400;vertical-align:middle;line-height:1.5}
.v-table thead th{background:var(--char);color:#fff;font-weight:500;border-color:#555}
.v-table tbody th{background:var(--bg2);font-weight:500}
.v-table .y{color:var(--red);font-weight:700}
.v-table td:has(>.y){color:var(--red)}
.v-hub{position:relative;display:grid;grid-template-columns:1fr auto 1fr;gap:1.2em;align-items:center}
.v-hub .col{display:grid;gap:.6em}
.v-hub .sp{position:relative;padding:.75em 1em;background:var(--bg1);text-align:center;font-weight:500}
.v-hub .col:first-child .sp::after,.v-hub .col:last-child .sp::before{content:"";position:absolute;top:50%;width:1.2em;border-top:1px solid var(--red)}
.v-hub .col:first-child .sp::after{left:100%}
.v-hub .col:last-child .sp::before{right:100%}
.v-hub .c{display:flex;align-items:center;justify-content:center;width:11em;height:11em;padding:1em;border-radius:50%;background:var(--red);color:#fff;text-align:center;font-weight:700;line-height:1.5}
.v-funnel{display:grid;gap:5px;justify-items:center}
.v-funnel p{display:flex;justify-content:space-between;gap:1em;padding:.7em 1.3em;background:var(--bg1)}
.v-funnel p:last-child{background:var(--red);color:#fff}
.v-funnel.f4 p:nth-child(2){width:85%}.v-funnel.f4 p:nth-child(3){width:69%}.v-funnel.f4 p:nth-child(4){width:54%}.v-funnel p:first-child{width:100%}
.v-funnel b{font-family:var(--en);font-weight:500;letter-spacing:0}
.v-2col{display:grid;grid-template-columns:1fr auto 1fr;gap:1em;align-items:center}
.v-box{padding:1em 1.1em;background:var(--bg1)}
.v-box .v-h{margin:0 0 .5em;font-size:1em;font-weight:700}
.v-box.dk{background:var(--char);color:#fff}
.v-box.rd{background:var(--red);color:#fff}
.v-box.ln{background:#fff;border:1px solid var(--line)}
.v-box ul li{padding-left:1em;position:relative}
.v-box ul li::before{content:"";position:absolute;left:0;top:.65em;width:.4em;height:.4em;border-radius:50%;background:currentColor;opacity:.55}
.v-arrow{font-family:var(--en);color:var(--red);font-size:1.8em;line-height:1}
.v-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.9em}
.v-4{display:grid;grid-template-columns:repeat(4,1fr);gap:.7em}
.v-kpi{padding:.9em 1em;background:var(--bg1)}
.v-kpi span{display:block;font-size:.88em;color:var(--mute)}
.v-kpi b{display:block;font-family:var(--en);font-weight:500;font-size:1.9em;letter-spacing:0;line-height:1.2;color:var(--red)}
.v-bars{display:flex;align-items:flex-end;gap:5%;height:8.5em;margin-top:1em;padding-bottom:1.5em;border-bottom:1px solid var(--line);position:relative}
.v-bars p{flex:1;margin:0;background:var(--teal);font-size:0;line-height:0}
.v-bars p.r{background:var(--red)}
.v-bars .h36{height:36%}.v-bars .h40{height:40%}.v-bars .h42{height:42%}.v-bars .h44{height:44%}.v-bars .h46{height:46%}.v-bars .h48{height:48%}.v-bars .h50{height:50%}.v-bars .h54{height:54%}.v-bars .h56{height:56%}.v-bars .h58{height:58%}.v-bars .h60{height:60%}.v-bars .h62{height:62%}.v-bars .h64{height:64%}.v-bars .h66{height:66%}.v-bars .h70{height:70%}.v-bars .h72{height:72%}.v-bars .h78{height:78%}.v-bars .h80{height:80%}.v-bars .h82{height:82%}.v-bars .h84{height:84%}
.v-bars-l{display:flex;justify-content:space-between;font-size:.88em;color:var(--mute);margin-top:.4em}
.v-check{display:grid;grid-template-columns:1fr 1fr;gap:.5em 1.4em}
.v-check li{position:relative;padding:.55em .5em .55em 2em;border-bottom:1px solid var(--line)}
.v-check li::before{content:"";position:absolute;left:.4em;top:.8em;width:.9em;height:.5em;border-left:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(-45deg)}
.v-matrix{display:grid;grid-template-columns:auto 1fr 1fr;grid-template-rows:1fr 1fr auto;gap:5px;min-height:18em}
.v-matrix .ax{display:flex;align-items:center;justify-content:center;font-size:.9em;color:var(--mute)}
.v-matrix .ax.y{writing-mode:vertical-rl;grid-row:1/3}
.v-matrix .ax.x{grid-column:2/4}
.v-matrix .q{display:flex;flex-direction:column;justify-content:center;padding:.9em 1em;background:var(--bg1)}
.v-matrix .q b{display:block;margin-bottom:.15em}
.v-matrix .q.hot{background:var(--red);color:#fff}
.v-browser{border:1px solid var(--line);background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.06)}
.v-browser .bar{display:flex;gap:.35em;align-items:center;padding:.5em .8em;background:var(--bg1)}
.v-browser .bar::before{content:"";flex:none;width:.6em;height:.6em;margin-right:1.9em;border-radius:50%;background:#c6ccd1;box-shadow:.95em 0 #c6ccd1,1.9em 0 #c6ccd1}
.v-browser .bar span{margin-left:.6em;padding:.1em 1em;background:#fff;border-radius:100px;font-size:.9em;color:var(--mute);flex:1}
.v-browser .bd{padding:.9em 1em}
.v-res{padding:.45em 0;border-bottom:1px solid var(--line)}
.v-res:last-child{border:0}
.v-res b{display:block;color:#1a4fa0;font-weight:500}
.v-res small{font-size:.86em;color:var(--mute)}
.v-map{position:relative;min-height:9em;background:linear-gradient(115deg,transparent 48%,#fff 48%,#fff 51%,transparent 51%),linear-gradient(20deg,transparent 40%,#fff 40%,#fff 43%,transparent 43%),#e3ebef}
.v-map i{position:absolute;width:1.1em;height:1.1em;background:var(--red);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.v-phone{width:min(15em,100%);margin-inline:auto;padding:.7em;background:#222;border-radius:1.5em}
.v-phone .scr{background:#7f97b3;border-radius:1em;padding:.8em .7em;display:flex;flex-direction:column;gap:.5em;overflow:hidden}
.v-phone .msg{align-self:flex-start;max-width:90%;padding:.45em .7em;background:#fff;border-radius:.8em;font-size:.92em;line-height:1.45}
.v-phone .msg.me{align-self:flex-end;background:#8de055}
.v-rich{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin:.2em -.7em -.8em;background:#fff;padding:2px}
.v-rich span{display:flex;align-items:center;justify-content:center;padding:.85em .1em;background:var(--bg1);font-size:.82em;line-height:1.3;text-align:center}
.v-rich span:nth-child(1){background:var(--red);color:#fff}
.v-side{display:grid;grid-template-columns:auto 1fr;gap:1.4em;align-items:center}
.v-post{display:flex;gap:.6em;padding:.55em 0;border-bottom:1px solid var(--line)}
.v-post::before{content:"";flex:none;width:2em;height:2em;border-radius:50%;background:var(--char)}
.v-grid9{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;max-width:15em}
.v-grid9 figure{margin:0;aspect-ratio:1;overflow:hidden;background:var(--bg1)}
.v-grid9 img{width:100%;height:100%;object-fit:cover}
.v-tree{display:grid;gap:.7em}
.v-tree .row{display:grid;grid-template-columns:7.5em auto 1fr auto 1fr;gap:.7em;align-items:center}
.v-tree .row{margin:0}
.v-tree .row>.a{color:var(--red);font-family:var(--en)}
.v-tree .hd{font-weight:700}
.v-doc{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fff;border:1px solid var(--line);box-shadow:0 10px 26px rgba(0,0,0,.07)}
.v-doc>div{padding:1.3em 1.4em}
.v-doc>div+div{border-left:1px solid var(--line)}
.v-doc .v-h{margin:0 0 .4em;color:var(--red);font-size:1em;font-weight:700}
.v-doc li{padding-left:1.2em;position:relative;margin-bottom:.15em}
.v-doc li::before{content:"□";position:absolute;left:0;color:var(--mute)}
.v-ba{display:grid;grid-template-columns:1fr auto 1fr;gap:1em;align-items:center}
.v-ba .pane{background:#fff;border:1px solid var(--line);padding:.9em}
.v-ba .v-h{margin:0 0 .6em;font-size:1em;line-height:1.4;font-family:var(--en);font-weight:500;letter-spacing:0;color:var(--mute)}
.v-ba .pane.af .v-h{color:var(--red)}
.v-ba .ph{height:4.13em;background:var(--bg1);margin-bottom:.5em;color:transparent;overflow:hidden}
.v-ba .bt{display:inline-block;padding:.3em 1em;background:#c9ced2;color:#fff;font-size:.9em}
.v-ba .pane.af .bt{display:block;text-align:center;padding:.6em 1em;background:var(--red);border-radius:100px}
.v-ba p{margin-bottom:.5em;font-size:.92em;line-height:1.5}
.v-ba p.bt{margin-bottom:0}
.v-ba p.v-arrow{margin:0;font-size:1.8em;line-height:1}
.v-stack{display:grid;gap:.6em}
.mt05{margin-top:.5em}
.mb07{margin-bottom:.7em}
.v-note{margin-top:.9em;font-size:.92em;color:var(--mute);text-align:center}



/* WordPress: admin bar, generic pages and articles */
.admin-bar .header,.admin-bar .gnav_btn{top:32px}
.admin-bar .mega{top:128px}
@media (max-width:782px){.admin-bar .header,.admin-bar .gnav_btn{top:46px}}
.page_ttl_h{position:relative;z-index:10;display:block;margin-left:3%;margin-bottom:1.5%;font-weight:500}
.post_body{background:#fff;padding:56px 7%}
.post_title{font-family:var(--min);font-weight:700;font-size:clamp(1.5rem,2.3vw,2.25rem);line-height:1.55;letter-spacing:.05em}
.post_meta{display:flex;flex-wrap:wrap;align-items:center;gap:.6em;margin-top:1.2em}
.post_thumb{margin-top:2em}
.post_thumb img{width:100%;height:auto}
.post_content{margin-top:2.5em;font-weight:400;letter-spacing:.05em;line-height:2.05}
.post_content>*+*{margin-top:1.4em}
.post_content h2{margin-top:2.6em;padding:.7em 1em;background:var(--bg1);border-left:4px solid var(--red);font-size:1.375rem;line-height:1.6}
.post_content h3{margin-top:2.2em;padding-bottom:.4em;border-bottom:1px solid var(--line);font-size:1.1875rem;line-height:1.6}
.post_content h4{margin-top:1.8em;font-size:1.0625rem}
.post_content a{color:var(--red);text-decoration:underline}
.post_content ul,.post_content ol{padding-left:1.5em}
.post_content ul{list-style:disc}
.post_content ol{list-style:decimal}
.post_content img{height:auto}
.post_content table{width:100%;border-collapse:collapse;font-size:.9375rem}
.post_content th,.post_content td{padding:.75em 1em;border:1px solid var(--line);text-align:left}
.post_content th{background:var(--bg2)}
.post_content blockquote{padding:1em 1.4em;background:var(--bg2);border-left:3px solid var(--teal)}
.post_content hr{margin-block:2.5em;border:0;border-top:1px solid var(--line)}
.post_pager{margin-top:2em;text-align:center}
.post_pager .page-numbers{display:inline-block;padding:.3em .8em}
.post_pager .current{color:#fff;background:var(--red)}
.post_body .post_content .btn a{text-decoration:none}

/* other plans */
.price_more{margin-top:72px}
.price_more>.h3-min{margin-bottom:.5em}
.price_note{margin-bottom:28px;padding:1.1em 1.4em;background:#fff;border-left:4px solid var(--red);line-height:1.9;letter-spacing:.05em}
.price_grps{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:20px 0 44px;align-items:start}
.price_grp{background:#fff;padding:32px 28px 26px;box-shadow:7px 7px 30px rgba(0,0,0,.05)}
.price_ttl{margin:0 0 .5em}
.price_ttl .en{display:block;font-family:var(--en);font-size:.9375rem;font-weight:500;letter-spacing:0;color:var(--red)}
.price_ttl .en::before{content:"";display:inline-block;width:1em;height:.9em;margin-right:.3em;background:var(--red);clip-path:polygon(88% 0,100% 0,12% 100%,0 100%);transform:translateY(.12em)}
.price_ttl .jp{display:block;margin-top:.15em;font-family:var(--min);font-weight:700;font-style:italic;font-size:1.375rem;letter-spacing:.05em;line-height:1.5}
.price_row{padding:1.1em 0;border-top:1px solid var(--line)}
.price_head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.2em 1em}
.price_head h4{margin:0;font-size:1rem;font-weight:700;letter-spacing:.04em}
.price_head .price_v{margin:0;line-height:1.2}
.price_num{font-family:var(--en);font-size:1.75rem;font-weight:500;letter-spacing:0;line-height:1.2;white-space:nowrap;color:var(--red)}
.price_num small{margin-left:.1em;font-family:var(--jp);font-size:.8125rem;font-weight:500;color:var(--ink)}
.price_txt{font-size:1.125rem;font-weight:700;letter-spacing:.04em;color:var(--red)}
.price_row>p{margin:.45em 0 0;font-size:.875rem;font-weight:400;line-height:1.85;letter-spacing:.04em;color:var(--mid)}
.price_link{margin-top:.6em;padding-top:1em;border-top:1px solid var(--line);font-size:.875rem;text-align:right}
.price_link a{transition:color .3s}
.price_link a:hover{color:var(--red)}

/* Original touch: the X from the InnovationX name */
.brand-x{display:inline-block;color:var(--red);font-style:normal;transform-origin:50% 54%}
.is-loading .brand-x{animation:brand_x_in .9s cubic-bezier(.2,1.3,.4,1) 2.55s both,brand_x_turn 8s var(--ease2) 3.5s infinite}
.sp-ready .brand-x{animation:brand_x_in .9s cubic-bezier(.2,1.3,.4,1) .35s both,brand_x_turn 8s var(--ease2) 1.3s infinite}
@keyframes brand_x_in{0%{transform:rotate(-270deg) scale(0);opacity:0}100%{transform:rotate(0) scale(1);opacity:1}}
@keyframes brand_x_turn{0%,90%{transform:rotate(0) scale(1)}95%{transform:rotate(90deg) scale(1.18)}100%{transform:rotate(180deg) scale(1)}}
.loading-fadeout::after{content:"X";position:absolute;top:50%;left:50%;font-family:var(--min);font-weight:700;font-size:min(34vw,240px);line-height:1;color:var(--red);transform:translate(-50%,-50%) rotate(-90deg) scale(.4);opacity:0}
.is-fadeout .loading-fadeout::after{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1);transition:all .45s cubic-bezier(.2,1.3,.4,1) .2s}

/* phones: same red chevron and diagonals, without the desktop intro */
.sp-ready .home_pickup:not(.voice) .deco-red,.sp-ready .page_ttl .deco-red{animation:red cubic-bezier(.19,1,.22,1) .9s forwards;animation-delay:.2s}
.sp-ready .hero .deco-line.stop::before,.sp-ready .page_ttl .deco-line.stop::before{animation:deco_line_stop cubic-bezier(.86,0,.07,1) 1.5s forwards}

/* colored footer: brand red, diagonal cuts and the X from the name */
.footer{overflow:hidden;background:var(--red);color:#fff}
.footer::before{content:"";position:absolute;inset:0;background:#7f140e;clip-path:polygon(100% 0,100% 100%,38% 100%);pointer-events:none}
.footer::after{content:"X";position:absolute;right:-.04em;bottom:-.2em;font-family:var(--min);font-weight:700;font-size:min(46vw,640px);line-height:1;color:#fff;opacity:.07;pointer-events:none}
.footer .inner{position:relative;z-index:2}
.footer--logo{position:relative;width:max-content;margin:-88px 0 0 -5.6vw;padding:22px 72px 18px 5.6vw;background:#fff;clip-path:polygon(0 0,100% 0,calc(100% - 44px) 100%,0 100%)}
.footer--logo img{display:block;width:264px}
.footer .address{line-height:2.2}
.footer a:hover{color:#ffd9d4}
.footer .map::before{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239c1b14'%3E%3Cpath d='M12 3a6.500 6.500 0 0 0-6.500 6.500C5.500 14.400 12 21 12 21s6.500-6.600 6.500-11.500A6.500 6.500 0 0 0 12 3zm0 9a2.500 2.500 0 1 1 0-5 2.500 2.500 0 0 1 0 5z'/%3E%3C/svg%3E") center/62% no-repeat}
.footer_menu>ul>li::before{background:#fff}
.footer_menu .sub li{color:#f6dcd9}
.footer_menu .sub li::before,.footer_mid li::before{border-color:rgba(255,255,255,.7)}
.footer_mid{border-color:rgba(255,255,255,.3)}
.footer .sns a::before{background-color:#fff;background-image:var(--ico-line-r)}
.footer .page_top::after{background-color:#fff;background-image:var(--arw-up-r)}
.footer .page_top:hover::after{background-color:var(--ink);background-image:var(--arw-up-w)}
.footer_btm p{margin:0}

/* dark pill */
.btn.bk a{color:#fff;background:var(--mid)}
.btn.bk a::before{background:#fff}
.btn.bk a:hover{color:var(--mid)}
.btn.bk a::after{background-color:#fff;background-image:var(--arw-m)}
.btn.bk a:hover::after{background-color:var(--mid);background-image:var(--arw-w)}

/* ---- block editor canvas: same look as the site (only applies inside the editor) ---- */
body.editor-styles-wrapper{padding-top:0;overflow-x:clip}
.editor-styles-wrapper .is-root-container{overflow-x:clip}
.editor-styles-wrapper .editor-visual-editor__post-title-wrapper{margin:0;padding:48px 0 32px;background:#fff}
.editor-styles-wrapper .editor-post-title{width:var(--inner);margin:0 auto;font-family:var(--min);font-weight:700;font-style:italic;font-size:1.75rem;letter-spacing:.1em;line-height:1.4}
/* the editor sets height:auto on every image; frames that crop their photo need it filled */
.editor-styles-wrapper .home_mission .img img,.editor-styles-wrapper .job_list .item>.bg img,.editor-styles-wrapper .gallery_item img,
.editor-styles-wrapper .home_clients .img img,.editor-styles-wrapper .parts figure.media img,.editor-styles-wrapper .work_card .im img,
.editor-styles-wrapper .prof .im img,.editor-styles-wrapper .v-grid9 img{height:100%!important}
@media (max-width:767px){.editor-styles-wrapper .home_mission .img img{height:auto!important}}
/* the editor writes white-space:pre-wrap inline on text it edits */
.editor-styles-wrapper .home_advise .deco,.editor-styles-wrapper .voice_row .stars,.editor-styles-wrapper .plan_table td:first-child>*{white-space:nowrap!important}
/* the question and its text sit inside one editable wrapper in the editor */
.editor-styles-wrapper .faq summary>*{display:flex;gap:1em}
.posts-note{width:100%;max-width:1220px;margin:0 auto;padding:56px 20px;border:1px dashed #b9c4cc;color:var(--mute);text-align:center;font-size:.9375rem}
.editor-styles-wrapper .hero_slide .s img,.editor-styles-wrapper .footer_cta .imgarea img{height:100%!important}
/* in the editor only the first slide shows, as on a page without script */
.editor-styles-wrapper .hero_slide .s:first-child{-webkit-mask-position:100% 0;mask-position:100% 0}
/* the editor gives every block position:relative; these sit on top of their section */
@media (min-width:768px){
  .editor-styles-wrapper .hero_slide,.editor-styles-wrapper .hero .copyright,.editor-styles-wrapper .scroll-txt,.editor-styles-wrapper .footer_cta .imgarea-wrap,.editor-styles-wrapper .story_label{position:absolute!important}
}
.editor-styles-wrapper .hero_slide{position:absolute!important}
.editor-styles-wrapper .hero .copyright,.editor-styles-wrapper .scroll-txt{white-space:nowrap!important}
/* decorations drawn by the editor script never take clicks */
.editor-styles-wrapper [data-ixd]{pointer-events:none!important;user-select:none}


/* ---- PC: each section fits in one screen. Short screens scale down; tall screens keep the full size. ---- */
@media (min-width:1081px){
  body.home{padding-top:min(176px,calc(120px + 2vh))}
  .hero{padding-bottom:min(56px,3vh)}
  .hero--catch{padding-top:min(72px,3.5vh);margin-bottom:min(40px,2vh);font-size:min(70px,4.76vw,6.6vh)}
  .hero--en.lg{font-size:min(15.2vw,27vh);height:min(14.7vw,26.1vh)}
  .hero--en.sm{font-size:min(120px,8.2vw,14.5vh)}
  .hero--txt{line-height:min(2.3,calc(1.4 + .1vh))}

  .feature_merit{padding-top:min(160px,9vh);padding-bottom:min(64px,5vh)}
  .feature_merit .img img{aspect-ratio:auto;height:min(63.9vw,calc(100vh - 420px));min-height:300px}
  .feature_merit .ttl .en{font-size:min(200px,13.6vw,24vh)}
  .feature_merit .ttl .jp{font-size:min(3rem,6vh)}

  .home_job.top{padding-bottom:min(88px,6vh)}
  .home_job.top .job_list .item{height:min(714px,max(300px,calc(50vh - 36px)))}
  .job_list .num{line-height:1.6;margin-top:0}
  .job_list .ttl{line-height:1.6;margin-bottom:.6em}
  .job_list .en{margin-bottom:min(3rem,2.5vh);font-size:min(4rem,3vw,5.6vh)}
  .job_list .a-circle{width:min(108px,10vh);height:min(108px,10vh)}

  .home_advise{padding-top:min(120px,8vh);padding-bottom:min(104px,7vh)}
  .home_advise .ttl-01{margin-bottom:0}
  .home_advise .deco{position:relative;z-index:1;margin-top:-1.05em;margin-bottom:min(3.5rem,3vh);font-size:min(9vw,13vh)}
  .gallery_item{width:calc(100vw/3.6)}
  .gallery_ctrl{margin:min(28px,2.5vh) 0 min(44px,3.5vh)}
  .gallery_ctrl button{width:46px;height:46px}

  .home_clients{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;padding-top:min(168px,9vh);padding-bottom:min(200px,9vh)}
  .home_clients .img{width:100%;height:min(1092px,max(380px,calc(100vh - 200px)));margin:0;clip-path:polygon(0 0,100% 0,86% 100%,0 100%)}
  .home_clients .inner{width:auto;margin:0;padding:0 8vw 0 3vw}
  .home_clients .ttl-01{margin-top:0;margin-bottom:2em}
  .home_clients .txt{margin-bottom:40px}

  .home_blog{padding-top:min(88px,7vh);padding-bottom:min(100px,7vh)}
  .posts-blog{padding-top:min(52px,3.5vh);margin-bottom:1rem}
  .posts-blog .post{width:340px;padding:24px 18px 32px}
  .posts-wrap{padding-bottom:min(68px,4vh)}
  .home_blog .ttl-01 .jp br{display:none}
  .editor-styles-wrapper .feature_merit .img img{height:min(63.9vw,calc(100vh - 420px))!important}

  .page_ttl{height:min(620px,max(400px,calc(100vh - 176px)))}
  .lps_sec{padding-top:min(88px,6vh);padding-bottom:min(120px,8vh)}
  .lps_sec .ttl-01{margin-bottom:1.6em}
  .parts .media{min-height:min(440px,max(300px,calc(100vh - 360px)))}
  .parts .body{padding-block:min(46px,4vh)}
  .page_body{padding-top:min(100px,8vh);padding-bottom:min(110px,9vh)}
}
@media (min-width:1081px) and (max-width:1500px){
  .hero--en.lg{font-size:min(18.2vw,27vh);height:min(17.6vw,26.1vh)}
}

/* ---- responsive ---- */
@media (max-width:1280px){
  :root{--inner:76vw}
  .job_list .ttl{font-size:1.05rem}
  .job_list .txtarea{margin-left:7%}
  .a-circle{width:88px;height:88px}
  .gnav--link{font-size:.82rem}
  .gnav--scout a{padding:.8em 1.3em;font-size:.875rem}
  .home_mission .img01,.home_mission .img04{width:150px}
  .home_mission .img02,.home_mission .img03{width:180px;height:240px}
  .home_mission .img01{right:calc(50% + 410px)}.home_mission .img02{right:calc(50% + 380px)}
  .home_mission .img03{left:calc(50% + 380px)}.home_mission .img04{left:calc(50% + 410px)}
  .page_nav{display:none}
  .lps_sec .ttl-01{transform:none}
}
@media (max-width:1080px){
  :root{--inner:88vw}
  body{padding-top:64px}
  .header,.header.header-sm{height:64px;background:#fff}
  .header::before{height:4px}
  .gnav{display:none}
  .gnav_btn{display:flex}
  .header>.inner{padding-left:14px;padding-right:0}
  .header--logo img,.header-sm .header--logo img{width:auto;height:58px}
  .mega,.mega-veil{display:none}
  .bg-line{top:-64px}
  .hero--catch{font-size:5.6vw}
  .home_mission .img{display:none}
  .home_mission .img01,.home_mission .img04{display:block;position:relative;left:auto;right:auto;top:auto;bottom:auto}
  .home_mission .img01{width:60vw;height:44vw;margin:0 0 40px auto}
  .home_mission .img04{width:60vw;height:44vw;margin:40px auto -80px 0}
  .job_list{flex-direction:column;margin-right:0}
  .job_list .item{width:100%!important;height:58vw;max-height:520px;min-height:300px}
  .job_list .en{font-size:7vw;margin-bottom:1.2rem}
  .job_list .ttl{line-height:2;margin-bottom:.2em}
  .job_list .gotxt{max-width:100%;padding-right:1em;font-size:.875rem}
  .a-circle{width:64px;height:64px}
  .gallery_item{width:calc(100vw/2.05)}
  .formwrap{grid-template-columns:1fr}
  .grid3{grid-template-columns:repeat(2,1fr)}
  .prof{grid-template-columns:1fr}
  .prof .im{min-height:80vw}
  .parts{grid-template-columns:1fr}
  .parts .media{min-height:56vw}
  .parts.wide .media,.parts.work3 .media{min-height:0}
  .parts.rev .media{order:0}
  .page_ttl{height:400px}
  .page_ttl--bg.lft{right:auto;left:0;width:90vw;height:250px;clip-path:polygon(0 0,35% 0,100% 100%,0 100%)}
  .page_ttl--bg.rgt{left:auto;right:0;width:75vw;height:180px;clip-path:polygon(0 0,100% 0,100% 100%,35% 100%)}
  .page_ttl::before{right:0;width:75vw;clip-path:polygon(0 0,100% 0,100% 100%,35% 100%)}
  .footer_top{display:block}
  .footer_top>*{width:100%}
  .footer_menu{margin-top:48px}
}
@media (max-width:767px){
  html{font-size:14px;scroll-padding-top:80px}
  .img_anime::before{display:none}
  body{font-size:.9375rem}
  .pc-none{display:inline}.sp-none{display:none}
  .br-sp{display:block;height:0;overflow:hidden}
  .ttl-01{margin-bottom:2em}
  .ttl-01 .en{margin-bottom:.5em;font-size:3.9vw}
  .ttl-01 .en::before{width:1em;height:.85em;transform:translateY(.08em)}
  .ttl-01 .jp{font-size:5.8vw}
  .hero{padding-bottom:30px;overflow:hidden}
  .hero_slide.lft{right:auto;left:-25vw;width:124.4vw;height:190px;z-index:2}
  .hero_slide.rgt{left:auto;right:-13vw;bottom:236px;width:94.93vw;height:138px}
  .hero--en.lg{height:auto}
  .home_pickup:not(.voice) .deco-red{top:-114vw;right:10.2vw;width:80vh;height:80vh;border-top-width:6px;border-right-width:6px}
  .hero--catch{padding-top:202px;margin-bottom:8px;margin-right:3vw;font-size:8.45vw;position:relative;z-index:3}
  .hero--en.lg{margin-left:1vw;font-size:18.6vw}
  .hero_slide.lft .s::after{display:none}
  .hero--en.sm{margin-left:1vw;margin-right:0;font-size:14.49vw;line-height:.92;letter-spacing:-.01em}
  .hero--row{display:block}
  .hero--side{margin:168px 2em 0 auto;width:max-content;max-width:88vw}
  .hero--txt{font-size:.86rem;line-height:1.66;letter-spacing:.05em}
  .hero--side .btn a{max-width:100%}
  .hero .copyright{top:57%;font-size:10px}
  .hero .deco-red{top:150px;right:10vw;width:900px;height:900px;border-top-width:4px;border-right-width:4px}
  .home_mission{overflow:hidden;padding-bottom:64px}
  .home_mission .deco-red{display:none}
  .blind_wrap{width:700vw;height:114vh;transform:translateX(-37%) translateY(-45%) rotate(-45deg)}
  .home_mission .ttl-01 .en{margin-bottom:1em}
  .home_mission .img{display:block;position:relative;inset:auto;height:auto;left:0;top:0;right:auto;bottom:auto}
  .home_mission .img img{height:auto;aspect-ratio:4/3}
  .home_mission .img01{width:61.84vw;margin-left:5.31vw}
  .home_mission .img02{width:52.9vw;margin-top:-20.89vw;margin-left:4.83vw}
  .home_mission .img03{width:49.03vw;margin:-14.86vw auto 0;transform:translateX(5vw);z-index:1}
  .home_mission .img04{width:56.28vw;margin:-14.98vw 0 0 auto}
  .home_mission .ttl-01{margin-top:0}
  .home_mission .txt{font-size:1rem;line-height:2;letter-spacing:.05em}
  .home_mission .txt:last-of-type{margin-bottom:17.39vw}
  .home_feature{overflow:hidden}
  .feature_merit{padding-top:32px;padding-bottom:24px}
  .feature_merit .ttl .en{font-size:5rem}
  .feature_merit .ttl .jp,.feature_inner{width:86%;margin-left:auto;margin-right:auto}
  .feature_merit .ttl .jp{font-size:1.65rem;letter-spacing:.05em}
  .feature_inner{padding-right:0}
  .feature_ttl{font-size:1.25rem;padding:.9rem 1.1rem}
  .feature_list{column-count:1;font-size:1rem}
  .js .feature_list li::before{display:none}
  .feature_list a{padding-left:50px}
  .feature_list .num{width:40px;height:40px;font-size:1.05rem}
  .home_job{overflow:hidden;padding-top:40px;padding-bottom:48px}
  .home_job .deco-red{display:none}
  .home_job .ttl-01{margin-bottom:1.5em}
  .job_list .item{width:98%!important;height:354px;min-height:0;max-height:none}
  .job_list .txtarea{margin-inline:6%}
  .job_list .txtarea{flex:1;width:auto;max-width:none}
  .job_list .ttl{line-height:1.5;margin-bottom:.7em;font-size:1rem}
  .job_list .num{line-height:1.5;margin-top:0}
  .job_list .en{margin-bottom:4.83vw;font-size:8.45vw;line-height:1.02}
  .a-circle{width:88px;height:88px}
  .home_job::before{display:none}
  .scroll-deco{top:60px}
  .job_list{margin-top:38px;margin-right:0}
  .job_list.second{margin-top:0}
  .txt-lg{font-size:.9375rem}
  .home_advise{padding-top:48px;padding-bottom:64px}
  .home_advise::before{width:6px}
  .home_advise .deco{margin-bottom:2rem;font-size:12vw;line-height:.9}
  .home_advise .sub{font-size:1rem}
  .gallery_item{width:88vw;padding-inline:.5rem}
  .home_pickup{padding-top:32px}
  .home_pickup .ttl .en{font-size:2rem}
  .home_pickup .ttl .jp{font-size:.875rem}
  .home_pickup .inner{width:92vw}
  .voice_box{padding:8px 18px}
  .fv_strip{height:56px}
  .home_job.top{padding-top:0}
  .posts-blog{justify-content:flex-start}
  .voice_row{display:block;padding:1rem 0}
  .voice_row .tag{width:auto;display:inline-block;padding:.4em .8em;margin-bottom:.6em}
  .voice_row blockquote{font-size:.9375rem;line-height:1.85}
  .voice_row .stars{display:block;margin-top:.3em}
  .home_plan{padding-top:60px;padding-bottom:60px}
  .plan_hint{display:block}
  .price_more{margin-top:48px}
  .price_grps{grid-template-columns:1fr;gap:16px}
  .price_grp{padding:24px 20px 20px}
  .plan_table table{font-size:.8125rem}
  .plan_table .price{font-size:1.6rem}
  .home_clients{padding-top:52px;padding-bottom:70px}
  .home_clients .img{height:800px}
  .home_clients .img img{object-position:top center}
  .home_clients .ttl-01{margin-top:2rem}
  .home_clients .txt{margin-bottom:40px}
  .lps_sec::before{width:16vw;height:16vw;top:0}
  .home_blog{padding-top:46px;padding-bottom:0}
  .home_blog .deco-red{display:none}
  .posts-blog .post{width:240px;padding:0;margin:0 16px 16px}
  .posts-blog .post:hover{box-shadow:none}
  .posts-wrap .btn a{width:90%}
  .blog_sort button{margin-inline:.45em;font-size:.8125rem}
  .footer_cta{padding-top:54px;padding-bottom:56px}
  .scroll-txt{position:relative;top:0;font-size:18vw;margin-bottom:6vw}
  .scroll-deco{font-size:34vw}
  .footer_cta .imgarea-wrap{position:relative;width:auto;margin-bottom:42px}
  .footer_cta .imgarea{width:100%;height:60vw;clip-path:polygon(0 0,75% 0,100% 100%,0 100%)}
  .footer_cta .imgarea::after{display:none}
  .footer_cta .imgarea-wrap::after{bottom:-8px;width:118px;height:88px}
  .cta-list .cta-item{display:block;width:auto}
  .cta-list .cta-item>.btn{max-width:none}
  .cta-list .cta-item>*{width:100%}
  .cta-list .cta-item:not(:last-child){margin-bottom:46px}
  .cta-list .txtarea{margin-bottom:16px}
  .footer_cta .cta-h{font-size:1.15rem}
  .footer_cta .btn a{padding-block:18px;font-size:1.075rem}
  .footer_cta .btn a::after{right:14px;width:2.75rem;height:2.75rem;background-size:32px 32px}
  .fixed_search{right:24px;bottom:18px;width:72px;height:72px;font-size:.7rem;line-height:1.3}
  .fixed_search .ring{inset:-15px}
  .fixed_search svg.ico{display:none}
  .footer_top{padding-top:48px}
  .footer--logo{margin:-48px 0 0 -5vw;padding:14px 48px 10px 5vw;clip-path:polygon(0 0,100% 0,calc(100% - 30px) 100%,0 100%)}
  .footer--logo img{width:190px}
  .footer::before{clip-path:polygon(100% 22%,100% 100%,0 100%)}
  .footer::after{font-size:70vw}
  .footer_mid{flex-direction:column;align-items:flex-start;gap:12px}
  .footer_btm{align-items:flex-end;padding-bottom:110px}
  .page_top::after{width:56px;height:56px;background-size:26px 26px}
  .page_ttl{height:308px}
  .page_ttl-en{font-size:var(--ttl-size-sp,15vw);padding-bottom:.4rem}
  .page_ttl-jp{font-size:4.6vw}
  .page_ttl--bg.lft{width:80vw;height:190px}
  .page_ttl--bg.rgt{width:75vw;height:138px}
  .page_ttl .line01{display:none}
  .page_ttl .deco-red{top:35%;right:0;width:100%;height:308px;border-top-width:4px;border-right-width:4px}
  .lps_sec{padding-top:56px;padding-bottom:56px}
    .parts .body,.parts.wide .body{padding:26px 22px}
  .parts.work3 .media{grid-template-columns:1fr}
  .compare-tools{grid-template-columns:1fr}
  .page_body{padding-top:50px;padding-bottom:60px}
  .grid3{grid-template-columns:1fr}
  .work_wrap{padding:16px 4px}
  .policy{padding:28px 22px}
  .post_body{padding:28px 20px}
  .voice_page{padding:8px 20px}
  .prof .bd{padding:28px 22px}
  .about_sec{margin-top:48px}
  .vision{padding:28px 22px}
  .vision .lead{font-size:1.125rem}
  .story_item{padding:28px 22px}
  .story_label{position:static;margin-bottom:.4em}
  .about_btns{margin-top:40px}
  .about_btns .btn{max-width:none}
  .form{padding:26px 20px}
  .table2 th,.table2 td{display:block;width:100%}
  .table2 th{border-bottom:0;padding-bottom:.6em}
  .table2 td{padding-top:.6em}
  .faq summary{padding:1.15em 3em 1.15em 1.1em}
  .faq .a{padding:0 1.1em 1.3em 3.2em}
  .viz{--fs:11px;padding:16px}
  .v-flow{flex-wrap:wrap}
  .v-flow .st{flex:1 1 44%;clip-path:none!important}
  .v-hub{grid-template-columns:1fr}
  .v-hub .c{margin-inline:auto;width:9em;height:9em}
  .v-hub .col{grid-template-columns:1fr 1fr}
  .v-hub .sp::after,.v-hub .sp::before{display:none}
  .v-2col,.v-ba{grid-template-columns:1fr}
  .v-arrow{transform:rotate(90deg);justify-self:center}
  .v-3,.v-4{grid-template-columns:1fr 1fr}
  .v-check{grid-template-columns:1fr}
  .v-side{grid-template-columns:1fr}
  .v-doc{grid-template-columns:1fr}
  .v-doc>div+div{border-left:0;border-top:1px solid var(--line)}
  .v-tree .row{grid-template-columns:1fr}
  .v-tree .row>.a{display:none}
  .v-table{font-size:.94em}
  .viz.scrollx{overflow-x:auto}
  .fixed_search.pc{display:none}
  .fixed_search.sp{display:flex}
  .fixed_scout{display:block}
  .gnav_btn{right:4.11vw;width:71px;border-left:0;justify-content:space-between}
  .gnav_btn .txt{display:block;margin-right:8px;font-family:var(--en);font-size:.8125rem;letter-spacing:0}
  .gnav_btn .gnav_btn--lines{width:19px;height:15px}
  .gnav_btn--lines span:nth-of-type(1){background:var(--red)}
  .gnav_btn--lines span:nth-of-type(2){top:6px}
  .gnav_btn.active{background:transparent}
  .gnav_btn.active .txt{color:#fff}
  .footer_btm{padding-bottom:110px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}
  .fixed_search .ring{animation:none!important}
  .brand-x{animation:none!important}
}
