/* LP工場 共通スタイル v6 ── areteco.com の設計をそのまま踏襲
   実測した値をそのまま使っている：
     .wrap max-width:1000px / padding:0 20px / font-size:13px
     body  line-height:1.7 / letter-spacing:.05em / color:#111 / 灰色ノイズ地
     .h h2 欧文50px w500 lh1 ＋ 和文12px（margin-top:20px）
     .title 37px bold lh1.2 ＋ 欧文ラベルを左に絶対配置
     .btn   欧文12px w500 ＋ 1pxの下線 ＋ 左上に浮く黄色の丸（hoverで縮んで消える）
     marker 黄 rgba(255,238,0,.6) / 青 rgba(0,144,210,.6) / 桃 rgba(220,0,129,.6)
     .g_nav 右から幅0→310pxで開く白いパネル
     .isAnimate.show.to_top top:50px→0 / opacity 0→1 / .6s ease
   欧文は Gotham（有料）が使えないため、最も近い Montserrat をセルフホストしている */

@font-face{
  font-family:"Montserrat";
  src:url("./fonts/montserrat-latin.woff2") format("woff2");
  font-weight:400 700;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2122,U+2190-2193,U+2212,U+2215;
}

section,nav,article,aside,header,footer,figure{display:block}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-jp);
  color:var(--c-ink);
  line-height:1.7;
  letter-spacing:.05em;
  background:url("./texture.webp") repeat;
  -webkit-font-smoothing:antialiased;
  /* 閉じている g_nav が画面の外にはみ出して横スクロールが出るのを止める。
     clip は新しいスクロール領域を作らないので position:fixed を壊さない */
  overflow-x:hidden;
}
@supports (overflow-x:clip){body{overflow-x:clip}}
li{list-style:none}
ul,ol{margin:0;padding:0}
h1,h2,h3,h4{margin:0;font-weight:inherit;font-size:inherit}
p{margin:0}
img{vertical-align:top;max-width:100%}
a{text-decoration:none;color:var(--c-ink)}
button{font-family:inherit}
table{border-collapse:collapse;border-spacing:0}
::selection{background:var(--c-marker-y)}

.wrap{max-width:1000px;padding:0 20px;margin:0 auto;font-size:13px}
.wrap::after{content:"";display:block;clear:both}
.wrap-narrow{max-width:760px;padding:0 20px;margin:0 auto;font-size:13px}

/* ---------- 欧文 ---------- */
.en{font-family:var(--font-en);font-weight:500}
.en.bold{font-weight:700}

/* ---------- マーカー ---------- */
.marker{background:var(--c-marker-y)}
.marker.blue{background:var(--c-marker-c)}
.marker.pink{background:var(--c-marker-m)}

/* 本文中の強調。**…** が黄色、__…__ が桃色のマーカーになる */
.mk{
  font-style:normal;font-weight:bold;display:inline;
  background-image:linear-gradient(transparent 8%,var(--c-marker-y) 8%,var(--c-marker-y) 92%,transparent 92%);
  background-repeat:no-repeat;background-position:left center;background-size:0% 100%;
  transition:background-size 1s cubic-bezier(.22,.61,.36,1);
  transition-delay:.5s;
}
.mk-m{background-image:linear-gradient(transparent 8%,var(--c-marker-m) 8%,var(--c-marker-m) 92%,transparent 92%)}
.mk-c{background-image:linear-gradient(transparent 8%,var(--c-marker-c) 8%,var(--c-marker-c) 92%,transparent 92%)}
.show .mk,.mk.show{background-size:100% 100%}

/* ---------- スクロールで立ち上がる（areteco の to_top と同じ） ---------- */
.to_top{transition:top .6s ease,opacity .6s ease;position:relative;top:50px;opacity:0}
.isAnimate.show.to_top,.isAnimate.show .to_top{top:0;opacity:1}
.to_top_left{transition:all 1s ease;position:relative;top:50px;left:50px;opacity:0}
.isAnimate.show.to_top_left,.isAnimate.show .to_top_left{top:0;left:0;opacity:1}
.to_top_right{transition:all 1s ease;position:relative;top:50px;right:50px;opacity:0}
.isAnimate.show.to_top_right,.isAnimate.show .to_top_right{top:0;right:0;opacity:1}
@media (prefers-reduced-motion:reduce){
  .to_top,.to_top_left,.to_top_right{transition:none;top:0;left:0;right:0;opacity:1}
  .mk{transition:none;background-size:100% 100%}
}

