/* ============================================================
   projimo.jp  design system  v35
   紺 × 金 × 明朝 は維持。基調を「紺の画面」から「紙のカルテ」へ。
   ============================================================ */
:root{
  --navy:#0A1320;
  --navy-2:#16233A;
  --navy-3:#22314D;
  --paper:#F8F6F0;
  --paper-2:#EFEBE1;
  --paper-3:#FFFDF9;
  --ink:#1D2536;
  --ink-2:#4A5163;
  --mute:#6F6A60;
  --line:#D9D3C4;
  --line-dark:#2A3A56;
  --gold:#C9A961;
  --gold-deep:#7A6535;
  --cream:#F4EFE4;
  --cream-2:#C7BFB0;
  --red:#A9463B;
  --amber:#B8862B;
  --green:#4C7A4A;

  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --wordmark:"Fraunces",Georgia,serif;

  --wrap:1080px;
  --measure:38em;
  --r:2px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.95;letter-spacing:.02em;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 0;
}
@media(max-width:640px){body{font-size:16px}}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block;height:auto}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--gold);color:var(--navy)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.5rem}
@media(min-width:900px){.wrap{padding:0 2.5rem}}

h1,h2,h3,.serif{font-family:var(--serif);font-weight:700;letter-spacing:.03em;line-height:1.5}
h2{font-size:clamp(1.55rem,3vw,2.15rem);line-height:1.55;margin-bottom:1.1rem}
h3{font-size:1.15rem;line-height:1.6}
p{max-width:var(--measure)}
.lead{font-size:1.02rem;color:var(--ink-2);max-width:var(--measure)}
.small{font-size:.86rem;color:var(--mute);line-height:1.8}
.num{font-family:var(--serif);font-weight:700;font-variant-numeric:tabular-nums}
strong{font-weight:700}
.tx-link{text-decoration:underline;text-underline-offset:.28em;text-decoration-thickness:1px;text-decoration-color:var(--gold)}
.tx-link:hover{color:var(--gold-deep)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.95rem 1.6rem;border-radius:var(--r);font-size:.98rem;font-weight:500;letter-spacing:.04em;
  line-height:1.3;transition:background .25s,color .25s,border-color .25s;white-space:nowrap;
}
.btn-primary{background:var(--gold);color:var(--navy);font-weight:700}
.btn-primary:hover{background:#D9BC77}
.btn-secondary{border:1px solid var(--navy);color:var(--navy)}
.btn-secondary:hover{background:var(--navy);color:var(--cream)}
.on-dark .btn-secondary{border-color:var(--cream-2);color:var(--cream)}
.on-dark .btn-secondary:hover{background:var(--cream);color:var(--navy);border-color:var(--cream)}
.btn-lg{padding:1.1rem 2rem;font-size:1.04rem}
@media(max-width:640px){.btn{width:100%}}

/* ---------- nav ---------- */
.pj-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;height:66px;
  background:rgba(248,246,240,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.pj-nav .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.pj-brand{display:inline-flex;align-items:baseline;gap:.35rem;font-family:var(--wordmark);font-weight:500;font-size:1.45rem;letter-spacing:.02em;color:var(--navy)}
.pj-brand .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);transform:translateY(-1px)}
.pj-links{display:none;gap:1.5rem;font-size:.9rem;color:var(--ink-2)}
.pj-links a{padding:.3rem 0;border-bottom:1px solid transparent}
.pj-links a:hover,.pj-links a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--gold)}
.pj-nav .btn{padding:.6rem 1.1rem;font-size:.88rem}
.pj-nav-r{display:flex;align-items:center;gap:.8rem}
.pj-burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;padding:9px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper-3)}
.pj-burger span{display:block;height:1.5px;background:var(--navy);transition:transform .25s,opacity .25s}
.pj-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.pj-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.pj-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media(min-width:960px){.pj-links{display:flex}.pj-burger{display:none}}
@media(max-width:640px){.pj-nav .btn{width:auto;display:none}}
.pj-menu{
  display:none;position:fixed;top:66px;left:0;right:0;bottom:0;z-index:99;overflow:auto;
  background:var(--paper);border-top:1px solid var(--line);padding:1.2rem 1.5rem 6rem;
}
.pj-menu.open{display:block}
.pj-menu a{display:block;padding:1rem 0;border-bottom:1px solid var(--line);font-size:1.05rem;font-family:var(--serif);font-weight:600}
.pj-menu .sub{font-family:var(--sans);font-weight:400;font-size:.86rem;color:var(--mute)}
.pj-menu .btn{margin-top:1.4rem;width:100%;border:0}
body.menu-open{overflow:hidden}

