/*
Theme Name: Nagomi2026
Description: A simple, mobile-friendly theme.
Version: 1.3
Author: ARTS DESIGN LAB
*/ :root {
  /* Text Color */
  --primary-color: #043c78; /*インディゴ indigo*/
  --accent-color: #00a1e9; /*シアン cyan*/
  --text-color: #111111;
  --link-color: #003f8e; /*インクブルー ink blue*/
  --hover-color: #00a3a7; /*カプリブルー capri blue*/
  /* Color */
  --border-color: #e0e0e0;
  --bg-white: #ffffff;
  --bg-green: #25b7c0;
  --bg-yellow: #ffedab;
  --bg-red: #c70067;
  --max-width: 1200px;
  --nav-height: 60px;
  /* Spacing */
  --spacing-xs: 0.5rem;
  --spacing-sm: 1rem;
  --spacing-md: 2rem;
  --spacing-lg: 3rem;
  --spacing-xl: 4rem;
  /* Transitions */
  --transition-standard: 0.3s ease;
  --transition: all 0.3s ease;
}
/* ---------------------------------------------------------------------
   Reset & Base Styles
----------------------------------------*/
*, *::before, *::after {
  box-sizing: border-box;
}
body {
  margin: 0;
  font-family: 'Noto Sans JP', sans-serif;
  color: var(--text-color);
  line-height: 1.6;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
  font-size: 16px;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
/* --- 基本設定 --- */
body {
  line-height: 1.6;
  color: #111;
  margin: 0;
  padding: 0;
}
/* --- 見出し (h1 - h6) --- */
/* bluebaseで設定。
*/
h1, h2, h3, h4, h5, h6 {
  color: #19448e; /* 紺色：視認性を高めるため濃い色を基本に */
  line-height: 1.3;
}
h2.entry-title {
  border-bottom: 1px solid #a9a9a9;
  padding-bottom: 0.5rem;
  text-align: center;
}
h3.in-item {
  border-bottom: 1px solid #a9a9a9;
  padding: 0 0 0.5rem 0;
  margin: 0.5rem 0 0.5rem 0;
  line-height: 1;
}
h2.line, h3.line, h4.line, h5.line {
  border-bottom: 1px solid #a9a9a9;
  padding-bottom: 0.5rem;
}
h2.center, h3.center, h4.center, h5.center {
  text-align: center;
}
/* --- 段落 (p) --- */
p {
  font-size: 1rem;
  margin-bottom: 1.2rem;
  word-wrap: break-word; /* 長い英単語のハミ出し防止 */
}
p.ti1 {
  text-indent: 1em;
}
p.memo {
  padding: 0;
  margin: 0.3em 0 1em 0;
  text-align: right;
}
/* --- リンク (a) --- */
a {
  color: #0095d9; /* 青：標準的なリンク色 */
  font-weight: 700;
}
a:hover {
  color: #89c3eb; /* 空色：ホバー時に明るくする */
}
/* --- 画像 (img) --- */
img {
  max-width: 100%; /* 親要素からはみ出さない */
  height: auto; /* アスペクト比を維持 */
  /*vertical-align: middle;*/
  border-radius: 3px; /* 少し角を丸くするとモダンに見えます */
}
/* --- スマホ特化の微調整 (必要に応じて) --- */
@media (max-width: 979px) {
  body {}
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.box-center {
  margin-right: auto;
  margin-left: auto;
}
.text-red {
  color: var(--bg-red);
}
.text-green {
  color: var(--bg-green);
}
.text-blue {
  color: var(--primary-color);
}
/* ---------------------------------------------------------------------
   Layout
----------------------------------------*/
.container {
  width: 100%;
	max-width: 1012px;
  margin: 0 auto;
  padding: 0 16px;
}
.site-content {
  display: block;
}
.main-content {
  width: 100%;
}
.sidebar {
  width: 100%;
  margin-top: 30px;
  /* Space between content and sidebar */
}
.contents-block {
  width: 100%;
  overflow: hiden;
}
.slim-container {
  width: 70%;
  margin: 0 auto;
}
/* ---------------------------------------------------------------------
   Header
----------------------------------------*/
.header-line {
  margin: 0;
  padding: 0;
}
.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 32px;
}
.nav-links {
  display: flex;
  gap: 18px;
  list-style: none;
  height: 14px;
}
.nav-links a {
	font-size: 0.9em;
}
.nav-links a:hover {
  color: var(--primary-color);
}
.facebook_marks::before,
.instagram_marks::before,
.line_marks::before,
.x_marks::before,
.mail_marks::before,
.right_marks::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
}
.facebook_marks::before {
  -webkit-mask-image: url("./svgimg/facebook_0866ff.svg");
  mask-image: url("./svgimg/facebook_0866ff.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: #0866ff; 
  vertical-align: bottom;
  margin-right: 6px;
}
.instagram_marks::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  -webkit-mask-image: url("./svgimg/instagram.svg");
  mask-image: url("./svgimg/instagram.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: #E1306C; 
  vertical-align: bottom;
  margin-right: 6px;
}
.line_marks::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  -webkit-mask-image: url("./svgimg/line_00c300.svg");
  mask-image: url("./svgimg/line_00c300.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: #00c300; /*#06C755*/
  vertical-align: bottom;
  margin-right: 6px;
}
.x_marks::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  -webkit-mask-image: url("./svgimg/x_000000.svg");
  mask-image: url("./svgimg/x_000000.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: #000000; 
  vertical-align: bottom;
  margin-right: 6px;
}
.mail_marks::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  -webkit-mask-image: url("./svgimg/envelope-solid-full.svg");
  mask-image: url("./svgimg/envelope-solid-full.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: #0095d9; 
  vertical-align: bottom;
  margin-right: 6px;
}
.right_marks::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  -webkit-mask-image: url("./svgimg/angle-right-solid-full.svg");
  mask-image: url("./svgimg/angle-right-solid-full.svg");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-color: #0095d9; 
  vertical-align: bottom;
  margin-right: 6px;
}
h1.site-title {
  font-size: 0.8em;
  line-height: 1.2;
  font-weight: bold;
  padding: 3px 0;
  margin: 0;
  text-align: left;
}
@media screen and (max-width: 767px) {
  .header-logo img {
    max-width: 80%;
    padding-right: 20%;
  }
}
/*-------------------------------------------------------------
PC-Navi
----------------------------------------*/
.global-nav-wrapper {
  background-color: #223a70;
  width: 100%;
  padding-top: 6px;
}
.global-nav {
  display: flex;
  justify-content: center;
  /* Center align menu items */
}
.global-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
}
.global-nav ul li {
  list-style: none;
  padding: 0;
  margin: 0;
}
.global-nav ul li a {
  color: #fff;
  display: block;
  padding: 11px 21px 16px 21px;
	margin-left: 1px;
	margin-right: 1px;
  text-decoration: none;
  position: relative;
}
.global-nav ul li a:hover {
  color: #223a70;
  background-color: #ffffff;
}
.global-nav ul li.current_page_item a {
  color: #223a70;
  background-color: #ffffff;
}
.global-nav ul li.current-page-ancestor a,
.single-members .global-nav ul li:nth-child(6) a {
  color: #223a70 !important;
  background-color: #ffffff !important;
}
.header-logo {
  padding-bottom: 16px;
  text-align: left;
}
/*-------------------------------------------------------------
Mobile-Navi
----------------------------------------*/
/* PC表示では全て隠す */
.menu-trigger, #mobile-nav, .nav-overlay {
  display: none;
}
@media screen and (max-width: 979px) {
  /* 0. PCメニューを非表示 */
  .global-nav-wrapper {
    display: none;
    /* Hidden by default on mobile, toggled via JS if needed, or structured differently */
  }
  /* 1. ハンバーガーアイコン (18px) */
  .menu-trigger {
    display: block;
    position: fixed;
    top: 16px;
    right: 16px;
    width: 30px; /* ご指定のサイズ */
    height: 30px;
    z-index: 1000;
    cursor: pointer;
  }
  .menu-trigger span {
    display: block;
    position: absolute;
    width: 100%;
    height: 2px;
    background: #333;
    transition: transform 0.4s ease;
  }
  .menu-trigger span:nth-child(1) {
    top: 0;
  }
  .menu-trigger span:nth-child(2) {
    top: 8px;
  }
  .menu-trigger span:nth-child(3) {
    top: 16px;
  }
  /* ×印に変形 */
  .menu-trigger.active span:nth-child(1) {
    transform: translateY(8px) rotate(-45deg);
  }
  .menu-trigger.active span:nth-child(2) {
    opacity: 0;
  }
  .menu-trigger.active span:nth-child(3) {
    transform: translateY(-8px) rotate(45deg);
  }
  /* 2. メニュー本体 (スライド設定) */
  #mobile-nav {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 70%; /* 画面の70% */
    height: 100vh;
    background: #fff;
    z-index: 999;
    /* 最初は左側に隠す */
    transform: translateX(-100%);
    transition: transform 0.4s ease; /* スライドのアニメーション速度 */
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
  }
  /* オープン時の状態 */
  #mobile-nav.open {
    transform: translateX(0);
  }
  /* 内部レイアウト */
  .menu-inner {
    display: flex;
    flex-direction: column;
    height: 100%;
  }
  /* メニューリスト */
  .mobile-menu-list {
    list-style: none;
    padding: 60px 0 0 0;
    margin: 0;
    text-align: center;
  }
  .mobile-menu-list li a {
    display: block;
    width: 100%; /* 幅全幅 */
    height: 21px; /* 高さ21px */
    line-height: 21px;
    text-decoration: none;
    color: #333;
    margin-bottom: 25px;
    font-size: 16px;
  }
  /* 3. CLOSEボタン (一番下) */
  .menu-close {
    margin-top: auto;
    padding: 25px 0;
    text-align: center;
    background: #f8f8f8;
    cursor: pointer;
    font-size: 12px;
    letter-spacing: 0.1em;
  }
  /* 背景オーバーレイ */
  .nav-overlay {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 998;
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s;
  }
  .nav-overlay.active {
    opacity: 1;
    visibility: visible;
  }
  /* 背面のスクロール防止用 */
  body.no-scroll {
    overflow: hidden;
  }
}
/* Header Widget (Hero) */
p.header-widget-area {
  text-align: center;
  margin: 0;
  padding: 0;
}
.members-image {
  margin: 1em auto;
}
.breadcrumbs ul {
  list-style: none;
  padding: 0;
  margin: 10px 0 20px 0;
  display: flex;
  gap: 20px;
}
/* ---------------------------------------------------------------------
   Posts Grid (Loop)
----------------------------------------*/
.post-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}
.post-item {
  width: calc(50% - 10px);
  /* 2 items per row with gap */
  margin-bottom: 20px;
}
.post-thumbnail {
  margin-bottom: 10px;
}
.post-title {
  font-size: 18px;
  font-weight: bold;
  margin: 0;
}
/* ---------------------------------------------------------------------
   トップページイメージマップ
----------------------------------------*/
.home svg {
  width: 100%;    /* 親要素の幅いっぱいに広がる */
  height: auto;   /* アスペクト比を維持 */
}

