/*
Theme Name: 島本町ネット
Theme URI: https://shimamoto-net.example.com
Author: 島本町ネット運営
Description: 島本町の地域情報掲示板サイト「島本町ネット」用テーマ。町の人が気軽に情報を書き込める、レスポンシブ対応の地域情報プラットフォームです。
Version: 1.0.0
Requires PHP: 7.4
Text Domain: shimamoto-net
*/

/* ==========================================================================
   トークン（配色・タイポグラフィ・余白）
   ========================================================================== */
:root{
  /* 色: あたたかいアイボリー / ソフトブラウン / テラコッタピンク（メイン） / セージミント / マスタードゴールド */
  --paper:      #FFF9F4;
  --paper-dim:  #FCEEE5;
  --ink:        #4A3D3A;
  --ink-soft:   #9C8681;
  --forest:     #D98878;
  --forest-dark:#C06F5E;
  --river:      #7FAF9A;
  --river-dark: #5B9080;
  --amber:      #F0A868;
  --amber-dark: #DC8A48;
  --line:       #F3E4D8;
  --white:      #FFFFFF;
  --danger:     #D06B52;

  /* カテゴリタグ色（やわらかめのパステルトーンに統一） */
  --cat-event:  #7FAF9A;
  --cat-kosodate:#F0A8A0;
  --cat-pc:     #B8A47E;
  --cat-machi:  #D98878;
  --cat-oshiete:#E8C168;
  --cat-fudousan:#9BADCE;
  --cat-enquete:#C99BC0;
  --cat-kuchikomi:#F0A868;

  --font-mincho: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
  --font-gothic: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;

  --radius:    10px;
  --radius-lg: 18px;
  --container: 1120px;
}

/* ==========================================================================
   ベース
   ========================================================================== */
*, *::before, *::after{ box-sizing: border-box; }
/* WordPress管理バー（ログイン時に上部に出る黒い帯）は独自のbox-sizing前提でレイアウトされているため、
   全称リセットの対象から除外する。これをしないと管理バーの項目が折り返して崩れる。 */
#wpadminbar, #wpadminbar *{ box-sizing: content-box; }

/* ------------------------------------------------------------------------
   WordPress管理バー フォールバック
   環境によっては admin-bar.css がうまく読み込まれず、テーマ側の汎用スタイル
   （ul/a/bodyの色・フォント指定など）だけが当たって崩れることがあるため、
   管理バーの最低限の見た目を !important で強制的に立て直す。
   通常どおり admin-bar.css が読み込まれている場合も、内容は同じなので副作用はない。
   ------------------------------------------------------------------------ */
#wpadminbar{
  position: fixed !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  z-index: 99999 !important;
  height: 32px !important;
  min-height: 32px !important;
  background: #1d2327 !important;
  overflow: visible !important;
}
#wpadminbar, #wpadminbar *{
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif !important;
  line-height: normal !important;
}
#wpadminbar .ab-top-menu,
#wpadminbar #wp-admin-bar-root-default,
#wpadminbar #wp-admin-bar-top-secondary{
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
#wpadminbar #wp-admin-bar-top-secondary{ margin-left: auto !important; }
#wpadminbar li{ list-style: none !important; float: none !important; position: relative; }
#wpadminbar .ab-item,
#wpadminbar a.ab-item,
#wpadminbar .ab-empty-item{
  display: block !important;
  color: #eee !important;
  text-decoration: none !important;
  padding: 0 10px !important;
  height: 32px !important;
  line-height: 32px !important;
  font-size: 13px !important;
  white-space: nowrap;
}
#wpadminbar .ab-item:hover, #wpadminbar a.ab-item:hover{
  color: #00b9eb !important;
  background: #32373c !important;
}
#wpadminbar .ab-sub-wrapper{
  display: none;
  position: absolute !important;
  top: 100% !important; left: 0 !important;
  min-width: 200px;
  background: #32373c !important;
  z-index: 99999 !important;
}
#wpadminbar li:hover > .ab-sub-wrapper{ display: block !important; }
#wpadminbar .ab-submenu .ab-item{
  height: auto !important;
  line-height: 26px !important;
  padding: 5px 14px !important;
  white-space: nowrap;
}
body.admin-bar .site-header{ top: 32px; }
@media screen and (max-width: 782px){
  #wpadminbar{ height: 46px !important; min-height: 46px !important; }
  #wpadminbar .ab-item, #wpadminbar a.ab-item, #wpadminbar .ab-empty-item{
    height: 46px !important; line-height: 46px !important;
  }
  body.admin-bar .site-header{ top: 46px; }
}
html{ -webkit-text-size-adjust: 100%; }
body{
  margin:0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-gothic);
  font-size: 16px;
  line-height: 1.8;
  font-feature-settings: "palt";
}
img{ max-width:100%; height:auto; display:block; }
a{ color: var(--ink); text-decoration: none; }
a:hover{ text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline: 2px solid var(--amber);
  outline-offset: 2px;
}
h1,h2,h3,h4{
  font-family: var(--font-mincho);
  color: var(--forest-dark);
  line-height: 1.5;
  margin: 0 0 .6em;
  font-weight: 600;
}
ul{ margin:0; padding:0; list-style:none; }
p{ margin: 0 0 1em; }
button, input, select, textarea{ font-family: inherit; font-size: 1rem; }

