@charset "utf-8";
/*
Theme Name: rakuro
Theme URI: https://hen-ka.co.jp/
Author: ヘンカ株式会社
Author URI: https://hen-ka.co.jp/
Description: 株式会社トライアングルステージ「リスクアセスメントと個人ばく露測定.com」オリジナルテーマ。親テーマなし・ビルドツールなし・jQuery非依存。
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: rakuro
*/

/* -----------------------------------------------------------
   このファイルは tools/sync-theme-css.py が生成しています。
   直接編集せず、samples/assets/style.css を直してから
   python3 tools/sync-theme-css.py を実行してください。
   ----------------------------------------------------------- */
/* =========================================================
   リスクアセスメントと個人ばく露測定.com
   共通スタイル（静的サンプル用）
   ビルドツールなし・素のCSS。上から
   1. トークン / 2. リセット・基本 / 3. 汎用パーツ
   4. ヘッダー / 5. 下層ページヘッダー / 6. 本文エリア
   7. パンくず / 8. ダークカード / 9. お困りごと相談室
   10. フッター / 11. レスポンシブ
   ========================================================= */

/* =========================================================
   1. デザイントークン
   ========================================================= */
:root{
  --green:      #1EA970;
  --green-dark: #178C5C;
  --red:        #FF3E23;
  --red-dark:   #E0301A;
  --yellow:     #FFD800;
  --ink:        #333333;
  --ink-card:   #474747;
  --gray-bg:    #F4F4F4;
  --gray-ph:    #CCCCCC;
  --line:       #E0E0E0;
  --white:      #FFFFFF;

  --container:        1100px;
  --container-narrow: 920px;
  --font: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", meiryo, sans-serif;
}

/* =========================================================
   2. リセット・基本
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font);
  font-size:16px;
  font-weight:400;
  line-height:1.8;
  color:var(--ink);
  background:var(--white);
}
img{ max-width:100%; height:auto; vertical-align:bottom; }
a{ color:var(--ink); text-decoration:none; transition:color .2s, background-color .2s, opacity .2s; }
a:hover{ color:var(--green); }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
svg{ display:block; }

.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:24px;
}
.container--narrow{ max-width:calc(var(--container-narrow) + 48px); }

/* 画像プレースホルダ（本番では img に差し替え） */
.ph{
  display:block;
  background:var(--gray-ph);
}

/* =========================================================
   3. 汎用パーツ（ボタン）
   ========================================================= */
.btn{
  display:inline-flex;
  align-items:center;
  gap:12px;
  min-height:56px;
  padding:8px 18px 8px 22px;
  border-radius:999px;
  font-size:15px;
  font-weight:700;
  line-height:1.4;
  color:var(--white);
  background:var(--green);
}
.btn:hover{ color:var(--white); background:var(--green-dark); }
.btn--red{ background:var(--red); }
.btn--red:hover{ background:var(--red-dark); }
.btn--dark{ background:var(--ink); }
.btn--dark:hover{ background:#000; }
.btn__label{ flex:1 1 auto; }
.btn__icon{ flex:none; width:26px; height:26px; }
.btn__icon svg{ width:100%; height:100%; }
/* 右端の丸い矢印 */
.btn__arrow{
  flex:none;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--white);
  margin-left:auto;
}
.btn__arrow svg{ width:10px; height:10px; }
.btn--green .btn__arrow svg{ stroke:var(--green); }
.btn--red .btn__arrow svg{ stroke:var(--red); }
.btn--dark .btn__arrow svg{ stroke:var(--ink); }

/* =========================================================
   4. ヘッダー
   ========================================================= */
.site-header{
  background:var(--white);
  position:relative;
  z-index:20;
}
.site-header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:12px 32px;
}

.site-logo{ display:block; line-height:1.3; }
.site-logo:hover{ color:var(--ink); opacity:.8; }
.site-logo__company{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
}
.site-logo__name{
  display:block;
  font-size:24px;
  font-weight:700;
  letter-spacing:.01em;
}
.site-logo__name em{ font-style:normal; color:var(--green); }

.site-header__contact{
  display:flex;
  align-items:center;
  gap:22px;
}
.header-tel{ display:flex; align-items:center; gap:10px; }
.header-tel:hover{ color:var(--ink); }
.header-tel__icon{
  flex:none;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--green);
}
.header-tel__icon svg{ width:20px; height:20px; fill:var(--white); }
.header-tel__num{
  display:block;
  font-size:30px;
  font-weight:700;
  line-height:1.1;
  letter-spacing:.01em;
}
.header-tel__note{
  display:block;
  font-size:11px;
  line-height:1.6;
}
.header-cta{ min-height:52px; }

/* SPメニュー開閉ボタン */
.nav-toggle{
  display:none;
  width:44px;
  height:44px;
  position:relative;
}
.nav-toggle span{
  position:absolute;
  left:11px;
  width:22px;
  height:2px;
  background:var(--ink);
  transition:transform .25s, opacity .25s;
}
.nav-toggle span:nth-child(1){ top:15px; }
.nav-toggle span:nth-child(2){ top:21px; }
.nav-toggle span:nth-child(3){ top:27px; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* グローバルナビ */
.gnav{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.gnav__list{
  display:flex;
  padding:0 32px;
}
.gnav__item{
  flex:1 1 0;
  position:relative;
}
.gnav__item::before,
.gnav__item:last-child::after{
  content:"";
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:1px;
  height:18px;
  background:var(--line);
}
.gnav__item::before{ left:0; }
.gnav__item:last-child::after{ right:0; }
.gnav__link{
  display:flex;
  align-items:center;
  justify-content:center;
  height:48px;
  padding:0 6px;
  font-size:15px;
  font-weight:700;
  text-align:center;
}
.gnav__link:hover,
.gnav__item.is-current .gnav__link{ color:var(--green); }

/* =========================================================
   5. 下層ページヘッダー
   ========================================================= */
.page-header{
  position:relative;
  display:grid;
  place-items:center;
  min-height:250px;
  overflow:hidden;
}
.page-header__media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.page-header__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--green);
  opacity:.88;
}
.page-header__title{
  position:relative;
  padding:40px 24px;
  font-size:34px;
  font-weight:700;
  letter-spacing:.12em;
  color:var(--white);
  text-align:center;
}

