
:root{--pink:#ef5b91;--pink-dark:#df3f7d;--purple:#9b6ee8;--blue:#4aa3df;--green:#55b96f;--text:#202638;--muted:#6e7587;--line:#e9e8ef;--bg:#fffafb;--shadow:0 18px 45px rgba(36,30,68,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;color:var(--text);background:linear-gradient(180deg,#fff,#fffafb);line-height:1.75}a{text-decoration:none;color:inherit}.container{width:min(1180px,calc(100% - 38px));margin:auto}
.header{min-height:80px;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.header-inner{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:18px}.logo{display:flex;gap:12px;align-items:center;min-width:220px}.heart{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--pink),#ff9cc2);color:white;display:grid;place-items:center;font-weight:900;font-size:20px}.logo strong{font-size:24px;line-height:1.1}.logo small{display:block;color:var(--muted);font-size:13px}.nav{display:flex;gap:24px;font-size:15px;font-weight:900}.nav a{padding:28px 0;white-space:nowrap}.nav a:hover,.nav a.active{color:var(--pink);border-bottom:3px solid var(--pink)}.cta{border:1px solid #ff6ea8;color:var(--pink);font-weight:900;border-radius:12px;padding:13px 18px;background:white;white-space:nowrap}
.hero-clean{padding:34px 0 12px}.hero-stable{position:relative;overflow:hidden;border-radius:24px;border:1px solid #eadff3;box-shadow:var(--shadow);background:linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.84) 48%,rgba(245,234,255,.55)),linear-gradient(135deg,#fff3f8,#efe8ff 58%,#eaf7ff);min-height:430px;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,420px);align-items:center;gap:20px;padding:54px}.hero-stable:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#ef5b91 2px,transparent 2px),radial-gradient(#4aa3df 2px,transparent 2px),radial-gradient(#55b96f 2px,transparent 2px);background-size:90px 90px,110px 110px,130px 130px;opacity:.22}.hero-copy,.hero-visual{position:relative;z-index:1}.hero-copy h1{margin:0 0 16px;font-size:clamp(38px,5vw,64px);line-height:1.1;letter-spacing:-.04em}.hero-copy h1 span{color:var(--pink)}.hero-copy p{font-size:18px;font-weight:900;color:#4a5265;max-width:620px}.hero-visual img{width:100%;max-height:360px;object-fit:contain;display:block}
.top-tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}.top-tool-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 28px rgba(36,30,68,.08);padding:20px;display:flex;flex-direction:column;gap:8px;min-height:160px;transition:.2s ease}.top-tool-card:hover{transform:translateY(-4px);border-color:#ff9cc2}.top-tool-card .emoji{font-size:32px}.top-tool-card strong{font-size:18px}.top-tool-card small{color:var(--muted);font-weight:800}
.instagram-share-panel{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff;border:1px solid #ffd4e5;border-radius:18px;padding:18px 20px;box-shadow:0 10px 28px rgba(36,30,68,.06)}.instagram-share-panel strong{color:var(--pink-dark)}.insta-btn{border:0;background:linear-gradient(135deg,#ef5b91,#9b6ee8);color:#fff;font-weight:900;border-radius:12px;padding:12px 18px;cursor:pointer;white-space:nowrap}
.section{padding:34px 0}.title{display:flex;gap:12px;align-items:center;margin-bottom:20px}.title:before{content:"";width:5px;height:26px;background:var(--pink);border-radius:99px}.title h2{margin:0;font-size:24px}.form-card,.legal-card{background:white;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:34px;max-width:960px;margin:auto}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form label{display:grid;gap:6px;font-size:13px;font-weight:900}.form input,.form select,.form textarea,textarea{border:1px solid var(--line);border-radius:10px;padding:12px;background:white;font-size:15px;width:100%}.wide{grid-column:1/-1}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:10px;padding:13px 20px;color:white;font-weight:900;cursor:pointer;min-width:170px;text-align:center}.pink{background:linear-gradient(135deg,var(--pink),#ff80ad)}.purple{background:linear-gradient(135deg,var(--purple),#b388ff)}.blue{background:linear-gradient(135deg,var(--blue),#69c6ff)}.green{background:linear-gradient(135deg,var(--green),#78d58c)}.light{background:white;color:var(--pink);border:1px solid #ffb6d0}.dark{background:#202638}.answer{display:none;margin-top:22px;border:1px solid #ffd4e5;background:#fff8fb;border-radius:18px;padding:22px}.answer.show{display:block}.big-result{text-align:center;background:linear-gradient(#fff8fb,#fff);border:1px solid #ffd4e5;border-radius:18px;padding:24px}.big-result b{display:block;color:var(--pink);font-size:42px}.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.plan{border:1px solid var(--line);border-radius:16px;padding:20px;text-align:center}.plan:nth-child(1){background:#f7fff8}.plan:nth-child(2){background:#f3f9ff;border-color:#8ccfff}.plan:nth-child(3){background:#fff8fb}.plan b{display:block;font-size:30px}.table{width:100%;border-collapse:collapse;margin-top:18px}.table th,.table td{border-bottom:1px solid var(--line);padding:12px;text-align:left}.share{margin-top:20px;display:none}.share.show{display:grid;gap:10px}.share-buttons{display:flex;gap:10px;flex-wrap:wrap}
.affiliate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:22px}.affiliate-card{background:#fff;border:1px solid #e5e7eb;border-radius:20px;min-height:220px;padding:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;text-decoration:none;color:#202638;box-shadow:0 10px 28px rgba(36,30,68,.06);transition:.2s ease}.affiliate-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(36,30,68,.10);border-color:#ff9cc2}.affiliate-card span,.affiliate-card .icon{display:block;font-size:46px;line-height:1;margin:0 0 8px}.affiliate-card strong,.affiliate-card small{display:none}.affiliate-name{display:block!important;opacity:1!important;visibility:visible!important;font-size:22px;font-weight:800;color:#202638;text-align:center;line-height:1.5;margin:0}
.blog-hero{padding:36px 0 10px}.blog-hero-box{background:linear-gradient(135deg,#fff3f8,#f4ecff 58%,#eaf7ff);border:1px solid #eadff3;border-radius:22px;box-shadow:var(--shadow);padding:42px;position:relative;overflow:hidden}.blog-hero-box:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#ef5b91 2px,transparent 2px),radial-gradient(#4aa3df 2px,transparent 2px),radial-gradient(#55b96f 2px,transparent 2px);background-size:90px 90px,110px 110px,130px 130px;opacity:.22}.blog-hero-box>*{position:relative;z-index:1}.blog-hero h1{margin:0 0 12px;font-size:40px;line-height:1.25}.blog-hero p{color:var(--muted);font-weight:800;margin:0}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.blog-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 12px 32px rgba(36,30,68,.08);display:flex;flex-direction:column}.blog-card-thumb{height:150px;background:linear-gradient(135deg,#fff0f6,#f3edff,#eef8ff);display:grid;place-items:center;font-size:42px}.blog-card-body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}.blog-category{display:inline-flex;width:fit-content;background:#fff0f6;color:var(--pink-dark);font-size:12px;font-weight:900;padding:5px 10px;border-radius:999px}.blog-card h2{font-size:20px;line-height:1.45;margin:0}.blog-card p{color:var(--muted);font-weight:700;margin:0}.blog-date{color:#8b93a5;font-size:13px;font-weight:800;margin-top:auto}.blog-read{display:inline-flex;justify-content:center;align-items:center;margin-top:8px;padding:11px 14px;border-radius:12px;background:linear-gradient(135deg,var(--pink),#ff80ad);color:#fff;font-weight:900}.ad{min-height:110px;border:1px dashed #ffc2d9;background:#fff7fb;border-radius:16px;display:grid;place-items:center;color:#b55b80;font-weight:900}.contact-box{background:#fff8fb;border:1px solid #ffd4e5;border-radius:16px;padding:18px;margin-top:18px}.footer{background:#172233;color:white;margin-top:40px;padding:36px 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px}.footer a,.footer p{color:#dfe7f0}
@media(max-width:1000px){.nav{display:none}.hero-stable{grid-template-columns:1fr;padding:38px}.hero-visual{order:-1;opacity:.9}.top-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plans,.affiliate-grid,.blog-grid,.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.container{width:min(100% - 24px,1180px)}.header-inner{min-height:72px}.logo strong{font-size:20px}.logo small{font-size:11px}.cta{display:none}.hero-stable{padding:28px 20px;min-height:auto}.hero-visual img{max-height:240px}.top-tool-grid,.plans,.affiliate-grid,.blog-grid,.footer-grid{grid-template-columns:1fr}.form{grid-template-columns:1fr}.instagram-share-panel{flex-direction:column;align-items:stretch;text-align:center}.insta-btn{width:100%}.blog-hero-box{padding:28px 22px}.blog-hero h1{font-size:30px}}

/* 推し活資金診断ページ修正 */

.fund-page{
  padding:36px 0 60px;
  background:linear-gradient(180deg,#fff,#fffafb);
}

.fund-card{
  width:min(900px,calc(100% - 32px));
  margin:auto;
  background:#fff;
  border:1px solid #e9e8ef;
  border-radius:22px;
  box-shadow:0 18px 45px rgba(36,30,68,.10);
  padding:36px;
}

.breadcrumb{
  color:#8b93a5;
  font-size:13px;
  margin-bottom:24px;
}

.fund-card h1{
  text-align:center;
  font-size:30px;
  margin:0 0 8px;
}

.lead{
  text-align:center;
  color:#6e7587;
  font-weight:800;
  margin-bottom:30px;
}

.steps{
  display:flex;
  justify-content:center;
  gap:70px;
  margin-bottom:34px;
  color:#8b93a5;
  font-size:13px;
  font-weight:800;
}

.step{
  display:grid;
  place-items:center;
  gap:6px;
}

.step span{
  width:24px;
  height:24px;
  border-radius:50%;
  background:#f2f2f6;
  display:grid;
  place-items:center;
}

.step.active span{
  background:#ef5b91;
  color:#fff;
}

.fund-form h2{
  font-size:16px;
  margin:24px 0 14px;
}

.fund-form h2 span{
  display:inline-grid;
  place-items:center;
  width:24px;
  height:24px;
  margin-right:8px;
  border-radius:50%;
  background:#ef5b91;
  color:#fff;
  font-size:13px;
}

.fund-form label{
  display:grid;
  gap:6px;
  font-size:13px;
  font-weight:900;
}

.fund-form input{
  width:100%;
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:12px;
  font-size:15px;
}

.fund-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}

.check{
  display:flex !important;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:8px;
  margin-top:20px;
}

.check input{
  width:auto;
}

.fund-submit{
  width:100%;
  margin-top:24px;
  border:0;
  border-radius:10px;
  padding:15px;
  background:linear-gradient(135deg,#ef5b91,#ff80ad);
  color:#fff;
  font-weight:900;
  cursor:pointer;
}

.fund-result{
  margin-top:30px;
}

.result-hero{
  text-align:center;
  background:linear-gradient(#fff8fb,#fff);
  border:1px solid #ffd4e5;
  border-radius:20px;
  padding:28px;
}

.result-hero p{
  font-weight:900;
  margin:0 0 8px;
}

.result-hero strong{
  display:block;
  font-size:46px;
  color:#ef5b91;
}

.result-boxes{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin-top:18px;
}

.result-boxes div{
  border:1px solid #e9e8ef;
  border-radius:16px;
  padding:18px;
  text-align:center;
  background:#fff;
}

.result-boxes span{
  display:block;
  color:#6e7587;
  font-size:13px;
  font-weight:900;
}

.result-boxes b{
  display:block;
  color:#ef5b91;
  font-size:24px;
  margin-top:6px;
}

.result-summary{
  margin-top:22px;
  border:1px solid #e9e8ef;
  border-radius:18px;
  padding:22px;
}

.result-summary h2{
  margin-top:0;
}

.result-summary ul{
  list-style:none;
  padding:0;
  margin:0;
}

.result-summary li{
  display:flex;
  justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid #f1f1f5;
}

.result-summary li:last-child{
  border-bottom:0;
}

.result-note{
  margin-top:18px;
  background:#fff8fb;
  border:1px solid #ffd4e5;
  border-radius:16px;
  padding:18px;
  font-weight:900;
  color:#df3f7d;
}

@media(max-width:700px){
  .fund-card{
    padding:24px;
  }

  .fund-grid,
  .result-boxes{
    grid-template-columns:1fr;
  }

  .steps{
    gap:24px;
  }

  .result-hero strong{
    font-size:36px;
  }
}


/* 支出項目追加で高さが崩れる対策・完全版 */

.fund-grid{
  align-items:start !important;
}

.fund-grid label{
  align-self:start !important;
}

.fund-grid input,
.fund-grid textarea{
  height:54px !important;
  min-height:54px !important;
  max-height:54px !important;
  resize:none !important;
  line-height:1.4 !important;
}

/* 日用品・雑費だけ巨大化するのを止める */
#daily{
  height:54px !important;
  min-height:54px !important;
  max-height:54px !important;
  resize:none !important;
}

/* 追加支出欄 */
.custom-expenses{
  display:grid !important;
  gap:14px !important;
}

.custom-row{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
  align-items:start !important;
}

.custom-row label{
  align-self:start !important;
}

.add-expense-btn{
  grid-column:1 / -1;
  margin-top:14px;
  border:1px dashed #ef5b91;
  background:#fff8fb;
  color:#ef5b91;
  border-radius:10px;
  padding:12px;
  font-weight:900;
  cursor:pointer;
}

@media(max-width:700px){
  .custom-row{
    grid-template-columns:1fr !important;
  }
}

/* =====予約リンク完全修正版===== */

.affiliate-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:24px !important;
}

.affiliate-card{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;

    min-height:220px !important;
    padding:24px !important;

    text-align:center !important;
}

.affiliate-card .icon{
    display:block !important;
    font-size:48px !important;
    margin-bottom:20px !important;
}

.affiliate-name{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;

    font-size:22px !important;
    font-weight:700 !important;
    color:#202638 !important;
    line-height:1.5 !important;
    margin:0 !important;
}

@media(max-width:900px){
    .affiliate-grid{
        grid-template-columns:repeat(2,1fr) !important;
    }
}

@media(max-width:560px){
    .affiliate-grid{
        grid-template-columns:1fr !important;
    }
}
/* TOP記事一覧 */

.home-articles{
  margin-top:60px;
}

.section-title-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:20px;
}

.section-title-row h2{
  margin:0;
  font-size:28px;
}

.top-articles-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}

.article-card-home{
  display:block;
  text-decoration:none;
  color:#202638;
  background:#fff;
  border:1px solid #e9e8ef;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(36,30,68,.08);
  transition:.2s;
}

.article-card-home:hover{
  transform:translateY(-4px);
}

.article-card-home img{
  width:100%;
  height:180px;
  object-fit:cover;
  display:block;
}

.article-card-body{
  padding:16px;
}

.article-card-body h3{
  margin:0 0 10px;
  font-size:18px;
  line-height:1.4;
}

.article-card-body p{
  margin:0;
  font-size:13px;
  color:#6e7587;
  line-height:1.6;
}

@media(max-width:900px){

  .top-articles-grid{
    grid-template-columns:repeat(2,1fr);
  }

}

@media(max-width:600px){

  .top-articles-grid{
    grid-template-columns:1fr;
  }

}
