/* makino-nagoya トップ固有CSS（design/ index.html より移植・共通分は common.css）
   hero--orbit / stage / stagewrap / svc-stage / flowstack / 横スクロール / bento / count 等。
   ※ SERVICE番号 01-04 の右余白ガード（@media min-width:1025px）含む。 */

.stage{perspective:1400px;perspective-origin:50% 45%}
.scene{position:relative;transform-style:preserve-3d;will-change:transform,opacity,filter}

.hero{position:relative;height:100svh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;transform-style:preserve-3d}
.hero__bg{position:absolute;inset:-12%;z-index:0;will-change:transform}.hero__bg .ph{position:absolute;inset:0}
.hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(13,18,33,.6) 0%,rgba(13,18,33,.12) 32%,rgba(13,18,33,.2) 55%,rgba(13,18,33,.92) 100%),linear-gradient(90deg,rgba(13,18,33,.66) 0%,rgba(13,18,33,.04) 62%)}
.hero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(64px,11vh,140px);padding-top:140px}
.hero__title{font-size:clamp(2.3rem,6.4vw,5.4rem);line-height:1.18;max-width:15em;text-shadow:0 2px 30px rgba(0,0,0,.28);font-weight:900}
.hero__title .ln{display:block;overflow:hidden}.hero__title .lnw{display:block}
.hero__desc{margin-top:1.2em;max-width:31em;color:rgba(255,255,255,.9);font-size:clamp(.82rem,1.1vw,.92rem);line-height:1.8;text-align:justify}
.hero__actions{margin-top:1.9em;display:flex;gap:14px;flex-wrap:wrap}
.hero__actions .btn{padding:.8em 1.5em;font-size:.9rem}
/* C案：円形トリミング＋奥行きループ（ファーストビュー） */
.hero--orbit{align-items:center;background:radial-gradient(120% 120% at 75% 8%,#36486e 0%,#243353 44%,#1a2540 74%,#131c30 100%)}
.hero--orbit .hero__overlay{background:linear-gradient(90deg,rgba(13,18,33,.82) 0%,rgba(13,18,33,.38) 42%,rgba(13,18,33,.04) 66%),linear-gradient(180deg,rgba(13,18,33,.45) 0%,rgba(13,18,33,.1) 40%,rgba(13,18,33,.55) 100%)}
.hero--orbit .hero__inner{max-width:var(--maxw);margin:0 auto;padding-top:0;padding-bottom:0}
.hero--orbit .hero__title{max-width:11em}
.hero--orbit .hero__desc{max-width:38em}
.orbit-stage{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:1}
.ocircle{position:absolute;border-radius:50%;overflow:hidden;will-change:transform,opacity,filter;transform:translate(-50%,-50%);transition:left 1s cubic-bezier(.45,.05,.2,1),top 1s cubic-bezier(.45,.05,.2,1),width 1s cubic-bezier(.45,.05,.2,1),height 1s cubic-bezier(.45,.05,.2,1),opacity 1s ease,filter 1s ease;box-shadow:0 30px 70px rgba(0,0,0,.4)}
.ocircle .img{position:absolute;inset:0;background-size:cover;background-position:center}
/* 画面全体基準。奥(左上・小)→手前(右下・特大)の対角に配置 */
.ocircle.slot0{width:10vw;height:10vw;left:48%;top:18%;filter:blur(5px) brightness(.78);opacity:.85;z-index:1}
.ocircle.slot1{width:16vw;height:16vw;left:56%;top:30%;filter:blur(2px) brightness(.9);opacity:.95;z-index:2}
.ocircle.slot2{width:25vw;height:25vw;left:66%;top:48%;filter:blur(0);opacity:1;z-index:3}
.ocircle.slot3{width:46vw;height:46vw;left:84%;top:62%;filter:blur(0);opacity:1;z-index:4}
.ocircle.exit{width:62vw;height:62vw;left:100%;top:82%;filter:blur(1px);opacity:0;z-index:5}
.ocircle.enter{width:7vw;height:7vw;left:44%;top:12%;filter:blur(7px) brightness(.72);opacity:0;z-index:0;transition:none}
@media(max-width:860px){
  .hero--orbit{align-items:flex-end}
  .hero--orbit .hero__inner{padding-bottom:clamp(64px,11vh,140px);padding-top:140px}
  .hero--orbit .hero__overlay{background:linear-gradient(180deg,rgba(13,18,33,.45) 0%,rgba(13,18,33,.12) 30%,rgba(13,18,33,.55) 60%,rgba(13,18,33,.92) 100%)}
  .ocircle.slot0{width:18vw;height:18vw;left:30%;top:14%}
  .ocircle.slot1{width:28vw;height:28vw;left:46%;top:24%}
  .ocircle.slot2{width:42vw;height:42vw;left:62%;top:36%}
  .ocircle.slot3{width:66vw;height:66vw;left:82%;top:48%}
  .ocircle.exit{width:88vw;height:88vw;left:104%;top:62%}
  .ocircle.enter{width:12vw;height:12vw;left:24%;top:8%}
}
.scroll-hint{position:absolute;left:var(--pad);bottom:26px;z-index:3;font-family:var(--font-en);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:.7em}
.scroll-hint::after{content:"";width:1px;height:30px;background:rgba(255,255,255,.5);animation:drop 1.8s ease-in-out infinite}
@keyframes drop{0%,100%{transform:scaleY(.4);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}}

.sec{padding-block:clamp(88px,12vw,180px);position:relative}
.sec--white{background:var(--c-surface)}.sec--cream{background:var(--c-bg)}
.sec--round{border-radius:28px}
/* 額縁マージン（重なりなし）：Our Stance / Why Makino 等。四隅に紺地が見える */
.framed{margin:clamp(20px,3vw,48px) clamp(16px,3vw,48px);border-radius:28px;overflow:hidden}
/* Trust / Area / FAQ+Price / Access：sticky スタッキング（B案：重なり＋scale/影をJSで付与）。四隅に紺地が見える額縁マージン */
/* 額縁マージン（重なりなし）：Our Stance / Why Makino / Trust / Area / FAQ+Price / Access。padding控えめ */
.framed.sec{padding-block:clamp(40px,6vw,80px)}
.line{display:block;overflow:hidden}.line .lw{display:block}
/* Area：紺背景の反転セクション */
.s-area{background:var(--c-primary-deep)!important}
.s-area .sec-head h2,.s-area .sec-head .kicker{color:#fff}
.s-area .sec-head .lead{color:rgba(255,255,255,.82)}
.s-area .kicker{color:#dcc290}.s-area .kicker::before{background:#cdab6f}
.s-area .hub{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.03)}
.s-area .hub:hover{box-shadow:0 14px 40px rgba(0,0,0,.3)}
.s-area .hub h3{color:#fff}.s-area .hub h3 small{color:var(--c-accent-bright)}
.s-area .hub p{color:rgba(255,255,255,.72)}
.s-area .hub .near span{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.8)}
.s-access{will-change:clip-path}
/* STAGE (sticky cinematic: 4 cards fly + copy focus-pull + Service zoom-in to white) */
.stagewrap{position:relative;height:320vh;background:var(--c-primary-deep)}
.stagewrap__pin{position:sticky;top:0;height:100svh;overflow:hidden;perspective:1100px;perspective-origin:50% 50%;display:flex;align-items:center;justify-content:center}
.bridge__copy{position:absolute;z-index:5;text-align:center;pointer-events:none;width:min(90vw,40em);left:50%;top:50%;transform:translate(-50%,-50%)}
.bridge__lead{margin:0;color:#fff;font-weight:900;font-size:clamp(1.3rem,3vw,2.2rem);letter-spacing:.06em;text-shadow:0 2px 30px rgba(0,0,0,.4)}
.bridge__sub{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);margin:0;color:rgba(255,255,255,.92);font-weight:400;font-size:clamp(.82rem,1.5vw,1.2rem);line-height:1.8;letter-spacing:.04em;opacity:0;text-wrap:balance}
.tunnel{position:absolute;inset:0;transform-style:preserve-3d}
.tcard{position:absolute;width:min(40vw,460px);aspect-ratio:16/10;border-radius:18px;overflow:hidden;will-change:transform,opacity;box-shadow:0 30px 80px rgba(0,0,0,.45);opacity:0}
.tcard[data-i="0"]{top:12%;left:7%}
.tcard[data-i="1"]{top:12%;right:7%}
.tcard[data-i="2"]{bottom:12%;left:7%}
.tcard[data-i="3"]{bottom:12%;right:7%}
.tcard .ph{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat}
.tcard__v{position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,18,33,.1) 40%,rgba(13,18,33,.8) 100%)}
.tcard__t{position:absolute;left:0;right:0;bottom:0;padding:clamp(18px,2.4vw,30px);color:#fff;font-weight:900;font-size:clamp(1.1rem,2vw,1.7rem);display:flex;align-items:baseline;gap:.5em}
.tcard__t span{font-family:var(--font-en);font-weight:300;font-size:.7em;color:var(--c-accent-bright)}
.svc-stage{position:absolute;top:0;bottom:0;left:clamp(16px,3vw,48px);right:clamp(16px,3vw,48px);z-index:8;opacity:0;will-change:transform,opacity,filter}
.svc-stage__panel{width:100%;height:100%;background:var(--c-surface);display:flex;align-items:center;justify-content:center;border-radius:28px}
.svc-stage__inner{width:100%;max-width:var(--maxw);padding:clamp(28px,5vh,64px) var(--pad)}
.svc-stage__head{text-align:center;margin-bottom:clamp(18px,3vh,36px)}
.svc-stage__head .kicker{justify-content:center;margin-bottom:1em}
.svc-stage .svc-grid{margin-top:0;padding-inline:0}
.svc-stage .svc{min-height:0;height:clamp(150px,26vh,250px)}
@media(max-width:1024px){.svc-stage__panel{overflow:auto}.svc-stage .svc-grid{grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,22px)}.svc-stage .svc{height:auto;min-height:clamp(180px,24vh,230px);align-items:stretch}.svc-stage .svc__body{padding:clamp(46px,7vw,56px) clamp(20px,2.8vw,28px) clamp(20px,2.8vw,28px);display:flex;flex-direction:column;justify-content:space-between}.svc-stage .svc h3{font-size:clamp(1.12rem,2.6vw,1.4rem);line-height:1.4;text-wrap:balance}.svc-stage .svc__more{font-size:.98rem}.svc-stage .svc__no{font-size:clamp(2rem,4vw,2.8rem)}.svc-stage .svc p{display:none}}
@media(max-width:600px){.svc-stage{left:10px;right:10px}.svc-stage__inner{padding:clamp(18px,4vh,32px) 10px}.svc-stage .svc-grid{gap:12px}.svc-stage .svc{min-height:clamp(165px,25vh,205px)}.svc-stage .svc__body{padding:44px 12px 16px;text-align:center}.svc-stage .svc h3{font-size:1.05rem;line-height:1.5}.svc-stage .svc__more{font-size:.95rem;justify-content:center}.svc-stage .svc__no{font-size:2rem}.svc-stage__head{margin-bottom:16px}.svc-stage .svc h3 .svc-line2{display:block}}
.svc-stage .svc h3,.svc-stage .svc__more{position:relative;z-index:2}
.svc-stage .svc__no{position:absolute;top:clamp(10px,2vw,18px);right:clamp(14px,2.4vw,24px);left:auto;bottom:auto;z-index:1;font-size:clamp(1.5rem,4.2vw,2.8rem);font-weight:300;line-height:1;opacity:.4}
/* 2カラム表示（ノートPC幅）で見出しが右上の番号(01〜04)の下に回り込まないよう、見出しに番号分の右余白を確保 */
@media(min-width:1025px){.svc-stage .svc h3{padding-right:3rem}}
.svc-stage .svc__ic{display:none}
@media(max-width:600px){.tcard{width:78vw}}
@media(prefers-reduced-motion:reduce){.stagewrap{height:auto}.stagewrap__pin{position:relative;height:auto;display:block;padding:60px 0;perspective:none}.tcard{position:relative;transform:none;opacity:1;margin:14px auto;inset:auto;width:min(80vw,460px)}.bridge__copy{position:relative;transform:none;left:auto;top:auto;margin:0 auto 30px;width:auto}.bridge__sub{position:relative;transform:none;top:auto;opacity:1;margin-top:14px}.svc-stage{position:relative;opacity:1;transform:none}.svc-stage__panel{height:auto}}
.sec-head{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.sec-head .kicker{margin-bottom:1.3em}.sec-head h2{margin-bottom:.5em}

.svc-grid{max-width:var(--maxw);margin:clamp(36px,4vw,60px) auto 0;padding-inline:var(--pad);display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,1.8vw,26px)}
.svc{position:relative;border-radius:24px;overflow:hidden;min-height:300px;display:flex;align-items:flex-end;color:#fff;isolation:isolate;will-change:transform,opacity}
.svc .ph{position:absolute;inset:0;z-index:-2;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.svc:hover .ph{transform:scale(1.07)}
.svc__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,18,33,.14) 30%,rgba(13,18,33,.84) 100%)}
.svc__body{padding:clamp(26px,3vw,40px);width:100%}
.svc__no{font-family:var(--font-en);font-weight:300;font-size:1.1rem;color:var(--c-accent-bright);letter-spacing:.1em}
.svc__ic{width:40px;height:40px;color:#fff;margin:.4em 0 .6em}
.svc h3{font-size:clamp(1.3rem,2vw,1.7rem);margin-bottom:.4em;font-weight:900}
.svc p{font-size:.92rem;color:rgba(255,255,255,.85);max-width:26em;line-height:1.8}
.svc__more{margin-top:1em;display:inline-flex;align-items:center;gap:.5em;font-weight:700;font-size:.9rem;white-space:nowrap}.svc__more svg{transition:transform .25s}.svc:hover .svc__more svg{transform:translateX(6px)}

.str{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,80px);align-items:center}
.str__media{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/5}.str__media .ph{position:absolute;inset:-12%}
.str__points{display:grid;gap:22px;margin-top:1.6em}.str__pt{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.str__pt .ic{width:48px;height:48px;border-radius:12px;background:var(--c-bg);border:1px solid var(--c-line);display:grid;place-items:center;color:var(--c-primary)}
.str__pt h3{font-size:1.12rem;font-weight:900;margin-bottom:.2em}.str__pt p{font-size:.92rem;color:var(--c-ink-soft);line-height:1.8;max-width:28em}

.pkg{background:var(--c-primary);color:#fff;position:relative;overflow:hidden;padding-block:clamp(90px,12vw,180px)}
.pkg__glow{position:absolute;inset:0;background:radial-gradient(50% 60% at 80% 10%,rgba(196,106,134,.22),transparent 60%),radial-gradient(50% 60% at 10% 90%,rgba(176,137,76,.18),transparent 60%)}
.pkg__inner{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
.pkg__head{max-width:46em;margin-bottom:clamp(40px,5vw,64px)}.pkg__head .kicker{color:#e8aec0;margin-bottom:1.3em}.pkg__head .kicker::before{background:var(--c-salon)}
.pkg__head h2{font-size:clamp(1.7rem,3.4vw,2.7rem);margin-bottom:.5em;font-weight:900}.pkg__head p{color:rgba(255,255,255,.82);max-width:38em;line-height:1.95}
.pkg__layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:center}
.diagram{position:relative;aspect-ratio:1/1;max-width:460px;margin:0 auto;width:100%;perspective:900px}.diagram svg{width:100%;height:100%;overflow:visible;will-change:transform}
.node{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.25)}.node-core{fill:var(--c-accent);stroke:none}
.spoke{stroke:rgba(202,167,102,.45);stroke-width:1.5;stroke-dasharray:5 6}
.dlabel{fill:#fff;font-family:var(--font-jp);font-weight:700;font-size:13px;text-anchor:middle}.dlabel-core{fill:#fff;font-weight:900;font-size:14px}
.dsub{fill:rgba(255,255,255,.6);font-family:var(--font-en);font-size:8px;letter-spacing:.15em;text-anchor:middle}
.pkg__steps{display:grid;gap:14px;counter-reset:s}
.pkg-step{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;padding:16px 20px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.03);transition:.3s;will-change:transform,opacity}
.pkg-step:hover{background:rgba(255,255,255,.08);transform:translateX(6px)}
.pkg-step .n{counter-increment:s;font-family:var(--font-en);font-weight:300;font-size:1.5rem;color:var(--c-accent-bright);min-width:1.4em}.pkg-step .n::before{content:counter(s,decimal-leading-zero)}
.pkg-step h4{font-size:1.02rem;font-weight:700}.pkg-step p{font-size:.82rem;color:rgba(255,255,255,.65)}
.pkg-step{transform-origin:left center}
.pkg-step.is-active{background:var(--c-accent);border-color:var(--c-accent);transform:scale(1.05);box-shadow:0 18px 50px rgba(0,0,0,.28)}
.pkg-step.is-active .n{color:#fff}
.pkg-step.is-active h4{color:#fff}
.pkg-step.is-active p{color:rgba(255,255,255,.9)}
.pkg__cta{margin-top:clamp(36px,4vw,52px)}.pkg__note{margin-top:1em;font-size:.78rem;color:rgba(255,255,255,.5)}

.band{position:relative;min-height:clamp(380px,56vh,620px);display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}
.band__bg{position:absolute;inset:-18%;z-index:0;will-change:transform}.band__bg .ph{position:absolute;inset:0}
.band__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(13,18,33,.5),rgba(13,18,33,.74))}
.band__inner{position:relative;z-index:2;padding:0 var(--pad)}.band__inner .kicker{justify-content:center;margin-bottom:1.4em}
.band__copy{font-size:clamp(1.6rem,4.4vw,3.2rem);font-weight:900;line-height:1.4;max-width:20em;text-shadow:0 2px 24px rgba(0,0,0,.3);will-change:transform,opacity,filter}

.trust{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,5vw,72px);align-items:center}
.trust__media{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3}.trust__media .ph{position:absolute;inset:-12%}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,30px);margin:1.8em 0}
.stat__num{font-family:var(--font-en);font-weight:300;font-size:clamp(2.4rem,4.6vw,3.6rem);line-height:1;color:var(--c-primary);letter-spacing:-.02em}
.stat__num .u{font-size:.34em;font-weight:500;margin-left:.12em;color:var(--c-accent-text);font-family:var(--font-jp)}
.stat__label{margin-top:.4em;font-size:.78rem;color:var(--c-ink-soft)}
.trust__pts{list-style:none;display:grid;gap:.7em}.trust__pts li{padding-left:1.9em;position:relative;color:var(--c-ink-soft);font-size:.92rem;line-height:1.8}.trust__pts li svg{position:absolute;left:0;top:.2em;width:18px;height:18px}
/* 事務所情報（対応業務・体制）：LLMO向け実テキスト */
.firm{max-width:var(--maxw);margin:clamp(36px,4vw,56px) auto 0;padding-inline:var(--pad);padding-top:clamp(28px,3.5vw,44px);border-top:1px solid var(--c-line);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,5vw,72px)}
.firm__h{font-size:1.05rem;font-weight:900;color:var(--c-primary);margin-bottom:1em;padding-bottom:.6em;border-bottom:2px solid var(--c-accent);display:inline-block}
.firm__list{list-style:none;display:grid;gap:.6em}
.firm__list li{position:relative;padding-left:1.1em;font-size:.9rem;color:var(--c-ink-soft);line-height:1.75}
.firm__list li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--c-accent)}
@media(max-width:760px){.firm{grid-template-columns:1fr;gap:28px}}