/* リンク範囲をわかりやすくしたい場合 */
a:focus polygon,
a:hover polygon {
  fill: rgba(255, 255, 255, 0.3); /* 重なった部分を少し明るく */
  outline: none;
}
/* ---------------------------------------------------------------------
   役員・委員会
----------------------------------------*/
table th{
  width: 50%;
}
table td {
  
}

/* ---------------------------------------------------------------------
   議員紹介
----------------------------------------*/
.member-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  padding: 20px 0;
  border-bottom: 1px solid #eee;
}
.member-photo {
  flex: 0 0 300px; /* 写真の幅を固定 */
}
.member-photo img {
  width: 100%;
  height: auto;
  padding: 7px;
  border: 1px solid #dcdcdc;
  border-radius: 2px;
}
.member-details {
  flex: 1; /* 残りの幅をすべて使う */
  min-width: 300px; /* スマホで縦に落ちる閾値 */
}
/* 情報リストをGridで整列 */
.member-info div {
  display: grid;
  grid-template-columns: 110px 1fr; /* 見出し幅を固定 */
  padding: 8px 0;
  border-bottom: 1px dashed #ccc;
}
.member-info div:first-child {
  border-top: 1px dashed #ccc;
}
.member-info dt {
  font-weight: bold;
  margin: 0;
  padding: 0;
  color: #555;
}
.member-info dd {
  margin: 0;
  padding: 0;
}
/* ---------------------------------------------------------------------
	議員紹介 SNS
----------------------------------------*/
ul.sns-btn {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.sns-btn li {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul.sns-btn {
  width: 100%;
  overflow: hidden;
  list-style: none;
}
li.web a, li.fac a, li.twi a, li.ins a, li.lin a, li.you a {
  display: block;
  width: 42%;
  float: left;
  background: #009e9f;
  padding: 7px 0;
  margin: 5px 2%;
  text-align: center;
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  border-radius: 7px;
  -moz-border-radius: 7px;
  -webkit-border-radius: 7px;
}
li.web a:hover {
  background: #7a7a7a; /*#006a6c*/
}
li.web a:before, li.fac a:before, li.twi a:before, li.ins a:before, li.lin a:before, li.you a:before {
  display: inline-block;
  /* サイズを16pxに固定 */
  width: 16px;
  height: 16px;
  /* パスの指定：同じ階層のimageフォルダを参照 */
  background-image: url("./svgimg/angle-right-solid-full.svg");
  background-size: contain;
  background-repeat: no-repeat;
  /* テキストとの位置調整 */
  vertical-align: middle;
  margin-right: 6px; /* 文字との隙間 */
}
li.fac a {
  background: #0068b7;
}
li.fac a:hover {
  background: #7a7a7a; /*#192f60*/
}
li.twi a {
  background: #1a1a1a;
}
li.twi a:hover {
  background: #7a7a7a; /*#192f60*/
}
li.ins a {
  background: #CF2E92;
}
li.ins a:hover {
  background: #7a7a7a; /*#192f60*/
}
li.lin a {
  background: #00B900;
}
li.lin a:hover {
  background: #7a7a7a; /*#192f60*/
}
li.you a {
  background: #DA1725;
  ;
}
li.you a:hover {
  background: #7a7a7a; /*#192f60*/
}
/*
 Name
 */
.items {
    box-sizing: border-box;
	align-items: center;
	justify-content: center;
}
.flex-two .items {
	width: calc((100% - 24px) / 2);
}

.ku {
	box-sizing: border-box;
	padding: 9px 0;
	margin: 4px 0;
	background: #fff;
	border: 2px solid #dc143c;
	text-align: center;
	font-weight: bold;
	color: #dc143c;
	font-size: 1.3em;
}
.kai {
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	color: #7a7a7a;
	padding-left: 1em;
	/*text-align: center;*/
	font-size: 1.2em;
}
.kai span {
  font-size: 2em;
  font-weight: bold;
	padding-right: 5px;
	color: #3a3a3a;
}

h2.member-name span.la {
  line-height: 1;
  font-size: 2.1em;
  border-bottom: none;
  margin: 0.2em 0;
  padding: 0;
  font-weight: normal;
}
h2.member-name .en {
  font-size: 1em;
}
/* ---------------------------------------------------------------------
   政策理念
----------------------------------------*/
.list-container {
  counter-reset: my-counter;
}
/* 数字をフロートさせる */
.auto-index::before {
  counter-increment: my-counter;
  content: counter(my-counter);
  float: left;
  font-size: 56px;
  line-height: 1;
  margin-top: -4px;
  font-weight: bold;
  margin-right: 11px;
  color: #f2a0a1
}
/* タイトルは「ブロック」として、数字の横を維持する */
.auto-index {
  display: flow-root; /* これが重要！タイトルの2行目が数字の下に潜るのを防ぐ */
  font-size: 18px;
  margin-top: 8px;
  margin-bottom: 8px;
}
/* 説明文は何も設定しない（自然に数字の下へ回り込む） */
.item-text {
  font-size: 16px;
  line-height: 1.6;
}
/* ---------------------------------------------------------------------
	予算要望
----------------------------------------*/
ul.link-group {
  display: grid;
  /* スマホ：1列に2つ */
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
/* 子要素 */
ul.link-group li {
  width: auto;
}
/* リンク自体のアクセシビリティ向上 */
ul.link-group li a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px; /* タップしやすさの確保 */
  text-decoration: none;
  border: 1px solid #dcdcdc;
  border-radius: 7px;
  -moz-border-radius: 7px;
  -webkit-border-radius: 7px;
}
/* PC：ブレイクポイントの指定 */
@media (min-width: 768px) {
  ul.link-group {
    /* PC：1列に5つ */
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
  }
}
/* ---------------------------------------------------------------------
	機関誌モーダル部分
----------------------------------------*/
/* モーダル本体：画面全体を覆う黒い背景 */
.pdf-modal-class {
    display: none; /* 初期状態は非表示 */
    position: fixed; /* 画面に対して固定 */
    z-index: 9999; /* 他の要素より手前に表示 */
    left: 0;
    top: 0;
    width: 100%; /* 画面横幅いっぱい */
    height: 100%; /* 画面縦幅いっぱい */
    overflow: auto; /* コンテンツが多い場合にスクロール可能に */
    background-color: rgba(0, 0, 0, 0.8); /* 背景を半透明の黒に */
}

/* モーダルの中身（白枠の部分） */
.modal-content {
    background-color: #fefefe;
    margin: 2% auto; /* 上下に2%の余白、左右中央寄せ */
    padding: 20px;
    border: 1px solid #888;
    width: 90%; /* 画面幅の90% */
    max-width: 980px; /* 広がりすぎないよう最大幅を設定 */
    position: relative;
    border-radius: 8px;
}

/* 閉じるボタン */
.close {
    color: #87cefa;
    position: absolute;
    right: 20px;
    top: 10px;
    font-size: 32px;
    font-weight: bold;
    cursor: pointer;
}
.close:hover {
    color: #777;
}

/* iframeのレスポンシブ対応 */
#pdfViewer1, #pdfViewer2,
#pdfViewer3, #pdfViewer4, 
#pdfViewer5, #pdfViewer6, 
#pdfViewer7, #pdfViewer8 {
    width: 100%;
    height: 80vh; /* 画面の高さの80%にする */
    border: none;
}

/* ---------------------------------------------------------------------
	Site-Map
----------------------------------------*/
ul.sitemap-nav {
  display: grid;
  /* スマホ：1列に2つ */
  grid-template-columns: repeat(1, 1fr);
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
ul.sitemap-nav li {
  width: 80%;
  margin: 0.3rem auto;
}
ul.sitemap-nav li a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px; /* タップしやすさの確保 */
  text-decoration: none;
  border: 1px solid #dcdcdc;
  font-size: 0.9em;
  border-radius: 7px;
  -moz-border-radius: 7px;
  -webkit-border-radius: 7px;
}
ul.sitemap-nav li a:hover {
  color: var(--primary-color);
  border: 1px solid #999999;
  font-size: 0.9em;
}
@media screen and (min-width: 767px) {
  ul.sitemap-nav {
    /* PC：1列に4つ */
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
/* ---------------------------------------------------------------------
	Contact Form
----------------------------------------*/
.wpcf7-submit {
  display: inline-block;
  line-height: 1.65em;
  text-align: center;
  text-decoration: none;
  text-indent: 0px;
  color: #fafafa;
  -webkit-appearance: none;
  border-radius: 3px;
  box-shadow: none;
  cursor: pointer;
  padding: 0.6em 2.5em;
  background: #0095cd;
}
.wpcf7-submit:hover {
  background: #007ead;
  text-decoration: none;
  z-index: 100;
}
/* Contact Form 7 承認チェックボックスのカスタマイズ */
.wpcf7-acceptance input[type="checkbox"] {
  transform: scale(1.5); /* 1.5倍の大きさに設定 */
  margin-right: 10px; /* 右側の文字との余白 */
  cursor: pointer; /* マウスカーソルを指マークに */
  vertical-align: middle; /* 文字と高さを合わせる */
}
/* ラジオボタンをより「丸く」強調する */
.wpcf7 form input[type="radio"] {
  border-radius: 50%;
  border: 1px solid #dcdcdc;
  width: 24px;
  height: 24px;
  margin: 0 10px 0 0;
  -webkit-appearance: none; /* デフォルトのスタイルをリセット（必要に応じて） */
  appearance: none;
  position: relative;
  background: #fafafa;
  vertical-align: middle;
}
span.wpcf7-list-item-label {
  padding-top: 6px;
}
/* チェックされた時の中心の点 */
.wpcf7 form input[type="radio"]:checked::before {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  background: #0073aa; /* チェック時の色 */
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.wpcf7 form input[type="radio"]:checked {
  border-color: #0073aa;
}
.wpcf7-acceptance .wpcf7-list-item-label {
  font-size: 16px; /* 文字も少し大きくして読みやすく */
  cursor: pointer;
}
/* リアルタイムで出てしまうエラーメッセージを非表示にする */
span.wpcf7-not-valid-tip {
  display: none !important;
}
/* 送信ボタンが押された後（フォームに 'invalid' クラスがついた時）だけ表示する */
.wpcf7 form.invalid span.wpcf7-not-valid-tip, .wpcf7 form.unspam span.wpcf7-not-valid-tip {
  display: block !important;
}
label.bold {
  font-weight: 700 !important;
  margin-bottom: 0.2rem;
}
p.bold-blue {
  font-weight: 700 !important;
  margin-bottom: 0.2rem;
  color: #19448e;
}
/* テキスト入力・セレクトボックスを横幅いっぱいに */
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form select, .wpcf7-form textarea {
  width: 98% !important;
  box-sizing: border-box;
  padding: 6px;
  font-size: 16px;
  border: 1px solid #999999;
}
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form textarea {
  border-radius: 4px;
  margin-bottom: 1rem;
}

@media screen and (max-width: 767px) {
  /* フォーム全体の余白調整 */
  .wpcf7-form {
    padding: 10px;
  }
  /* テキスト入力・セレクトボックスを横幅いっぱいに */
  .wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form select, .wpcf7-form textarea {
    width: 100% !important;
    box-sizing: border-box;
    padding: 8px; /* 指でタップしやすい高さ */
    font-size: 16px; /* iPhoneでズームされないための最小サイズ */
    border: 1px solid #999999;
  }
}

img.wpcf7-captchac {
	height: 28px !important;
	width: 84px !important;
}
/* ---------------------------------------------------------------------
   Sidebar
----------------------------------------*/
.sidebar-widget-area .widget {
  margin-bottom: 30px;
}
.sidebar-widget-area h2.widget-title {
  font-size: 16px;
  border-bottom: 1px solid #000;
  padding-bottom: 10px;
  margin-bottom: 15px;
}
/* ---------------------------------------------------------------------
   Footer
----------------------------------------*/
.site-footer {
  background-color: #223a70;
  color: #fafafa;
  padding-top: 30px;
  margin-top: 30px;
  text-align: center;
  overflow: hidden;
}
.site-footer a {
  color: #ececec;
}
.footer-nav {
  margin-bottom: 2em;
}
.footer-nav ul {
  display: grid;
  /* スマホ：1列に2つ */
  grid-template-columns: repeat(1, 1fr);
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-nav ul li {
  width: 70%;
  margin: 0 auto;
}
.footer-nav ul li a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px; /* タップしやすさの確保 */
  text-decoration: none;
  border-bottom: 1px solid #999999;
  color: #fafafa;
  font-size: 0.9em;
}
@media (min-width: 768px) {
  .footer-nav ul {
    /* PC：1列に4つ */
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
  }
  .footer-nav ul li {
    width: 80%;
    margin: 0 auto;
  }
}
.footer-widget-area {
  margin-bottom: 20px;
}
.copyright {
  background-color: #0f2350 color: #fff;
  padding: 10px 0;
  font-size: 12px;
}
/* ---------------------------------------------------------------------
	Space
----------------------------------------*/
.space-top, .mato {
  margin-top: 1.35rem;
}
.space-bottom, .mabo {
  margin-bottom: 1.35rem;
}
.space-left, .pale {
  padding-left: 1.35rem;
}
.space-right, .pari {
  padding-right: 1.35rem;
}
.padding, .inner {
  padding: 1.2rem;
}
.margin, .outer {
  margin: 1.2rem;
}
/* ---------------------------------------------------------------------
	Reset Margin and Padding
----------------------------------------*/
.nomabo {
  margin-bottom: 0;
}
.nomato {
  margin-top: 0;
}
.nopabo {
  padding-bottom: 0;
}
.nopato {
  padding-top: 0;
}
.noma {
  margin: 0;
}
.nopa {
  padding: 0;
}
.nomapa, .nopama, .space-reset {
  margin: 0;
  padding: 0;
}
/* ---------------------------------------------------------------------
   Responsive
----------------------------------------*/
/* PCではモバイル用を隠す */
.mobile-only-content, .show-mobile, .hide-pc, .hide {
  display: none;
}
.show-pc, .hide-mobile {
  display: block;
}
.mobile-border {
  border: none;
}
/* 768px以下ではPC用を隠す */
@media screen and (max-width: 768px) {
  .pc-only-wrapper {
    display: none;
  }
  .nav-links {
    display: none;
  }
  .container {
    width: 90%;
  }
  .mobile-border {
    border-bottom: 1px solid #999999;
    height: 1px;
    width: 100%;
  }
  .mobile-only-content, .show-mobile, .hide-pc {
    display: block;
  }
  .show-pc, .hide-mobile, .pc-br {
    display: none;
  }
  .slim-container {
    width: 100%;
    margin: 0 auto;
  }
}