/*
Theme Name: Wonder Three
Theme URI: https://w3-inc.jp
Author: Wonder Three (W3 Inc.)
Author URI: https://w3-inc.jp
Description: Wonder Three 公式サイト カスタムテーマ。紺×ゴールドの誌面デザイン（見出し=明朝 / 本文=ゴシック / 欧文=Montserrat）。Gutenberg 対応・最小プラグイン方針。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wonder-three
*/

/* ===== Design Tokens（resources/brand/*.json 準拠） ===== */
:root{
  --soft-white:#F8F6F0; --warm-white:#FCFAF5; --ivory-mist:#F1EEE6;
  --ink-navy:#172033; --slate-gray:#5F6673; --mist-gray:#D9D6CE;
  --deep-navy:#02122F; --ink-navy-d:#010B25; --blue-navy:#08284A;
  --surface-navy:#0D1D35; --surface-navy-l:#182945;
  --white-d:#F7F7F3; --soft-gray:#A8AFB7;
  --gold:#B8A66C; --muted-gold:#8E7B53; --pale-gold:#D8C98A;
  --serif:"Noto Serif JP","Hiragino Mincho ProN",serif;
  --sans:"Noto Sans JP","Hiragino Sans",sans-serif;
  --latin:"Montserrat","Avenir Next",sans-serif;
  --maxw:1180px; --gutter:clamp(24px,5vw,76px); --pad-y:clamp(96px,14vh,180px);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{font-family:var(--sans); font-weight:300; color:var(--ink-navy); background:var(--soft-white); line-height:1.95; letter-spacing:.02em; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); position:relative; z-index:2;}

.sec{position:relative; padding:var(--pad-y) 0; overflow:hidden;}
.sec-dark{background:var(--deep-navy); color:var(--white-d);}
.sec-light{background:var(--soft-white); color:var(--ink-navy);}
.sec-light.alt{background:var(--warm-white);}
.sec-light + .sec-dark, .sec-dark + .sec-light{border-top:1px solid rgba(184,166,108,.28);}

.lined::before, .lined::after{content:""; position:absolute; top:0; bottom:0; width:1px; z-index:1;}
.lined::before{left:calc(var(--gutter) - 1px);}
.lined::after{right:calc(var(--gutter) - 1px);}
.sec-dark .lined::before, .sec-dark .lined::after{background:linear-gradient(180deg,transparent,rgba(247,247,243,.08) 14%,rgba(247,247,243,.08) 86%,transparent);}
.sec-light .lined::before, .sec-light .lined::after{background:linear-gradient(180deg,transparent,rgba(23,32,51,.08) 14%,rgba(23,32,51,.08) 86%,transparent);}

.ghost{position:absolute; z-index:0; pointer-events:none; user-select:none; font-family:var(--latin); font-weight:600; line-height:.8; white-space:nowrap; letter-spacing:.01em; font-size:clamp(140px,30vw,440px); will-change:transform;}
.sec-dark .ghost{color:transparent; -webkit-text-stroke:1px rgba(184,166,108,.11);}
.sec-light .ghost{color:transparent; -webkit-text-stroke:1px rgba(23,32,51,.06);}

.eyebrow{font-family:var(--latin); font-weight:500; font-size:.72rem; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:1em;}
.eyebrow::before{content:""; width:30px; height:1px; background:var(--gold); display:inline-block;}
.display{font-family:var(--serif); font-weight:900; font-size:clamp(2.05rem,4.6vw,3.45rem); line-height:1.5; letter-spacing:.04em; word-break:keep-all;}
.sec-title{font-family:var(--serif); font-weight:700; font-size:clamp(1.7rem,3.8vw,2.7rem); line-height:1.5; letter-spacing:.04em;}
.lead{font-size:clamp(1rem,1.5vw,1.15rem); font-weight:400; line-height:2.05;}
.muted{color:var(--slate-gray);} .sec-dark .muted{color:var(--soft-gray);}
.em{color:var(--muted-gold); font-weight:500;} .sec-dark .em{color:var(--pale-gold); font-weight:500;}
.draw{height:1px; width:0; background:var(--gold); margin:1.6em 0; transition:width 1.1s cubic-bezier(.2,.7,.2,1);}
.in .draw, .draw.in{width:54px;}