.area-wrap{max-width:var(--maxw);margin:clamp(40px,5vw,64px) auto 0;padding-inline:var(--pad);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,6vw,80px);align-items:center}
.hubs{display:grid;gap:24px}.hub{border:1px solid var(--c-line);border-radius:16px;padding:clamp(24px,3vw,34px);background:var(--c-surface);transition:.3s}.hub:hover{box-shadow:0 14px 40px rgba(30,42,68,.1);transform:translateY(-3px)}
.hub h3{font-size:1.3rem;display:flex;flex-direction:column;align-items:flex-start;gap:.25em;font-weight:900}.hub h3 small{font-family:var(--font-en);font-size:.58rem;letter-spacing:.2em;color:var(--c-accent-text);text-transform:uppercase}
.hub p{margin-top:.5em;color:var(--c-ink-soft);font-size:.88rem}.hub .near{margin-top:.9em;display:flex;flex-wrap:wrap;gap:6px}.hub .near span{font-size:.7rem;background:var(--c-bg);border:1px solid var(--c-line);border-radius:6px;padding:.28em .6em;color:var(--c-ink-soft)}
.map{position:relative;aspect-ratio:1/.86;background:radial-gradient(120% 120% at 70% 20%,#26334f,#161f36);border-radius:20px;overflow:hidden}.map svg{position:absolute;inset:0;width:100%;height:100%}
.areamap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
@media(max-width:600px){.map{aspect-ratio:4/3}}

.duo{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,40px)}
.duo-card{position:relative;background:var(--c-surface);border:1px solid var(--c-line);border-radius:18px;padding:clamp(26px,3.2vw,40px);overflow:hidden;transition:.3s}.duo-card:hover{box-shadow:0 16px 46px rgba(30,42,68,.1);transform:translateY(-3px)}
.duo-card .badge{position:absolute;right:clamp(20px,2.6vw,30px);top:clamp(20px,2.6vw,30px);width:38px;height:38px;color:var(--c-accent)}
.duo-card .kicker{margin-bottom:1em}.duo-card h3{font-size:clamp(1.2rem,2vw,1.4rem);line-height:1.4;margin-bottom:.6em;font-weight:900}.duo-card p{color:var(--c-ink-soft);margin-bottom:1.4em;max-width:26em;line-height:1.85}
/* FAQ Q&A（実テキスト） */
.qa{margin:0 0 1.4em;display:grid;gap:0;border-top:1px solid var(--c-line)}
.qa>div{padding:1em 0;border-bottom:1px solid var(--c-line)}
.qa dt{font-weight:700;font-size:.96rem;color:var(--c-primary);position:relative;padding-left:1.5em;margin-bottom:.4em}
.qa dt::before{content:"Q";position:absolute;left:0;top:-.05em;font-family:var(--font-en);font-weight:700;color:var(--c-accent-text)}
.qa dd{font-size:.88rem;color:var(--c-ink-soft);line-height:1.85;padding-left:1.5em;position:relative}
.qa dd::before{content:"A";position:absolute;left:0;top:0;font-family:var(--font-en);font-weight:700;color:var(--c-ink-soft);opacity:.55}
/* 料金の考え方リスト */
.fee-pts{list-style:none;margin:0 0 1.4em;display:grid;gap:.7em}
.fee-pts li{position:relative;padding-left:1.5em;font-size:.9rem;color:var(--c-ink-soft);line-height:1.8}
.fee-pts li::before{content:"";position:absolute;left:.1em;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--c-accent)}

