/*
Theme Name: Reaf
Theme URI: https://reaf-niigata.site/
Author: 株式会社Reaf
Description: 株式会社Reaf 公式テーマ。明朝・白基調・ボタニカル背景。可読性重視の左寄せ本文と明快な見出し階層・レスポンシブ最適化。
Version: 2.9.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: reaf
*/

:root{
  --ink:#1a1a1a;          /* 本文 */
  --ink-strong:#111;      /* 見出し */
  --muted:#8a8a8a;
  --line:#e2e0d9;
  --soft:#f6f4ef;
  --green:#41603a;
  --green-soft:#6f8a63;
  --band:#04541f;        /* 下層ページ帯 */
  --content:1100px;       /* 可読幅 */
  --wide:1120px;
  --header-h:90px;
  --serif:"Shippori Mincho B1","A1 Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;color:var(--ink);background:#fff;
  font-family:var(--serif);font-size:17px;line-height:1.95;
  letter-spacing:.02em;font-feature-settings:"palt";-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
a{color:var(--green);text-decoration:none}
a:hover{opacity:.65}
h1,h2,h3,h4,h5{font-family:var(--serif);color:var(--ink-strong);letter-spacing:.02em}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 24px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ===== ヘッダー ===== */
.site-header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid #f0efe9}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;
  max-width:1280px;margin:0 auto;height:var(--header-h);padding:0 28px}
.brand{display:flex;align-items:center;min-width:0}
.brand a{display:flex;align-items:center}
.brand img{height:60px;width:60px;object-fit:contain;display:block}
.nav-toggle{display:none;border:0;background:none;cursor:pointer;padding:10px}
.nav-toggle span{display:block;width:26px;height:1.5px;background:var(--ink);margin:6px 0;transition:.25s}
.main-nav ul{display:flex;list-style:none;margin:0;padding:0;align-items:center}
.main-nav a{display:block;padding:12px 17px;color:var(--ink-strong);font-size:16px;letter-spacing:2.24px;line-height:1}
.main-nav a:hover{color:var(--green);opacity:1}
.main-nav .current-menu-item>a{color:var(--green)}

