/* 国会の発言検索 — 2026-09-17 */
:root{
  --bg:#ffffff; --soft:#f6f5f9; --line:#dfdbe7; --line2:#eeebf3;
  --ink:#1c1726; --ink2:#595166; --ink3:#8a8296;
  --accent:#5b3f8c; --accent-dark:#46306d; --accent-soft:#efe9f7; --navy:#3b2a5a;
  --err:#b3261e; --err-soft:#fbeceb;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%; text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color:var(--ink); background:var(--bg); font-size:14px; line-height:1.7; -webkit-font-smoothing:antialiased}
a{color:var(--accent)}
.in{max-width:960px; margin:0 auto; padding:0 24px}
.num{font-variant-numeric:tabular-nums}

.bar{background:var(--navy); color:#fff}
.bar .in{display:flex; align-items:center; min-height:56px}
.brand{display:flex; align-items:center; gap:10px; color:#fff; text-decoration:none; font-weight:700; font-size:17px; letter-spacing:.04em}
.brand img{display:block; border-radius:6px}
.page{padding-top:26px; padding-bottom:56px}
.foot{border-top:1px solid var(--line); background:var(--soft); color:var(--ink3); font-size:12px}
.foot .in{padding-top:18px; padding-bottom:26px}
.foot p{margin:4px 0; overflow-wrap:anywhere}
.foot a{color:var(--ink2)}
.foot .links a{display:inline-block; margin-right:12px}
.foot{padding-bottom:calc(60px + env(safe-area-inset-bottom, 0px))}   /* 画面下に重なるフッター広告（ads_footer.php）でリンクが隠れないように */
.crumb{font-size:12px; color:var(--ink3); margin:0 0 6px}
.crumb a{color:var(--ink2); text-decoration:none}
.crumb a:hover{text-decoration:underline}
.faq h3{font-size:14px; margin:14px 0 2px}
.faq h3:first-of-type{margin-top:0}
.faq p{margin:0; color:var(--ink2); font-size:13.5px}

h1{margin:0; font-size:26px; line-height:1.35; letter-spacing:.02em}
.lead{margin:8px 0 0; color:var(--ink2); font-size:14.5px}
.card{border:1px solid var(--line); border-radius:10px; padding:18px 20px; margin:20px 0; background:#fff}
.card h2{margin:0 0 10px; font-size:16px}
.fine{color:var(--ink3); font-size:12px; margin:6px 0 0}
.notice{border-radius:6px; padding:10px 14px; margin:12px 0; font-size:13.5px; background:var(--soft); color:var(--ink2)}
.notice p{margin:2px 0}
.notice.err{background:var(--err-soft); color:var(--err)}

/* ---------- 検索フォーム ---------- */
.sform{background:var(--soft)}
.sform fieldset{border:0; margin:0; padding:0; min-width:0}
.sform .row{margin:0 0 14px}
.sform legend,.sform label{display:block; font-weight:700; font-size:13.5px; margin:0 0 5px; padding:0}
.req,.opt{display:inline-block; margin-left:8px; font-size:11px; font-weight:700; border-radius:3px; padding:0 6px; vertical-align:1px}
.req{background:var(--err); color:#fff}
.opt{background:var(--line); color:var(--ink2)}
.sform input,.sform select{font:inherit; font-size:15px; padding:8px 10px; border:1px solid #cfc8db; border-radius:6px; background:#fff; color:var(--ink); width:100%; min-width:0; max-width:100%}
.sform input:focus,.sform select:focus{outline:2px solid var(--accent-soft); border-color:var(--accent)}
.dates{display:flex; align-items:center; gap:8px; max-width:440px}
.dates input{flex:1 1 0}
.row.two{display:grid; grid-template-columns:1fr 2fr; gap:14px}
.acts{margin-top:14px}
.btn{display:inline-block; background:var(--accent); color:#fff; border:0; border-radius:6px; padding:10px 28px; font:inherit; font-size:15px; font-weight:700; cursor:pointer}
.btn:hover{background:var(--accent-dark)}
.btn:disabled{opacity:.7; cursor:wait}

/* ---------- 結果 ---------- */
.results{scroll-margin-top:10px}
.rh{font-size:17px; margin:26px 0 4px; padding-bottom:6px; border-bottom:2px solid var(--accent-soft)}
.rh b{font-size:22px; color:var(--navy)}
.rh small{font-size:12.5px; color:var(--ink2); font-weight:400}
ol.sp{list-style:none; margin:10px 0 0; padding:0}
.spi{border:1px solid var(--line); border-radius:8px; padding:12px 16px; margin:0 0 10px; background:#fff}
.spi.info{background:var(--soft)}
.meta{display:flex; flex-wrap:wrap; gap:2px 10px; font-size:12.5px; color:var(--ink2)}
.meta .hs{font-weight:700; color:var(--accent-dark)}
.who{margin:4px 0 2px; font-size:15px; font-weight:700}
.who a{color:var(--ink); text-decoration:none}
.who a:hover{color:var(--accent); text-decoration:underline}
.who small{display:inline-block; margin-left:8px; font-size:12px; color:var(--ink3); font-weight:400}
.tx{margin:4px 0; font-size:14px; line-height:1.85; overflow-wrap:anywhere}
details{margin:2px 0 0}
details summary{cursor:pointer; color:var(--accent); font-size:13px; width:max-content; max-width:100%}
.spi:has(details[open]) .tx{display:none}   /* 全文を開いたら抜粋は隠す（同じ文が2回出ないように） */
.full{margin:6px 0 0; padding:10px 12px; border-left:3px solid var(--accent-soft); background:var(--soft); font-size:14px; line-height:1.9; overflow-wrap:anywhere}
.lk{margin:6px 0 0; font-size:12.5px}
.pager{display:flex; justify-content:center; align-items:center; gap:16px; margin:18px 0 0; font-size:14px}
.pager a{border:1px solid var(--line); border-radius:6px; padding:6px 14px; text-decoration:none}
.pager a:hover{border-color:var(--accent); background:var(--accent-soft)}
.pager .off{color:var(--ink3); padding:6px 14px}

.about dl{display:grid; grid-template-columns:130px 1fr; gap:8px 18px; margin:0}
.about dt{font-weight:600; font-size:13px}
.about dd{margin:0; color:var(--ink2); font-size:13.5px}

@media (max-width:720px){
  .in{padding:0 max(16px, env(safe-area-inset-left, 0px)) 0 max(16px, env(safe-area-inset-right, 0px))}
  h1{font-size:21px}
  .page{padding-top:18px}
  .card{padding:14px}
  .sform input,.sform select{font-size:16px}   /* iPhone の自動拡大を防ぐ */
  .row.two{grid-template-columns:1fr; gap:14px}
  .dates{max-width:none}
  .spi{padding:10px 12px}
  .about dl{grid-template-columns:1fr; gap:2px}
  .about dd{margin-bottom:8px}
  .pager{gap:8px}
  .pager a,.pager .off{padding:6px 10px}
}
@media (max-width:380px){
  .dates{flex-wrap:wrap}
  .dates input{flex:1 1 100%}
  .dates span{display:none}
  .brand{font-size:15px}
}