.container{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}
.visually-hidden{
  position:absolute !important; width:1px;height:1px;overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0; padding:0; margin:-1px;
}
.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--forest-dark); color:#fff;
  padding: 10px 16px; z-index: 200;
}
.skip-link:focus{ left: 10px; top: 10px; }

/* ==========================================================================
   ヘッダー
   ========================================================================== */
.site-header{
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 100;
}
.site-header__bar{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 16px;
  padding-bottom: 16px;
}
.site-branding{ display:flex; flex-direction: column; min-width:0; }
.site-branding a{ color: inherit; text-decoration:none; }
.site-title{
  font-family: var(--font-mincho);
  font-size: 2.2rem;
  letter-spacing: .04em;
  margin: 0;
  color: var(--forest-dark);
  white-space: nowrap;
}
.site-title small{
  display:block;
  font-family: var(--font-gothic);
  font-size: .88rem;
  letter-spacing: .12em;
  color: var(--ink-soft);
  margin-bottom: 3px;
  white-space: normal;
}
.site-description{
  font-size: .88rem;
  color: var(--ink-soft);
  margin: 3px 0 0;
  max-width: 760px;
}

/* ---- ハンバーガーメニュー（PC・スマホ共通） -------------------------------
   メインメニューは常にボタンで開閉するパネル式。
   PCでは右上にカード状のパネルとして、スマホでは画面幅いっぱいに開く。 */
.site-header__bar{ position: relative; }

