/* 占星術大辞典（仮）— デザイン言語：案A 天文台型 */
:root{
  --navy-900:#090C22; --navy-800:#0E1330; --navy-line:#232A4D;
  --gold:#C9A84C; --gold-light:#E3C572; --gold-ink:#7A6326;
  --cream:#F6F2E9; --cream-line:#E4DCC8;
  --paper:#ffffff; --ink:#1A1E33; --ink-muted:#6B6F84; --body:#3A3F56;
  --positive:#1D9E75;
  --serif:"Noto Serif JP","Hiragino Mincho ProN",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.7;font-weight:400;}
a{color:inherit;text-decoration:none}
.serif{font-family:var(--serif)}
.wrap{max-width:980px;margin:0 auto;padding:0 22px}

/* header */
.site-header{background:var(--navy-800);border-bottom:0.5px solid var(--navy-line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 22px}
.brand{font-family:var(--serif);font-size:21px;color:var(--gold-light);letter-spacing:.06em}
.brand .tag{font-family:var(--sans);font-size:11px;color:#8b90ad;margin-left:8px;letter-spacing:0}
.nav{display:flex;align-items:center;gap:17px;font-size:13px;color:#cfd3e6}
.nav a:hover{color:var(--gold-light)}
.nav a.on{color:var(--gold-light)}

/* hero */
.hero{background:var(--navy-800);padding:46px 0 50px}
.hero .kicker{font-size:11px;letter-spacing:.22em;color:var(--gold-light);margin-bottom:14px}
.hero h1{font-family:var(--serif);font-size:31px;line-height:1.42;color:var(--cream);margin:0;font-weight:500}
.hero p{font-size:14px;line-height:1.85;color:#b9bdd6;margin:16px 0 24px;max-width:460px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:8px;padding:12px 20px;font-size:14px;cursor:pointer;border:0.5px solid transparent;font-family:var(--sans)}
.btn-gold{background:var(--gold);color:var(--navy-800)}
.btn-gold:hover{background:var(--gold-light)}
.btn-ghost{background:transparent;color:var(--gold-light);border-color:var(--gold)}
.btn-row{display:flex;gap:11px;flex-wrap:wrap}

/* sections */
.section{padding:30px 0}
.section.cream{background:var(--cream)}
.section.paper{background:var(--paper);border-top:0.5px solid var(--cream-line);border-bottom:0.5px solid var(--cream-line)}
.section h2{font-family:var(--serif);font-size:19px;color:var(--ink);margin:0 0 4px;font-weight:500}
.section .lead{font-size:12px;color:var(--ink-muted);margin:0 0 18px}

/* cards & chips */
.card{background:var(--paper);border:0.5px solid var(--cream-line);border-radius:12px;padding:20px}
.chip{display:inline-block;background:var(--paper);border:0.5px solid var(--cream-line);color:var(--gold-ink);font-size:11.5px;padding:4px 11px;border-radius:14px}

/* category grid */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cat{background:var(--paper);border:0.5px solid var(--cream-line);border-radius:8px;padding:14px 8px;text-align:center}
.cat:hover{border-color:var(--gold)}
.cat .gl{font-size:20px;color:var(--gold)}
.cat .nm{font-size:13px;color:var(--ink);margin-top:6px}

/* form */
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--ink-muted);margin-bottom:5px}
.field .hint{color:var(--gold-ink)}
.input{width:100%;border:0.5px solid #d8d2c2;border-radius:8px;padding:11px 12px;font-size:14px;font-family:var(--sans);color:var(--ink);background:#fff}
.input:focus{outline:none;border-color:var(--gold)}
.assure{display:flex;justify-content:center;gap:18px;font-size:11.5px;color:var(--ink-muted);margin-top:14px;flex-wrap:wrap}
.assure .ok{color:var(--positive)}
.err{background:#FCEBEB;border:0.5px solid #f0c0c0;color:#8a2b2b;font-size:13px;padding:10px 13px;border-radius:8px;margin-bottom:16px}
.notice{background:#FAEEDA;border:0.5px solid #ecd39a;color:#7a5a12;font-size:12.5px;padding:9px 13px;border-radius:8px;margin-bottom:14px}

/* result */
.summary{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.summary .ttl{font-family:var(--serif);font-size:17px;color:var(--ink)}
.summary .meta{font-size:12px;color:var(--ink-muted);margin-top:3px}
.share{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mini-btn{display:inline-flex;align-items:center;gap:5px;border:0.5px solid #d8d2c2;background:#fff;border-radius:7px;padding:7px 12px;font-size:12px;color:var(--ink);cursor:pointer}
.mini-btn .gl{color:var(--gold)}
.share-url{border:0.5px solid #d8d2c2;border-radius:7px;padding:7px 10px;font-size:11.5px;color:var(--ink-muted);background:#fff;min-width:170px;font-family:monospace}
.result-grid{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:14px;align-items:start}
.wheel-card{display:flex;align-items:center;justify-content:center}
.plc{width:100%;font-size:13px;border-collapse:collapse}
.plc td{padding:8px 0;border-bottom:0.5px solid #f0ebe0}
.plc tr:last-child td{border-bottom:none}
.plc .gl{font-family:var(--serif);color:var(--gold);margin-right:8px}
.plc .r{color:var(--body);text-align:right;white-space:nowrap}
.aspbox{display:flex;flex-wrap:wrap;gap:6px}
.asp{font-size:11.5px;border:0.5px solid var(--cream-line);border-radius:13px;padding:4px 10px;color:var(--body)}
.asp.tight{border-color:var(--gold);color:var(--gold-ink)}

/* cta band */
.cta-band{background:var(--navy-800);padding:22px 0}
.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.cta-band .kick{font-size:11px;letter-spacing:.16em;color:var(--gold-light);margin-bottom:6px}
.cta-band .t{font-family:var(--serif);font-size:18px;color:var(--cream);line-height:1.5}
.cta-band .s{font-size:12px;color:#b9bdd6;margin-top:6px}

/* related external sites */
.link-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.link-card{display:flex;align-items:center;gap:13px;background:var(--paper);border:0.5px solid var(--cream-line);border-radius:8px;padding:16px 18px}
.link-card:hover{border-color:var(--gold)}
.link-card .lc-gl{font-size:24px;color:var(--gold);flex:none}
.link-card .lc-nm{font-family:var(--serif);font-size:15px;color:var(--ink)}
.link-card .lc-nm .ext{font-size:10px;letter-spacing:.04em;color:var(--ink-muted);margin-left:6px}
.link-card .lc-d{font-size:12px;color:var(--ink-muted);margin-top:3px;line-height:1.55}

/* footer */
.site-footer{background:var(--navy-900);padding:16px 0;font-size:11px;color:#7c81a0}
.site-footer .wrap{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.site-footer a{color:var(--gold-light)}

@media (max-width:680px){
  .result-grid{grid-template-columns:1fr}
  .cat-grid{grid-template-columns:repeat(2,1fr)}
  .link-cards{grid-template-columns:1fr}
  .hero h1{font-size:26px}
}
