/* 3工程の説明図。実際のWordPress操作画面ではなく、手順を示す抽象UI。 */
.home-process{position:relative;isolation:isolate;background:#f5f5f5}
.home-process::before{content:"";position:absolute;inset:24px 0;border-block:1px solid #e5e5e5;pointer-events:none;z-index:-1}
.process-guides{position:absolute;inset:24px 0;width:calc(100% - 32px);max-width:1112px;margin-inline:auto;border-inline:1px solid #e5e5e5;pointer-events:none;z-index:-1}
.process-guides i{position:absolute;width:13px;height:13px;background:linear-gradient(#d4d4d4,#d4d4d4) center/1px 13px no-repeat,linear-gradient(#d4d4d4,#d4d4d4) center/13px 1px no-repeat;box-shadow:0 0 0 4px #f5f5f5}
.process-guides i:nth-child(1){top:-6px;left:-7px}
.process-guides i:nth-child(2){top:-6px;right:-7px}
.process-guides i:nth-child(3){bottom:-6px;left:-7px}
.process-guides i:nth-child(4){bottom:-6px;right:-7px}
/* 背景比較の2案。交差点の数にかかわらず疑似要素1枚で描画する。 */
.home-process[data-process-background="grid"]::before,.home-process[data-process-background="cross"]::before{inset:0;border:0;background-position:center center;mask-image:linear-gradient(transparent,#000 10%,#000 90%,transparent)}
.home-process[data-process-background="grid"]::before{background-image:linear-gradient(90deg,#e4e4e4 1px,transparent 1px),linear-gradient(#e4e4e4 1px,transparent 1px);background-size:96px 96px}
.home-process[data-process-background="cross"]::before{mask-image:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='144' height='144' viewBox='0 0 144 144'%3E%3Cpath d='M72 0v144M0 72h144' fill='none' stroke='%23e7e7e7' stroke-width='.75'/%3E%3Cpath d='M72 54v36M54 72h36' fill='none' stroke='%23f5f5f5' stroke-width='7'/%3E%3Cpath d='M72 66v12M66 72h12' fill='none' stroke='%23d6d6d6' stroke-width='.75'/%3E%3C/svg%3E");background-size:144px 144px}
.home-process:is([data-process-background="grid"],[data-process-background="cross"]) .process-guides{display:none}
.process-background-compare{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-bottom:24px;font-size:12px;position:relative;z-index:1}
.process-background-compare>span{margin-right:8px;color:#737373}
.process-background-compare button{border:1px solid #ddd;border-radius:6px;padding:7px 10px;background:#ffffffb3;color:#666;font:inherit;cursor:pointer;transition:color .2s,background .2s,border-color .2s}
.process-background-compare button:hover{background:#fff;color:#222}
.process-background-compare button[aria-pressed="true"]{background:#262626;border-color:#262626;color:#fff}
.process-background-compare button:focus-visible{outline:2px solid #275cdf;outline-offset:3px}
.home-process .home-shell{max-width:1000px;margin-inline:auto}
.home-process .home-heading-aside{color:#707070}
.home-process .home-kicker.home-kicker-english{color:#999}
.process-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;list-style:none;margin:0;padding:0}
.process-card{min-width:0;display:flex;flex-direction:column;background:#fff;border:1px solid transparent;border-radius:18px;overflow:clip;box-shadow:0 2px 3px #0000000a,0 6px 14px -6px #00000014,0 18px 32px -26px #0000001f}
.process-copy{padding:25px 24px 0;flex:1;position:relative;z-index:1}
.process-number{display:inline-grid;place-items:center;min-width:31px;height:29px;padding-inline:5px;border:1px solid #ebebeb;border-radius:6px;background:#f3f3f3;color:#777;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:12px}
.home-content .process-copy h3{font-size:clamp(18px,1.5vw,20px);line-height:1.55;margin:0 0 10px;text-wrap:pretty;font-weight:600;letter-spacing:0}
.process-copy p{font-size:16px;line-height:1.55;color:#6b6b6b;margin:0;text-wrap:pretty}
.process-art{position:relative;aspect-ratio:440/320;margin-top:8px;overflow:hidden;pointer-events:none;isolation:isolate}
.process-art>svg{display:block;width:100%;height:auto;overflow:visible;stroke:none;stroke-width:1;fill:none}
.process-art text{font-family:Inter,"Noto Sans JP",sans-serif;letter-spacing:0}
.process-paper{fill:#fff;stroke:#dfe4ec;stroke-width:1.2}
.process-paper-back{fill:#fff;stroke:#e9edf2;stroke-width:1.2}
.process-paper-raised{filter:drop-shadow(0 4px 6px #273c5f0b)}
.process-rule{stroke:#e9edf2;stroke-width:1.2}
.process-dot{fill:#cfd5de}
.process-line{stroke:#e0e5ec;stroke-width:3;stroke-linecap:round}
.process-ink{stroke:#aab5c5;stroke-width:4;stroke-linecap:round}
.process-page-left,.process-page-right,.process-page-secondary{transform:translateY(4px) scale(.8);opacity:.6}
.process-page-front{transform:translate(-32px,-2px) scale(1.2)}
.process-select-front{fill:none;stroke:#6287e6;stroke-width:1.5;opacity:1}
.process-select-cursor{transform:translate(294px,186px)}
.process-edit-cursor{transform:translate(291px,244px)}
.process-photo-before,.process-image-selection,.process-text-caret,.process-job-old{opacity:0}
.process-photo-after,.process-job-new{opacity:1}
/* staticはJS未実行・動き抑制時の完成状態。pauseでは時刻を保持する。 */
.process-card:not([data-motion="static"]) .process-page-front{animation:process-front 9s cubic-bezier(.45,0,.2,1) infinite}
.process-card:not([data-motion="static"]) :is(.process-page-left,.process-page-right,.process-page-secondary){animation:process-options 9s cubic-bezier(.45,0,.2,1) infinite}
.process-card:not([data-motion="static"]) .process-select-front{animation:process-front-outline 9s ease infinite}
.process-card:not([data-motion="static"]) .process-choice-check{animation:process-choice 9s ease infinite}
.process-card:not([data-motion="static"]) .process-select-cursor{animation:process-select-pointer 9s cubic-bezier(.45,0,.2,1) infinite}
.process-card:not([data-motion="static"]) .process-photo-before{animation:process-before 9s ease infinite}
.process-card:not([data-motion="static"]) .process-photo-after{animation:process-after 9s ease infinite}
.process-card:not([data-motion="static"]) .process-image-selection{animation:process-image-frame 9s ease infinite}
.process-card:not([data-motion="static"]) .process-edit-text{animation:process-text 9s ease infinite;transform-origin:106px 241px}
.process-card:not([data-motion="static"]) .process-text-caret{animation:process-caret 9s steps(1) infinite}
.process-card:not([data-motion="static"]) .process-edit-job{animation:process-job 9s ease infinite}
.process-card:not([data-motion="static"]) .process-edit-tools{animation:process-tools 9s ease infinite}
.process-card:not([data-motion="static"]) .process-edit-cursor{animation:process-edit-pointer 9s cubic-bezier(.45,0,.2,1) infinite}
.process-card:not([data-motion="static"]) .process-live-status{animation:process-live 9s ease infinite}
.process-card:not([data-motion="static"]) .process-live-check{animation:process-check-draw 9s ease infinite}
.process-card:not([data-motion="static"]) .process-live-dot{animation:process-live-pulse 9s ease infinite}
.process-card:not([data-motion="static"]) .process-update-card{animation:process-update 9s cubic-bezier(.45,0,.2,1) infinite}
.process-card:not([data-motion="static"]) .process-job-old{animation:process-old-job 9s ease infinite}
.process-card:not([data-motion="static"]) .process-job-new{animation:process-new-job 9s ease infinite}
.process-card:not([data-motion="static"]) .process-update-check{animation:process-update-done 9s ease infinite}
.process-card:not([data-motion="static"]) .process-sync-line{animation:process-sync 9s ease infinite}
.process-card:nth-child(2){--process-delay:.6s}
.process-card:nth-child(3){--process-delay:1.2s}
.process-card:not([data-motion="static"]) .process-art *{animation-delay:var(--process-delay,0s);animation-fill-mode:both}
.process-card[data-motion="paused"] .process-art *{animation-play-state:paused}

/* Six-page grid, browse left/right/center, then enlarge the selected page. */
@keyframes process-front{0%,52%,96%,100%{transform:translate(0,0) scale(.8)}64%,84%{transform:translate(-32px,-2px) scale(1.2)}}
@keyframes process-options{0%,52%,96%,100%{transform:translateY(0) scale(.8);opacity:1}64%,84%{transform:translateY(4px) scale(.8);opacity:.6}}
@keyframes process-front-outline{0%,49%,94%,100%{opacity:0}54%,84%{opacity:1}}
@keyframes process-choice{0%,56%,94%,100%{opacity:0}65%,83%{opacity:1}}
@keyframes process-select-pointer{0%,5%{transform:translate(89px,196px);opacity:0}12%,20%{transform:translate(118px,127px);opacity:1}30%,38%{transform:translate(394px,139px);opacity:1}48%,52%{transform:translate(266px,139px);opacity:1}54%{transform:translate(266px,140px) scale(.93);opacity:1}64%,80%{transform:translate(294px,186px);opacity:1}91%,100%{transform:translate(294px,186px);opacity:0}}
@keyframes process-before{0%,20%,95%,100%{opacity:1}31%,87%{opacity:0}}
@keyframes process-after{0%,20%,100%{opacity:0;transform:translateY(5px)}32%,85%{opacity:1;transform:translateY(0)}95%{opacity:0;transform:translateY(0)}}
@keyframes process-image-frame{0%,9%,39%,100%{opacity:0}15%,33%{opacity:1}}
@keyframes process-text{0%,39%,100%{transform:scaleX(.82)}51%,85%{transform:scaleX(1)}94%{transform:scaleX(.82)}}
@keyframes process-caret{0%,40%,51%,62%,100%{opacity:0}44%,54%{opacity:1}}
@keyframes process-job{0%,58%,94%,100%{transform:translateY(0)}65%{transform:translateY(-4px)}73%,85%{transform:translateY(0)}}
@keyframes process-tools{0%,5%,83%,100%{opacity:0;translate:-8px 0}15%,72%{opacity:1;translate:0 0}}
@keyframes process-edit-pointer{0%,4%{transform:translate(222px,181px);opacity:0}13%,27%{transform:translate(224px,156px);opacity:1}44%,50%{transform:translate(291px,244px);opacity:1}64%,68%{transform:translate(296px,294px);opacity:1}80%,100%{transform:translate(296px,294px);opacity:0}}
@keyframes process-live{0%,6%,100%{opacity:0;translate:0 6px}17%,88%{opacity:1;translate:0 0}96%{opacity:0;translate:0 0}}
@keyframes process-check-draw{0%,15%{stroke-dasharray:1;stroke-dashoffset:1}27%,100%{stroke-dasharray:1;stroke-dashoffset:0}}
@keyframes process-live-pulse{0%,26%,52%,100%{opacity:1}38%{opacity:.2}}
@keyframes process-update{0%,30%,100%{translate:0 8px}43%,87%{translate:0 0}}
@keyframes process-old-job{0%,40%,100%{opacity:1}51%,89%{opacity:0}}
@keyframes process-new-job{0%,40%,100%{opacity:0;translate:0 3px}52%,86%{opacity:1;translate:0 0}94%{opacity:0;translate:0 0}}
@keyframes process-update-done{0%,48%,100%{opacity:0}60%,86%{opacity:1}94%{opacity:0}}
@keyframes process-sync{0%,39%,100%{stroke-dasharray:1;stroke-dashoffset:1;opacity:0}45%{opacity:1;stroke-dashoffset:1}61%,83%{opacity:1;stroke-dashoffset:0}94%{opacity:0;stroke-dashoffset:0}}

@media(max-width:1099px){
 .process-steps{gap:16px}
 .process-copy{padding:25px 23px 0}
 .process-number{margin-bottom:12px}
 .process-art{margin-top:8px}
}
@media(max-width:900px){
 .process-steps{grid-template-columns:1fr;max-width:580px;margin-inline:auto;gap:24px}
 .process-copy{padding:25px 26px 0}
 .home-content .process-copy h3{font-size:20px}
 .process-art{width:100%;max-width:440px;height:310px;aspect-ratio:auto;margin:8px auto 0}
 .process-art>svg{position:absolute;width:100%;left:0;bottom:-1px}
}
@media(max-width:479px){
 .home-process[data-process-background="grid"]::before{background-size:72px 72px}
 .home-process[data-process-background="cross"]::before{background-size:108px 108px}
 .process-background-compare{justify-content:flex-start;flex-wrap:wrap;gap:4px}
 .process-background-compare>span{flex-basis:100%;margin-bottom:4px}
 .home-process::before{inset-block:16px}
 .process-guides{inset-block:16px;width:calc(100% - 24px)}
 .process-copy{padding:25px 24px 0}
 .process-copy p{font-size:15px;line-height:1.55}
 .home-content .process-copy h3{font-size:20px}
 .process-number{margin-bottom:12px}
 .process-art{max-width:none;height:auto;aspect-ratio:440/320;margin-top:8px}
 .process-art>svg{position:static;width:100%;max-width:none}
 .process-card{border-radius:14px}
}
@media(prefers-reduced-motion:reduce){
 .process-card .process-art *{animation:none!important}
}