.access{max-width:1100px;margin:clamp(36px,4vw,56px) auto 0;padding-inline:var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:stretch}
.access-table{width:100%;border-top:1px solid var(--c-line)}.access-table>div{display:grid;grid-template-columns:72px 1fr;gap:18px;padding:14px 4px;border-bottom:1px solid var(--c-line)}
.access-table dd a{color:var(--c-accent-text);text-decoration:underline;text-underline-offset:2px}
.maplink{display:inline-flex;align-items:center;gap:.5em;margin-top:1em;font-weight:700;font-size:.9rem;color:var(--c-primary)}
.maplink svg{transition:transform .25s}.maplink:hover svg{transform:translateX(4px)}
.access-table dt{font-weight:700;font-size:.9rem;color:var(--c-primary);line-height:1.8}.access-table dd{color:var(--c-ink-soft);font-size:.9rem;line-height:1.8}.access .ph{border-radius:16px;aspect-ratio:4/3}
.accessmap{width:100%;height:100%;min-height:clamp(320px,42vh,460px);border:0;border-radius:16px;display:block}
.access .zoomwrap{height:100%;display:flex;flex-direction:column}
.access .accessmap{flex:1 1 auto}

.cta{background:var(--c-primary-deep);color:#fff;text-align:center;padding-block:clamp(80px,11vw,150px);position:relative;overflow:hidden}
.cta__glow{position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 0%,rgba(176,137,76,.28),transparent 70%)}
.cta__inner{position:relative;z-index:1;max-width:760px;margin:0 auto;padding-inline:var(--pad)}
.cta .kicker{justify-content:center;color:#dcc290;margin-bottom:1.5em}.cta h2{font-size:clamp(1.5rem,3.2vw,2.35rem);margin-bottom:.6em;font-weight:900;line-height:1.4}.cta p{color:rgba(255,255,255,.85);max-width:34em;margin:0 auto 2em;line-height:1.85}
.assurance{list-style:none;display:flex;gap:clamp(16px,3vw,40px);justify-content:center;flex-wrap:wrap;margin-bottom:2.4em}.assurance li{font-size:.88rem;color:rgba(255,255,255,.92);display:flex;align-items:center;gap:.5em}.assurance li svg{width:18px;height:18px;color:var(--c-accent-bright)}
.cta .sub{margin-top:1.6em;font-size:.85rem}.cta .sub a{color:#dcc290;text-decoration:underline;text-underline-offset:3px}
/* 初回面談で相談できること（本文とボタンの間） */
.cta-can{list-style:none;display:inline-grid;gap:.6em;text-align:left;margin:0 auto 2.2em;padding:1.1em 1.6em;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.04)}
.cta-can li{position:relative;padding-left:1.6em;font-size:.88rem;color:rgba(255,255,255,.88);line-height:1.7}
.cta-can li::before{content:"";position:absolute;left:.2em;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--c-accent-bright)}
/* 安心材料：CTA下の補足として配置 */
.cta .assurance{margin:2.4em auto 0}