/* ---------- sections ---------- */
main{padding-top:66px}
.sec{padding:5rem 0}
@media(min-width:900px){.sec{padding:6.5rem 0}}
.sec-alt{background:var(--paper-2)}
.sec-head{margin-bottom:2.6rem}
.sec-head .lead{margin-top:.4rem}
.on-dark{background:var(--navy);color:var(--cream)}
.on-dark h2,.on-dark h3{color:var(--cream)}
.on-dark .lead{color:var(--cream-2)}
.on-dark .small{color:#9AA3B5}

/* ---------- hero ---------- */
.hero{
  position:relative;background:var(--navy);color:var(--cream);
  padding:4rem 0 4.5rem;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(60% 50% at 85% 10%,rgba(201,169,97,.10),transparent 70%),
    radial-gradient(50% 40% at 10% 100%,rgba(34,49,77,.6),transparent 70%);
}
.hero .wrap{position:relative;display:grid;gap:3rem;align-items:center}
@media(min-width:960px){
  .hero{padding:5.5rem 0 6rem}
  .hero .wrap{grid-template-columns:1.05fr .95fr;gap:4rem}
}
.hero h1{font-size:clamp(1.65rem,3.6vw,2.6rem);line-height:1.45;color:var(--cream);max-width:none}
.hero .lead{margin-top:1.4rem;font-size:1.03rem;color:var(--cream-2);max-width:34em}
.hero .lead strong{color:var(--cream)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.hero-facts{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin-top:1.6rem;font-size:.86rem;color:#9AA3B5}
.hero-facts li{list-style:none;display:flex;align-items:center;gap:.5rem}
.hero-facts li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}

/* karte（先代依存マップ）— このページで唯一の「見せ場」 */
.karte{
  background:var(--paper-3);color:var(--ink);border-radius:var(--r);
  border:1px solid rgba(201,169,97,.55);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.6),0 1px 0 rgba(255,255,255,.2) inset;
  padding:1.5rem 1.5rem 1.2rem;
}
@media(min-width:960px){.karte{padding:1.8rem 1.9rem 1.4rem;transform:rotate(-.4deg)}}
.karte-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:.6rem}
.karte-head h2{font-size:1.05rem;margin:0;letter-spacing:.06em;color:var(--navy)}
.karte h2,.karte h3{color:var(--navy)}
.karte-head .small{font-size:.74rem;white-space:nowrap}
.karte-q{font-family:var(--serif);font-weight:600;font-size:1rem;line-height:1.7;margin:.9rem 0 .2rem}
.pulse{width:100%;height:28px;margin:.2rem 0 .4rem}
.pulse path{stroke:var(--gold);stroke-width:1.5;fill:none;stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw 2.2s .3s ease-out forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.pulse path{animation:none;stroke-dashoffset:0}}
.karte-legend{display:flex;justify-content:flex-end;font-size:.72rem;color:var(--mute);padding-bottom:.3rem}
.karte-rows{list-style:none;border-top:1px solid var(--line)}
.karte-rows li{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;align-items:start;padding:.62rem 0;border-bottom:1px solid var(--line);font-size:.9rem;line-height:1.55}
.karte-rows .what{font-weight:700;color:var(--navy)}
.karte-rows .how{grid-column:1;font-size:.8rem;color:var(--mute)}
.karte-rows .stop{grid-column:2;grid-row:1/3;align-self:center;font-size:.76rem;letter-spacing:.06em;padding:.2rem .6rem;border-radius:var(--r);white-space:nowrap;word-break:keep-all;border:1px solid;min-width:4.6em;text-align:center}
.stop-now{color:var(--red);border-color:var(--red);background:rgba(169,70,59,.06)}
.stop-week{color:var(--amber);border-color:var(--amber);background:rgba(184,134,43,.07)}
.stop-month{color:var(--green);border-color:var(--green);background:rgba(76,122,74,.07)}
.karte-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:.8rem;font-size:.78rem;color:var(--mute);line-height:1.7}
.karte-foot .seal{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold-deep);display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:.9rem;letter-spacing:.05em;transform:rotate(8deg)}