/* ===== ヒーロー ===== */
.hero{width:100%;min-height:80vh;background:var(--hero,#eef1ea) center/cover no-repeat;background-attachment:fixed}

/* ===== セクション ===== */
.section{padding:72px 0}
.section-center{text-align:center;max-width:var(--content);margin:0 auto}
.section-center h2{margin:0 0 18px}
.section-center p{margin:0 auto;max-width:680px;color:#333}
.divider{border:0;border-top:1px solid var(--line);max-width:var(--wide);margin:0 auto}
.eyebrow{display:block;font-size:13px;letter-spacing:.3em;color:var(--green);margin-bottom:14px}

/* ===== 見出しの階層 ===== */
.home-title{font-size:38px;font-weight:700;line-height:1.5;
  margin:0 0 30px;padding-bottom:20px;border-bottom:1px solid var(--line);position:relative}
.home-title::after{content:"";position:absolute;left:0;bottom:-1px;width:64px;height:3px;background:var(--green)}
.article-body h2{font-size:24px;font-weight:700;line-height:1.7;color:#fff;
  background:var(--band);border-radius:4px;margin:64px 0 26px;padding:16px 20px}
.article-body h3{font-size:22px;font-weight:700;line-height:1.55;margin:52px 0 20px;
  padding:4px 0 8px;border-bottom:6px solid var(--green)}
.article-body h4{font-size:19px;font-weight:700;line-height:1.6;color:#33502c;
  margin:38px 0 14px;padding-left:14px;border-left:3px solid var(--green-soft)}
.article-body h5{font-size:17px;font-weight:700;margin:28px 0 12px}

/* ===== 本文 ===== */
.content-area{max-width:var(--content);margin:0 auto;padding:56px 24px 88px}
.article-body{font-size:17px;line-height:1.95}
.article-body>*:first-child{margin-top:0}
.article-body p{margin:0 0 1.6em}
.article-body img{margin:26px 0;display:block;border-radius:2px}
.article-body figure{margin:30px 0}
.article-body figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.article-body hr{border:0;border-top:1px solid var(--line);margin:40px 0}
.article-body a{text-decoration:underline;text-underline-offset:3px}
.article-body ul,.article-body ol{padding-left:1.4em;margin:0 0 1.6em}
.article-body li{margin:.4em 0}
.article-body blockquote{margin:28px 0;padding:14px 24px;background:var(--soft);border-left:4px solid var(--green);color:#333}
/* ===== 下層ページ帯（ページタイトル） ===== */
.page-band{background:var(--band);color:#fff;text-align:center;padding:46px 24px}
.page-band .en{display:block;font-family:"Noto Sans JP",sans-serif;font-size:12px;font-weight:500;
  letter-spacing:.34em;text-indent:.34em;color:rgba(255,255,255,.72);line-height:1;margin:0 0 14px}
.page-band h1{color:#fff;font-size:30px;font-weight:700;line-height:1.5;letter-spacing:.08em;margin:0}
.page-band .date{display:block;margin-top:14px;font-size:13px;letter-spacing:.08em;color:rgba(255,255,255,.72)}
.page-band .pdivider{display:none}

/* ===== 前後ナビ ===== */
.post-nav{display:flex;justify-content:space-between;gap:18px;max-width:var(--content);margin:10px auto 70px;padding:0 24px}
.post-nav a{flex:1;padding:18px;border:1px solid var(--line);font-size:13px;color:var(--ink);line-height:1.7}
.post-nav a:hover{border-color:var(--green);opacity:1}
.post-nav .next{text-align:right}

/* ===== 記事カード ===== */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:var(--wide);margin:0 auto}
.card{display:flex;flex-direction:column;transition:.25s}
.card:hover{transform:translateY(-3px)}
.card .thumb{aspect-ratio:4/3;background:var(--soft) center/cover no-repeat;display:block;border:1px solid #eee}
.card .body{padding:16px 2px;display:flex;flex-direction:column;gap:8px}
.card .date{font-size:13px;color:var(--muted)}
.card h3{font-size:18px;line-height:1.7;margin:0;font-weight:500;color:var(--ink-strong)}
.center{text-align:center;margin-top:50px}
.btn{display:inline-block;padding:15px 46px;border:1px solid var(--ink-strong);color:var(--ink-strong);
  font-size:15px;letter-spacing:.14em;transition:.25s}
.btn:hover{background:var(--ink-strong);color:#fff;opacity:1}
.btn-green{border-color:var(--green);color:#fff;background:var(--green)}
.btn-green:hover{background:var(--green-soft);border-color:var(--green-soft)}

/* ===== 一覧 ===== */
.pagination{display:flex;gap:8px;justify-content:center;margin:60px 0;flex-wrap:wrap}
.pagination .page-numbers{display:inline-block;padding:11px 16px;border:1px solid var(--line);color:var(--ink);font-size:14px}
.pagination .current{background:var(--green);color:#fff;border-color:var(--green)}
.pagination a:hover{border-color:var(--green);opacity:1}

/* ===== フッターCTA（LINE登録・メール相談） ===== */
.footer-cta{background:#2a2a2a;color:#fff;text-align:center;padding:64px 24px 52px}
.footer-cta .line-lead{font-size:18px;line-height:1.95;margin:0 0 30px;color:#fff}
.footer-cta .line-btn{display:inline-block}
.footer-cta .line-btn img{width:200px;height:auto;border-radius:8px;display:block;margin:0 auto}
.footer-cta .line-btn span{display:block;margin-top:12px;color:#fff;font-size:16px}
.footer-cta .line-btn:hover{opacity:.8}
.footer-cta .mail-cta{display:block;max-width:760px;margin:44px auto 0;padding:20px 24px;border:1px solid #555;color:#fff;font-size:17px}
.footer-cta .mail-cta:hover{background:#363636;opacity:1}

/* ===== フッター ===== */
.site-footer{background:#2a2a2a;color:#fff;padding:52px 0 26px;font-size:15px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}
.site-footer h4{font-size:18px;margin:0 0 16px;font-weight:700;color:#fff}
.site-footer p{margin:0 0 8px;line-height:1.85}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin-bottom:10px}
.site-footer a{color:#fff}
.site-footer .current-menu-item>a{opacity:.6}
.footer-social{text-align:center;margin-top:48px}
.footer-social .home-btn{display:inline-block;padding:16px 44px;border:1px solid #777;color:#fff;font-size:15px;letter-spacing:.06em}
.footer-social .home-btn:hover{background:#363636;opacity:1}
.footer-sns{display:flex;gap:18px;justify-content:center;margin-top:40px}
.footer-sns .sns-btn{width:58px;height:58px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;transition:.2s}
.footer-sns .sns-btn:hover{opacity:.78}
.footer-sns .sns-btn svg{width:26px;height:26px;fill:#555}
.footer-sns .sns-line span{font-weight:700;font-size:13px;color:#555;letter-spacing:.01em}
.footer-bottom{border-top:1px solid #444;margin-top:48px;padding-top:20px;text-align:center;font-size:12px;color:#bdbdbd}


/* 追記 */
.company-dl>div{
  display: flex;
  flex-wrap: wrap;
  border-bottom: 1px solid #e2e0d9;
}
.company-dl>div:first-child {
  border-top: 1px solid #e2e0d9;
}
.company-dl>div>dt{
  width: 230px;
  background: #f6f4ef;
  font-weight: 900;
  padding: 10px;
}
.company-dl>div>dd{
  padding: 10px;
}
.home-title {
  background: #04541f;
  color: #fff;
  font-size: 28px;
  padding: 15px;
  border-radius: 5px;
}
.home-title::after {display: none;}
.article-body{font-size:16px;line-height:1.95}
.article-body hr{border-top:0;}
.article-body .text-link {
  text-decoration: none;
  background: #175e9a;
  color: #fff;
  padding: 15px;
  border-radius: 5px;
}
.block {
  border: 2px solid #83aa80;
  padding: 10px;
  background: #fbfde6;
  border-radius: 5px;
}
.underline {
  font-weight: 900;
  text-decoration: underline 2px #218036;
  text-underline-offset: 6px;
}
p.center {
  width: fit-content;
  margin: 0 auto 1.6em;
}
figure.pic-btn {
  width: fit-content;
  margin: 30px auto 0;
}

/* ===== 本文テーブル ===== */
.article-body table{
  width:100%;
  border-collapse:collapse;
  margin:26px 0;
  background:#fff;
  font-size:15px;
  line-height:1.7;
}
.article-body th,
.article-body td{
  border:1px solid var(--line);
  padding:12px 16px;
  text-align:left;
  vertical-align:top;
}
.article-body th{
  background:var(--soft);
  font-weight:700;
}
/* スマホ等で崩れそうなテーブルは横スクロール（theme.jsでラップ） */
.table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin:26px 0;
}
.table-scroll>table{margin:0}

/* ===== パンくずリスト ===== */
.breadcrumb{max-width:var(--wide);margin:0 auto;padding:14px 24px 0;font-size:13px}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;margin:0;padding:0}
.breadcrumb li{display:flex;align-items:center}
.breadcrumb li+li::before{content:"›";color:var(--muted);margin:0 8px}
.breadcrumb a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.breadcrumb .current{color:var(--muted)}

/* ===== レスポンシブ ===== */

/* ── ナビ項目が多いため中間幅で詰める ── */
@media(max-width:1180px) and (min-width:881px){
  .main-nav a{padding:12px 9px;font-size:14px;letter-spacing:.04em}
}

/* ── タブレット（481px〜880px） ── */
@media(max-width:880px){
  body{font-size:16px;line-height:1.9}

  /* ヘッダー */
  :root{--header-h:72px}
  .header-inner{padding:0 20px}
  .brand img{height:48px;width:48px}
  .nav-toggle{display:block}
  .main-nav{
    position:fixed;
    inset:var(--header-h) 0 auto 0;
    background:#fff;
    border-bottom:1px solid var(--line);
    display:none !important;
    padding:16px 0 24px;
    box-shadow:0 4px 12px rgba(0,0,0,.08);
  }
  .main-nav.is-open{display:block !important}
  /* 各項目を親幅いっぱいに伸ばし、文字は中央寄せ。区切り線は文字幅ではなく統一幅にする */
  .main-nav ul{flex-direction:column;align-items:stretch;padding:0 24px}
  .main-nav li{width:100%}
  .main-nav a{padding:14px 0;font-size:15px;width:100%;text-align:center;border-bottom:1px solid var(--line)}
  .main-nav li:last-child a{border-bottom:0}

  /* ヒーロー */
  .hero{min-height:50vh;background-attachment:scroll}

  /* セクション */
  .section{padding:48px 0}
  .section-center p{padding:0 4px}

  /* 見出し */
  .home-title{font-size:22px;padding:12px 14px}
  .article-body h2{font-size:20px;padding:13px 16px;margin:52px 0 22px}
  .article-body h3{font-size:19px}
  .article-body h4{font-size:17px}
  .article-body h5{font-size:16px}

  /* 本文エリア */
  .content-area{padding:36px 20px 64px}

  /* 下層ページ帯 */
  .page-band{padding:36px 20px}
  .page-band h1{font-size:22px}
  .page-band .en{font-size:11px;letter-spacing:.28em;text-indent:.28em;margin-bottom:11px}

  /* 記事カード */
  .post-grid{grid-template-columns:repeat(2,1fr);gap:22px}

  /* 前後ナビ */
  .post-nav{flex-direction:column;gap:12px;padding:0 20px}
  .post-nav a{text-align:left}

  /* フッターCTA */
  .footer-cta{padding:48px 20px 40px}
  .footer-cta .line-lead{font-size:16px}
  .footer-cta .mail-cta{font-size:15px}

  /* フッター */
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px}

  /* 会社情報 */
  .company-dl>div{
    display:block;
  }
  .company-dl>div>dt{
    width: 100%;
  }
  .company-dl>div>dd{
    margin: 0;
  }

  /* ページネーション */
  .pagination{gap:6px}
  .pagination .page-numbers{padding:9px 13px}

  /* テーブル */
  .article-body table{font-size:14px}
  .article-body th,.article-body td{padding:10px 12px}
  .table-scroll table.table-wide{min-width:560px}

  /* パンくず */
  .breadcrumb{padding:12px 20px 0;font-size:12px}
}

/* ── スマートフォン（〜480px） ── */
@media(max-width:480px){
  body{font-size:15px;line-height:1.85}

  /* ヘッダー */
  :root{--header-h:64px}
  .header-inner{padding:0 16px}
  .brand img{height:42px;width:42px}

  /* ヒーロー */
  .hero{min-height:42vh}

  /* セクション */
  .section{padding:36px 0}
  .wrap{padding:0 16px}

  /* 見出し */
  .home-title{font-size:18px;padding:10px 12px;border-radius:4px}
  .article-body h2{font-size:17px;padding:11px 13px;margin:44px 0 18px}
  .article-body h3{font-size:17px}
  .article-body h4{font-size:16px}
  .article-body h5{font-size:15px}

  /* 本文エリア */
  .content-area{padding:28px 16px 52px}

  /* 下層ページ帯 */
  .page-band{padding:28px 16px}
  .page-band h1{font-size:19px}
  .page-band .en{font-size:10px;letter-spacing:.24em;text-indent:.24em;margin-bottom:9px}
  .page-band .date{margin-top:10px;font-size:12px}
  .article-body{font-size:15px}
  .article-body blockquote{padding:12px 16px}
  .article-body ul,.article-body ol{padding-left:1.2em}

  /* 記事カード */
  .post-grid{grid-template-columns:1fr;gap:24px}
  .card h3{font-size:16px}

  /* ボタン */
  .btn{padding:13px 28px;font-size:14px;display:block;text-align:center}
  .btn-green{display:block;text-align:center}
  .center{margin-top:36px}

  /* 前後ナビ */
  .post-nav{margin-bottom:48px;padding:0 16px}

  /* フッターCTA */
  .footer-cta{padding:40px 16px 32px}
  .footer-cta .line-lead{font-size:15px;margin-bottom:22px}
  .footer-cta .line-btn img{width:170px}
  .footer-cta .mail-cta{padding:16px;font-size:14px;margin-top:32px}

  /* フッター */
  .site-footer{padding:40px 0 20px}
  .footer-grid{grid-template-columns:1fr;gap:24px}
  .site-footer h4{font-size:16px;margin-bottom:10px}
  .footer-social .home-btn{padding:13px 32px;font-size:14px}
  .footer-sns{gap:14px;margin-top:28px}
  .footer-sns .sns-btn{width:50px;height:50px}
  .footer-sns .sns-btn svg{width:22px;height:22px}
  .footer-bottom{margin-top:36px;font-size:11px}

  /* ページネーション */
  .pagination{gap:4px;margin:40px 0}
  .pagination .page-numbers{padding:8px 11px;font-size:13px}

  /* テキストリンクブロック */
  .article-body .text-link{display:block;text-align:center;padding:12px}

  /* パンくず */
  .breadcrumb{padding:10px 16px 0}
}

/* =========================================================
   Contact Form 7
   ========================================================= */
.wpcf7{max-width:760px;margin:0 auto}
.wpcf7 form.wpcf7-form{margin:0}
.wpcf7 .cf-field{margin:0 0 22px}
.wpcf7 .cf-label{display:block;font-size:15px;font-weight:700;letter-spacing:.04em;line-height:1.6;margin:0 0 8px;color:var(--ink-strong)}
.wpcf7 .cf-req{color:#c0392b;font-size:13px;margin-left:5px;vertical-align:2px}
.wpcf7 .cf-note{font-size:13px;color:var(--muted);margin:0 0 24px}
.wpcf7 .wpcf7-form-control-wrap{display:block}

.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 input[type=date],
.wpcf7 select,
.wpcf7 textarea{
  width:100%;box-sizing:border-box;
  font-family:inherit;font-size:16px;line-height:1.6;color:var(--ink);
  padding:12px 14px;background:#fff;
  border:1px solid #cfcdc4;border-radius:3px;
  transition:border-color .2s,box-shadow .2s}
.wpcf7 textarea{min-height:220px;resize:vertical;display:block}
.wpcf7 select{
  -webkit-appearance:none;appearance:none;padding-right:38px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23555'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:10px 6px}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{
  outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(65,96,58,.15)}
.wpcf7 ::placeholder{color:#b3b0a6}

/* 日付入力（希望日）
   iOS Safari は input[type=date] に既定の外観が付いたままだと box-sizing:border-box を
   無視し、padding と枠の分だけ親要素からはみ出す。外観をリセットして幅を確実に収める。 */
.wpcf7 input[type=date]{
  -webkit-appearance:none;appearance:none;
  min-width:0;max-width:100%}
.wpcf7 input[type=date]::-webkit-date-and-time-value{
  text-align:left;margin:0;min-height:1.6em}
.wpcf7 input[type=date]::-webkit-calendar-picker-indicator{margin:0 0 0 auto;padding:0}

/* 念のため、どのコントロールも親幅を超えないようにする */
.wpcf7 input,.wpcf7 select,.wpcf7 textarea{max-width:100%}

/* 希望日 + 時間の横並び */
.wpcf7 .cf-row{display:flex;gap:16px;align-items:flex-start}
.wpcf7 .cf-row .cf-date{flex:1 1 auto;min-width:0}
.wpcf7 .cf-row .cf-time{flex:0 0 210px}

/* 送信ボタン */
.wpcf7 .cf-submit{margin-top:34px;text-align:center}
.wpcf7 input[type=submit]{
  display:inline-block;min-width:260px;padding:16px 46px;cursor:pointer;
  font-family:inherit;font-size:16px;font-weight:700;letter-spacing:.14em;
  color:#fff;background:var(--band);border:1px solid var(--band);border-radius:3px;
  transition:.25s}
.wpcf7 input[type=submit]:hover{background:var(--green);border-color:var(--green)}
.wpcf7 .wpcf7-spinner{display:block;margin:14px auto 0}

/* バリデーション・応答 */
.wpcf7 .wpcf7-not-valid{border-color:#c0392b}
.wpcf7 .wpcf7-not-valid-tip{color:#c0392b;font-size:13px;line-height:1.6;margin-top:6px}
.wpcf7 form .wpcf7-response-output{
  margin:26px 0 0;padding:14px 16px;border-radius:3px;
  font-size:14px;line-height:1.8;border-width:1px}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--green);background:#f3f6f1;color:#2b4426}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{border-color:#c0392b;background:#fbf2f1;color:#8e2b20}

@media(max-width:640px){
  .wpcf7 .cf-row{display:block}
  .wpcf7 .cf-row .cf-time{margin-top:18px}
  .wpcf7 .cf-field{margin-bottom:18px}
  .wpcf7 .cf-label{font-size:14px}
  .wpcf7 textarea{min-height:180px}
  .wpcf7 .cf-submit{margin-top:28px}
  .wpcf7 input[type=submit]{width:100%;min-width:0;padding:15px 20px;letter-spacing:.1em}
}