/* =========================================================
   6. 本文エリア（白カード）
   ========================================================= */
.site-main{
  padding:60px 0 80px;
  background:var(--gray-bg);
}
.page-card{
  background:var(--white);
  border-radius:8px;
  box-shadow:0 2px 12px rgba(0,0,0,.05);
  padding:70px 40px 80px;
}
.page-card__inner{
  max-width:800px;
  margin-inline:auto;
}
.page-card__note{
  padding:60px 0;
  color:#999;
  font-size:14px;
  text-align:center;
  border:1px dashed var(--line);
}

/* =========================================================
   7. パンくず
   ========================================================= */
.breadcrumb{
  background:var(--white);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.breadcrumb__list{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  padding:24px 0;
  font-size:13px;
  line-height:1.6;
}
.breadcrumb__item{ display:flex; align-items:center; gap:8px; }
.breadcrumb__item + .breadcrumb__item::before{
  content:"";
  width:6px;
  height:6px;
  border-top:1.5px solid #B5B5B5;
  border-right:1.5px solid #B5B5B5;
  transform:rotate(45deg);
}
.breadcrumb__home svg{ width:16px; height:16px; fill:var(--green); }

/* =========================================================
   8. ダークカード2枚
   ========================================================= */
.contact-cards{ padding:110px 0 0; background:var(--white); }
.contact-cards__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
}
.contact-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:38px 30px 42px;
  border-radius:6px;
  background:var(--ink-card);
  color:var(--white);
  text-align:center;
}
.contact-card__title{
  font-size:23px;
  font-weight:700;
  letter-spacing:.02em;
}
.contact-card__text{
  margin-top:18px;
  font-size:14px;
  line-height:2;
}
.contact-card .btn{
  margin-top:26px;
  min-width:280px;
}

/* =========================================================
   9. お困りごと相談室
   ========================================================= */
.advisor{ padding:44px 0 120px; background:var(--white); }
.advisor__box{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:45px;
  padding:30px 40px 34px;
  border-radius:10px;
  background:var(--green);
  color:var(--white);
}
.advisor__photo{
  width:100%;
  aspect-ratio:5/6;
  border:3px solid var(--white);
  border-radius:2px;
}
.advisor__name{
  margin-top:12px;
  font-size:13px;
  font-weight:700;
  text-align:center;
  letter-spacing:.02em;
  white-space:nowrap;
}
.advisor__label{
  position:relative;
  display:block;
  padding:10px 20px;
  border-radius:6px;
  background:var(--yellow);
  color:var(--ink);
  font-size:22px;
  font-weight:700;
  letter-spacing:.28em;
  text-align:center;
}
.advisor__label::after{
  content:"";
  position:absolute;
  left:56px;
  bottom:-9px;
  border-left:9px solid transparent;
  border-right:9px solid transparent;
  border-top:10px solid var(--yellow);
}
.advisor__text{
  margin-top:22px;
  font-size:15px;
  font-weight:700;
  line-height:2;
}
.advisor__text mark{
  padding:2px 4px;
  background:var(--yellow);
  color:var(--ink);
}
.advisor__btns{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-top:22px;
}
.advisor__btns .btn{ flex:1 1 260px; }
.advisor-tel{
  gap:14px;
  padding:6px 18px 6px 8px;
  background:var(--ink);
}
.advisor-tel:hover{ background:#000; }
.advisor-tel__icon{
  flex:none;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--white);
}
.advisor-tel__icon svg{ width:22px; height:22px; fill:var(--ink); }
.advisor-tel__num{
  display:block;
  font-size:24px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.01em;
}
.advisor-tel__note{
  display:block;
  font-size:11px;
  font-weight:400;
  line-height:1.5;
  white-space:nowrap;
}

/* =========================================================
   10. フッター
   ========================================================= */
.site-footer{
  padding-top:90px; /* ダークカードまでの余白。margin-topだと相殺で背景ごと下がるためpaddingで持つ */
  background:var(--ink);
  color:var(--white);
}
.footer-promise{
  position:relative;
  padding:40px 46px 44px;
  border-radius:10px;
  background:var(--ink-card);
}
.footer-promise__list{
  max-width:640px;
  display:grid;
  gap:22px;
}
.footer-promise__item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  font-size:17px;
  font-weight:700;
  letter-spacing:.04em;
}
.footer-promise__item svg{
  flex:none;
  width:18px;
  height:18px;
  margin-top:6px;
  stroke:var(--yellow);
}
.footer-promise__item span{
  padding-bottom:6px;
  border-bottom:2px dashed rgba(255,255,255,.5);
}
.footer-promise__photo{
  position:absolute;
  right:22px;
  bottom:0;
  width:180px;
  height:calc(100% + 34px);
  background:var(--gray-ph);
  border-radius:4px;
}

.footer-info{
  padding:60px 24px 0;
  text-align:center;
}
.footer-info__lead{ font-size:15px; font-weight:700; letter-spacing:.06em; }
.footer-info__company{
  margin-top:6px;
  font-size:32px;
  font-weight:700;
  letter-spacing:.06em;
}
.footer-info__tel{
  margin-top:16px;
  font-size:16px;
  letter-spacing:.04em;
}
.footer-info__hours{ margin-top:2px; font-size:13px; }

.footer-banners{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  max-width:1200px;
  padding:55px 24px 60px;
}
.footer-banners__item{ display:block; }
.footer-banners__item .ph{
  width:100%;
  aspect-ratio:370/100;
}