/* ---------- 見出し（areteco .h） ---------- */
.h{margin:0 0 30px 0}
.h h2,.sec-head h2{font-family:var(--font-en);font-size:50px;font-weight:500;line-height:1}
.sec-en{font-family:var(--font-en);font-size:50px;font-weight:500;line-height:1;display:block}
.sec-ja{display:block;font-size:12px;font-family:var(--font-jp);margin:20px 0 0 0;font-weight:normal;letter-spacing:.08em}
.sec-head{margin:0 0 60px 0}
.sec-head-body{margin:50px 0 0 0}
.sec-title{
  font-size:37px;font-weight:bold;line-height:1.4;margin:0;
  display:inline-block;position:relative;letter-spacing:.03em;
}
.sec-lead{margin:30px 0 0 0;font-size:13px;max-width:44em}
.sec-note{margin:40px 0 0 0;font-size:12px;color:#666}
.sec-center{text-align:center}
.sec-center .sec-lead{margin-left:auto;margin-right:auto}

/* ---------- areteco の .title（欧文ラベルを左に置く大見出し） ---------- */
.title{font-size:37px;font-weight:bold;line-height:1.2;margin:0 0 60px 0;display:inline-block;position:relative}
.title>span{
  font-family:var(--font-en);font-weight:500;font-size:10px;
  position:absolute;top:50%;left:-30px;transform:translate(-100%,-50%);white-space:nowrap;
}

/* ---------- ボタン（areteco .btn） ---------- */
.btn{
  display:inline-block;padding:0 0 5px 0;
  font-family:var(--font-en);font-weight:500;font-size:12px;line-height:1;
  position:relative;background:none;border:0;cursor:pointer;color:var(--c-ink);letter-spacing:.08em;
}
.btn::after{content:"";display:block;width:100%;height:1px;background:var(--c-ink);position:absolute;bottom:0;left:0}
.btn strong{display:inline-block;margin:0 15px 0 0;position:relative;font-weight:500}
.btn>span{font-size:8px;position:relative}
.btn i{
  display:block;width:70px;height:70px;
  background:url("./mark/blob.svg") no-repeat center/100% 100%;
  position:absolute;top:-110%;left:10%;z-index:-1;
  mix-blend-mode:multiply;transition:all .2s;
}
.btn:hover i{transform:scale(.9);opacity:0}
.btn-jp strong{font-family:var(--font-jp);font-weight:bold;letter-spacing:.1em}
.btn-block{display:block;width:100%;text-align:center}
.btn:disabled{opacity:.35;cursor:not-allowed}
/* 暗い面の上に置くボタン */
.on-dark .btn,.btn-light{color:#fff}
.on-dark .btn::after,.btn-light::after{background:#fff}

/* ヒーローと最終CTAの主ボタンは面で押せる形にする（副ボタンは文字＋下線のまま） */
.btn.btn-fill{
  padding:15px 30px;background:var(--c-ink);color:#fff;
  transition:background-color .2s,color .2s;
}
.btn.btn-fill::after{display:none}
.btn.btn-fill strong{margin:0;font-size:13px}
.btn.btn-fill i{top:-55%;left:-8%}
.btn.btn-fill:hover{background:#fff;color:var(--c-ink);box-shadow:inset 0 0 0 1px var(--c-ink)}
.hero-cta{align-items:center}

/* 送信ボタンだけは面で押せる形にする */
.btn-submit{
  display:block;width:100%;padding:18px 20px;border:1px solid var(--c-ink);background:var(--c-ink);color:#fff;
  font-family:var(--font-jp);font-weight:bold;font-size:14px;letter-spacing:.1em;line-height:1.6;
  cursor:pointer;transition:background-color .2s,color .2s;
}
.btn-submit::after{display:none}
.btn-submit:hover{background:#fff;color:var(--c-ink)}


/* ---------- ドット絵の挿絵 ---------- */
/* 実際のドット格子（157px四方）で書き出しているので、拡大時ににじませない */
.hero-figure img,.h-about figure img,.feature-img img,.cta-band-media img,
.post-thumb img,.article-hero img{
  image-rendering:pixelated;
  image-rendering:crisp-edges;
}

/* ---------- ヘッダー / g_nav ---------- */
.global_logo{position:fixed;top:30px;left:30px;z-index:100}
.global_logo a{display:flex;align-items:center;gap:10px}
.brand-mark{display:block;width:5px;height:18px;background:var(--c-ink)}
.brand-name{font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.g_nav_btn{width:60px;height:60px;position:fixed;top:10px;right:15px;z-index:101;cursor:pointer;background:none;border:0;padding:0}
.g_nav_btn span,.g_nav_btn span::before,.g_nav_btn span::after{
  content:"";display:block;width:30px;height:2px;background:var(--c-ink);position:relative;transition:all .2s;
}
.g_nav_btn span{margin:30px auto 0 auto}
.g_nav_btn span::before{top:-10px}
.g_nav_btn span::after{top:8px}
.nav-open .g_nav_btn span{background:transparent}
.nav-open .g_nav_btn span::before{background:var(--c-ink);transform:rotate(36deg);top:0}
.nav-open .g_nav_btn span::after{background:var(--c-ink);transform:rotate(-36deg);top:-2px}
.g_nav{
  width:0;height:100%;background:#fff;position:fixed;top:0;right:0;z-index:100;
  overflow:hidden;transition:width .4s;-ms-overflow-style:none;scrollbar-width:none;
}
.g_nav::-webkit-scrollbar{display:none}
.nav-open .g_nav{width:310px;overflow-y:auto}
.g_nav ul{
  margin:100px 0 0 0;padding:0 50px 100px 30px;line-height:1;
  font-family:var(--font-en);font-size:24px;font-weight:700;
}
.g_nav li{position:relative}
.g_nav a{display:block;padding:16px 0;white-space:nowrap;position:relative}
.g_nav a span{display:block;font-family:var(--font-jp);font-size:14px;font-weight:normal;margin:5px 0 0 0}
.g_nav a::before{
  content:"";display:block;width:90%;height:calc(100% - 12px);background:#f4f4f4;
  position:absolute;top:50%;left:-10px;z-index:-1;
  transform:translateY(-50%) scale(0,1);transform-origin:left center;transition:all .2s;
}
.g_nav a:hover::before{transform:translateY(-50%) scale(1)}
.nav-foot{margin:0;padding:0 50px 60px 30px;font-family:var(--font-en);font-size:11px;letter-spacing:.1em;color:#666}

/* ---------- ヒーロー（areteco .h-intro） ---------- */
/* 見出しを上に、その下に図版（左）と本文（右）。図版と文字は重ねない（重ねると読みにくい） */
.h-intro{background:#fff;min-height:100vh;position:relative;display:flex;align-items:center;padding:120px 0 110px 0}
.h-intro .wrap{width:100%;max-width:1000px}
.h-intro h1{
  font-family:var(--font-en);font-size:50px;font-weight:700;line-height:1;
  text-align:center;margin:0 0 50px 0;padding:0 20px;
}
.hero-row{display:flex;align-items:center;justify-content:center;gap:50px}
.hero-figure{
  width:44%;max-width:440px;flex:none;margin:0;
  opacity:0;transition:opacity 1.6s ease;
}
.h-intro.show .hero-figure{opacity:1}
.hero-figure img{width:100%;max-height:56vh;object-fit:contain;display:block}
.h-intro .txt{flex:1;max-width:400px;position:relative;z-index:1}
.h-intro .txt h2{font-size:31px;font-weight:bold;margin:0 0 26px 0;line-height:1.5}
.h-intro .txt h2 .en{
  display:block;font-family:var(--font-en);font-size:8px;font-weight:500;letter-spacing:.16em;
  margin:0 0 14px 0;
}
.hero-en{
  display:block;font-family:var(--font-en);font-size:8px;font-weight:500;letter-spacing:.16em;
  margin:0 0 15px 0;
}
.h-intro .txt p{font-size:13px}
.hero-list{margin:20px 0 0 0}
.hero-list li{font-size:12px;padding:0 0 0 14px;position:relative}
.hero-list li::before{content:"";display:block;width:6px;height:1px;background:var(--c-ink);position:absolute;top:11px;left:0}
.hero-cta{margin:25px 0 0 0;display:flex;flex-wrap:wrap;gap:22px 30px;position:relative}
.hero-note{margin:18px 0 0 0;font-size:11px;color:#666}
.hero-stats{
  position:absolute;left:50%;bottom:70px;transform:translateX(-50%);
  width:100%;max-width:840px;padding:0 20px;display:flex;gap:40px;z-index:1;
}
.hero-stats .stat{font-size:11px}
.stat-num{display:block;font-family:var(--font-en);font-size:22px;font-weight:500;line-height:1}
.stat-num .u{font-family:var(--font-jp);font-size:11px;font-weight:normal;margin-left:4px}
.stat-label{display:block;margin:6px 0 0 0;font-size:10px;color:#666;letter-spacing:.08em}
.scroll-hint{
  font-family:var(--font-en);font-size:8px;font-weight:500;line-height:1;letter-spacing:.16em;
  position:absolute;bottom:60px;left:50%;transform:translateX(-50%);z-index:1;
}
.scroll-hint i{display:block;width:1px;height:50px;background:var(--c-ink);position:absolute;bottom:-60px;left:50%}

/* ---------- 帯 ---------- */
.sec{padding:100px 0}
.sec-soft{background:#fff}
.sec-ink{background:var(--c-ink);color:#fff}

/* ---------- ビジュアル（areteco .h-about） ---------- */
.h-about{background:#fff;padding:180px 0 220px 0;position:relative}
.h-about .txt{width:300px;float:right;position:relative;z-index:2}
.h-about .txt h2{font-family:var(--font-en);font-size:32px;font-weight:700;line-height:1.2;margin:0 0 45px 0}
.h-about .txt .lbl{font-family:var(--font-en);font-size:8px;font-weight:500;letter-spacing:.16em;margin:0 0 15px 0}
.h-about .txt p{font-size:12px;background:rgba(255,255,255,.7);margin:0 0 14px 0}
.h-about .txt .btn{margin:20px 0 0 0}
/* 図版は wrap（1000px）の左端に揃える。画面が狭いときは左端0 */
.h-about figure{position:absolute;bottom:50px;left:max(0px,calc(50% - 480px));width:600px;text-align:left;z-index:1}
.h-about figure img{height:500px;width:auto;display:inline-block}
.h-about .stats{display:flex;gap:26px;margin:44px 0 0 0;padding:22px 0 0 0;border-top:1px solid #ddd;position:relative;z-index:2}
.h-about .stats .stat-num{font-size:22px}
.h-about-note{margin:18px 0 0 0;font-size:10px;color:#999;position:relative;z-index:2;background:rgba(255,255,255,.78)}
/* 線画と重なる部分は、areteco と同じく白の下敷きを敷いて読めるようにする */
.h-about .txt h2,.h-about .txt .lbl,.h-about .txt .stat{background:rgba(255,255,255,.78)}
.h-about .txt .btn{background:rgba(255,255,255,.78);padding-right:4px}

/* ---------- 実績の帯 ---------- */
.trustbar{padding:60px 0;background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}
.trust-list{display:flex;justify-content:space-between;gap:30px}
.trust-list li{flex:1}
.trust-list b{display:block;font-family:var(--font-en);font-size:28px;font-weight:500;line-height:1}
.trust-list span{display:block;margin:8px 0 0 0;font-size:10px;color:#666;letter-spacing:.1em}
.trust-note{margin:26px 0 0 0;font-size:11px;color:#666}

/* ---------- 課題（areteco .h-principles の見せ方） ---------- */
.problem-grid{margin:0}
.problem-card{
  font-size:22px;font-weight:bold;line-height:1.6;margin:0 0 34px 0;
  position:relative;padding:0 0 0 60px;
}
.problem-card::before{
  content:attr(data-n);position:absolute;left:0;top:8px;
  font-family:var(--font-en);font-size:12px;font-weight:500;color:#999;letter-spacing:.1em;
}
.problem-closing{margin:70px 0 0 0;font-size:26px;font-weight:bold;line-height:1.6}

/* ---------- 支援内容（areteco .h-service） ---------- */
.feature-rows{margin:50px 0 0 0}
.feature-row{display:flex;justify-content:space-between;gap:40px;margin:0 0 90px 0;align-items:flex-start}
.feature-row:last-child{margin-bottom:0}
.feature-row:nth-child(even){flex-direction:row-reverse}
.feature-row.no-img{display:block}
.feature-text{width:33%;flex:none}
.feature-row.no-img .feature-text{width:100%}
.feature-num{font-family:var(--font-en);font-size:10px;font-weight:500;letter-spacing:.14em;color:#999}
.feature-title{font-family:var(--font-jp);font-size:26px;font-weight:bold;line-height:1.4;margin:14px 0 0 0}
.feature-title::after{content:"";display:block;width:110px;height:1px;background:var(--c-ink);margin:40px 0}
.feature-body{margin:0 0 20px 0;font-size:13px}
.feature-points li{font-size:12px;padding:0 0 0 14px;position:relative;margin:0 0 6px 0}
.feature-points li::before{content:"";display:block;width:6px;height:1px;background:var(--c-ink);position:absolute;top:11px;left:0}
.feature-img{width:60%;flex:none}
.feature-img img{width:100%;max-width:420px;margin:0 auto;display:block}

/* ---------- 選ばれる理由 ---------- */
.reason-list{margin:50px 0 0 0}
.reason{display:flex;gap:40px;margin:0 0 50px 0}
.reason:last-child{margin-bottom:0}
.reason-index{font-family:var(--font-en);font-size:10px;font-weight:500;letter-spacing:.14em;color:#999;width:90px;flex:none;padding-top:6px}
.reason-body h3{font-size:22px;font-weight:bold;line-height:1.5;margin:0 0 14px 0}
.reason-body p{font-size:13px}

/* ---------- 事例 ---------- */
.case-grid{display:flex;justify-content:space-between;gap:40px;margin:50px 0 0 0}
.case-card{flex:1;padding:22px 0 0 0;border-top:1px solid var(--c-ink)}
.case-tag{display:block;font-family:var(--font-en);font-size:10px;font-weight:500;letter-spacing:.14em;color:#999;margin:0 0 16px 0}
.case-title{font-size:18px;font-weight:bold;line-height:1.5;margin:0 0 20px 0}
.case-line{display:flex;gap:12px;font-size:12px;margin:0 0 8px 0}
.case-line b{font-size:10px;font-weight:500;color:#999;flex:none;width:28px;padding-top:3px;letter-spacing:.06em}
.case-after{margin:18px 0 0 0;padding:16px 0 0 0;border-top:1px solid #ddd}
.case-after b{color:var(--c-ink)}
.case-after span{font-weight:bold}

/* ---------- 流れ ---------- */
.flow-list{margin:50px 0 0 0}
.flow-step{display:flex;gap:40px;padding:0 0 40px 0;margin:0 0 40px 0;border-bottom:1px solid #ddd;align-items:baseline}
.flow-step:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.flow-num{font-family:var(--font-en);font-size:10px;font-weight:500;letter-spacing:.14em;color:#999;width:90px;flex:none;line-height:1}
.flow-num b{display:block;font-size:34px;font-weight:500;color:var(--c-ink);margin:0 0 8px 0;letter-spacing:0}
.flow-step>div{flex:1}
.flow-step h3{font-size:18px;font-weight:bold;line-height:1.5;margin:0 0 8px 0}
.flow-step p{font-size:12px}
.flow-duration{font-family:var(--font-en);font-size:10px;letter-spacing:.1em;color:#999;width:100px;flex:none;text-align:right}

/* ---------- 料金 ---------- */
.plan-grid{display:flex;gap:30px;margin:50px 0 0 0;align-items:stretch}
.plan{flex:1;background:#fff;padding:36px 28px;position:relative;display:flex;flex-direction:column}
.plan-rec{background:var(--c-ink);color:#fff}
.plan-badge{
  position:absolute;top:0;left:0;background:var(--c-marker-y-solid);color:var(--c-ink);
  font-family:var(--font-en);font-size:9px;font-weight:700;letter-spacing:.14em;padding:6px 12px;
}
.plan-name{font-size:14px;font-weight:bold;letter-spacing:.08em;margin:14px 0 18px 0}
.plan-price{font-family:var(--font-en);font-size:30px;font-weight:500;line-height:1.1;margin:0 0 10px 0}
.plan-summary{font-size:12px;margin:0 0 22px 0;padding:0 0 20px 0;border-bottom:1px solid #ddd}
.plan-rec .plan-summary{border-color:rgba(255,255,255,.25)}
.plan-items{flex:1;margin:0 0 24px 0}
.plan-items li{font-size:12px;padding:0 0 0 14px;position:relative;margin:0 0 8px 0}
.plan-items li::before{content:"";display:block;width:6px;height:1px;background:currentColor;position:absolute;top:11px;left:0}
.plan-rec .btn{color:#fff}
.plan-rec .btn::after{background:#fff}

/* ---------- プロフィール ---------- */
.profile{display:flex;gap:50px;margin:50px 0 0 0;align-items:flex-start}
.profile-photo{width:200px;flex:none}
.profile-head{width:260px;flex:none}
.profile-body{flex:1;max-width:560px}
.profile-name{font-size:24px;font-weight:bold;margin:0 0 24px 0}
.profile-name span{display:block;font-family:var(--font-en);font-size:10px;font-weight:500;letter-spacing:.14em;color:#999;margin:10px 0 0 0}
.profile-text{font-size:13px}
.profile-facts{margin:26px 0 0 0;padding:22px 0 0 0;border-top:1px solid #ddd}
.profile-facts li{font-size:12px;padding:0 0 0 14px;position:relative;margin:0 0 6px 0}
.profile-facts li::before{content:"";display:block;width:6px;height:1px;background:var(--c-ink);position:absolute;top:11px;left:0}

/* ---------- 診断への導線 ---------- */
.diag-promo{background:var(--c-ink);color:#fff;padding:100px 0}
.diag-promo-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:40px}
.diag-promo .sec-head{margin:0;flex:1}
.diag-promo .sec-lead{color:rgba(255,255,255,.75)}
.diag-promo-cta{flex:none;text-align:right}
.diag-promo-note{margin:14px 0 0 0;font-size:11px;color:rgba(255,255,255,.5)}

/* ---------- FAQ ---------- */
.faq-list{margin:50px 0 0 0;border-top:1px solid #ddd}
.faq-item{border-bottom:1px solid #ddd}
.faq-item summary{
  cursor:pointer;list-style:none;padding:26px 40px 26px 0;
  font-size:16px;font-weight:bold;line-height:1.6;position:relative;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"";position:absolute;right:6px;top:50%;width:13px;height:1px;background:var(--c-ink)}
.faq-item summary::before{
  content:"";position:absolute;right:12px;top:50%;width:1px;height:13px;background:var(--c-ink);
  transform:translateY(-50%);transition:transform .3s,opacity .2s;
}
.faq-item[open] summary::before{transform:translateY(-50%) rotate(90deg);opacity:0}
.faq-a{padding:0 40px 28px 0;font-size:13px}

/* ---------- 最終CTA ---------- */
.cta-band{background:#fff;padding:120px 0;text-align:center;position:relative;overflow:hidden}
.cta-band-media{margin:0 0 50px 0}
.cta-band-media img{width:min(360px,60vw);display:inline-block}
.cta-band h2{font-size:34px;font-weight:bold;line-height:1.5;margin:0 0 20px 0}
.cta-band p{font-size:13px;max-width:36em;margin:0 auto}
.cta-band .hero-cta{justify-content:center;margin:40px 0 0 0}
.intro-title{font-size:34px;font-weight:bold;line-height:1.5}
.intro-cta{display:flex;flex-wrap:wrap;gap:30px;justify-content:center;margin:40px 0 0 0}

/* ---------- フォーム ---------- */
.lp-form{margin:50px 0 0 0}
.field{display:block;margin:0 0 26px 0;position:relative}
.field-label{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:bold;letter-spacing:.1em;margin:0 0 10px 0}
.req,.opt{font-family:var(--font-en);font-size:9px;font-weight:700;letter-spacing:.1em;padding:3px 7px;font-style:normal}
.req{background:var(--c-marker-y-solid);color:var(--c-ink)}
.opt{color:#888;border:1px solid #ccc}
.field-help{display:block;font-size:11px;color:#666;margin:8px 0 0 0}
.field input,.field select,.field textarea{
  width:100%;font-size:16px;padding:14px;border:1px solid #ccc;background:#fff;color:var(--c-ink);
  font-family:inherit;transition:border-color .3s;border-radius:0;-webkit-appearance:none;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-ink)}
.field textarea{min-height:140px;resize:vertical;line-height:1.7}
.field.err input,.field.err select,.field.err textarea{border-color:#c00}
.field-error{display:block;font-size:11px;color:#c00;margin:6px 0 0 0}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:12px;margin:0 0 24px 0}
.agree input{margin-top:5px;flex:none}
.agree.err{color:#c00}
.agree a{text-decoration:underline;text-underline-offset:3px}
.form-note{font-size:11px;color:#666;margin:16px 0 0 0}
.form-msg{margin:16px 0 0 0;font-size:13px;font-weight:bold}
.form-msg.ok{color:#0a7d3c}
.form-msg.ng{color:#c00}

/* ---------- 診断 ---------- */
.diag-hero{background:#fff;padding:180px 0 80px 0}
.diag-hero .micro{font-family:var(--font-en);font-size:8px;font-weight:500;letter-spacing:.16em;margin:0 0 18px 0}
.diag-hero .intro-title{margin:0 0 24px 0}
.diag-meta{display:flex;flex-wrap:wrap;gap:12px 30px;margin:26px 0 0 0;font-family:var(--font-en);font-size:10px;letter-spacing:.14em;color:#666}
.progress{height:1px;background:#ddd}
.progress-bar{height:100%;width:0;background:var(--c-ink);transition:width .6s ease}
.progress-label{font-family:var(--font-en);font-size:10px;font-weight:500;color:#999;margin:16px 0 50px 0;letter-spacing:.18em}
.q-text{font-size:26px;font-weight:bold;margin:0 0 18px 0;line-height:1.6}
.q-note{font-size:12px;color:#666;margin:0 0 34px 0}
.choices{border-top:1px solid #ddd}
.choice{
  display:block;width:100%;appearance:none;background:none;border:0;border-bottom:1px solid #ddd;
  text-align:left;padding:22px 34px 22px 0;font-size:15px;line-height:1.6;color:var(--c-ink);
  cursor:pointer;position:relative;font-family:inherit;letter-spacing:.05em;transition:padding-left .3s;
}
.choice::after{content:"";position:absolute;right:4px;top:50%;width:16px;height:1px;background:#bbb;transition:all .3s}
.choice:hover{padding-left:14px}
.choice:hover::after{width:26px;background:var(--c-ink)}
.choice.sel{font-weight:bold}
.choice.sel::after{background:var(--c-ink)}
.quiz-nav{margin:40px 0 0 0}
.result-head{margin:0 0 50px 0}
.result-type{font-size:32px;font-weight:bold;margin:16px 0 20px 0;line-height:1.4}
.result-summary{font-size:13px;max-width:42em}
.result-chart{display:flex;gap:50px;align-items:center;margin:0 0 60px 0}
.result-chart>*{flex:1;min-width:0}
.axis-scores .axis-row{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.08em;margin:0 0 8px 0;font-weight:bold}
.axis-scores li{margin:0 0 20px 0}
.axis-bar{height:1px;background:#ddd}
.axis-bar span{display:block;height:100%;background:var(--c-ink)}
.result-comments{margin:0 0 60px 0}
.axis-comment{padding:20px 0 0 0;border-top:1px solid #ddd;margin:0 0 26px 0}
.axis-comment h4{font-size:12px;font-weight:bold;letter-spacing:.1em;margin:0 0 10px 0}
.axis-comment p{font-size:12px;color:#555}
.lead-box{background:#fff;padding:40px}
.lead-box h3{font-size:20px;font-weight:bold;margin:0 0 14px 0;line-height:1.5}
.lead-box>p{font-size:13px;margin:0 0 30px 0}
.result-actions{margin:50px 0 0 0}

/* ---------- ブログ ---------- */
.blog-hero{background:#fff;padding:180px 0 80px 0}
.blog-tags{display:flex;flex-wrap:wrap;gap:10px 26px;margin:36px 0 0 0;padding:22px 0 0 0;border-top:1px solid #ddd}
.blog-tags li{font-size:10px;color:#888;letter-spacing:.12em}
.blog-tags a{color:#888;padding:0 0 3px 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.blog-tags a:hover{color:var(--c-ink);border-color:var(--c-ink)}
.post-list{margin:0}
.post-card{padding:0 0 50px 0;margin:0 0 50px 0;border-bottom:1px solid #ddd}
.post-card:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.post-card a{display:flex;gap:40px;align-items:center}
.post-thumb{width:320px;flex:none;overflow:hidden}
.post-thumb img{width:100%;aspect-ratio:4/3;object-fit:contain;transition:transform 1s ease}
.post-card a:hover .post-thumb img{transform:scale(1.04)}
.post-meta{display:flex;flex-wrap:wrap;gap:16px;font-family:var(--font-en);font-size:10px;color:#999;margin:0 0 12px 0;letter-spacing:.14em}
.tag{font-family:var(--font-jp);letter-spacing:.1em;color:var(--c-ink);font-weight:bold}
a.tag{padding:0 0 2px 0;border-bottom:1px solid transparent;transition:border-color .2s}
a.tag:hover{border-color:var(--c-ink)}
/* 本文中の自動内部リンクは、黄色の下線で「記事へ飛ぶ」ことが分かるようにする */
.article-body a[href*="/blog/"]{
  text-decoration:none;font-weight:bold;
  border-bottom:1px solid var(--c-ink);
}
.article-body a[href*="/blog/"]:hover{background:var(--c-marker-y);border-color:transparent}
.post-title{font-size:20px;font-weight:bold;line-height:1.5;margin:0 0 12px 0}
.post-desc{font-size:12px;color:#555}
.post-more{display:inline-block;margin:18px 0 0 0;font-family:var(--font-en);font-size:10px;letter-spacing:.16em;font-weight:500;padding:0 0 4px 0;position:relative}
.post-more::after{content:"";display:block;width:100%;height:1px;background:var(--c-ink);position:absolute;bottom:0;left:0}

/* ---------- 記事 ---------- */
.article-head{background:#fff;padding:180px 0 70px 0;position:relative;overflow:hidden}
.article-head-media{display:none}
.crumbs{font-family:var(--font-en);font-size:10px;color:#999;margin:0 0 26px 0;display:flex;flex-wrap:wrap;gap:10px;letter-spacing:.12em}
.crumbs span:last-child{font-family:var(--font-jp);letter-spacing:.06em}
.article-title{font-size:36px;font-weight:bold;line-height:1.4}
.article-meta{display:flex;flex-wrap:wrap;gap:20px;font-family:var(--font-en);font-size:10px;color:#999;margin:22px 0 0 0;letter-spacing:.14em}
.article-lead{margin:22px 0 0 0;font-size:13px;max-width:40em}
.article-hero{max-width:760px;padding:0 20px;margin:0 auto 50px auto;background:none}
.article-hero img{width:100%;max-width:460px;margin:0 auto;display:block}
.article-inner{padding:70px 0 110px 0}
.toc{background:#fff;padding:30px;margin:0 0 60px 0}
.toc-title{font-family:var(--font-en);font-size:10px;font-weight:500;letter-spacing:.16em;margin:0 0 18px 0}
.toc ol{counter-reset:toc}
.toc li{counter-increment:toc;font-size:12px;display:flex;gap:14px;margin:0 0 10px 0}
.toc li::before{content:counter(toc,decimal-leading-zero);font-family:var(--font-en);font-size:10px;color:#bbb;padding-top:3px}
.toc a:hover{text-decoration:underline}
.article-body{font-size:14px;line-height:2}
.article-body h2{font-size:24px;font-weight:bold;line-height:1.5;margin:70px 0 22px 0;display:inline-block;position:relative}
.article-body h2::before{
  content:"";display:block;width:calc(100% + 16px);height:14px;background:var(--c-marker-y);
  position:absolute;bottom:2px;left:-8px;z-index:-1;mix-blend-mode:multiply;
}
.article-body h3{font-size:18px;font-weight:bold;line-height:1.6;margin:40px 0 14px 0}
.article-body p{margin:0 0 22px 0}
.article-body strong{
  font-weight:bold;
  background:linear-gradient(transparent 58%,var(--c-marker-y) 58%);
}
.article-body a{text-decoration:underline;text-underline-offset:3px}
.article-body ul,.article-body ol{margin:0 0 26px 0}
.article-body ul li{padding:0 0 0 16px;position:relative;margin:0 0 8px 0}
.article-body ul li::before{content:"";position:absolute;left:0;top:14px;width:7px;height:1px;background:var(--c-ink)}
.article-body ol{counter-reset:li}
.article-body ol li{counter-increment:li;padding:0 0 0 28px;position:relative;margin:0 0 8px 0}
.article-body ol li::before{content:counter(li,decimal-leading-zero);position:absolute;left:0;font-family:var(--font-en);font-size:10px;color:#999}
.article-body blockquote{margin:0 0 26px 0;padding:20px 24px;background:#fff;font-size:13px;color:#555}
.article-body pre{margin:0 0 26px 0;padding:22px 24px;background:#fff;overflow-x:auto;border-left:2px solid #ddd}
.article-body pre code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;line-height:1.8}
.article-body :not(pre)>code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;background:#fff;padding:2px 6px}
.table-scroll{overflow-x:auto;margin:0 0 26px 0}
.article-body table{width:100%;font-size:12px;min-width:420px;background:#fff}
.article-body th,.article-body td{border-bottom:1px solid #ddd;padding:13px 12px;text-align:left;line-height:1.7}
.article-body th{font-weight:bold;background:#f4f4f4;letter-spacing:.06em}
.article-body hr{border:0;border-top:1px solid #ddd;margin:50px 0}
/* 記事の途中に一度だけ入れる診断への導線（templates/blog.mjs insertMidCta） */
.mid-cta{margin:40px 0 50px 0;padding:22px 26px;background:#fff;border-left:3px solid var(--c-marker-y-solid)}
.mid-cta-en{font-family:var(--font-en);font-size:9px;font-weight:700;letter-spacing:.18em;color:#999;margin:0 0 8px 0}
.mid-cta-text{font-size:13px;line-height:1.9;margin:0}
.mid-cta-text a{font-weight:bold;border-bottom:1px solid var(--c-ink);text-decoration:none}
.mid-cta-text a:hover{background:var(--c-marker-y);border-color:transparent}
.article-cta{margin:80px 0 0 0;padding:40px 0 0 0;border-top:1px solid var(--c-ink)}
.article-cta h2{font-size:20px;font-weight:bold;line-height:1.6;margin:0 0 14px 0}
.article-cta p{font-size:13px;margin:0 0 26px 0}
.article-back{margin:50px 0 0 0}
.related{margin:70px 0 0 0;padding:40px 0 0 0;border-top:1px solid #ddd}
.related>p{font-family:var(--font-en);font-size:10px;font-weight:500;letter-spacing:.16em;margin:0 0 24px 0}
.related-list{display:flex;gap:30px}
.related-list li{flex:1}
.related-list a{display:block;padding:18px 0 0 0;border-top:1px solid #ddd}
.related-date{font-family:var(--font-en);font-size:10px;color:#999;letter-spacing:.12em}
.related-title{font-size:13px;font-weight:bold;line-height:1.6;margin:10px 0 0 0}
.related-list a:hover .related-title{text-decoration:underline}

/* ---------- 法務ページ ---------- */
.legal{font-size:13px;line-height:2}
.legal h2{font-size:18px;font-weight:bold;margin:50px 0 16px 0}
.legal p{margin:0 0 16px 0}
.legal ul{margin:0 0 18px 0}
.legal li{padding:0 0 0 16px;position:relative;margin:0 0 6px 0}
.legal li::before{content:"";position:absolute;left:0;top:14px;width:7px;height:1px;background:var(--c-ink)}
.legal-date{margin:44px 0 0 0;font-size:11px;color:#666}
.legal-warn{background:#fff;padding:18px 22px;font-size:12px;color:#555;margin:0 0 28px 0}
.legal-table{width:100%;font-size:13px;background:#fff}
.legal-table th,.legal-table td{border-bottom:1px solid #ddd;padding:16px 14px;text-align:left;vertical-align:top;line-height:1.8}
.legal-table th{width:32%;font-weight:bold;background:#f4f4f4}
.thanks-book{margin:40px 0 0 0}
.thanks-back{margin:44px 0 0 0}

/* ---------- フッター ---------- */
.site-footer{
  font-family:var(--font-en);font-weight:500;background:var(--c-ink);color:#fff;
  padding:50px 0 40px 0;line-height:1.2;
}
.site-footer a{color:#fff}
.footer-inner{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.footer-name{font-family:var(--font-en);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px 0}
.footer-line{font-family:var(--font-jp);font-size:11px;color:rgba(255,255,255,.6);line-height:1.9}
.footer-nav{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:flex-start}
.footer-nav a{font-family:var(--font-jp);font-size:11px;color:rgba(255,255,255,.7)}
.footer-nav a:hover{text-decoration:underline}
.copyright{margin:50px 0 0 0;font-family:var(--font-en);font-size:10px;color:rgba(255,255,255,.45);letter-spacing:.12em;text-align:center}

/* ---------- スマホの固定CTA ---------- */
.mobile-cta{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;
  background:#fff;border-top:1px solid #ddd;padding:10px 12px calc(10px + env(safe-area-inset-bottom)) 12px;
  transform:translateY(110%);transition:transform .35s ease;
}
.mobile-cta.on{transform:translateY(0)}
.mobile-cta a{display:block;text-align:center;font-weight:bold;font-size:13px;letter-spacing:.08em;line-height:1;padding:15px 10px}
.mobile-cta-main{background:var(--c-ink);color:#fff;flex:1.3}
.mobile-cta-sub{flex:1;box-shadow:inset 0 0 0 1px var(--c-ink)}

/* ---------- レスポンシブ ---------- */
@media (max-width:900px){
  .wrap,.wrap-narrow{padding:0 20px}
  .h-intro{min-height:0;display:block;padding:100px 0 80px 0}
  .h-intro h1{font-size:34px;margin:0 0 40px 0}
  .hero-row{display:block}
  .h-intro .txt{max-width:none}
  .h-intro .txt h2{font-size:24px}
  .hero-figure{width:min(300px,64vw);max-width:none;margin:0 auto 30px auto}
  .hero-figure img{max-height:none}
  .hero-stats{position:static;transform:none;padding:0;margin:40px 0 0 0;flex-wrap:wrap;gap:24px 30px}
  .scroll-hint{display:none}
  .sec-en,.h h2,.sec-head h2{font-size:34px}
  .sec-title,.title,.intro-title,.cta-band h2{font-size:24px}
  .article-title{font-size:26px}
  .feature-row,.feature-row:nth-child(even){display:block}
  .feature-text,.feature-img{width:100%}
  .feature-img{margin:26px 0 0 0}
  .feature-title::after{margin:26px 0}
  .case-grid,.plan-grid,.profile,.result-chart,.related-list,.trust-list{display:block}
  .case-card,.plan,.related-list li,.trust-list li{margin:0 0 30px 0}
  .profile-photo{width:200px;margin:0 0 26px 0}
  .h-about{padding:120px 0 0 0}
  .h-about .txt{width:100%;float:none}
  .h-about figure{position:static;width:auto;margin:40px 0 0 0;text-align:center}
  .h-about figure img{height:auto;width:min(320px,72vw)}
  .h-about .stats{flex-wrap:wrap}
  .profile-head{width:auto;margin:0 0 20px 0}
  .flow-num b{display:inline-block;font-size:26px;margin:0 10px 0 0;vertical-align:-3px}
  .mobile-cta{display:flex;gap:8px}
  body.has-mobile-cta{padding-bottom:70px}
  .reason,.flow-step{display:block}
  .reason-index,.flow-num{width:auto;margin:0 0 10px 0}
  .flow-duration{width:auto;text-align:left;margin:8px 0 0 0}
  .diag-promo-inner{display:block}
  .diag-promo-cta{text-align:left;margin:34px 0 0 0}
  .post-card a{display:block}
  .post-thumb{width:100%;margin:0 0 20px 0}
  .problem-card{font-size:18px;padding-left:44px}
  .problem-closing{font-size:20px}
  .q-text{font-size:20px}
  .result-type{font-size:24px}
  .global_logo{top:20px;left:20px}
  .g_nav_btn{top:4px}
}
@media (max-width:600px){
  .article-body{font-size:13.5px}
  .lead-box{padding:26px}
}
