/*
Theme Name: 町田市議 活動報告
Description: 町田市議会議員の活動報告サイト用テーマ。トップ（ヒーロー画像・要求実現・政策・活動・X・ご相談）、要求実現の個別記事、ニュースPDF一覧に対応。名前・連絡先・ヒーロー画像は「外観 → カスタマイズ → サイトの設定」で変更できます。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: machida-giin
*/

/* えんじ1色（ヒーロー画像に合わせる）＋「実現」だけ明るい赤。UDフォント。 */
:root{
  --bg:#f8f6f5; --paper:#ffffff; --ink:#2a2224; --sub:#6a5f61; --line:#e8dfdf;
  --accent:#7d1a26; --accent-soft:#f6e9ea; --done:#c8202f; --done-soft:#fde8ea; --on-accent:#ffffff;
  --hero:#7a1622;
  --display:"Zen Maru Gothic","BIZ UDPGothic","Hiragino Maru Gothic ProN",sans-serif;
  --body:"BIZ UDPGothic","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
}
@media (prefers-color-scheme: dark){:root{
  --bg:#181314; --paper:#211a1b; --ink:#efe7e8; --sub:#b3a5a7; --line:#3a2e30;
  --accent:#ec9aa4; --accent-soft:#3a2427; --done:#ff8f99; --done-soft:#43232a; --on-accent:#211a1b; color-scheme:dark}}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.85;margin:0}
img{max-width:100%;height:auto}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.wrap{max-width:1040px;margin-inline:auto;padding-inline:20px}
.narrow{max-width:760px}
h1,h2,h3{font-family:var(--display);text-wrap:balance;line-height:1.35;margin:0}
.sr,.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ヘッダー */
.site-header{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:0;position:relative}}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap}
.name{display:flex;align-items:baseline;gap:12px;text-decoration:none;color:var(--ink);flex-wrap:wrap}
.name b{font-family:var(--display);font-size:24px;font-weight:900;letter-spacing:.06em}
.name small{font-size:13px;color:var(--sub)}
.site-nav ul{display:flex;gap:4px 20px;list-style:none;margin:0;padding:0;flex-wrap:wrap;font-size:15px;font-weight:700}
.site-nav a{color:var(--ink);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.site-nav a:hover{border-color:var(--accent)}

/* ヒーロー：画像の右下の帯にボタンを重ねる。スマホでは画像の下へ */
.hero{background:var(--hero)}
.hero-fig{position:relative;margin:0 auto;max-width:1440px;container-type:inline-size}
.hero-fig img{display:block;width:100%;height:auto}
.hero-over{position:absolute;right:2.2%;bottom:2.6%;display:grid;justify-items:center;gap:.5cqw}
.hero-over span{color:#fff;font-weight:700;font-size:1.55cqw;letter-spacing:.06em}
.hero-btn{display:inline-flex;align-items:center;gap:.8cqw;background:#fff;color:var(--hero);font-weight:700;font-size:1.7cqw;padding:.75cqw 2.2cqw;border-radius:99px;text-decoration:none;box-shadow:0 .3cqw .8cqw rgba(0,0,0,.25)}
.hero-btn:hover{background:#fdf1f2}
.hero-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.hero-btn::after{content:"";border-left:.75cqw solid currentColor;border-block:.45cqw solid transparent}
.hero-mobile{display:none;background:var(--hero);padding-block:4px 20px}

.actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:10px 24px;border-radius:8px;font-weight:700;text-decoration:none;font-size:17px;border:2px solid var(--accent);cursor:pointer;font-family:inherit}
.btn.fill{background:var(--accent);color:var(--on-accent)}
.btn.line{background:transparent;color:var(--accent)}

/* セクション */
section.block{padding-block:64px}
section.alt{background:var(--paper);border-block:1px solid var(--line)}
.head{margin-bottom:28px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px 24px;flex-wrap:wrap}
.head h2{font-size:clamp(28px,4vw,36px)}
.head p{margin:6px 0 0;color:var(--sub)}
.more{font-weight:700;white-space:nowrap;text-decoration:none}
.more::after{content:" →"}
.note{font-size:14px;color:var(--sub);margin:14px 0 0}

/* 要求実現カード */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:22px 24px;display:grid;gap:10px;align-content:start;text-decoration:none;color:var(--ink)}
.card:hover{border-color:var(--accent)}
.card .meta{font-size:14px;color:var(--sub);font-variant-numeric:tabular-nums}
.card h3{font-size:22px;color:var(--accent)}
.card p{margin:0;font-size:16px}
.tally{display:flex;gap:8px;flex-wrap:wrap;font-size:14px}
.tally span{padding:2px 10px;border-radius:99px;background:var(--bg);color:var(--sub);border:1px solid var(--line)}
.tally .ok{background:var(--done-soft);color:var(--done);border-color:transparent;font-weight:700}
.card.empty{border-style:dashed;color:var(--sub);place-content:center;text-align:center;min-height:160px;font-size:15px}

/* 政策 */
.policy{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--accent)}
.policy>div{padding:22px 24px 6px 0;min-width:0}
.policy>div+div{padding-left:24px;border-left:1px solid var(--line)}
.policy h3{font-size:21px;color:var(--accent);margin-bottom:10px}
.policy ul{margin:0;padding-left:1.1em;font-size:17px}
.voices{margin-top:36px}
.voices h3{font-size:18px;margin-bottom:12px}
.voices ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.voices li{border:1px solid var(--line);background:var(--bg);border-radius:99px;padding:6px 16px;font-size:16px}

/* 活動・ニュース */
.two{display:grid;grid-template-columns:1.2fr .8fr;gap:48px}
.two>*{min-width:0}
.two h3{font-size:22px}
.two .head{margin-bottom:12px}
.log{list-style:none;margin:0;padding:0}
.log li{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.log time{font-weight:700;font-variant-numeric:tabular-nums}
.log a{color:var(--ink)}
.news{list-style:none;margin:0;padding:0}
.news li{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.news a{font-weight:700;text-decoration:none}
.news span{color:var(--sub);font-size:15px;font-variant-numeric:tabular-nums}

/* X */
.xbox{border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:20px;display:grid;gap:16px;justify-items:start}
.xbox .twitter-timeline{width:100%}

/* ご相談 */
.contact{display:grid;grid-template-columns:1.3fr .7fr;gap:40px}
.contact>*{min-width:0}
.contact input[type=text],.contact input[type=email],.contact input[type=tel],.contact textarea,.contact select{width:100%;font:inherit;font-size:17px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}
.contact textarea{min-height:140px;resize:vertical}
.contact input[type=submit]{min-height:52px;padding:10px 32px;border-radius:8px;font:inherit;font-weight:700;font-size:17px;border:2px solid var(--accent);background:var(--accent);color:var(--on-accent);cursor:pointer}
.contact label{font-weight:700}
.office dl{margin:0;display:grid;gap:14px}
.office dt{font-size:14px;color:var(--sub)}
.office dd{margin:0;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}
.office dd.addr{font-size:17px}
.form-placeholder{border:1px dashed var(--line);border-radius:10px;padding:20px;color:var(--sub);font-size:15px;background:var(--paper)}

/* 記事 */
.article{padding-block:48px 64px}
.crumb{font-size:14px;color:var(--sub);margin-bottom:18px}
.crumb a{color:var(--sub)}
.article h1{font-size:clamp(28px,4.5vw,40px)}
.article .meta{font-size:15px;color:var(--sub);margin:10px 0 16px;font-variant-numeric:tabular-nums}
.article .tally{margin-bottom:28px}
.entry h2{font-size:22px;margin:36px 0 12px}
.entry h3{font-size:19px;margin:28px 0 10px}
.entry p{margin:0 0 1em}
.entry blockquote,.entry .wp-block-quote{margin:22px 0;padding:14px 18px;border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;font-weight:700}
.entry blockquote p{margin:0}
.entry blockquote cite{display:block;font-style:normal;font-weight:400;font-size:14px;color:var(--sub)}
.entry figure{margin:24px 0}
.items{list-style:none;margin:0 0 1em;padding:0 18px;counter-reset:n;background:var(--paper);border:1px solid var(--line);border-radius:10px}
.items li{counter-increment:n;display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:baseline;padding:12px 0;border-top:1px solid var(--line);font-size:16px}
.items li:first-child{border-top:0}
.items li::before{content:counter(n);font-weight:700;color:var(--sub);font-variant-numeric:tabular-nums}
.items .tag{font-size:13px;color:var(--sub);white-space:nowrap}
.items li.done .tag{color:var(--done);background:var(--done-soft);font-weight:700;padding:2px 10px;border-radius:99px}
.backlink{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-weight:700}

/* 一覧 */
.list-page{padding-block:48px 64px}
.list-page h1{font-size:clamp(28px,4.5vw,36px);margin-bottom:28px}
.plain-list{list-style:none;margin:0;padding:0}
.plain-list li{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:14px 0;border-top:1px solid var(--line)}
.plain-list time{color:var(--sub);font-variant-numeric:tabular-nums}
.pagination{margin-top:32px;display:flex;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{padding:6px 12px;border:1px solid var(--line);border-radius:6px;text-decoration:none}
.pagination .current{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}

.site-footer{padding-block:32px;color:var(--sub);font-size:14px}
.site-footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

@media (max-width:760px){
  body{font-size:17px}
  .hero-over{display:none}
  .hero-mobile{display:block}
  .hero-mobile .btn{flex:1 1 180px}
  .hero-mobile .btn.fill{background:#fff;color:var(--hero);border-color:#fff}
  .hero-mobile .btn.line{color:#fff;border-color:#fff}
  .two,.contact{grid-template-columns:1fr}
  .policy{grid-template-columns:1fr}
  .policy>div,.policy>div+div{padding:18px 0 14px;border-left:0;border-top:1px solid var(--line)}
  .policy>div:first-child{border-top:0}
  .log li,.plain-list li{grid-template-columns:1fr;gap:0}
  .site-nav ul{gap:2px 14px;font-size:14px}
  .site-header .wrap{padding-block:8px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