.footer-copyright{
  padding:18px 24px;
  border-top:1px solid rgba(255,255,255,.14);
  font-size:13px;
  letter-spacing:.06em;
  color:#9A9A9A;
  text-align:center;
}

/* =========================================================
   11. レスポンシブ
   ========================================================= */
@media screen and (max-width:1100px){
  .site-logo__name{ font-size:20px; }
  .header-tel__num{ font-size:24px; }
  .gnav__link{ font-size:13px; }
  .gnav__list{ padding:0 16px; }
}

@media screen and (max-width:900px){
  .site-header__inner{ padding:10px 16px; }
  .site-logo__company{ font-size:10px; }
  .site-logo__name{ font-size:17px; line-height:1.25; }
  .header-tel__body,
  .header-cta{ display:none; }
  .nav-toggle{ display:block; }

  .gnav{
    display:none;
    border-bottom:0;
  }
  .gnav.is-open{ display:block; }
  .gnav__list{ display:block; padding:0; }
  .gnav__item{ border-bottom:1px solid var(--line); }
  .gnav__item::before,
  .gnav__item:last-child::after{ display:none; }
  .gnav__link{
    justify-content:flex-start;
    height:auto;
    padding:16px 20px;
    font-size:15px;
  }

  .page-header{ min-height:160px; }
  .page-header__title{ padding:28px 20px; font-size:22px; letter-spacing:.08em; }

  .site-main{ padding:32px 0 44px; }
  .container{ padding-inline:16px; }
  .page-card{ padding:36px 20px 44px; border-radius:6px; }

  .contact-cards{ padding-top:44px; }
  .contact-cards__grid{ grid-template-columns:1fr; gap:20px; }
  .contact-card__title{ font-size:20px; }
  .contact-card .btn{ min-width:0; width:100%; }

  .advisor{ padding:24px 0 50px; }
  .advisor__box{ grid-template-columns:1fr; gap:20px; padding:24px 20px 28px; }
  .advisor__photo{ max-width:180px; margin-inline:auto; }
  .advisor__label{ font-size:18px; letter-spacing:.12em; }
  .advisor__label::after{ left:50%; margin-left:-9px; }
  .advisor__text{ font-size:14px; }
  .advisor__name{ white-space:normal; }
  .advisor-tel__note{ white-space:normal; }
  .advisor__btns .btn{ flex:1 1 100%; }

  .site-footer{ padding-top:36px; }
  .footer-promise{ padding:26px 20px 150px; }
  .footer-promise__item{ font-size:14px; }
  .footer-promise__item svg{ margin-top:4px; }
  .footer-promise__photo{
    right:50%;
    transform:translateX(50%);
    width:130px;
    height:150px;
  }
  .footer-info{ padding-top:34px; }
  .footer-info__company{ font-size:22px; }
  .footer-info__tel{ font-size:14px; }
  .footer-banners{ grid-template-columns:1fr; gap:14px; padding:30px 16px 40px; }
  .footer-copyright{ font-size:11px; }
}

@media screen and (max-width:374px){
  .site-logo__name{ font-size:15px; }
}

/* =========================================================
   12. 本文コンポーネント（固定ページ共通）
   .content の中に見出し・本文・箇条書きを流し込む
   ========================================================= */
.content{ font-size:16px; line-height:1.9; }
.content > * + *{ margin-top:26px; }

/* リード見出し（ページ内の大タイトル） */
.content__lead-title{
  font-size:24px;
  font-weight:700;
  line-height:1.7;
  letter-spacing:.02em;
}

/* 見出しA：薄グレー地＋緑の左バー（WordPressのエディタでは「見出し3」） */
.content__heading-a,
.content h3{
  margin-top:70px;
  padding:22px 30px;
  border-left:6px solid var(--green);
  background:var(--gray-bg);
  font-size:22px;
  font-weight:700;
  line-height:1.5;
}

/* 見出しB：黒帯＋白抜き（WordPressのエディタでは「見出し4」） */
.content__heading-b,
.content h4{
  margin-top:70px;
  padding:16px 24px;
  background:var(--ink);
  color:var(--white);
  font-size:21px;
  font-weight:700;
  line-height:1.5;
}

/* 見出し直後は詰める */
.content__heading-a + *,
.content__heading-b + *,
.content h3 + *,
.content h4 + *{ margin-top:24px; }

/* 本文 */
.content p{ font-size:16px; line-height:1.9; }

/* 箇条書き（・） */
.content__list > li{
  position:relative;
  padding-left:1.1em;
  line-height:2;
}
.content__list > li::before{
  content:"・";
  position:absolute;
  left:0;
}

/* 赤太字強調 */
.content .is-red{ color:var(--red); font-weight:700; }

/* 本文中の画像 */
.content__figure{
  width:100%;
  aspect-ratio:16/9;
  border-radius:4px;
}

/* PDFダウンロードボタン（新規パーツ） */
.pdf-dl{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:28px;
  align-items:center;
  margin-top:40px;
  padding:26px 30px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--white);
}
.pdf-dl__thumb{
  width:100%;
  aspect-ratio:210/297;
  border:1px solid var(--line);
  border-radius:2px;
}
.pdf-dl__title{
  font-size:18px;
  font-weight:700;
  line-height:1.6;
}
.pdf-dl__note{
  margin-top:8px;
  font-size:13px;
  line-height:1.8;
  color:#777;
}
.pdf-dl .btn{ margin-top:18px; min-width:300px; }
.pdf-dl__icon{ flex:none; width:24px; height:24px; }
.pdf-dl__icon svg{ width:100%; height:100%; }