.btn{position:relative; font-family:var(--sans); font-size:.92rem; font-weight:400; letter-spacing:.06em; display:inline-flex; align-items:center; gap:.8em; padding:1.05em 2.2em; text-decoration:none; border:1px solid var(--gold); color:var(--pale-gold); background:transparent; overflow:hidden; transition:color .4s ease;}
.btn span{position:relative; z-index:1;}
.btn::before{content:""; position:absolute; inset:0; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.5,.1,.2,1); z-index:0;}
.btn:hover{color:var(--ink-navy-d);} .btn:hover::before{transform:scaleX(1);}
.btn .arw{font-family:var(--latin); transition:transform .4s;} .btn:hover .arw{transform:translateX(4px);}
.sec-light .btn{border-color:var(--muted-gold); color:var(--muted-gold);}
.sec-light .btn:hover{color:var(--warm-white);} .sec-light .btn::before{background:var(--muted-gold);}
.link{font-family:var(--sans); font-size:.9rem; letter-spacing:.05em; color:inherit; text-decoration:none; position:relative; padding-bottom:4px;}
.link::after{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:currentColor; opacity:.4; transform-origin:right; transition:transform .4s;}
.link:hover::after{transform:scaleX(0); transform-origin:left;}
.link::before{content:""; position:absolute; left:0; bottom:0; width:100%; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .4s .05s;}
.link:hover::before{transform:scaleX(1);}

