/* ヒショ＋ ランディングページ
   色の思想：墨＝本文 / 紺＝格式と行動 / 朱＝校正の朱入れ（＝確かめるべき箇所）
   朱をCTAに使わないのは、この商品で朱が「要確認」の意味を持つため。意味を濁さない。 */

:root{
  --paper:#FFFFFF;
  --white:#FFFFFF;
  --tint:#F5F7FA;
  --sumi:#152238;
  --sumi-2:#4A5768;
  --sumi-3:#7C889A;
  --kon:#123A6B;
  --kon-2:#1D5A9E;
  --shu:#C0562F;
  --shu-soft:#FBF0EA;
  --line:#DFE4EA;
  --line-2:#EDF0F4;
  --r:10px;
  --r-lg:14px;
  --sh:0 1px 3px rgba(26,26,31,.04), 0 12px 32px -18px rgba(26,26,31,.10);
  --sh-lift:0 2px 6px rgba(26,26,31,.05), 0 40px 80px -40px rgba(26,26,31,.22);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--sumi);
  font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium",Meiryo,system-ui,sans-serif;
  font-size:16.5px;line-height:1.95;-webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%}
a{color:inherit}
.wrap{width:100%;max-width:1140px;margin:0 auto;padding:0 28px}
.ic{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;
    stroke-linecap:round;stroke-linejoin:round}
.ic.big{width:30px;height:30px;stroke-width:1.6}
.sp{display:none}
.mark{color:var(--shu)}
.shu{color:var(--shu);font-weight:800}