@media screen and (max-width:900px){
  .content{ font-size:15px; }
  .content > * + *{ margin-top:20px; }
  .content__lead-title{ font-size:19px; }
  .content__heading-a,
  .content h3{
    margin-top:44px;
    padding:14px 16px;
    border-left-width:5px;
    font-size:17px;
  }
  .content__heading-b,
  .content h4{
    margin-top:44px;
    padding:12px 16px;
    font-size:17px;
  }
  .content p{ font-size:15px; }
  .pdf-dl{
    grid-template-columns:1fr;
    gap:18px;
    padding:20px;
  }
  .pdf-dl__thumb{ max-width:180px; margin-inline:auto; }
  .pdf-dl .btn{ min-width:0; width:100%; }
}

/* =========================================================
   13. セクション共通（トップページなど）
   ========================================================= */
.section{ padding:80px 0; }
.section--gray{ background:var(--gray-bg); }
.section--green{ background:var(--green); color:var(--white); }
.section__title{
  font-size:34px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.1em;
  text-align:center;
}
.section__lead{
  margin-top:22px;
  font-size:15px;
  line-height:2;
  text-align:center;
}
.section__foot{ margin-top:50px; text-align:center; }
.section__foot .btn{ min-width:300px; justify-content:center; }

/* =========================================================
   14. メインビジュアル（トップ）
   ========================================================= */
.mv{ padding:24px 0 0; }
.mv__inner{
  position:relative;
  display:flex;
  align-items:center;
  min-height:600px;
  padding:60px 0;
  border-radius:10px;
  overflow:hidden;
}
.mv__media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.mv__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,0) 70%);
}
.mv__body{
  position:relative;
  padding:0 60px;
  color:var(--white);
}
.mv__badge{
  display:inline-block;
  padding:9px 24px;
  border-radius:999px;
  background:var(--white);
  color:var(--ink);
  font-size:15px;
  font-weight:700;
}
.mv__sub{
  margin-top:18px;
  font-size:28px;
  font-weight:700;
  letter-spacing:.02em;
}
.mv__title{
  margin-top:4px;
  font-size:46px;
  font-weight:700;
  line-height:1.3;
  letter-spacing:.01em;
}
.mv__points{ margin-top:34px; max-width:440px; }
.mv__point{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px dashed rgba(255,255,255,.6);
}
.mv__point + .mv__point{ margin-top:18px; }
.mv__point svg{
  flex:none;
  width:17px;
  height:17px;
  margin-top:6px;
  stroke:var(--white);
}
.mv__point span{ font-size:16px; font-weight:700; }
.mv__cta{ margin-top:34px; }
.mv__cta .btn{ min-height:62px; padding-inline:34px 26px; font-size:17px; }

/* =========================================================
   15. 3カラムの特徴カード
   ========================================================= */
.feature-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:40px;
  margin-top:50px;
}
.feature-card__img{
  width:100%;
  aspect-ratio:16/11;
  border:2px solid var(--green);
  border-radius:10px;
  background-clip:padding-box;
}
.feature-card__title{
  margin-top:22px;
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
  color:var(--green);
  font-size:18px;
  font-weight:700;
  line-height:1.7;
  text-align:center;
}
.feature-card__text{
  margin-top:16px;
  font-size:14px;
  line-height:1.9;
}

/* =========================================================
   16. 検索ボックス（.sampler-search＝先方が流し込む枠）
   ========================================================= */