#progress{position:fixed; top:0; left:0; height:2px; width:0; background:linear-gradient(90deg,var(--muted-gold),var(--pale-gold)); z-index:200;}
#secnav{position:fixed; right:24px; top:50%; transform:translateY(-50%); z-index:90; display:flex; flex-direction:column; gap:14px; mix-blend-mode:difference;}
#secnav a{display:flex; align-items:center; gap:10px; justify-content:flex-end; text-decoration:none; font-family:var(--latin); font-size:.58rem; letter-spacing:.16em; color:#fff; opacity:.5; transition:opacity .3s;}
#secnav a .t{width:12px; height:1px; background:#fff; transition:width .35s ease;}
#secnav a.active{opacity:1;} #secnav a.active .t{width:28px;}
#secnav a .lab{opacity:0; transform:translateX(6px); transition:.3s;}
#secnav a:hover .lab, #secnav a.active .lab{opacity:1; transform:none;}
@media(max-width:1000px){#secnav{display:none;}}

.site-header{position:fixed; top:0; left:0; right:0; z-index:100; padding:24px 0; transition:background .45s, padding .45s, border-color .45s; border-bottom:1px solid transparent;}
.site-header.scrolled{background:rgba(1,11,37,.9); backdrop-filter:blur(10px); padding:15px 0; border-color:rgba(184,166,108,.18);}
.nav{display:flex; align-items:center; justify-content:space-between;}
.nav .logo{height:36px; width:auto; display:block;}
.nav .logo img{height:100%; width:auto; display:block;}
.nav-links{display:flex; align-items:center; gap:clamp(20px,2.6vw,44px);}
.nav-links a:not(.nav-cta){color:var(--white-d); text-decoration:none; font-size:.84rem; letter-spacing:.1em; opacity:.82; transition:opacity .25s;}
.nav-links a:not(.nav-cta):hover{opacity:1;}
.nav-cta{font-size:.8rem; letter-spacing:.08em; border:1px solid var(--gold); color:var(--pale-gold); padding:.62em 1.4em; text-decoration:none; transition:background .35s, color .35s;}
.nav-cta:hover{background:var(--gold); color:var(--ink-navy-d);}
@media(max-width:760px){.nav-links a:not(.nav-cta){display:none;}}

/* Hero */
.hero{min-height:100vh; display:flex; align-items:center; position:relative; overflow:hidden; background:radial-gradient(130% 110% at 88% 4%, #0a2c50 0%, var(--deep-navy) 46%, var(--ink-navy-d) 100%);}
.hero .wrap{width:100%;}
.hero .ghost{top:6%; right:-7%;}
.hero-inner{width:100%; padding:120px 0 80px; max-width:67%;}
.hero .eyebrow{margin-bottom:2.2em;}
.hero .display{margin:.05em 0 .5em;}
.hero .sub{font-family:var(--serif); font-weight:500; font-size:clamp(1.1rem,2.1vw,1.5rem); line-height:1.8; letter-spacing:.05em; opacity:.95; margin-bottom:1.7em;}
.hero .desc{font-size:1rem; line-height:2.15; color:var(--soft-gray); max-width:33em; margin-bottom:2.8em;}
.hero .desc b{color:var(--white-d); font-weight:500;}
.cta-row{display:flex; align-items:center; gap:clamp(20px,3vw,38px); flex-wrap:wrap;}
.scroll-cue{position:absolute; left:var(--gutter); bottom:34px; display:flex; align-items:center; gap:12px; font-family:var(--latin); font-size:.62rem; letter-spacing:.3em; color:var(--soft-gray); z-index:2;}
.scroll-cue .ln{width:1px; height:46px; background:linear-gradient(180deg,var(--gold),transparent); animation:cue 2.4s ease-in-out infinite;}
@keyframes cue{0%,100%{transform:scaleY(.5); transform-origin:top; opacity:.5;}50%{transform:scaleY(1); opacity:1;}}
@media(max-width:900px){.hero-inner{max-width:100%;}}

/* Problem */
.problem .ghost{top:5%; right:1%;}
.head-block{max-width:46em;}
.intro{margin-top:1.4em; max-width:38em;}
.plist{margin-top:clamp(48px,6vw,80px); border-top:1px solid var(--mist-gray);}
.prow{display:grid; grid-template-columns:120px 1fr; gap:clamp(20px,4vw,60px); align-items:baseline; padding:clamp(28px,3.4vw,46px) 8px; border-bottom:1px solid var(--mist-gray); transition:background .4s, padding-left .4s;}
.prow:hover{background:var(--ivory-mist); padding-left:20px;}
.prow .pn{font-family:var(--latin); font-weight:300; font-size:clamp(2.2rem,4vw,3.4rem); color:var(--mist-gray); line-height:1; transition:color .4s;}
.prow:hover .pn{color:var(--gold);}
.prow h3{font-family:var(--serif); font-weight:700; font-size:clamp(1.15rem,2vw,1.45rem); line-height:1.55; color:var(--ink-navy); margin-bottom:.7em;}
.prow .voice{font-size:.95rem; line-height:1.95; color:var(--slate-gray); padding-left:1.1em; border-left:2px solid rgba(184,166,108,.5); max-width:40em;}
.closing{font-family:var(--serif); font-weight:500; font-size:clamp(1.2rem,2.4vw,1.7rem); line-height:1.85; letter-spacing:.03em; margin-top:clamp(54px,6vw,84px); text-align:center;}

/* Solution */
.solution .ghost{top:7%; left:-5%;}
.sol-head{max-width:48em;}
.sol-head .lead{margin:1.3em 0 1em; max-width:40em;}
.sol-head .body{color:var(--slate-gray); max-width:40em; line-height:2.05;}
.pillars{display:grid; grid-template-columns:repeat(3,1fr); margin-top:clamp(54px,6vw,82px);}
.pillar{padding:clamp(8px,2vw,30px) clamp(20px,2.4vw,34px); position:relative;}
.pillar + .pillar{border-left:1px solid var(--mist-gray);}
.pillar .pidx{font-family:var(--latin); font-weight:300; font-size:.8rem; letter-spacing:.2em; color:var(--gold); display:block; margin-bottom:1.4em;}
.pillar .jp{font-family:var(--serif); font-weight:700; font-size:clamp(1.5rem,2.6vw,2rem); color:var(--ink-navy); display:block; line-height:1.3;}
.pillar .en{font-family:var(--latin); font-size:.72rem; letter-spacing:.16em; color:var(--muted-gold); text-transform:uppercase; display:block; margin:.5em 0 1.5em;}
.pillar p{font-size:.94rem; line-height:1.95; color:var(--slate-gray);}
.pillar:not(:first-child) .jp::before{content:"→"; position:absolute; left:-.55em; top:clamp(8px,2vw,30px); font-family:var(--latin); font-weight:300; color:var(--gold); opacity:.7; font-size:1rem;}
.callout{margin-top:clamp(52px,6vw,80px); border-left:2px solid var(--gold); padding:clamp(8px,2vw,18px) 0 clamp(8px,2vw,18px) clamp(28px,4vw,52px); max-width:50em;}
.callout p{font-family:var(--serif); font-weight:500; font-size:clamp(1.02rem,1.8vw,1.3rem); line-height:1.95; color:var(--ink-navy);}
.sec-dark .callout p{color:var(--white-d);}
@media(max-width:820px){.pillars{grid-template-columns:1fr;} .pillar + .pillar{border-left:none; border-top:1px solid var(--mist-gray);} .pillar:not(:first-child) .jp::before{display:none;} .pillar{padding:clamp(26px,5vw,34px) 0;}}

/* Services */
.services .ghost{top:6%; right:-3%;}
.map{display:grid; grid-template-columns:repeat(3,1fr); margin-top:clamp(44px,5vw,70px); border-top:1px solid var(--mist-gray); border-bottom:1px solid var(--mist-gray);}
.m{padding:clamp(26px,3vw,40px) clamp(18px,2.2vw,30px); position:relative;}
.m + .m{border-left:1px solid var(--mist-gray);}
.m .mn{font-family:var(--serif); font-weight:700; font-size:1.5rem; color:var(--gold); display:block; line-height:1;}
.m .mt{font-family:var(--serif); font-weight:700; font-size:clamp(1.2rem,2vw,1.5rem); color:var(--ink-navy); display:block; margin:.4em 0 .5em;}
.m .md{font-size:.92rem; color:var(--slate-gray); line-height:1.9;}
.svc-wrap{margin-top:clamp(50px,6vw,80px);}
.svc-group + .svc-group{margin-top:clamp(40px,4.5vw,62px);}
.svc-glabel{font-family:var(--serif); font-weight:500; font-size:1.02rem; letter-spacing:.06em; color:var(--muted-gold); display:flex; align-items:center; gap:.8em; margin-bottom:.4em;}
.svc-glabel::before{content:""; width:22px; height:1px; background:var(--gold);}
.svc-group .svc-row:first-of-type{border-top:1px solid var(--mist-gray);}
.svc-row{display:grid; grid-template-columns:minmax(210px,290px) 1fr; gap:clamp(14px,3vw,48px); align-items:baseline; padding:clamp(22px,2.6vw,34px) 8px; border-bottom:1px solid var(--mist-gray); transition:background .4s, padding-left .4s;}
.svc-row:hover{background:var(--ivory-mist); padding-left:18px;}
.svc-name{font-family:var(--serif); font-weight:700; font-size:clamp(1.2rem,2vw,1.55rem); color:var(--ink-navy);}
.svc-name .en{font-family:var(--latin); font-weight:500; letter-spacing:.04em;}
.svc-func{font-family:var(--sans); font-size:.78rem; letter-spacing:.1em; color:var(--muted-gold); display:block; margin-top:.55em;}
.svc-desc{font-size:.95rem; color:var(--slate-gray); line-height:1.95;}
@media(max-width:820px){.map{grid-template-columns:1fr;} .m + .m{border-left:none; border-top:1px solid var(--mist-gray);} .svc-row{grid-template-columns:1fr; gap:6px;} .svc-func{margin-bottom:.4em;}}

/* 3 Brothers */
.brothers .ghost{top:8%; left:-4%;}
.bros{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(28px,4vw,54px); margin-top:clamp(50px,6vw,78px);}
.bro .portrait{aspect-ratio:3/4; background:linear-gradient(160deg,#172b4d 0%, #0a1830 100%); position:relative; margin-bottom:1.8em; overflow:hidden;}
.bro .portrait::after{content:attr(data-cap); position:absolute; left:0; right:0; bottom:16px; text-align:center; font-family:var(--latin); font-size:.6rem; letter-spacing:.18em; color:var(--soft-gray); text-transform:uppercase;}
.bro .portrait img{width:100%; height:100%; object-fit:cover; object-position:center 22%; display:block;}
.bros-photo{margin-top:clamp(42px,5vw,66px); overflow:hidden; max-width:960px; margin-left:auto; margin-right:auto;}
.bros-photo img{width:100%; aspect-ratio:3/2; object-fit:cover; object-position:center 30%; display:block;}
.bro .brole{font-family:var(--latin); font-size:.68rem; letter-spacing:.2em; color:var(--pale-gold); text-transform:uppercase; display:block; margin-bottom:.9em;}
.bro .bcatch{font-family:var(--serif); font-weight:700; font-size:clamp(1.3rem,2.1vw,1.65rem); color:var(--white-d); line-height:1.45; margin-bottom:1em;}
.bro .bname{font-size:.98rem; color:var(--white-d); font-weight:500; letter-spacing:.04em;}
.bro .bpos{font-size:.76rem; color:var(--soft-gray); letter-spacing:.06em; margin:.25em 0 1.1em;}
.bro .bprof{font-size:.9rem; color:var(--soft-gray); line-height:1.95;}
.bros-closing{text-align:center; font-family:var(--serif); font-weight:500; font-size:clamp(1.1rem,2vw,1.45rem); letter-spacing:.04em; margin-top:clamp(48px,6vw,72px); color:var(--white-d);}
@media(max-width:820px){.bros{grid-template-columns:1fr; max-width:380px; margin-left:auto; margin-right:auto;}}

/* Results（保留） */
.results .ghost{top:6%; right:0;}
.res-note{display:inline-flex; align-items:center; gap:.7em; font-family:var(--latin); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted-gold); border:1px solid rgba(184,166,108,.4); padding:.5em 1.1em; margin-top:1.6em;}
.cases{margin-top:clamp(44px,5vw,68px); border-top:1px solid var(--mist-gray);}
.case{display:grid; grid-template-columns:150px 1fr; gap:clamp(18px,3vw,48px); align-items:baseline; padding:clamp(26px,3vw,40px) 8px; border-bottom:1px solid var(--mist-gray); opacity:.62;}
.case .cind{font-family:var(--sans); font-size:.78rem; letter-spacing:.12em; color:var(--muted-gold);}
.case .cflow{display:flex; flex-wrap:wrap; gap:.6em 1.2em; font-family:var(--serif); font-weight:500; font-size:clamp(1.05rem,1.8vw,1.3rem); color:var(--ink-navy);}
.case .cflow span{color:var(--mist-gray);}
.case .cvoice{font-size:.92rem; color:var(--slate-gray); margin-top:.8em;}
@media(max-width:720px){.case{grid-template-columns:1fr; gap:6px;}}

/* Story */
.story .ghost{top:7%; right:-4%;}
.story-lead{max-width:40em;}
.origin{display:grid; grid-template-columns:.85fr 1fr; gap:clamp(28px,4vw,60px); align-items:center; margin-top:clamp(48px,5vw,70px);}
.story-photo{aspect-ratio:4/3; background:linear-gradient(155deg,#172b4d,#0a1830); position:relative; overflow:hidden;}
.story-photo::after{content:attr(data-cap); position:absolute; left:0; right:0; bottom:16px; text-align:center; font-family:var(--latin); font-size:.6rem; letter-spacing:.18em; color:var(--soft-gray); text-transform:uppercase;}
.story-logo{aspect-ratio:4/3; background:radial-gradient(120% 120% at 50% 38%, #15294a 0%, #0a1830 70%); display:grid; place-items:center; padding:8%;}
.story-logo img{width:62%; max-width:300px; height:auto; display:block;}
.story-logo figcaption{margin-top:1.6em; font-family:var(--latin); font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--soft-gray);}
.sblocks{margin-top:clamp(40px,5vw,64px); max-width:48em;}
.sblock + .sblock{margin-top:clamp(30px,3.6vw,48px);}
.sblock .slabel{font-family:var(--latin); font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:.9em;}
.sblock p{font-family:var(--serif); font-weight:500; font-size:clamp(1rem,1.6vw,1.18rem); line-height:2.1; color:var(--white-d); opacity:.94;}
.story-final{font-family:var(--serif); font-weight:700; font-size:clamp(1.4rem,2.6vw,1.9rem); letter-spacing:.06em; margin-top:clamp(48px,6vw,76px); color:var(--white-d);}
@media(max-width:760px){.origin{grid-template-columns:1fr;}}

/* CTA */
.cta{background:radial-gradient(120% 120% at 12% 96%, #0a2c50 0%, var(--ink-navy-d) 50%, var(--deep-navy) 100%); text-align:center;}
.cta .ghost{bottom:2%; left:50%; transform:translateX(-50%);}
.cta .eyebrow{justify-content:center;}
.cta .display{margin:1em auto .5em;}
.cta .lead{max-width:34em; margin:0 auto; color:var(--soft-gray);}
.flow-band{max-width:38em; margin:clamp(48px,6vw,72px) auto 0; padding:clamp(36px,4vw,52px) 0; border-top:1px solid rgba(184,166,108,.4); border-bottom:1px solid rgba(184,166,108,.4);}
.flow-band .tag{font-family:var(--latin); font-size:.72rem; letter-spacing:.22em; color:var(--pale-gold); text-transform:uppercase; display:block; margin-bottom:1.1em;}
.flow-band h3{font-family:var(--serif); font-weight:700; font-size:clamp(1.35rem,2.6vw,1.85rem); line-height:1.5; margin-bottom:.9em;}
.flow-band p{font-size:.95rem; line-height:2; color:var(--soft-gray); max-width:28em; margin:0 auto 2.2em;}
.sub-cta{margin-top:2.6em; font-size:.92rem; color:var(--soft-gray);}
.sub-cta .link{margin-left:.5em; color:var(--pale-gold);}
.final{font-family:var(--serif); font-weight:700; font-size:clamp(1.9rem,4.4vw,3rem); letter-spacing:.08em; margin-top:clamp(64px,8vw,104px);}

/* Footer */
.site-footer{background:var(--ink-navy-d); color:var(--soft-gray); padding:60px 0; text-align:center; border-top:1px solid rgba(184,166,108,.18);}
.site-footer .logo{height:30px; opacity:.9; margin-bottom:1.5em; display:inline-block;}
.site-footer .logo img{height:100%; width:auto;}
.site-footer .tagline{font-family:var(--serif); font-size:1rem; letter-spacing:.06em; color:var(--white-d); margin-bottom:1em;}
.footer-links{margin:.6em 0 1em; display:flex; justify-content:center; gap:clamp(16px,3vw,36px); flex-wrap:wrap;}
.footer-links a{font-family:var(--sans); font-size:.78rem; letter-spacing:.06em; color:var(--soft-gray); text-decoration:none; opacity:.75; transition:opacity .25s;}
.footer-links a:hover{opacity:1; color:var(--pale-gold);}
.site-footer .copy{font-family:var(--latin); font-size:.72rem; letter-spacing:.16em; opacity:.65;}

/* 汎用ページ（page.php / Gutenberg） */
.page-main{padding:calc(var(--pad-y) + 60px) 0 var(--pad-y);}
.page-main .entry-title{font-family:var(--serif); font-weight:700; font-size:clamp(1.8rem,4vw,2.6rem); margin-bottom:1.2em; letter-spacing:.04em;}
.page-main .entry-content{max-width:46em; line-height:2.05;}
.page-main .entry-content h2{font-family:var(--serif); font-weight:700; margin:2em 0 .8em;}
.page-main .entry-content p{margin-bottom:1.4em;}
.page-main .entry-content a{color:var(--muted-gold);}
.page-main .entry-content table{width:100%; border-collapse:collapse; margin:1.6em 0; font-size:.95rem; line-height:1.8;}
.page-main .entry-content th,.page-main .entry-content td{padding:.85em 1.1em; border:1px solid rgba(23,32,51,.12); vertical-align:top; text-align:left;}
.page-main .entry-content th{width:10em; white-space:nowrap; background:rgba(23,32,51,.05); font-weight:600; color:var(--muted-gold);}
.page-main .entry-content td{color:var(--ink-navy);}
@media(max-width:600px){
  .page-main .entry-content th{width:auto; display:block; border-bottom:none; padding-bottom:.3em;}
  .page-main .entry-content td{display:block; padding-top:.3em; margin-bottom:.6em;}
}

/* ===== Flow Session ページ（page-flow-session.php / front-page と同じ section 構造） ===== */
.flow-page{overflow-x:hidden;}

/* Hero */
.flow-hero{background:radial-gradient(130% 110% at 88% 4%, #0a2c50 0%, var(--deep-navy) 46%, var(--ink-navy-d) 100%); padding-top:calc(var(--pad-y) + 48px);}
.flow-hero-inner{max-width:40em;}
.flow-hero .display{margin-top:.5em;}
.flow-hero-sub{font-size:clamp(1rem,1.6vw,1.15rem); line-height:2.15; color:var(--soft-gray); max-width:33em; margin-bottom:2.4em;}
.flow-specs{list-style:none; display:flex; flex-wrap:wrap; gap:.8em 1.8em; margin-bottom:2.6em;}
.flow-specs li{position:relative; padding-left:1.2em; font-family:var(--latin); font-size:.78rem; letter-spacing:.12em; color:var(--pale-gold); text-transform:uppercase;}
.flow-specs li::before{content:""; position:absolute; left:0; top:.5em; width:5px; height:5px; border-radius:50%; background:var(--gold);}
.flow-cta-row{display:flex; flex-wrap:wrap; align-items:center; gap:1.4em 2.2em;}

/* Why — 本文プロース */
.flow-prose{max-width:40em; margin-top:clamp(28px,3.5vw,44px);}
.flow-prose p{font-size:clamp(.96rem,1.4vw,1.05rem); line-height:2.15; color:var(--soft-gray); margin-bottom:1.5em;}
.flow-prose p:last-child{margin-bottom:0;}

/* Session — ステップ */
.flow-steps{list-style:none; margin-top:clamp(44px,5vw,68px); border-top:1px solid rgba(255,255,255,.12);}
.flow-steps li{display:flex; align-items:baseline; gap:clamp(18px,3vw,40px); padding:clamp(20px,2.4vw,30px) 4px; border-bottom:1px solid rgba(255,255,255,.12);}
.flow-steps .fs-num{font-family:var(--latin); font-weight:300; font-size:clamp(1.4rem,2.4vw,2rem); color:var(--gold); line-height:1; flex-shrink:0; min-width:1.8em;}
.flow-steps .fs-txt{font-family:var(--serif); font-weight:500; font-size:clamp(1.05rem,1.8vw,1.3rem); color:var(--white-d); line-height:1.6;}

/* Session — 持ち帰れるもの */
.flow-subhead{font-family:var(--serif); font-weight:700; font-size:clamp(1.1rem,2vw,1.4rem); color:var(--pale-gold); margin-top:clamp(56px,6vw,84px); margin-bottom:clamp(24px,3vw,36px); letter-spacing:.04em;}
.flow-gets{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(16px,2vw,24px);}
.flow-get{padding:clamp(24px,2.6vw,34px); background:rgba(255,255,255,.035); border:1px solid rgba(184,166,108,.18);}
.flow-get .g-idx{font-family:var(--latin); font-weight:300; font-size:.78rem; letter-spacing:.2em; color:var(--gold); display:block; margin-bottom:1.1em;}
.flow-get h3{font-family:var(--serif); font-weight:700; font-size:clamp(1.02rem,1.6vw,1.18rem); color:var(--white-d); margin-bottom:.7em; line-height:1.5;}
.flow-get p{font-size:.92rem; line-height:1.95; color:var(--soft-gray);}

/* Cases */
.flow-cases{display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(18px,2.4vw,30px); margin-top:clamp(48px,6vw,76px);}
.flow-case{display:flex; flex-direction:column; padding:clamp(28px,3vw,40px); background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.1); border-top:2px solid var(--gold);}
.flow-case .c-cat{font-family:var(--sans); font-size:.74rem; letter-spacing:.14em; color:var(--muted-gold); display:block;}
.flow-case .c-name{font-family:var(--serif); font-weight:700; font-size:clamp(1.1rem,1.8vw,1.3rem); color:var(--white-d); margin:.5em 0 1em;}
.flow-case .c-body{font-size:.92rem; line-height:1.95; color:var(--soft-gray); margin-bottom:1.4em;}
.flow-case .c-result{font-family:var(--serif); font-size:.98rem; color:var(--white-d); padding-top:1.1em; border-top:1px solid rgba(184,166,108,.25); margin-top:auto;}
.flow-case .c-result em{font-style:normal; font-weight:700; font-size:1.2em; color:var(--pale-gold);}

/* For / Not for */
.flow-cols{display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,72px); margin-top:clamp(44px,5vw,68px);}
.col-label{font-family:var(--serif); font-weight:700; font-size:clamp(1.05rem,1.8vw,1.3rem); margin-bottom:1.1em; padding-bottom:.7em; border-bottom:1px solid var(--mist-gray);}
.col-label--yes{color:var(--muted-gold);}
.col-label--no{color:var(--slate-gray);}
.flow-list{list-style:none;}
.flow-list li{position:relative; padding:.7em 0 .7em 1.8em; font-size:.95rem; line-height:1.85; color:var(--ink-navy); border-bottom:1px solid rgba(23,32,51,.08);}
.flow-list li::before{position:absolute; left:0; top:.7em; font-family:var(--latin);}
.flow-list--yes li::before{content:"✓"; color:var(--gold); font-weight:700;}
.flow-list--no li::before{content:"—"; color:var(--slate-gray);}

/* FAQ */
.flow-faq{max-width:48em; margin-top:clamp(40px,5vw,64px);}
.flow-faq dt{font-family:var(--serif); font-weight:700; font-size:clamp(1.02rem,1.6vw,1.18rem); color:var(--ink-navy); padding-left:1em; border-left:2px solid var(--gold); margin-top:clamp(28px,3vw,40px);}
.flow-faq dt:first-child{margin-top:0;}
.flow-faq dd{font-size:.95rem; line-height:2; color:var(--slate-gray); margin:.9em 0 0; padding-left:1em;}

/* CTA 補足 */
.flow-note{font-size:.82rem; color:var(--soft-gray); margin-top:1.6em; letter-spacing:.04em;}

@media(max-width:820px){
  .flow-gets{grid-template-columns:1fr;}
  .flow-cases{grid-template-columns:1fr;}
  .flow-cols{grid-template-columns:1fr; gap:clamp(32px,6vw,48px);}
}
@media(max-width:480px){
  .flow-hero .display{font-size:1.85rem; letter-spacing:.02em; line-height:1.45;}
  .flow-hero-sub{font-size:1rem;}
}

/* Reveal */
.reveal{opacity:0; transform:translateY(22px); transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:none;}
.stagger > *{opacity:0; transform:translateY(20px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);}
.stagger.in > *{opacity:1; transform:none;}
.stagger.in > *:nth-child(2){transition-delay:.1s;}
.stagger.in > *:nth-child(3){transition-delay:.2s;}
.stagger.in > *:nth-child(4){transition-delay:.3s;}
@media(prefers-reduced-motion:reduce){*{animation:none !important;} .reveal,.stagger > *{opacity:1 !important; transform:none !important;} .draw{width:54px !important;} html{scroll-behavior:auto;}}