.menu-toggle{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  flex-shrink: 0;
  background: var(--paper-dim);
  border: none;
  border-radius: 999px;
  padding: 10px 16px;
  color: var(--forest-dark);
  cursor:pointer;
  font-size: .85rem;
}
.menu-toggle:hover{ background: var(--line); }
.menu-toggle .bars{ display:block; width: 20px; height: 2px; background: currentColor; position:relative; transition: background .2s; }
.menu-toggle .bars::before, .menu-toggle .bars::after{
  content:""; position:absolute; left:0; width:20px; height:2px; background:currentColor;
  transition: transform .2s, top .2s;
}
.menu-toggle .bars::before{ top: -6px; }
.menu-toggle .bars::after{ top: 6px; }
/* 開いている間は「×」に */
.menu-toggle[aria-expanded="true"] .bars{ background: transparent; }
.menu-toggle[aria-expanded="true"] .bars::before{ top: 0; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .bars::after{ top: 0; transform: rotate(-45deg); }

.primary-navigation{
  display:none;
  position: absolute;
  top: 100%;
  right: 24px;
  width: min(320px, calc(100vw - 48px));
  background: var(--paper);
  border: 1px solid var(--line);
  border-top: none;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  padding: 6px 18px 18px;
  flex-direction: column;
  align-items: stretch;
  box-shadow: 0 8px 16px rgba(58,50,38,.10);
}
.primary-navigation.is-open{ display:flex; }
.primary-navigation ul{ display:flex; flex-direction: column; gap: 0; }
.primary-navigation a{
  display:block;
  padding: 14px 6px;
  color: var(--ink);
  font-size: 1rem;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
}
.primary-navigation a:hover,
.primary-navigation a:focus{
  background: var(--forest);
  color: #fff;
  text-decoration:none;
}

.header-search{ margin: 14px 0 0; }
.header-search form{ display:flex; }
.header-search input[type="search"]{
  flex: 1;
  min-width: 0;
  width: 100%;
  border: 1px solid var(--line);
  border-right: none;
  padding: 9px 14px;
  background: #fff;
  border-radius: 999px 0 0 999px;
}
.header-search button{
  background: var(--river);
  color: #fff;
  border: 1px solid var(--river);
  padding: 9px 16px;
  border-radius: 0 999px 999px 0;
  cursor:pointer;
  white-space: nowrap;
}
.header-search button:hover{ background: var(--river-dark); }

@media (max-width: 880px){
  /* スマホ・タブレット: パネルは画面幅いっぱいに開く */
  .site-header__bar{ position: static; }
  .primary-navigation{
    left:0; right:0;
    width: auto;
    border: none;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    padding: 6px 24px 20px;
  }

  /* 固定ヘッダーが画面を占領しないよう小さくまとめる */
  .site-header__bar{ padding-top: 10px; padding-bottom: 10px; gap: 10px; }
  .site-title{ font-size: 1.6rem; }
  .site-title small{ font-size: .7rem; letter-spacing: .08em; margin-bottom: 2px; }
  .site-description{ display: none; }
}

@media (max-width: 480px){
  .site-header__bar{ padding-top: 10px; padding-bottom: 10px; gap: 8px; }
  .site-title{ font-size: 1.3rem; }
  .site-title small{ font-size: .62rem; letter-spacing: .06em; }
  .primary-navigation{ padding-left: 18px; padding-right: 18px; }
  .container{ padding-left: 18px; padding-right: 18px; }
}

/* ==========================================================================
   ヒーロー（フロントページ）
   ========================================================================== */
.hero{
  background: linear-gradient(160deg, var(--forest-dark), var(--forest) 75%);
  color: var(--paper);
  padding: 40px 0 32px;
}
.hero__eyebrow{
  font-size: .8rem;
  color: var(--paper);
  letter-spacing: .08em;
}
.hero h1{
  color: var(--paper);
  font-size: clamp(1.6rem, 5vw, 2.4rem);
/*  max-width: 20ch;*/
}
.hero p{ color: var(--paper); max-width: 60ch; }

.quicklinks{
  display:grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  margin-top: 26px;
}
.quicklinks a{
  background: var(--paper);
  color: var(--ink);
  padding: 16px 6px;
  text-align:center;
  font-size: .8rem;
  font-weight: 600;
  display:flex; flex-direction:column; align-items:center; gap:8px;
  border-radius: var(--radius-lg);
  box-shadow: 0 3px 10px rgba(29,24,15,.14);
}
.quicklinks a:hover{ background: var(--amber); color:#fff; text-decoration:none; transform: translateY(-2px); }
.quicklinks .icon{
  font-size: 1.3rem;
  width: 40px; height: 40px;
  display:flex; align-items:center; justify-content:center;
  background: var(--paper-dim);
  border-radius: 999px;
}
.quicklinks a:hover .icon{ background: rgba(255,255,255,.25); }

@media (max-width: 720px){
  .quicklinks{ grid-template-columns: repeat(3, 1fr); gap: 8px; }
}
@media (max-width: 480px){
  .quicklinks{ grid-template-columns: repeat(2, 1fr); }
  .quicklinks a{ font-size: .78rem; padding: 14px 6px; }
}

/* ==========================================================================
   共通: セクション見出し
   ========================================================================== */
.marketplace-tabs{ display:flex; gap:8px; margin-top: 20px; }
.marketplace-tabs__item{
  flex:1;
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding: 12px 10px;
  border-radius: var(--radius-lg);
  background: var(--paper-dim);
  color: var(--ink-soft);
  font-weight: 700;
  text-align:center;
}
.marketplace-tabs__item:hover{ background: var(--paper); text-decoration:none; }
.marketplace-tabs__item.is-active{ background: var(--forest); color:#fff; }
@media (max-width: 480px){ .marketplace-tabs__item{ font-size:.82rem; padding:10px 6px; } }

.section{ padding: 34px 0; border-bottom: 1px solid var(--line); }
.section__head{
  display:flex; align-items:baseline; justify-content:space-between; gap: 12px;
  margin-bottom: 18px;
  border-bottom: 2px solid var(--forest);
  padding-bottom: 8px;
}
.section__head h2{ margin:0; font-size: 1.3rem; }
.section__more{ font-size: .85rem; white-space: nowrap; }

/* ==========================================================================
   カテゴリタグ・チップ
   ========================================================================== */
.tag{
  display:inline-block;
  font-size: .72rem;
  padding: 2px 8px;
  border-radius: 999px;
  color: #fff;
  background: var(--forest);
  white-space: nowrap;
}
.chips{ display:flex; flex-wrap:wrap; gap: 6px; margin-bottom: 18px; }
.chips a{
  border: 1px solid var(--line);
  padding: 6px 12px;
  border-radius: 999px;
  font-size: .82rem;
  color: var(--ink);
  background: #fff;
}
.chips a.is-active, .chips a:hover{
  background: var(--forest);
  border-color: var(--forest);
  color: #fff;
  text-decoration:none;
}

/* ==========================================================================
   掲示板リスト（info_post 一覧・新着）
   ========================================================================== */
.bulletin-list{ display:flex; flex-direction:column; gap: 10px; }
.bulletin-item{
  display:flex;
  gap: 14px;
  padding: 16px 18px;
  border-left: 5px solid var(--forest);
  border-radius: var(--radius);
  background: #fff;
  align-items: baseline;
  flex-wrap: wrap;
  box-shadow: 0 2px 8px rgba(58,50,38,.05);
}
.bulletin-item[data-cat="event"]{ border-left-color: var(--cat-event); }
.bulletin-item[data-cat="kosodate"]{ border-left-color: var(--cat-kosodate); }
.bulletin-item[data-cat="pc"]{ border-left-color: var(--cat-pc); }
.bulletin-item[data-cat="machi"]{ border-left-color: var(--cat-machi); }
.bulletin-item[data-cat="oshiete"]{ border-left-color: var(--cat-oshiete); }
.bulletin-item[data-cat="fudousan"]{ border-left-color: var(--cat-fudousan); }
.bulletin-item[data-cat="enquete"]{ border-left-color: var(--cat-enquete); }
.bulletin-item[data-cat="kuchikomi"]{ border-left-color: var(--cat-kuchikomi); }

.bulletin-item__date{ font-size: .78rem; color: var(--ink-soft); width: 84px; flex-shrink:0; }
.bulletin-item__title{ font-weight: 700; flex: 1 1 260px; }
.bulletin-item__title a{ color: var(--ink); }
.bulletin-item__meta{ font-size: .78rem; color: var(--ink-soft); }
.bulletin-item .tag{ margin-right: 4px; }
.bulletin-item__new{
  color: var(--danger); font-size: .72rem; font-weight: 700; margin-left: 4px;
}

@media (max-width: 480px){
  .bulletin-item{ flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px 16px; }
  .bulletin-item__date{ width: auto; }
}


/* ==========================================================================
   フォーム全般（投稿フォーム・検索・コメント）
   ========================================================================== */
.form-table{ width:100%; border-collapse: collapse; margin: 0 0 20px; }
.form-table th, .form-table td{
  text-align:left;
  padding: 12px 10px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.form-table th{
  width: 160px;
  font-weight: 600;
  background: var(--paper-dim);
}
.form-hint{ font-size: .78rem; color: var(--ink-soft); display:block; margin-top: 4px; }
input[type="text"], input[type="email"], input[type="url"], input[type="tel"],
input[type="search"], input[type="date"], select, textarea{
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  color: var(--ink);
}
textarea{ min-height: 140px; resize: vertical; }
.btn{
  display:inline-block;
  background: var(--forest);
  color: #fff;
  border: 1px solid var(--forest);
  padding: 13px 28px;
  border-radius: 999px;
  cursor:pointer;
  font-weight: 700;
  letter-spacing: .03em;
}
.btn:hover{ background: var(--forest-dark); text-decoration:none; color:#fff; }
.btn--amber{ background: var(--amber); border-color: var(--amber); }
.btn--amber:hover{ background: var(--amber-dark); }
.btn--outline{ background:transparent; color: var(--forest); }
.btn--outline:hover{ background: var(--forest); color:#fff; }

.notice{
  padding: 14px 18px;
  border-radius: var(--radius-lg);
  margin-bottom: 20px;
  border: 1px solid var(--line);
}
.notice--success{ background:#EEF3E9; border-color: var(--forest); color: var(--forest-dark); }
.notice--error{ background:#F6E9E4; border-color: var(--danger); color: var(--danger); }

.honeypot-field{ position:absolute; left:-9999px; }

@media (max-width: 640px){
  .form-table, .form-table tbody, .form-table tr, .form-table th, .form-table td{ display:block; width:100%; }
  .form-table th{ border-bottom:none; padding-bottom:4px; }
  .form-table td{ padding-top:0; }
}

/* ==========================================================================
   お店・病院ナビ（ジャンル一覧・詳細）
   ========================================================================== */
.genre-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.genre-grid a{
  background:#fff;
  padding: 14px 16px;
  font-size: .88rem;
  color: var(--ink);
  display:flex; justify-content: space-between;
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 8px rgba(58,50,38,.05);
}
.genre-grid a:hover{ background: var(--paper-dim); text-decoration:none; }
.genre-grid .count{ color: var(--ink-soft); font-size: .78rem; }
@media (max-width: 720px){ .genre-grid{ grid-template-columns: repeat(2, 1fr); } }

.shop-card{
  display:flex; gap: 16px; padding: 16px; margin-bottom: 12px;
  background:#fff; border-radius: var(--radius-lg); box-shadow: 0 2px 8px rgba(58,50,38,.05);
}
.shop-card__thumb{ width: 120px; flex-shrink:0; }
.shop-card__thumb img{ border-radius: var(--radius); }
.shop-card h3{ margin: 0 0 6px; font-size: 1.05rem; }
.shop-meta{ list-style:none; padding:0; margin:0; font-size: .85rem; color: var(--ink-soft); }
.shop-meta li{ margin-bottom: 2px; }
.shop-meta b{ color: var(--ink); font-weight:600; }

.detail-hero{ display:grid; grid-template-columns: 260px 1fr; gap: 24px; margin-bottom: 24px; }
.detail-hero img{ border-radius: var(--radius-lg); }
@media (max-width: 720px){ .detail-hero{ grid-template-columns: 1fr; } }

/* お店・病院ナビ詳細: 紹介文 → 写真(2列) → 地図 → 表 → 注記 */
.shop-intro{ margin-bottom: 20px; }
.shop-intro.has-thumb{ display:grid; grid-template-columns: 260px 1fr; gap: 24px; }
.shop-intro img{ border-radius: var(--radius-lg); }
@media (max-width: 720px){ .shop-intro.has-thumb{ grid-template-columns: 1fr; } }

/* 写真は常に2列（スマホも同じ）。4:3で切り抜いて揃える */
.shop-photos{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 0 0 20px; }
.shop-photos li{ aspect-ratio: 4 / 3; overflow:hidden; border-radius: var(--radius); background: var(--paper-dim); }
.shop-photos img{ width:100%; height:100%; object-fit: cover; }

.shop-map-wrap{ margin-bottom: 24px; }
.shop-map{ aspect-ratio: 2 / 1; min-height: 260px; overflow:hidden; border-radius: var(--radius-lg); background: var(--paper-dim); }
.shop-map iframe{ display:block; width:100%; height:100%; border:0; }
.shop-map__link{ margin: 8px 0 0; font-size: .85rem; text-align: right; }

/* 「※この情報は…」の注記: 表の下に小さく */
.shop-note{ font-size: .75rem; line-height: 1.7; color: var(--ink-soft); margin: 0 0 24px; }
.shop-note p{ margin: 0 0 .4em; }

/* ==========================================================================
   子育て・くらし情報（専用ページ）
   ========================================================================== */
.kosodate__lead{ margin-bottom: 8px; }
.kosodate__block{ margin-top: 28px; }
.kosodate__block h3{ font-size: 1.1rem; margin-bottom: 12px; }
.kosodate__block h3 i{ margin-right: 4px; }
.kosodate__sub{ font-size: .82rem; color: var(--ink-soft); margin: 8px 0 0; }
.kosodate__sub a{ text-decoration: underline; }
.link-cards{ display:grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.link-cards a{
  display:block; height:100%;
  padding: 14px 16px;
  background:#fff; border-radius: var(--radius-lg);
  box-shadow: 0 2px 8px rgba(58,50,38,.05);
}
.link-cards a:hover{ background: var(--paper-dim); text-decoration:none; }
.link-cards strong{ display:block; color: var(--forest-dark); font-size: .95rem; }
.link-cards span{ display:block; margin-top: 4px; font-size: .8rem; color: var(--ink-soft); line-height: 1.6; }
@media (max-width: 640px){ .link-cards{ grid-template-columns: 1fr; } }

/* ==========================================================================
   フリマ
   ========================================================================== */
.flea-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
}
.flea-card{
  background:#fff; border-radius: var(--radius-lg); overflow:hidden;
  box-shadow: 0 2px 8px rgba(58,50,38,.06);
}
.flea-card__img{ aspect-ratio: 4/3; overflow:hidden; background: var(--paper-dim); }
.flea-card__img img{ width:100%; height:100%; object-fit:cover; }
.flea-card__body{ padding: 14px 16px; }
.flea-card h3{ font-size: .98rem; margin: 0 0 6px; }
.flea-price{ color: var(--amber-dark); font-weight: 700; font-size: 1.05rem; }
.flea-status{
  display:inline-block; font-size: .7rem; padding: 3px 10px; border-radius: 999px;
  background: var(--river); color:#fff; margin-bottom: 6px;
}
.flea-status.is-done{ background: var(--ink-soft); }
@media (max-width: 880px){ .flea-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px){ .flea-grid{ grid-template-columns: 1fr; } }

/* ==========================================================================
   求人
   ========================================================================== */
.job-table{ width:100%; border-collapse: collapse; }
.job-table th, .job-table td{
  text-align:left; padding: 12px 10px; border-bottom: 1px solid var(--line); font-size: .9rem;
}
.job-table thead th{ background: var(--forest); color:#fff; }
.job-table tbody tr:nth-child(odd){ background: var(--paper-dim); }
.job-table td a{ color: var(--ink); font-weight:600; }

@media (max-width: 720px){
  .job-table thead{ display:none; }
  .job-table, .job-table tbody, .job-table tr, .job-table td{ display:block; width:100%; }
  .job-table tr{ border-bottom: 2px solid var(--line); padding: 10px 0; }
  .job-table td{ border-bottom:none; padding: 4px 6px; }
  .job-table td::before{ content: attr(data-label); display:block; font-size:.7rem; color:var(--ink-soft); }
}

/* ==========================================================================
   イベントカレンダー
   ========================================================================== */
.calendar-nav{ display:flex; align-items:center; justify-content:center; gap: 18px; margin-bottom: 18px; }
.calendar-nav h2{ margin:0; }
.calendar{ width:100%; border-collapse: collapse; table-layout: fixed; }
.calendar caption{ display:none; }
.calendar th{
  background: var(--forest); color:#fff; padding: 8px 4px; font-size: .8rem; font-weight:500;
}
.calendar td{
  border: 1px solid var(--line); vertical-align: top; padding: 6px;
  height: 100px; font-size: .78rem; background:#fff;
}
.calendar td.is-empty{ background: var(--paper-dim); }
.calendar td.is-today{ outline: 2px solid var(--amber); outline-offset: -2px; }
.calendar .day-num{ font-weight:700; color: var(--ink-soft); display:block; margin-bottom:4px; }
.calendar .day-event{
  display:block; font-size: .72rem; margin-bottom: 2px; color: var(--forest-dark);
  border-left: 3px solid var(--cat-event); padding-left: 4px;
}
.calendar .day-event a{ color: inherit; }

@media (max-width: 720px){
  .calendar, .calendar thead, .calendar tbody, .calendar tr{ display:block; width:100%; }
  .calendar th{ display:none; }
  .calendar td{ display:block; width:100%; height:auto; min-height: 0; }
  .calendar td.is-empty{ display:none; }
  .calendar td:not(.is-empty)::before{
    content: attr(data-date); display:block; font-weight:700; color:var(--forest-dark);
    margin-bottom: 4px; font-size: .82rem;
  }
  .calendar .day-num{ display:none; }
}

/* ==========================================================================
   単一記事・コメント（掲示板の返信）
   ========================================================================== */
.entry-header{ margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.entry-header h1{ font-size: 1.5rem; margin-bottom: 6px; }
.entry-meta{ font-size: .82rem; color: var(--ink-soft); }
.entry-content{ font-size: 1rem; }
.entry-content h2{ font-size: 1.2rem; }
.entry-content h2{ margin-top: 1.8em; padding-bottom: .3em; border-bottom: 1px solid var(--line); }
.entry-content h2:first-child{ margin-top: 0; }
.entry-content ul{ list-style: disc; padding-left: 1.4em; margin: 0 0 1em; }
.entry-content ol{ list-style: decimal; padding-left: 1.4em; margin: 0 0 1em; }
.entry-content li{ margin-bottom: .4em; }
.entry-content img{ border-radius: var(--radius); }

.comments-area{ margin-top: 30px; }
.comments-title{ border-bottom: 2px solid var(--forest); padding-bottom: 8px; }
.comment-list{ margin: 0 0 24px; }
.comment-body{
  padding: 14px 0 14px 14px;
  border-left: 4px solid var(--river);
  border-bottom: 1px solid var(--line);
  background:#fff;
}
.comment-author{ font-weight:700; color: var(--ink); }
.comment-metadata{ font-size: .76rem; color: var(--ink-soft); margin-left: 8px; }
.comment-reply-title{ font-size: 1.05rem; }

/* ==========================================================================
   サイドバー
   ========================================================================== */
.layout{ display:grid; grid-template-columns: 1fr 300px; gap: 32px; }
.sidebar{ padding-top: 34px; } /* .content 側の最初の .section 上余白(34px)と天面を揃える */
.sidebar .widget{
  margin-bottom: 20px; background:#fff; border-radius: var(--radius-lg);
  overflow:hidden; box-shadow: 0 2px 8px rgba(58,50,38,.05);
}
.sidebar .widget-title{
  background: var(--forest); color:#fff; padding: 12px 16px; font-size: .95rem; margin:0;
}
.sidebar .widget-body{ padding: 14px 16px; }
@media (max-width: 960px){ .layout{ grid-template-columns: 1fr; } }

/* ==========================================================================
   フッター
   ========================================================================== */
.site-footer{
  background: var(--forest-dark);
  color: #D8E0D2;
  margin-top: 40px;
  padding: 30px 0 20px;
  font-size: .85rem;
}
.site-footer a{ color: #EFE9D8; }
.footer-links{ display:flex; flex-wrap:wrap; gap: 14px; margin-bottom: 14px; }
.footer-bottom{ color: #EFE9D8; font-size: .78rem; }

.back-to-top{
  display:inline-block; margin-top: 20px; font-size: .8rem;
  border: 1px solid #4C6753; padding: 8px 14px; border-radius: var(--radius); color:#EFE9D8 !important;
}

/* ==========================================================================
   ユーティリティ
   ========================================================================== */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.pager{ display:flex; justify-content:space-between; margin-top: 24px; }