.sampler-search__head{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:16px;
}
.sampler-search__title{
  font-size:22px;
  font-weight:700;
  letter-spacing:.04em;
}
.sampler-search__note{ font-size:12px; color:#777; }
.sampler-search__row{
  display:flex;
  margin-top:22px;
  border-radius:8px;
  overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.sampler-search__input{
  flex:1 1 auto;
  min-width:0;
  height:62px;
  padding:0 24px;
  border:1px solid var(--line);
  border-right:0;
  border-radius:8px 0 0 8px;
  background:var(--white);
  font-family:inherit;
  font-size:16px;
  color:var(--ink);
}
.sampler-search__input::placeholder{ color:#AAA; }
.sampler-search__input:focus{ outline:2px solid var(--green); outline-offset:-2px; }
.sampler-search__submit{
  flex:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:200px;
  height:62px;
  border-radius:0 8px 8px 0;
  background:var(--red);
  color:var(--white);
  font-size:16px;
  font-weight:700;
}
.sampler-search__submit:hover{ background:var(--red-dark); color:var(--white); }
.sampler-search__submit svg{ width:18px; height:18px; stroke:var(--white); }

/* =========================================================
   17. サンプラー等の種類（アイコンカードのグリッド）
   ========================================================= */
.type-cards{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
  margin-top:50px;
}
.type-card{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:24px;
  padding:22px;
  border-radius:8px;
  background:var(--white);
  color:var(--ink);
}
.type-card__body{ display:block; }
.type-card__thumb{
  width:100%;
  aspect-ratio:7/6;
  border-radius:4px;
}
.type-card__title{
  display:block;
  color:var(--green);
  font-size:16px;
  font-weight:700;
}
.type-card__text{
  display:block;
  margin-top:10px;
  font-size:13px;
  line-height:1.9;
}
.type-card__equip{
  display:block;
  margin-top:12px;
  padding-top:12px;
  border-top:1px dashed var(--line);
  font-size:12px;
  line-height:1.8;
}
.type-card__equip span{
  display:inline-block;
  margin-right:8px;
  padding:1px 8px;
  border-radius:3px;
  background:var(--gray-bg);
  color:var(--green);
  font-weight:700;
}

/* =========================================================
   18. お知らせカード（3列グリッド）
   ========================================================= */
.news-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  margin-top:50px;
}
.news-card{
  display:block;
  border-radius:8px;
  background:var(--white);
  box-shadow:0 2px 10px rgba(0,0,0,.07);
  overflow:hidden;
  color:var(--ink);
}
.news-card:hover{ color:var(--ink); opacity:.9; }
.news-card__thumb{
  width:100%;
  aspect-ratio:16/10;
}
.news-card__body{ display:block; padding:18px 20px 20px; }
.news-card__title{
  font-size:15px;
  font-weight:700;
  line-height:1.6;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.news-card__meta{
  display:flex;
  gap:18px;
  margin-top:14px;
  font-size:12px;
  color:#888;
}

/* ページネーション */
.pagination{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:50px;
}
.pagination__item{
  display:grid;
  place-items:center;
  min-width:42px;
  height:42px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--white);
  font-size:14px;
  font-weight:700;
}
.pagination__item:hover{ border-color:var(--green); color:var(--green); }
.pagination__item.is-current{
  border-color:var(--green);
  background:var(--green);
  color:var(--white);
}

/* =========================================================
   19. 記事詳細（本文＋右サイドバー）
   ========================================================= */
.site-main--white{ background:var(--white); }
.article-layout{
  display:grid;
  grid-template-columns:1fr 285px;
  gap:90px;
  align-items:start;
}
.article__head{
  display:flex;
  align-items:center;
  gap:16px;
}
.article__cat{
  display:inline-block;
  padding:4px 14px;
  border-radius:4px;
  background:var(--green);
  color:var(--white);
  font-size:12px;
  font-weight:700;
}
.article__date{ font-size:13px; font-weight:700; }
.article__title{
  margin-top:16px;
  font-size:22px;
  font-weight:700;
  line-height:1.7;
}
.article .content{ margin-top:28px; }

.sidebar__title{
  padding:12px 16px;
  border-radius:6px 6px 0 0;
  background:var(--green);
  color:var(--white);
  font-size:15px;
  font-weight:700;
  text-align:center;
}
.sidebar__link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:14px 8px;
  border-bottom:1px solid var(--line);
  font-size:14px;
}
.sidebar__link svg{ flex:none; width:8px; height:12px; stroke:#B5B5B5; }

/* =========================================================
   20. 五十音インデックス／単語集
   ========================================================= */
.kana-index{
  display:grid;
  gap:10px;
  padding:24px;
  border-radius:8px;
  background:var(--gray-bg);
}
.kana-index__row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.kana-index__btn{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--white);
  font-size:16px;
  font-weight:700;
}
.kana-index__btn:hover{ border-color:var(--green); background:var(--green); color:var(--white); }
.kana-index__btn.is-disabled{
  color:#BBB;
  background:#FAFAFA;
  pointer-events:none;
}
.glossary-group{ margin-top:50px; }
.glossary-group__label{
  padding:10px 18px;
  border-left:6px solid var(--green);
  background:var(--gray-bg);
  font-size:20px;
  font-weight:700;
}
.glossary-item{
  padding:22px 4px;
  border-bottom:1px solid var(--line);
}
.glossary-item__term{
  font-size:17px;
  font-weight:700;
}
.glossary-item__desc{
  margin-top:8px;
  font-size:15px;
  line-height:1.9;
}

/* =========================================================
   21. 会社案内テーブル
   ========================================================= */
.table-basic{
  width:100%;
  border-collapse:collapse;
  font-size:15px;
}
.table-basic th,
.table-basic td{
  padding:18px 20px;
  border-bottom:1px solid var(--line);
  text-align:left;
  line-height:1.8;
  vertical-align:top;
}
.table-basic th{
  width:210px;
  background:var(--gray-bg);
  font-weight:700;
}
/* セルの中の箇条書き */
.table-basic .content__list > li{
  font-size:15px;
  line-height:1.9;
}
.table-note{
  font-size:13px;
  color:#777;
}

/* =========================================================
   22. フォーム（入力・確認・完了）
   ========================================================= */
.form-steps{
  display:flex;
  gap:8px;
  margin-top:34px;
  margin-bottom:44px;
}
.form-step{
  flex:1 1 0;
  padding:12px 6px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--white);
  font-size:14px;
  font-weight:700;
  text-align:center;
  color:#AAA;
}
.form-step.is-current{
  border-color:var(--green);
  background:var(--green);
  color:var(--white);
}
.form-step.is-done{ color:var(--green); border-color:var(--green); }