.site-footer{background:var(--c-primary-deep);color:rgba(255,255,255,.7);padding:clamp(56px,7vw,88px) 0 32px;border-top:1px solid rgba(255,255,255,.08)}
.foot-grid{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad);display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(32px,4vw,60px)}
.foot-brand{color:#fff;font-weight:900;margin-bottom:1em}.site-footer address{font-style:normal;font-size:.85rem;line-height:1.9}
.foot-logo{display:block;width:auto;height:clamp(54px,6.6vw,78px);max-width:min(80vw,330px);object-fit:contain;object-position:left center;margin-bottom:1.4em}
.foot-address{display:grid;gap:.5em;font-style:normal}
.foot-address__addr{font-size:.9rem;line-height:1.85;color:rgba(255,255,255,.82)}
.foot-address__tel{font-family:var(--font-en);font-weight:600;font-size:1.5rem;letter-spacing:.02em;color:#fff;line-height:1.1;display:inline-block;width:max-content}
.foot-address__tel:hover{color:var(--c-accent-bright)}
.foot-address__hours{font-size:.78rem;color:rgba(255,255,255,.6);letter-spacing:.02em}
.foot-address__hq{margin-top:.5em;font-size:.8rem;color:rgba(255,255,255,.7);padding-top:.7em;border-top:1px solid rgba(255,255,255,.12)}
.foot-col h4{font-family:var(--font-en);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:#dcc290;margin-bottom:1.2em;font-weight:500}
.foot-col ul{list-style:none;display:grid;gap:.7em}.foot-col a{font-size:.86rem}.foot-col a:hover{color:#fff}
.foot-bottom{max-width:var(--maxw);margin:clamp(40px,5vw,64px) auto 0;padding:24px var(--pad) 0;border-top:1px solid rgba(255,255,255,.12);font-size:.74rem;color:rgba(255,255,255,.5)}

@media(max-width:1024px){
  .nav,.cta-tab{display:none}.nav-toggle{display:flex}
  .svc-grid{grid-template-columns:1fr}
  .str,.pkg__layout,.trust,.area-wrap,.duo,.access{grid-template-columns:1fr}
  .str__media,.trust__media{aspect-ratio:16/10}.area-wrap .map,.access .ph,.access .accessmap,.access .zoomwrap{order:-1}
  .foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:1/-1;margin-bottom:clamp(18px,3vw,30px)}
}
@media(max-width:600px){.stats{grid-template-columns:repeat(3,1fr);gap:clamp(8px,2.4vw,16px)}.stat__num{font-size:clamp(1.5rem,6.4vw,2.2rem)}.stat__label{font-size:.66rem;line-height:1.4}.assurance{flex-direction:column;align-items:center;gap:10px}.access-table>div{grid-template-columns:1fr}.foot-grid{grid-template-columns:1fr}.hero__inner{padding-top:120px}.line{overflow:visible}.cta h2 span{white-space:normal!important;text-wrap:balance}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.scene{transform:none!important;opacity:1!important;filter:none!important}}

/* ===== 情報構成再編に伴う最小追加（既存トークン・既存部品の流用） ===== */
.hero__meta{margin-top:1.3em;display:flex;flex-wrap:wrap;gap:8px 10px}
.hero__meta span{font-family:var(--font-jp);font-size:.72rem;font-weight:700;color:var(--c-primary-deep);background:var(--c-accent);border:1px solid var(--c-accent);border-radius:0;padding:.36em .8em;letter-spacing:.04em}
/* 悩みの入口：trust__pts風のリストを2カラム化 */
.pain-grid{max-width:var(--maxw);margin:clamp(36px,4vw,56px) auto 0;padding-inline:var(--pad);display:grid;grid-template-columns:repeat(2,1fr);gap:14px;list-style:none}
.pain-grid li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;background:var(--c-bg);border:1px solid var(--c-line);border-radius:14px;padding:18px 22px;font-size:.92rem;color:var(--c-ink-soft);line-height:1.8}
.pain-grid li svg{width:20px;height:20px;color:var(--c-accent);margin-top:.25em;flex-shrink:0}
/* 選ぶ理由：strのアイコン付きポイント部品を流用したカード */
.reasons{max-width:var(--maxw);margin:clamp(36px,4vw,56px) auto 0;padding-inline:var(--pad);display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:auto auto;gap:clamp(16px,1.8vw,26px)}
.r-intro{grid-column:1 / span 2;grid-row:1}
.r-intro .kicker{margin-bottom:1.3em;font-size:.72rem;letter-spacing:.32em;font-weight:500}/* 他セクション（.sec-head .kicker）と同一フォーマットに統一 */
.r-intro h3{font-size:clamp(1.5rem,3vw,2.35rem);font-weight:700;line-height:1.34;letter-spacing:.04em;margin-bottom:.6em}
.r-intro p{color:var(--c-ink-soft);font-size:clamp(.95rem,1.3vw,1.05rem);line-height:1.9;max-width:36em}
.reason{position:relative;overflow:hidden;border:1px solid rgba(228,224,216,.6);border-radius:24px;padding:clamp(17px,1.8vw,26px) clamp(14px,1.4vw,20px);background:#FFFFFF;box-shadow:0 2px 5px rgba(30,42,68,.025),0 11px 24px -20px rgba(30,42,68,.28);transition:box-shadow .35s,transform .35s}
.reason:hover{box-shadow:0 3px 7px rgba(30,42,68,.035),0 15px 32px -22px rgba(30,42,68,.36);transform:translateY(-4px)}
.reason .rno{position:absolute;top:clamp(14px,1.8vw,22px);right:clamp(16px,1.8vw,24px);z-index:2;font-family:var(--font-en);font-weight:400;font-size:clamp(1.7rem,2.8vw,2.3rem);line-height:1;color:var(--c-accent-text);letter-spacing:.02em;text-align:right;text-shadow:0 1px 8px rgba(255,255,255,.85),0 1px 3px rgba(255,255,255,.9)}
.reason .rno::after{content:"";display:block;width:30px;height:2px;background:var(--c-accent);margin-top:.32em;margin-left:auto}
.reason h4{font-size:clamp(1.2rem,1.8vw,1.5rem);font-weight:700;line-height:1.4;margin:0 0 .5em;color:var(--c-ink);text-wrap:balance;max-width:88%}
.reason .rsub{color:var(--c-accent-text);font-weight:500;font-size:.9rem;margin-bottom:1em}
.reason p{font-size:.84rem;font-weight:500;color:var(--c-ink-soft);line-height:1.85;max-width:30em;text-align:justify}
/* 画像はめ込み用ダミー（共通：薄いグレー） */
.rimg{position:relative;overflow:hidden;background:#EAEAEC}
.rimg .ph{position:absolute;inset:0;background-color:#EAEAEC;background-size:cover;background-position:center;background-repeat:no-repeat}
.rimg .ph__tag{color:rgba(90,95,102,.5)}
/* 01：右側に写真をくっきり、左本文へ柔らかくにじませる */
.reason--01{grid-column:3 / span 2;grid-row:1}
.reason--01 .rbody{max-width:56%;padding-right:3%}
.reason--01 .rbody p{max-width:100%}
.reason--01 .rphoto{position:absolute;top:0;right:0;width:42%;height:100%}
.reason--01 .rphoto .ph{position:absolute;inset:0}
.reason--01 .rphoto::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#FFFFFF 0%,rgba(255,255,255,0) 24%)}
/* 02：本文右に円形に切り抜いた画像ダミー（本文と被らない幅に） */
.reason--02{grid-column:1 / span 2;grid-row:2}
.reason--02 .rbody{max-width:60%}
.reason--02 .rbody p{max-width:100%}
.reason--02 .rcircle{position:absolute;right:clamp(14px,1.8vw,26px);top:50%;transform:translateY(-50%);width:clamp(110px,13vw,160px);aspect-ratio:1;border-radius:50%}
.reason--02 .rcircle .ph{border-radius:50%}
.reason--03{grid-column:3;grid-row:2}
.reason--04{grid-column:4;grid-row:2;padding-bottom:clamp(78px,9.5vw,104px)}
.reason--04 .rimg04{position:absolute;left:0;right:0;bottom:0;height:clamp(72px,9vw,96px);border-radius:0}
@media(max-width:1024px){.reasons{grid-template-columns:1fr 1fr}.r-intro{grid-column:1 / span 2;grid-row:auto}.reason--01{grid-column:1 / span 2;grid-row:auto}.reason--02{grid-column:1 / span 2;grid-row:auto}.reason--03{grid-column:1;grid-row:auto}.reason--04{grid-column:2;grid-row:auto}.reason--01 .rbody,.reason--02 .rbody{max-width:100%}.reason--01 .rphoto{position:relative;width:100%;height:170px;margin-top:1.4em;border-radius:16px}.reason--01 .rphoto::after{background:none}.reason--02 .rcircle{position:relative;transform:none;top:auto;right:auto;margin-top:1.4em}}
/* 初回相談の流れ：番号付きステップ（cream背景用に既存トーンで作成） */
/* For Your Field：全幅ヒーローカード×4。フォーカスで天地横幅が狭まり角丸化 */
.fields{width:100%;max-width:none;margin:clamp(36px,4vw,56px) auto 0;padding-inline:0;display:flex;flex-direction:column;gap:clamp(14px,1.6vw,22px)}
.fcard2{position:relative;display:block;overflow:hidden;color:#fff;border-radius:0;height:clamp(360px,52vh,520px);isolation:isolate;will-change:width,height,border-radius;transition:none}
.fcard2__img{position:absolute;inset:0;z-index:-2;background:#EAEAEC}
.fcard2__img .ph{position:absolute;inset:0;background:#EAEAEC;background-size:cover;background-position:center}
.fcard2__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,18,33,.05) 28%,rgba(13,18,33,.55) 72%,rgba(13,18,33,.82) 100%)}
.fcard2__body{position:absolute;left:0;bottom:0;padding:clamp(28px,4vw,56px);max-width:34em}
.fcard2__k{font-family:var(--font-en);font-weight:500;font-size:clamp(.95rem,1.4vw,1.15rem);letter-spacing:.14em;display:block;margin-bottom:.9em;opacity:.92}
.fcard2 h3{font-size:clamp(1.5rem,2.8vw,2.3rem);font-weight:900;line-height:1.4;margin-bottom:.5em}
.fcard2 p{font-size:clamp(.9rem,1.2vw,1rem);color:rgba(255,255,255,.9);line-height:1.85;max-width:30em;margin-bottom:1.5em}
.fcard2__btn{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--c-primary);font-weight:700;font-size:.95rem;padding:.85em 2.4em;border-radius:999px}
@media(prefers-reduced-motion:reduce){.fcard2{height:clamp(300px,46vh,440px)}}
@media(max-width:600px){.fcard2{height:clamp(320px,60vh,460px)}.fcard2__body{padding:clamp(22px,6vw,32px)}}
.flowsec{position:relative;background:var(--c-primary-deep)}
.flowstack{position:relative;height:560vh}
.flowstack__pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:clamp(16px,3vh,34px);padding:clamp(78px,11vh,118px) 0 clamp(28px,5vh,52px)}
.sec-head--light h2,.sec-head--light .kicker{color:#fff}
.sec-head--light .h-lg{color:#fff}
.lead--light{color:rgba(255,255,255,.82)}
.flowstack__stage{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:center}
.flowtrack{--fcw:min(82vw,360px);position:relative;width:100%;height:clamp(360px,56vh,480px);counter-reset:f}
.fcard{position:absolute;top:50%;left:50%;width:var(--fcw);background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 26px 64px rgba(0,0,0,.4);will-change:transform,opacity;display:flex;flex-direction:column}
.fcard__img{position:relative;width:100%;height:clamp(180px,26vh,240px);background:#EAEAEC;flex:0 0 auto}
.fcard__img .ph{position:absolute;inset:0;background-color:#EAEAEC;background-size:cover;background-position:center;background-repeat:no-repeat}
.fcard__body{padding:clamp(20px,2.2vw,30px);display:flex;flex-direction:column}
.fcard .fn{counter-increment:f;display:block;font-family:var(--font-en);font-weight:300;font-size:.82rem;letter-spacing:.22em;text-transform:uppercase;color:var(--c-accent-text);margin-bottom:.8em}
.fcard .fn::before{content:"STEP " counter(f)}
.fcard h3{font-size:clamp(1.3rem,2vw,1.6rem);font-weight:700;margin-bottom:.5em;line-height:1.5;color:var(--c-ink)}
.fcard p{font-size:.96rem;color:var(--c-ink-soft);line-height:1.75}
/* フォーカス時のゴールド配色 */
.fcard.is-focus{background:var(--c-accent)}
.fcard.is-focus .fn{color:rgba(255,255,255,.9)}
.fcard.is-focus h3{color:#fff}
.fcard.is-focus p{color:rgba(255,255,255,.92)}
.flowstack__cta{text-align:center;flex:0 0 auto;will-change:transform,opacity,filter}
.btn--gold{background:var(--c-accent);color:#fff}.btn--gold:hover{background:var(--c-accent-bright);transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.flowstack{height:auto}.flowstack__pin{position:static;height:auto;display:block;padding:clamp(50px,8vw,80px) 0}.flowstack__stage{display:block}.flowtrack{height:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:16px;counter-reset:f}.fcard{position:relative;top:auto;left:auto;width:auto;height:auto;transform:none!important;opacity:1!important}.fcard__img{flex:0 0 auto;height:180px}.fcard.is-focus{background:#fff}.fcard.is-focus .fn{color:var(--c-accent-text)}.fcard.is-focus h3{color:var(--c-ink)}.fcard.is-focus p{color:var(--c-ink-soft)}.flowstack__cta{opacity:1!important;transform:none!important;filter:none!important;margin-top:28px}}
/* モバイルではピン留め演出をやめ、reduced-motion時と同じ静的縦積みにフォールバック（GSAP構造は不変・CSSのみ。GSAPが付与するインラインtransform/opacityは!importantで無効化） */
@media(max-width:600px){
  .flowstack{height:auto}
  .flowstack__pin{position:static;height:auto;display:block;padding:clamp(40px,9vw,64px) 0}
  .flowstack__stage{display:block}
  .flowtrack{height:auto;display:grid;grid-template-columns:1fr;gap:14px;counter-reset:f}
  .fcard{position:relative!important;top:auto!important;left:auto!important;width:auto!important;height:auto!important;transform:none!important;opacity:1!important;z-index:auto!important}
  .fcard__img{height:clamp(160px,42vw,210px)}
  .fcard.is-focus{background:#fff}
  .fcard.is-focus .fn{color:var(--c-accent-text)}
  .fcard.is-focus h3{color:var(--c-ink)}
  .fcard.is-focus p{color:var(--c-ink-soft)}
  .flowstack__cta{opacity:1!important;transform:none!important;filter:none!important;margin-top:22px}
}
@media(max-width:560px){.flowtrack{--fcw:min(84vw,300px)}}
/* Our Stance：枠なし大判アイコン＋区切り線リスト、左写真はスクロール連動で切替 */
#core .str{align-items:stretch}
#core .str__media{position:relative;top:auto;aspect-ratio:auto;min-height:clamp(220px,32vh,360px)}
#core .str__media .ph{position:absolute;inset:0;opacity:0;transition:opacity .6s ease}
#core .str__media .ph.is-on{opacity:1}
#core .str__points{gap:0;margin-top:1.5em;border-top:1px solid var(--c-line)}
#core .str__pt{grid-template-columns:auto 1fr;gap:clamp(18px,2vw,26px);align-items:center;padding:clamp(22px,2.6vw,30px) 0;border-bottom:1px solid var(--c-line)}
#core .str__pt .ic{width:clamp(46px,4.4vw,58px);height:clamp(46px,4.4vw,58px);border:none;background:none;border-radius:0;color:#cac4b6;display:grid;place-items:center}
#core .str__pt .ic svg{width:100%;height:100%;stroke-width:1.4}
#core .str__pt h3{font-size:clamp(1.15rem,1.9vw,1.5rem);font-weight:700;margin-bottom:.2em;line-height:1.45}
#core .str__pt p{font-size:.95rem;color:var(--c-ink-soft);max-width:32em;line-height:1.6}
@media(max-width:1024px){#core .str__media{position:relative;top:auto}#core .str__media .ph{transition:none}}
@media(max-width:760px){.pain-grid{grid-template-columns:1fr}.reasons{grid-template-columns:1fr}.r-intro,.reason--01,.reason--02,.reason--03,.reason--04{grid-column:1;grid-row:auto}}
/* モバイル/小タブレット：全セクションの左右余白を --pad に統一。額縁(framed)の横marginを外して内容を端から--padに、端に張り付いていたカード群(FLOW/FOR YOUR FIELD)に--padを付与。縦のセクション間余白は維持 */
@media(max-width:760px){
  .framed{margin-left:0;margin-right:0}
  #flow .flowtrack{padding-inline:var(--pad)}
  #industries .fields{padding-inline:var(--pad)}
}
@media(max-width:560px){.flow-mobile-noop{display:none}}
/* 悩みの入口：画像カードの横スクロール（Service stage と同じ CSS sticky + progress 方式。pinSpacer非生成で他トリガーと干渉しない） */
.hscroll{position:relative;height:340vh}
.hscroll__pin{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:clamp(14px,2.4vh,30px);padding:clamp(80px,12vh,120px) 0 clamp(28px,5vh,52px)}
.hscroll__pin .sec-head{margin:0 auto;flex:0 0 auto}
.hscroll__track{--hcw:min(74vw,320px);display:flex;align-items:center;gap:clamp(18px,2.2vw,30px);padding-inline:calc((100vw - var(--hcw))/2);will-change:transform}
.hcard{position:relative;flex:0 0 auto;width:var(--hcw);aspect-ratio:1/1;border-radius:20px;overflow:hidden;isolation:isolate;box-shadow:0 26px 64px rgba(20,29,51,.18);transform:scale(.86);opacity:.5;will-change:transform,opacity}
.hcard .ph{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;background-repeat:no-repeat}
.hcard__v{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,18,33,.06) 32%,rgba(13,18,33,.84) 100%)}
.hcard__no{position:absolute;top:clamp(16px,2vw,22px);left:clamp(18px,2vw,24px);font-family:var(--font-en);font-weight:300;font-size:1.1rem;letter-spacing:.1em;color:var(--c-accent-bright)}
.hcard__t{position:absolute;left:0;right:0;bottom:0;padding:clamp(20px,2.6vw,30px);color:#fff;font-weight:500;font-size:clamp(.92rem,1.45vw,1.18rem);line-height:1.5}
.hcard__t .em{font-style:normal;font-weight:700;color:#fff;font-size:clamp(1.05rem,1.7vw,1.4rem)}
.hcard--spacer{box-shadow:none;background:none;opacity:0!important;pointer-events:none}
@media(prefers-reduced-motion:reduce){.hscroll{height:auto}.hscroll__pin{position:static;height:auto;display:block;padding:clamp(40px,7vw,70px) 0}.hscroll__track{--hcw:min(72vw,300px);overflow-x:auto;-webkit-overflow-scrolling:touch;padding-block:10px;padding-inline:var(--pad);transform:none!important}.hcard{transform:none;opacity:1}}