/* ---------- router（場面から選ぶ） ---------- */
.router{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media(min-width:760px){.router{grid-template-columns:1fr 1fr}}
.tile{background:var(--paper-3);padding:1.8rem 1.6rem 1.6rem;display:flex;flex-direction:column;gap:.7rem;position:relative;transition:background .2s}
.tile:hover{background:#fff}
.tile:focus-within{outline:2px solid var(--gold);outline-offset:-2px}
.tile h3{font-size:1.28rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem}
.tile h3 a::after{content:"";position:absolute;inset:0}
.tile h3 .chev{font-family:var(--sans);font-weight:400;color:var(--gold-deep);font-size:1rem;flex:none}
.tile .pain{font-size:.95rem;color:var(--ink-2);line-height:1.85}
.tile .meta{margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.3rem 1rem;font-size:.86rem}
.tile .meta b{color:var(--navy);font-weight:700}
.tile .meta span{color:var(--mute)}
.tile-wide{background:var(--paper-2)}
@media(min-width:760px){.tile-wide{grid-column:1/-1;flex-direction:row;align-items:center;gap:2rem}.tile-wide h3{flex:0 0 auto}.tile-wide .pain{flex:1}.tile-wide .meta{margin-top:0;padding-top:0;border-top:0}}

/* ---------- stance（扱う／扱わない） ---------- */
.stance{display:grid;gap:2.5rem}
.stance h2{font-size:clamp(1.45rem,2.6vw,1.9rem)}
@media(min-width:900px){.stance{grid-template-columns:1.1fr .9fr;gap:4rem;align-items:start}}
.scope{display:grid;gap:1.2rem}
@media(min-width:560px){.scope{grid-template-columns:1fr 1fr}}
.scope-col{border-top:2px solid var(--navy);padding-top:1rem}
.scope-col.no{border-top-color:var(--line)}
.scope-col h3{font-size:1rem;margin-bottom:.6rem}
.scope-col ul{list-style:none}
.scope-col li{position:relative;padding:.45rem 0 .45rem 1.2rem;font-size:.92rem;line-height:1.7;border-bottom:1px solid var(--line)}
.scope-col li::before{content:"";position:absolute;left:0;top:1.05rem;width:7px;height:7px;background:var(--gold)}
.scope-col.no li::before{background:none;border-top:1px solid var(--mute);top:1.3rem;width:9px;height:0}
.scope-col.no li{color:var(--ink-2)}
.quote-block{font-family:var(--serif);font-size:clamp(1.05rem,1.8vw,1.3rem);line-height:2;font-weight:600;border-left:2px solid var(--gold);padding-left:1.4rem;max-width:34em}

/* ---------- price list ---------- */
.price-groups{display:grid;gap:2.4rem}
.pg-title{font-size:1rem;color:var(--gold-deep);letter-spacing:.08em;border-bottom:1px solid var(--navy);padding-bottom:.5rem;margin-bottom:.2rem;display:flex;align-items:baseline;gap:1rem}
.pg-title .small{letter-spacing:.02em}
.price-row{display:grid;gap:.4rem 1.5rem;padding:1.2rem 0;border-bottom:1px solid var(--line);align-items:baseline}
@media(min-width:760px){.price-row{grid-template-columns:1.1fr 1.5fr auto}}
@media(max-width:759px){.price-row .price{order:2;margin:-.2rem 0 .2rem}.price-row .what{order:3}}
.price-row h3{font-size:1.12rem}
.price-row h3 a{border-bottom:1px solid var(--gold)}
.price-row h3 a:hover{color:var(--gold-deep)}
.price-row .what{font-size:.9rem;color:var(--ink-2);line-height:1.8}
.price-row .price{text-align:left;white-space:nowrap}
@media(min-width:760px){.price-row .price{text-align:right}}
.price-row .price b{font-family:var(--serif);font-size:1.25rem;font-weight:700;color:var(--navy);letter-spacing:.02em}
.price-row .price .small{display:block;font-size:.78rem}
.price-note{margin-top:1.6rem;padding:1.1rem 1.3rem;background:var(--paper-2);border-left:2px solid var(--gold);font-size:.9rem;line-height:1.85;max-width:none}
.price-note p{max-width:none}

/* ---------- steps（3段） ---------- */
.steps{display:grid;gap:1.5rem;counter-reset:step}
@media(min-width:760px){.steps{grid-template-columns:repeat(3,1fr);gap:2.5rem}}
.step{border-top:1px solid var(--navy);padding-top:1.2rem}
.step .n{font-family:var(--serif);font-size:2.2rem;font-weight:700;color:var(--gold-deep);line-height:1;margin-bottom:.6rem}
.step h3{font-size:1.15rem;margin-bottom:.4rem}
.step .cond{font-size:.82rem;color:var(--mute);margin-bottom:.6rem}
.step p{font-size:.92rem;color:var(--ink-2);line-height:1.85}
.step-cta{margin-top:2.6rem;display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.step-cta .small{flex-basis:100%}

/* ---------- founder ---------- */
.founder{display:grid;gap:2rem}
@media(min-width:760px){.founder{grid-template-columns:200px 1fr;gap:3rem;align-items:start}}
.founder img{width:200px;border-radius:var(--r);filter:saturate(.8);border:1px solid var(--line)}
.founder .name{font-family:var(--serif);font-size:1.5rem;font-weight:700}
.founder .name small{font-family:var(--sans);font-weight:400;font-size:.82rem;color:var(--mute);margin-left:.8rem;letter-spacing:.04em}
.founder .role{font-size:.86rem;color:var(--mute);margin-bottom:.9rem}
.founder p{font-size:.95rem;color:var(--ink-2)}
.facts{display:grid;gap:0;margin:1.4rem 0 0;list-style:none;border-top:1px solid var(--line)}
@media(min-width:560px){.facts{grid-template-columns:repeat(3,1fr);border-top:0}}
.facts li{padding:1rem 0;border-bottom:1px solid var(--line)}
@media(min-width:560px){.facts li{border-top:1px solid var(--line);padding-right:1rem}}
.facts .v{font-family:var(--serif);font-size:1.9rem;font-weight:700;color:var(--navy);line-height:1.1}
.facts .v small{font-size:.9rem;margin-left:.15rem}
.facts .k{font-size:.84rem;color:var(--ink-2);margin-top:.3rem;line-height:1.6}
.founder-quote{margin-top:1.6rem}

/* ---------- team ---------- */
.team{display:grid;gap:3rem}
@media(min-width:960px){.team{grid-template-columns:1.25fr .75fr;gap:4rem;align-items:start}}
.roles-wrap h3{font-size:1rem;color:var(--gold-deep);letter-spacing:.08em;border-bottom:1px solid var(--navy);padding-bottom:.5rem;margin-bottom:.2rem}
.roles{list-style:none}
.roles li{padding:.8rem 0;border-bottom:1px solid var(--line)}
.roles .r{display:block;font-family:var(--serif);font-weight:700;font-size:.98rem;line-height:1.6}
.roles .d{display:block;font-size:.86rem;color:var(--ink-2);line-height:1.75;margin-top:.15rem}
.roles-wrap .small{margin-top:1rem}
.team .facts{grid-template-columns:1fr;border-top:1px solid var(--line)}
.team .facts li{display:grid;grid-template-columns:5.2rem 1fr;gap:1rem;align-items:baseline;border-top:0;padding:.7rem 0}
.team .facts .v{font-size:1.5rem}

/* ---------- records ---------- */
.records{list-style:none;border-top:1px solid var(--navy)}
.records li{display:grid;gap:.3rem 1.2rem;padding:1.1rem 0;border-bottom:1px solid var(--line);align-items:start}
@media(min-width:760px){.records li{grid-template-columns:8.5rem 1fr}}
.records .t{font-size:.8rem;color:var(--gold-deep);letter-spacing:.06em;padding-top:.25rem}
.records .n{display:block;font-family:var(--serif);font-weight:700;font-size:1.05rem;line-height:1.6}
.records .d{display:block;font-size:.9rem;color:var(--ink-2);line-height:1.8;margin-top:.2rem}

/* ---------- referrers ---------- */
.ref{display:grid;gap:2rem}
@media(min-width:900px){.ref{grid-template-columns:1.2fr .8fr;gap:4rem;align-items:center}}
.ref-box{background:var(--paper-3);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem}
.ref-box h3{font-size:1rem;margin-bottom:.8rem}
.ref-box ul{list-style:none;font-size:.9rem}
.ref-box li{padding:.5rem 0;border-bottom:1px solid var(--line);display:flex;gap:.6rem;line-height:1.7}
.ref-box li::before{content:"";flex:none;width:7px;height:7px;background:var(--gold);margin-top:.65rem}
.ref-box .btn{margin-top:1.2rem;width:100%}

/* ---------- news ---------- */
.news{list-style:none;border-top:1px solid var(--navy)}
.news li{border-bottom:1px solid var(--line)}
.news a,.news .nw{display:grid;gap:.15rem .9rem;padding:1rem 0;align-items:baseline;font-size:.95rem}
@media(min-width:760px){.news a,.news .nw{grid-template-columns:7.2rem 7.5rem 1fr}}
.news .d{font-variant-numeric:tabular-nums;color:var(--mute);font-size:.86rem}
.news .t{font-size:.78rem;color:var(--gold-deep);letter-spacing:.06em}
.news a:hover .b{text-decoration:underline;text-underline-offset:.25em;text-decoration-color:var(--gold)}
.news .b{line-height:1.75}
.news-note{margin-top:1rem}

/* ---------- faq ---------- */
.faq{border-top:1px solid var(--navy)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.1rem 2.6rem 1.1rem 0;font-family:var(--serif);font-weight:600;font-size:1.02rem;line-height:1.7;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.4rem;top:1.05rem;font-family:var(--sans);font-weight:300;font-size:1.5rem;color:var(--gold-deep);line-height:1;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 0 1.4rem;font-size:.95rem;color:var(--ink-2);line-height:1.9;max-width:var(--measure)}

/* ---------- company dl ---------- */
.dl{border-top:1px solid var(--navy)}
.dl-row{display:grid;gap:.2rem 1.5rem;padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.95rem;line-height:1.8}
@media(min-width:640px){.dl-row{grid-template-columns:9rem 1fr}}
.dl-row dt{color:var(--mute);font-size:.86rem}
.dl-row dd .small{display:block}

/* ---------- contact ---------- */
.contact{background:var(--navy);color:var(--cream)}
.contact .wrap{display:grid;gap:3rem}
@media(min-width:960px){.contact .wrap{grid-template-columns:1fr 1fr;gap:4rem;align-items:start}}
.contact h2{color:var(--cream)}
.contact .lead{color:var(--cream-2)}
.ways{display:grid;gap:1rem;margin-top:1.8rem}
.way{border:1px solid var(--line-dark);border-radius:var(--r);padding:1.4rem 1.4rem 1.3rem;background:rgba(255,255,255,.025)}
.way h3{font-size:1.1rem;color:var(--cream);display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.way h3 .tag{font-family:var(--sans);font-weight:400;font-size:.76rem;color:var(--gold);letter-spacing:.06em;white-space:nowrap}
.way p{font-size:.9rem;color:var(--cream-2);margin:.5rem 0 1rem;max-width:none}
.way .btn{width:100%}
.contact-fine{margin-top:1.4rem;font-size:.84rem;color:#9AA3B5;line-height:1.8}
.contact-fine a{color:var(--cream);text-decoration:underline;text-underline-offset:.25em}

.form{background:var(--paper-3);color:var(--ink);border-radius:var(--r);padding:1.6rem;border:1px solid rgba(201,169,97,.4)}
@media(min-width:960px){.form{padding:2rem}}
.form h3{font-size:1.05rem;margin-bottom:.3rem;color:var(--navy)}
.form .small{color:var(--mute)}
.form .small{margin-bottom:1rem}
.form label{display:block;font-size:.86rem;font-weight:700;color:var(--navy);margin:.9rem 0 .3rem}
.form label .opt{font-weight:400;color:var(--mute);margin-left:.4rem}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:1rem;padding:.75rem .85rem;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
.form textarea{min-height:130px;resize:vertical}
.form .btn{margin-top:1.3rem;width:100%}
.fstatus{margin-top:.8rem;font-size:.88rem;min-height:1.4em;color:var(--gold-deep)}

/* ---------- footer ---------- */
.pj-footer{background:#070E19;color:#9AA3B5;padding:3.5rem 0 2rem;font-size:.86rem}
.pj-footer .grid{display:grid;gap:2rem}
@media(min-width:760px){.pj-footer .grid{grid-template-columns:1.4fr 1fr 1fr}}
.pj-footer .pj-brand{color:var(--cream)}
.pj-footer .tagline{margin-top:.8rem;color:var(--cream-2);font-family:var(--serif);font-size:.95rem}
.pj-footer h4{font-family:var(--sans);font-size:.8rem;font-weight:700;color:var(--cream);letter-spacing:.08em;margin-bottom:.8rem}
.pj-footer ul{list-style:none}
.pj-footer li{padding:.22rem 0;line-height:1.7}
.pj-footer a:hover{color:var(--cream)}
.pj-footer .social{display:flex;gap:1.2rem;margin-top:1.2rem}
.pj-footer .social a{display:inline-flex;align-items:center;gap:.35rem}
.pj-footer .social svg{width:15px;height:15px;fill:currentColor}
.pj-footer .sa img{width:64px;margin-top:1rem;filter:saturate(.8)}
.pj-footer .bot{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid #1B2740;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-size:.78rem}

/* ---------- sticky mobile CTA ---------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;padding:.6rem .9rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(10,19,32,.94);backdrop-filter:blur(8px);display:flex;gap:.6rem;transform:translateY(110%);transition:transform .3s}
.sticky-cta.show{transform:none}
.sticky-cta .btn{flex:1;padding:.85rem .6rem;font-size:.92rem}
@media(min-width:960px){.sticky-cta{display:none}}
body.has-sticky{padding-bottom:0}

/* ---------- sub-page hero (light pages) ---------- */
.page-hero{background:var(--navy);color:var(--cream);padding:3.5rem 0 3.5rem}
@media(min-width:900px){.page-hero{padding:4.5rem 0 4.5rem}}
.crumb{font-size:.82rem;color:#9AA3B5;margin-bottom:1.2rem}
.crumb a:hover{color:var(--cream)}
.page-hero h1{font-size:clamp(1.8rem,3.8vw,2.7rem);line-height:1.5;color:var(--cream)}
.page-hero .lead{margin-top:1.1rem;color:var(--cream-2)}

/* ---------- cases / list blocks reused on sub-pages ---------- */
.cases{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
@media(min-width:760px){.cases{grid-template-columns:repeat(3,1fr)}}
.case{background:var(--paper-3);padding:1.5rem 1.4rem}
.case .q{font-family:var(--serif);font-weight:700;font-size:1.02rem;line-height:1.7;margin-bottom:.6rem}
.case .a{font-size:.9rem;color:var(--ink-2);line-height:1.85}

.book{background:var(--paper-3);border:1px solid rgba(201,169,97,.5);border-radius:var(--r);padding:2rem 1.5rem;text-align:center}
@media(min-width:760px){.book{padding:3rem}}
.book .lead{margin:.4rem auto 0}
.book .btns{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.6rem}
.book .small{margin-top:1rem}

/* メディア掲載（ヒーロー） */
.hero-media{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:1.2rem;font-size:.88rem;line-height:1.7}
.hero-media-tag{display:inline-block;border:1px solid var(--gold);color:var(--gold);border-radius:999px;padding:.12rem .7rem;font-size:.74rem;letter-spacing:.04em}
.hero-media a{color:var(--cream);text-decoration:underline;text-underline-offset:.28em;text-decoration-thickness:1px;text-decoration-color:var(--gold)}
.hero-media a:hover{color:#fff}

/* ---------- book (v41) ---------- */
.pjbook{display:grid;gap:2.2rem;align-items:center}
@media(min-width:760px){.pjbook{grid-template-columns:minmax(200px,280px) 1fr;gap:3.5rem}}
.pjbook-cover{display:block;width:100%;max-width:200px;margin:0 auto;box-shadow:0 18px 40px rgba(0,0,0,.45);outline:1px solid var(--line-dark);transition:transform .25s}
@media(min-width:760px){.pjbook-cover{max-width:280px}}
.pjbook-cover:hover{transform:translateY(-3px)}
.pjbook-cover img{width:100%}
.pjbook-ey{font-size:.8rem;letter-spacing:.12em;color:var(--gold);margin-bottom:.8rem}
.pjbook h2{margin-bottom:.4rem}
.pjbook-sub{font-family:var(--serif);color:var(--cream-2);margin-bottom:1.2rem}
.pjbook-meta{list-style:none;margin:1.4rem 0;font-size:.9rem;border-top:1px solid var(--line-dark);max-width:var(--measure)}
.pjbook-meta li{display:flex;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line-dark);line-height:1.7;color:var(--cream)}
.pjbook-meta span{flex:none;width:3em;color:var(--gold);font-size:.82rem;padding-top:.1rem}
.pjbook-ctas{display:flex;gap:.8rem;flex-wrap:wrap}
.pjbook-note{margin-top:1rem}
.on-dark .pjbook-note .tx-link{color:var(--cream)}