.form__row{
  display:grid;
  grid-template-columns:230px 1fr;
  gap:24px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.form__row:first-of-type{ border-top:1px solid var(--line); }
.form__label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding-top:12px;
  font-size:15px;
  font-weight:700;
}
.form__req,
.form__any{
  flex:none;
  padding:2px 8px;
  border-radius:3px;
  font-size:11px;
  font-weight:700;
  color:var(--white);
}
.form__req{ background:var(--red); }
.form__any{ background:#999; }
.form-input,
.form-textarea,
.form-select{
  width:100%;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--white);
  font-family:inherit;
  font-size:15px;
  color:var(--ink);
  line-height:1.7;
}
.form-textarea{ min-height:170px; resize:vertical; }
.form-input:focus,
.form-textarea:focus,
.form-select:focus{ outline:2px solid var(--green); outline-offset:-2px; }
.form__note{ margin-top:8px; font-size:12px; color:#777; }
.form__value{ padding-top:12px; font-size:15px; line-height:1.9; }

/* 入力エラー */
.form__row.is-error .form-input,
.form__row.is-error .form-textarea,
.form__row.is-error .form-select{
  border-color:var(--red);
  background:#FFF6F4;
}
.form__error{
  margin-top:8px;
  font-size:13px;
  font-weight:700;
  color:var(--red);
}

.form__privacy{
  margin-top:34px;
  padding:24px;
  border-radius:6px;
  background:var(--gray-bg);
  font-size:14px;
  line-height:1.9;
}
.form__check{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-top:22px;
  font-size:15px;
  font-weight:700;
}
.form__actions{
  display:flex;
  justify-content:center;
  gap:16px;
  margin-top:40px;
}
.form__actions .btn{ min-width:280px; justify-content:center; }
.btn--ghost{
  background:var(--white);
  border:1px solid var(--line);
  color:var(--ink);
}
.btn--ghost:hover{ background:var(--gray-bg); color:var(--ink); }
.form-complete{
  padding:60px 20px;
  text-align:center;
}
.form-complete__title{
  font-size:26px;
  font-weight:700;
  color:var(--green);
}
.form-complete__text{
  margin-top:20px;
  font-size:15px;
  line-height:2;
}

/* =========================================================
   23. 検索結果（先方が出力を流し込む枠／クラス名は変更しない）
   ========================================================= */
.shortcode-slot{
  padding:30px;
  border:2px dashed var(--line);
  border-radius:6px;
  background:var(--gray-bg);
  font-size:13px;
  line-height:1.9;
  color:#777;
  text-align:center;
}
.shortcode-slot code{
  display:inline-block;
  margin-bottom:6px;
  padding:4px 10px;
  border-radius:3px;
  background:var(--white);
  border:1px solid var(--line);
  font-size:14px;
  color:var(--ink);
}

.result-block + .result-block{ margin-top:60px; }
.result-block__title{
  margin-bottom:20px;
  padding:16px 24px;
  background:var(--ink);
  color:var(--white);
  font-size:20px;
  font-weight:700;
}

/* 検索結果①：規制濃度情報 */
.sampler-result{
  border-top:1px solid var(--line);
}
.sampler-result__row{
  display:grid;
  grid-template-columns:300px 1fr 120px;
  border-bottom:1px solid var(--line);
}
.sampler-result__row.is-empty{ display:none; }
.sampler-result__label,
.sampler-result__value,
.sampler-result__unit{
  padding:15px 20px;
  font-size:15px;
  line-height:1.7;
}
.sampler-result__label{
  background:var(--gray-bg);
  font-weight:700;
}
.sampler-result__unit{
  border-left:1px solid var(--line);
  color:#666;
}

/* 該当なし */
.sampler-empty{
  padding:44px 24px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--gray-bg);
  text-align:center;
}
.sampler-empty__title{
  font-size:19px;
  font-weight:700;
  color:var(--red);
}
.sampler-empty__text{
  margin-top:14px;
  font-size:14px;
  line-height:1.9;
}

/* 検索結果②：機材情報（枠①〜⑨） */
.equip-list{
  display:grid;
  gap:24px;
}
.equip-frame{
  border:1px solid var(--line);
  border-radius:6px;
  overflow:hidden;
}
.equip-frame.is-empty{ display:none; }
.equip-frame__method{
  padding:14px 20px;
  border-left:6px solid var(--green);
  background:var(--gray-bg);
  font-size:17px;
  font-weight:700;
}
.equip-frame__inner{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:24px;
  padding:22px 20px;
}
.equip-frame__illust{
  width:100%;
  aspect-ratio:4/3;
  border-radius:4px;
}
.equip-item{
  display:grid;
  grid-template-columns:150px 1fr 160px;
  gap:16px;
  align-items:center;
  padding:14px 0;
  border-bottom:1px dashed var(--line);
  font-size:15px;
}
.equip-item:last-child{ border-bottom:0; padding-bottom:0; }
.equip-item:first-child{ padding-top:0; }
.equip-item__code{
  font-weight:700;
  color:var(--green);
}
.equip-item__doc{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  text-decoration:underline;
}
.equip-item__doc svg{ width:14px; height:14px; stroke:var(--ink); }

/* =========================================================
   24. 状態表示（エラー・お知らせ）／会員認証
   ========================================================= */
.notice{
  padding:18px 22px;
  border-radius:6px;
  background:var(--gray-bg);
  border-left:6px solid var(--green);
  font-size:15px;
  line-height:1.8;
}
.notice--error{
  border-left-color:var(--red);
  background:#FFF6F4;
  color:var(--red);
  font-weight:700;
}
.notice + *{ margin-top:30px; }

.auth-box{
  max-width:520px;
  margin:0 auto;
  padding:36px 34px 40px;
  border:1px solid var(--line);
  border-radius:8px;
}
.auth-box__title{
  font-size:20px;
  font-weight:700;
  text-align:center;
}
.auth-box__text{
  margin-top:14px;
  font-size:14px;
  line-height:1.9;
  text-align:center;
}
.auth-box .form__row{
  grid-template-columns:1fr;
  gap:8px;
  padding:16px 0;
}
.auth-box .form__label{ padding-top:0; }
.auth-box .form__actions{ margin-top:28px; }
.auth-box .form__actions .btn{ min-width:0; width:100%; }

/* =========================================================
   25. 図版（フロー図・役割分担図・スケジュール）
   緑・黒・グレーの3色。SPでは縦積み
   ========================================================= */
.figure-block{ margin-top:40px; }
.figure-block__caption{
  margin-top:14px;
  font-size:13px;
  color:#777;
  text-align:center;
}