h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.5}
.h2{font-size:clamp(24px,3.2vw,36px);line-height:1.55;font-weight:700}
.center{text-align:center}
.eyebrow{
  margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--kon-2);
}
.eyebrow.light{color:#8FB6E0}
.lead{font-size:clamp(15.5px,1.5vw,17.5px);line-height:2;color:var(--sumi-2);margin:20px 0 0}
.lead.light{color:rgba(255,255,255,.8)}
.light{color:#fff}

/* ── ボタン ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border:1.5px solid transparent;border-radius:999px;cursor:pointer;text-decoration:none;
  font-size:15px;font-weight:800;letter-spacing:-.01em;padding:0 22px;min-height:48px;
  transition:transform .16s cubic-bezier(.2,.7,.3,1),background .16s,border-color .16s,box-shadow .16s;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--kon);color:#fff;
             box-shadow:0 3px 10px -3px rgba(18,58,107,.5)}
.btn-primary:hover{background:#1B4B84}
.btn-shu{background:#fff;color:var(--kon)}
.btn-ghost{background:var(--white);color:var(--sumi);border-color:var(--line)}
.btn-ghost:hover{border-color:#C7CFD8}
.btn-quiet{background:transparent;color:var(--sumi-2);padding:0 14px;min-height:42px;font-size:14.5px}
.btn-quiet:hover{color:var(--kon)}
.btn-lg{min-height:56px;font-size:16.5px;padding:0 28px}
.btn-block{width:100%}

/* ── ヘッダー ── */
.nav{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:24px;
  padding:14px 28px;background:rgba(239,241,244,.9);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:0 0 auto}
.brand-tile{
  width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:var(--kon);color:#fff;
  font-size:17px;font-weight:900;
}
.brand-name{font-size:20px;font-weight:900;letter-spacing:-.06em}
.brand-name .plus{color:var(--shu)}
.navlinks{display:flex;gap:24px;margin-left:12px;flex:1}
.navlinks a{font-size:14.5px;font-weight:700;color:var(--sumi-2);text-decoration:none}
.navlinks a:hover{color:var(--kon)}
.navcta{display:flex;align-items:center;gap:8px;flex:0 0 auto}

/* ── ヒーロー：写真を背景に敷き、左に文字を置く（mina＋と同じ作法） ── */
.hero{position:relative;overflow:hidden;min-height:min(78vh,660px);display:flex;align-items:center}
.hero-bg{
  position:absolute;inset:0;
  background-image:
    linear-gradient(100deg, rgba(18,58,107,.94) 0%, rgba(18,58,107,.82) 38%, rgba(18,58,107,.28) 62%, rgba(18,58,107,.06) 100%),
    url("hero.jpg");
  background-size:cover;background-position:center right;
}
.hero-inner{position:relative;padding:84px 28px 76px;max-width:1140px;width:100%}
.hero .eyebrow{color:#9CC3EA}
.hero-h1{
  font-size:clamp(32px,4.8vw,54px);line-height:1.42;letter-spacing:-.025em;
  font-weight:700;color:#fff;max-width:16em;
}
.hero-h1 .mark{color:#F0A882}
.hero-lead{
  margin:24px 0 0;font-size:clamp(15px,1.5vw,17px);line-height:2.05;
  color:rgba(255,255,255,.86);max-width:44em;
}
.hero-lead strong{color:#fff;font-weight:700}
.hero-cta{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.hero .btn-primary{background:#fff;color:var(--kon);box-shadow:0 6px 20px -6px rgba(0,0,0,.4)}
.hero .btn-primary:hover{background:#EAF1F9}
.hero .btn-ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.5)}
.hero .btn-ghost:hover{background:rgba(255,255,255,.2);border-color:#fff}
.hero-note{
  margin:30px 0 0;font-size:13px;line-height:1.9;color:rgba(255,255,255,.72);
  padding-top:22px;border-top:1px solid rgba(255,255,255,.22);max-width:40em;
}
@media(max-width:820px){
  .hero{min-height:0}
  .hero-bg{background-position:72% center;
    background-image:
      linear-gradient(180deg, rgba(18,58,107,.92) 0%, rgba(18,58,107,.86) 55%, rgba(18,58,107,.72) 100%),
      url("hero.jpg");}
  .hero-inner{padding:56px 20px 52px}
  .hero-h1{max-width:none}
  .hero-cta .btn{width:100%}
}

/* ── 原稿デモ（このページの主役） ── */
.paper-demo{
  margin:0;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-lift);overflow:hidden;
  animation:float-in .8s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes float-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.paper-demo{animation:none}}
.pd-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 24px;border-bottom:1px solid var(--line-2);background:var(--white);
}
.pd-chip{font-size:12px;font-weight:800;letter-spacing:.02em;color:#fff;background:var(--kon);
         padding:5px 12px;border-radius:99px}
.pd-meta{font-size:12px;font-weight:700;color:var(--sumi-3)}
.pd-body{padding:26px 28px 24px}
.pd-q{margin:0 0 8px;font-size:12.5px;font-weight:900;letter-spacing:.06em;color:var(--kon-2)}
.pd-text{margin:0 0 18px;font-size:16px;line-height:1.95;font-weight:600}
/* 出典が紐づく箇所に朱の下線。この商品の signature */
.cite-line{
  background:linear-gradient(transparent 62%, rgba(192,86,47,.26) 62%);
  padding-bottom:1px;font-weight:800;
}
.pd-quote{
  border:1px solid var(--line);border-radius:10px;padding:13px 16px;margin-bottom:10px;
  background:var(--paper);font-size:14px;line-height:1.85;color:var(--sumi-2);
}
.pd-quote b{display:block;font-size:12.5px;color:var(--sumi);margin-bottom:3px}
.pd-quote.reply{border-left:3px solid var(--kon-2)}
.pd-warn{
  border:1px solid #F5D9CA;border-left:3px solid var(--shu);background:var(--shu-soft);
  border-radius:12px;padding:12px 16px;font-size:13.5px;font-weight:700;color:#B4552A;
  margin:14px 0 18px;
}
.pd-warn b{color:var(--shu)}
.pd-src{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:16px;
        border-top:1px dashed var(--line)}
.pd-src-label{font-size:11px;font-weight:900;letter-spacing:.14em;color:var(--shu)}
.pd-src-item{
  font-size:12px;font-weight:700;color:var(--sumi-2);background:var(--paper);
  border:1px solid var(--line);border-radius:99px;padding:5px 12px;
}

/* ── セクション共通 ── */
.sect{padding:88px 0}
.sect.tint{background:var(--tint)}
.sect.dark{background:var(--kon);color:#fff}
.sect .h2+.lead{max-width:66ch;margin-left:auto;margin-right:auto}

.rise{opacity:0;transform:translateY(16px);
      transition:opacity .55s cubic-bezier(.2,.7,.3,1),transform .55s cubic-bezier(.2,.7,.3,1)}
.rise.in{opacity:1;transform:none}

/* ── 課題 ── */
.probs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}
.prob{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
      padding:30px 28px;box-shadow:var(--sh)}
.prob-n{display:block;font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--kon-2);margin-bottom:14px}
.prob h3{font-size:19px;margin-bottom:10px}
.prob p{margin:0;font-size:14.5px;line-height:1.95;color:var(--sumi-2)}

/* ── 3つの約束 ── */
.promises{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px}
.promise{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);
  border-radius:var(--r-lg);padding:32px 28px;box-shadow:var(--sh);
}
.promise .ic{color:#8FB6E0;margin-bottom:16px}
.promise h3{font-size:19px;margin-bottom:12px;color:#fff}
.promise p{margin:0;font-size:14.5px;line-height:1.95;color:rgba(255,255,255,.78)}
.promise .shu{color:#E8A184}

/* ── 使い方 ── */
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(3,1fr);
       gap:20px;margin:52px 0 0;padding:0}
.steps li{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
          padding:30px 28px;box-shadow:var(--sh);position:relative}
.step-n{display:block;font-size:11.5px;font-weight:900;letter-spacing:.16em;color:var(--kon-2);margin-bottom:14px}
.steps h3{font-size:19px;margin-bottom:10px}
.steps p{margin:0;font-size:14.5px;line-height:1.95;color:var(--sumi-2)}
.steps b{color:var(--sumi);font-weight:900}

/* ── 対応する場面 ── */
.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:52px}
.mode{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:26px 24px}
.mode .ic{color:var(--kon-2);margin-bottom:14px}
.mode h3{font-size:17px;margin-bottom:8px}
.mode p{margin:0;font-size:14px;line-height:1.9;color:var(--sumi-2)}
.mode b{color:var(--sumi);font-weight:900}

/* ── 専用化 ── */
.personal{display:grid;grid-template-columns:1.06fr .94fr;gap:56px;align-items:center}
.personal .note{
  margin:24px 0 0;padding:16px 18px;background:var(--tint);border-radius:var(--r);
  font-size:13.5px;line-height:1.9;color:var(--sumi-2);
}
.personal .note b{color:var(--sumi);font-weight:900}
.memory{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.memory li{
  display:flex;align-items:flex-start;gap:12px;background:var(--white);border:1px solid var(--line);
  border-radius:var(--r);padding:16px 18px;font-size:14.5px;font-weight:700;box-shadow:var(--sh);
}
.mem-k{
  flex:0 0 auto;font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--shu);
  background:var(--shu-soft);border-radius:99px;padding:3px 10px;margin-top:2px;
}

/* ── 料金 ── */
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,340px));gap:22px;
       justify-content:center;margin-top:52px}
.plan{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
      padding:34px 30px;box-shadow:var(--sh);position:relative}
.plan.feat{border:1.5px solid var(--kon);box-shadow:var(--sh-lift)}
.plan-badge{
  position:absolute;top:-12px;left:30px;font-size:11.5px;font-weight:900;letter-spacing:.08em;
  color:#fff;background:var(--shu);border-radius:99px;padding:5px 13px;
}
.plan-name{margin:0 0 8px;font-size:14px;font-weight:900;letter-spacing:.04em;color:var(--sumi-3)}
.plan-price{margin:0;font-size:44px;font-weight:900;letter-spacing:-.05em;line-height:1.2}
.plan-price .yen{font-size:24px;margin-right:2px}
.plan-price .per{font-size:16px;font-weight:800;color:var(--sumi-3);margin-left:4px}
.plan-sub{margin:6px 0 22px;font-size:13px;color:var(--sumi-3)}
.plan ul{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column;gap:11px}
.plan li{position:relative;padding-left:24px;font-size:14.5px;line-height:1.8;color:var(--sumi-2)}
.plan li::before{
  content:"";position:absolute;left:4px;top:11px;width:9px;height:5px;
  border-left:2px solid var(--kon-2);border-bottom:2px solid var(--kon-2);transform:rotate(-45deg);
}
.price-note{margin:28px 0 0;text-align:center;font-size:13.5px;color:var(--sumi-3)}

/* ── 議員HP ── */
.hp{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hp-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.hp-copy .btn{margin-top:30px}
.hp-feats{display:flex;flex-direction:column;gap:14px}
.hp-feat{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px}
.hp-feat h3{font-size:17px;margin-bottom:7px}
.hp-feat p{margin:0;font-size:14px;line-height:1.9;color:var(--sumi-2)}

/* ── 最後のCTA ── */
.finale{
  padding:104px 0;text-align:center;
  background:var(--kon);
}
.finale-cta{margin-top:32px}

/* ── フッター ── */
.foot{background:var(--kon);color:rgba(255,255,255,.7);padding:52px 0 30px}
.foot-grid{display:flex;justify-content:space-between;gap:36px;flex-wrap:wrap;
           padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.16)}
.foot .brand-name{color:#fff}
.foot .brand-name .plus{color:#E8A184}
.foot-note{margin:12px 0 0;font-size:13.5px}
.foot-links{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:flex-start}
.foot-links a{font-size:14px;font-weight:700;text-decoration:none;color:rgba(255,255,255,.78)}
.foot-links a:hover{color:#fff}
.foot-base{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px}
.foot-base p{margin:0;font-size:12.5px}

/* ── タブレット ── */
@media(max-width:1000px){
  .hero-grid,.personal,.hp-grid{grid-template-columns:1fr;gap:44px}
  .probs,.promises,.steps,.modes{grid-template-columns:repeat(2,1fr)}
  .navlinks{display:none}
}

/* ── スマホ ── */
@media(max-width:680px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  .sp{display:block}
  .pc{display:none}
  .nav{padding:12px 18px;gap:10px}
  .navcta{gap:4px}
  .navcta .btn-quiet{padding:9px 10px;font-size:13.5px;min-height:38px}
  .navcta .btn-primary{padding:9px 14px;font-size:13.5px;min-height:38px}
  .brand{gap:8px}
  .brand-name{font-size:18px}
  .hero{padding:48px 0 60px}
  .sect{padding:68px 0}
  .probs,.promises,.steps,.modes,.plans{grid-template-columns:1fr}
  .plans{max-width:420px;margin-left:auto;margin-right:auto}
  .hero-cta .btn{width:100%}
  .pd-body{padding:22px 20px}
  .prob,.promise,.steps li,.plan{padding:26px 22px}
  .finale{padding:68px 0}
  .foot-grid{flex-direction:column;gap:24px}
}

/* キーボード操作の可視性は必ず残す */
a:focus-visible,.btn:focus-visible{outline:3px solid rgba(22,64,106,.45);outline-offset:3px}



/* ── よくあるご質問（mina＋と同じく開閉式） ── */
.faq{max-width:820px;margin:48px auto 0;display:flex;flex-direction:column;gap:12px}
.faq-item{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:0 24px;box-shadow:var(--sh);
}
.faq-item summary{
  list-style:none;cursor:pointer;padding:22px 34px 22px 0;position:relative;
  font-size:16px;font-weight:700;line-height:1.7;letter-spacing:-.01em;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"";position:absolute;right:4px;top:50%;width:9px;height:9px;
  border-right:2px solid var(--kon-2);border-bottom:2px solid var(--kon-2);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s;
}
.faq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq-item p{
  margin:0;padding:0 0 24px;font-size:14.5px;line-height:2;color:var(--sumi-2);
  border-top:1px solid var(--line-2);padding-top:20px;
}
.faq-item p b{color:var(--sumi);font-weight:700}
@media(max-width:820px){
  .faq-item{padding:0 18px}
  .faq-item summary{font-size:15px;padding:18px 30px 18px 0}
}

/* ══════════ ロゴ（引用符マーク＋欧文ワードマーク） ══════════ */
.brand-tile{width:34px;height:34px;border-radius:0;background:none;display:block;padding:0}
.brand-tile svg{width:34px;height:34px;display:block}
.brand-tile .tile-bg{fill:var(--kon)}
.brand-tile .q1{fill:#fff}
.brand-tile .q2{fill:#E08A5C}
.brand-name{
  font-size:22px;font-weight:700;letter-spacing:.01em;line-height:1;
}
.brand-name .plus{color:var(--shu);font-weight:700}
/* 紺のフッターでは反転 */
.foot .brand-tile .tile-bg{fill:#fff}
.foot .brand-tile .q1{fill:var(--kon)}
.foot .brand-name{color:#fff}
.foot .brand-name .plus{color:#F0A882}


/* ══════════ 登録済みの方のログイン導線 ══════════ */
.hero-login{margin-top:18px;font-size:14.5px;color:rgba(255,255,255,.85)}
.hero-login a{color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.finale-login{margin-top:16px;font-size:14.5px;color:rgba(255,255,255,.85)}
.finale-login a{color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:3px}