/* フロー図 */
.figflow{
  display:flex;
  align-items:stretch;
  gap:0;
}
.figflow__step{
  flex:1 1 0;
  padding:18px 10px;
  border:2px solid var(--ink);
  border-radius:6px;
  background:var(--white);
  text-align:center;
}
.figflow__step:nth-child(4n+1){
  border-color:var(--green);
  background:var(--green);
  color:var(--white);
}
.figflow__num{
  display:block;
  font-size:12px;
  font-weight:700;
  letter-spacing:.1em;
  opacity:.75;
}
.figflow__label{
  display:block;
  margin-top:8px;
  font-size:14px;
  font-weight:700;
  line-height:1.6;
}
.figflow__arrow{
  flex:none;
  display:grid;
  place-items:center;
  width:26px;
}
.figflow__arrow svg{ width:16px; height:16px; stroke:#B5B5B5; }

/* 役割分担図 */
.figroles{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.figroles__col{
  border:2px solid var(--line);
  border-radius:8px;
  overflow:hidden;
}
.figroles__col--ours{ border-color:var(--green); }
.figroles__head{
  padding:14px 18px;
  background:var(--gray-bg);
  font-size:16px;
  font-weight:700;
  text-align:center;
}
.figroles__col--ours .figroles__head{ background:var(--green); color:var(--white); }
.figroles__body{ padding:20px 22px; }
.figroles__body li{
  position:relative;
  padding-left:1.3em;
  font-size:14px;
  line-height:2;
}
.figroles__body li::before{
  content:"";
  position:absolute;
  left:0;
  top:.85em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--ink);
}
.figroles__col--ours .figroles__body li::before{ background:var(--green); }

/* スケジュール図（GHS拡大） */
.figsched{
  display:grid;
  gap:12px;
}
.figsched__row{
  display:grid;
  grid-template-columns:190px 1fr;
  gap:16px;
  align-items:center;
}
.figsched__label{
  font-size:14px;
  font-weight:700;
  line-height:1.5;
}
.figsched__bar{
  position:relative;
  height:44px;
  border-radius:4px;
  background:var(--gray-bg);
  overflow:hidden;
}
.figsched__fill{
  display:flex;
  align-items:center;
  height:100%;
  padding:0 16px;
  border-radius:4px;
  background:var(--green);
  color:var(--white);
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
.figsched__fill--dark{ background:var(--ink); }
.figsched__fill--gray{ background:#B5B5B5; }

/* =========================================================
   26. レスポンシブ（13〜25のパーツ）
   ========================================================= */
@media screen and (max-width:1100px){
  .article-layout{ gap:40px; grid-template-columns:1fr 260px; }
  .mv__title{ font-size:38px; }
}

@media screen and (max-width:900px){
  .section{ padding:44px 0; }
  .section__title{ font-size:21px; letter-spacing:.06em; }
  .section__lead{ margin-top:16px; font-size:14px; }
  .section__foot{ margin-top:30px; }
  .section__foot .btn{ min-width:0; width:100%; }

  .mv{ padding-top:0; }
  .mv__inner{ min-height:0; padding:34px 0; border-radius:0; }
  .mv__body{ padding:0 20px; }
  .mv__badge{ font-size:12px; padding:7px 16px; }
  .mv__sub{ margin-top:14px; font-size:17px; }
  .mv__title{ font-size:24px; }
  .mv__points{ margin-top:22px; }
  .mv__point span{ font-size:14px; }
  .mv__cta .btn{ width:100%; min-height:56px; font-size:15px; }

  .feature-cards{ grid-template-columns:1fr; gap:32px; margin-top:30px; }
  .feature-card__title{ margin-top:16px; font-size:16px; }

  .sampler-search__title{ font-size:18px; }
  .sampler-search__row{ display:block; box-shadow:none; }
  .sampler-search__input{
    width:100%;
    height:54px;
    border-right:1px solid var(--line);
    border-radius:6px;
  }
  .sampler-search__submit{
    width:100%;
    height:54px;
    margin-top:12px;
    border-radius:6px;
  }

  .type-cards{ grid-template-columns:1fr; gap:16px; margin-top:30px; }
  .type-card{ grid-template-columns:100px 1fr; gap:16px; padding:16px; }
  .type-card__text{ font-size:12px; }
  .type-card__equip{ margin-top:10px; padding-top:10px; font-size:11px; }

  .news-cards{ grid-template-columns:1fr; gap:20px; margin-top:30px; }
  .pagination{ margin-top:30px; flex-wrap:wrap; }

  .article-layout{ grid-template-columns:1fr; gap:50px; }
  .article__title{ font-size:19px; }

  .kana-index{ padding:16px; }
  .kana-index__btn{ width:38px; height:38px; font-size:14px; }
  .glossary-group__label{ font-size:17px; }

  .table-basic{ font-size:14px; }
  .table-basic th,
  .table-basic td{ display:block; width:auto; padding:12px 14px; }
  .table-basic th{ border-bottom:0; }

  .form-steps{ margin-bottom:30px; }
  .form-step{ font-size:12px; padding:10px 4px; }
  .form__row{ grid-template-columns:1fr; gap:10px; padding:18px 0; }
  .form__label{ padding-top:0; font-size:14px; }
  .form__value{ padding-top:0; }
  .form__actions{ flex-direction:column-reverse; margin-top:30px; }
  .form__actions .btn{ min-width:0; width:100%; }

  .result-block__title{ padding:12px 16px; font-size:17px; }
  .sampler-result__row{ grid-template-columns:1fr; }
  .sampler-result__label,
  .sampler-result__value,
  .sampler-result__unit{ padding:10px 14px; font-size:14px; }
  .sampler-result__value{ padding-bottom:0; }
  .sampler-result__unit{ border-left:0; padding-top:2px; }

  .equip-frame__inner{ grid-template-columns:1fr; gap:16px; }
  .equip-frame__illust{ max-width:200px; }
  .equip-frame__method{ font-size:15px; padding:12px 14px; border-left-width:5px; }
  .equip-item{ grid-template-columns:1fr; gap:4px; font-size:14px; }

  .figflow{ display:grid; grid-template-columns:1fr; gap:0; }
  .figflow__arrow{ width:100%; height:34px; }
  .figflow__arrow svg{ transform:rotate(90deg); }
  .figroles{ grid-template-columns:1fr; gap:16px; }
  .figsched__row{ grid-template-columns:1fr; gap:6px; }
  .figsched__bar{ height:38px; }
}

/* =========================================================
   27. ご挨拶（画像＋本文の2カラム）
   ========================================================= */
.greeting{
  display:grid;
  grid-template-columns:340px 1fr;
  gap:50px;
  align-items:start;
  margin-top:50px;
  padding:50px;
  border-radius:8px;
  background:var(--white);
  box-shadow:0 2px 12px rgba(0,0,0,.05);
}
.greeting__media{
  width:100%;
  aspect-ratio:3/4;
  border-radius:6px;
}
.greeting__caption{
  margin-top:12px;
  font-size:13px;
  line-height:1.7;
  text-align:center;
  color:#777;
}
.greeting__body p{
  font-size:16px;
  line-height:2;
}
.greeting__body p + p{ margin-top:26px; }

@media screen and (max-width:900px){
  .greeting{
    grid-template-columns:1fr;
    gap:24px;
    margin-top:30px;
    padding:24px 20px 28px;
  }
  .greeting__media{
    max-width:220px;
    margin-inline:auto;
  }
  .greeting__body p{ font-size:15px; }
  .greeting__body p + p{ margin-top:20px; }
}

/* =========================================================
   28. 実画像が入ったときの調整（プレースホルダは .ph のまま）
   ========================================================= */
img.news-card__thumb,
img.type-card__thumb,
img.feature-card__img,
img.pdf-dl__thumb,
img.advisor__photo,
img.greeting__media,
img.equip-frame__illust{
  object-fit:cover;
}
img.content__figure{ aspect-ratio:auto; height:auto; }

/* フッターの人物写真は切り抜き（背景透過）。カードの中に、下ぞろえで置く */
img.footer-promise__photo{
  right:15px;
  bottom:0;
  width:auto;
  height:82%;
  background:transparent;
}

@media screen and (max-width:900px){
  img.footer-promise__photo{
    right:50%;
    width:150px;
    height:auto;
  }
}
.footer-banners__item img{ width:100%; height:auto; border-radius:2px; }

/* =========================================================
   28. WordPress固有（投稿本文の装飾・Contact Form 7）
   ここから下は静的サンプルには無い、WordPress側で必要な分
   ========================================================= */
.alignleft{ float:left; margin:0 24px 20px 0; }
.alignright{ float:right; margin:0 0 20px 24px; }
.aligncenter{ display:block; margin-inline:auto; }
.wp-caption{ max-width:100%; }
.wp-caption-text{ margin-top:8px; font-size:13px; color:#777; text-align:center; }
.content img{ max-width:100%; height:auto; border-radius:4px; }
/* 本文中のリンクだけ下線。ボタン・インデックス等のリンクには効かせない */
.content :is(p, li, td, th, dd) a{ color:var(--green); text-decoration:underline; }
.content :is(p, li, td, th, dd) a:hover{ color:var(--green-dark); }
.content a.btn,
.content a.btn:hover{ color:var(--white); text-decoration:none; }
.content strong{ font-weight:700; }
.content blockquote{
  margin:0;
  padding:20px 24px;
  border-left:6px solid var(--line);
  background:var(--gray-bg);
}
/* エディタで作った表（.table-basic を付けた表は既定の見た目を優先） */
.content table:not(.table-basic){
  width:100%;
  border-collapse:collapse;
  font-size:15px;
}
.content table:not(.table-basic) th,
.content table:not(.table-basic) td{
  padding:14px 16px;
  border:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}
.content table:not(.table-basic) th{ background:var(--gray-bg); font-weight:700; }
.screen-reader-text{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}

/* Contact Form 7（プラグインの出力にフォームの見た目を当てる） */
.wpcf7 form.wpcf7-form p{ margin:0; }
.wpcf7 .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance){
  width:100%;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--white);
  font-family:inherit;
  font-size:15px;
  color:var(--ink);
  line-height:1.7;
}
.wpcf7 textarea.wpcf7-form-control{ min-height:170px; resize:vertical; }
.wpcf7 .wpcf7-not-valid{ border-color:var(--red); background:#FFF6F4; }
.wpcf7 .wpcf7-not-valid-tip{
  margin-top:8px;
  font-size:13px;
  font-weight:700;
  color:var(--red);
}
.wpcf7 .wpcf7-response-output{
  margin:24px 0 0;
  padding:16px 20px;
  border:0;
  border-left:6px solid var(--red);
  border-radius:6px;
  background:#FFF6F4;
  font-size:14px;
  font-weight:700;
  color:var(--red);
}
.wpcf7 form.sent .wpcf7-response-output{
  border-left-color:var(--green);
  background:var(--gray-bg);
  color:var(--green);
}
.wpcf7 .wpcf7-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  min-width:280px;
  padding:8px 26px;
  border:0;
  border-radius:999px;
  background:var(--red);
  color:var(--white);
  font-family:inherit;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
}
.wpcf7 .wpcf7-submit:hover{ background:var(--red-dark); }
.wpcf7 .wpcf7-spinner{ display:block; margin:12px auto 0; }

@media screen and (max-width:900px){
  .wpcf7 .wpcf7-submit{ width:100%; min-width:0; }
  .alignleft,
  .alignright{ float:none; margin:0 0 20px; }
}

/* WordPressが出力するページ送り（the_posts_pagination） */
.navigation.pagination{ display:flex; justify-content:center; margin-top:50px; }
.navigation.pagination .nav-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.navigation.pagination .page-numbers{
  display:grid;
  place-items:center;
  min-width:42px;
  height:42px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:4px;
  background:var(--white);
  font-size:14px;
  font-weight:700;
  color:var(--ink);
}
.navigation.pagination a.page-numbers:hover{ border-color:var(--green); color:var(--green); }
.navigation.pagination .page-numbers.current{
  border-color:var(--green);
  background:var(--green);
  color:var(--white);
}
.navigation.pagination .page-numbers.dots{ border-color:transparent; background:transparent; }

/* カスタムロゴを使う場合 */
.site-logo .custom-logo{ max-height:56px; width:auto; }

@media screen and (max-width:900px){
  .navigation.pagination{ margin-top:30px; }
}
