@charset "utf-8";
/*
Theme Name : coltd
Version : 1.0
Author: zoom
Description: 
*/
* {
    margin: 0;
    padding: 0;
/*   outline: 1px solid #e61111;*/
}
:root {
    --header-height: 100px; /* ヘッダーの高さを変数に設定 */
    --main-color: #FFFFFF;
}
main {
    background-color: var(--main-color);
}
* {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}
header {
  width: 100%;
  height: var(--header-height);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  background: rgba(0, 0, 0, 0.6);
}
/* 初期スタイル */
header {
  background: transparent;
  color: #fff;
  transition: background 0.3s, color 0.3s;
}

/* スクロールしたら背景白＋文字黒 */
header.scrolled {
  background: #fff;
  color: #000;
}
/* スクロール時のロゴ */
header.scrolled .hlogo img {
  content: url(img/zoom_logo_s_blk.png);
}
/* ナビゲーションリンクも白→黒へ */
header.scrolled .gnav li a {
  color: #000;
}

header .container {
  display: flex;
  justify-content: space-between;
}

.hlogo {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.1em;
}

.head_r {
  display: flex;
  align-items: center;
}
.gnav {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 15px;
}
.gnav li {
  position: relative;
  padding-left: 15px;
}
.gnav li:first-child {
  padding-left: 0;
}

/* 初期（白い縦線） */
.gnav li:not(:first-child):not(:nth-last-child(1)):not(:nth-last-child(2))::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 16px;
  width: 1px;
  background-color: rgba(255, 255, 255, 0.5);
}

/* スクロール後（黒い縦線） */
header.scrolled .gnav li:not(:first-child):not(:nth-last-child(1)):not(:nth-last-child(2))::before {
  background-color: rgba(0, 0, 0, 0.5);
}



.gnav li a {
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.1em;
}

/* 通常時（白） */
.gnav li.highlight a {
  color: #fff;
  border: 2px solid #fff;
  padding: 6px 14px;
  border-radius: 30px;
  font-weight: bold;
  transition: all 0.3s ease;
}

/* スクロール後（黒） */
header.scrolled .gnav li.highlight a {
  color: #000;
  border: 2px solid #000;
}


.gnav li.highlight a:hover {
  background-color: #fff;
  color: #000;
}




/*子メニュー*/
.gnav li.has-submenu {
  position: relative;
}

.submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: rgba(255, 255, 255, 0.9);
  list-style: none;
  margin: 0;
  padding: 10px 0;
  min-width: 180px;
  z-index: 10;
}

.submenu li {
  padding: 0;
  margin: 0;
}

.submenu li a {
  display: block;
  padding: 10px 20px;
  color: #000;
  white-space: nowrap;
  text-decoration: none;
}

.gnav li.has-submenu:hover .submenu {
  display: block;
}

.hampoti {
  display: flex;
  align-items: center;
}
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 30px;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 200;
}
.hamburger span {
  display: block;
  height: 3px;
  background: #fff;
  border-radius: 2px;
}

/* レスポンシブ対応 */
@media screen and (max-width: 991px) {
.hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 24px;
  cursor: pointer;
  z-index: 999;
  position: relative;
}

.hamburger span {
  position: absolute;
  width: 100%;
  height: 3px;
  background: #fff;
  border-radius: 2px;
  transition: 0.3s;
}

.hamburger span:nth-child(1) {
  top: 0;
}
.hamburger span:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
}
.hamburger span:nth-child(3) {
  bottom: 0;
}

/* バツ印に変化 */
.hamburger.open span:nth-child(1) {
  transform: rotate(45deg);
  top: 50%;
}
.hamburger.open span:nth-child(2) {
  opacity: 0;
}
.hamburger.open span:nth-child(3) {
  transform: rotate(-45deg);
  bottom: 35%;
}




  .head_r {
    position: absolute;
    top: var(--header-height);
    left: 0;
    right: 0;
    background: rgba(0, 0, 0, 0.95);
    display: none;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
  }
  /* スクロール後（ヘッダー白） */
header.scrolled .head_r {
  background: rgba(255, 255, 255, 0.95);
}
header.scrolled .head_r a {
  color: #000;
}
  .head_r.open {
    display: flex;
  }

  .gnav {
    flex-direction: column;
    gap: 10px;
  }

  .gnav li:not(:first-child)::before {
    display: none;
  }
/*子メニュー*/
.gnav li.has-submenu {
  padding-left: 15px;
}
  .gnav li.has-submenu > a::after {
  content: "▼";
  margin-left: 0.5em;
  font-size: 0.7em;
  color: #fff;
}
header.scrolled .gnav li.has-submenu > a::after {
  color: #000;
}
.gnav .submenu {
  display: none !important;
  position: static;
  background: none;
  padding-left: 1em;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease;
}

.gnav li.has-submenu.open > .submenu {
  display: block !important;
  opacity: 1;
  visibility: visible;
}

.gnav .submenu li a {
  padding: 4px 0;
  color: #fff;
}

.head_r.open .gnav li.highlight a {
  display: block;
  width: 100%;
  padding: 12px 13px;
  border-radius: 12px;
  font-weight: 700;
  text-align: center;
  border: 2px solid #fff;
  background: #fff;
  color: #000;
  box-shadow: 0 6px 16px rgba(0,0,0,.28);
  transition: transform .15s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.head_r.open .gnav li.highlight a:hover { transform: translateY(-1px); }
/* スクロール後：白背景時はブランド色で反転 */
header.scrolled .head_r.open .gnav li.highlight a {
  background: #0b73bf;
  color: #fff;
  border-color: #0b73bf;
  box-shadow: 0 6px 16px rgba(11,115,191,.25);
}
header.scrolled .head_r.open .gnav li.highlight a:hover {
  background: #095a95;
  border-color: #095a95;
}
}


/*mv*/
.mv-section {
  position: relative;
  width: 100%;
  height: 100vh; /* 全画面表示 */
  overflow: hidden;
}

.mv-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.mv-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.2); /* 透過黒 */
  z-index: 1;
}

.mv-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  color: white;
  text-align: center;
  padding: 1em;
  border: solid 1px #fff;
}

.mvs-top {
  width: 100%;
  height: var(--header-height);
  background-color: #000;
}

/*TOP*/
.agree {
  position: relative;
  width: 100%;
  background-color: #f6f6f8;
  color: #000;
  padding: 100px 0;
  text-align: center;
  z-index: 0;
  overflow: hidden;
}
.agree-bgtext {
  position: absolute;
  top: 30%;
  left: 35%;
  transform: translate(-50%, -50%);
  font-size: 7rem;
  font-weight: 900;
  color: #e9e9eb;
  letter-spacing: 0.2em;
  z-index: 2;
  white-space: nowrap;
  pointer-events: none; /* テキストの上にクリック要素があっても干渉しない */
}
.l-line {
  position: absolute;
  top: 0;
  left: 0;
  width: 200px; /* 右と同じ幅に */
  height: 100vh;
  background-color: #E3F0FA;
  clip-path: polygon(0 0, 100% 0, 0 50%);
  z-index: 1;
}

.r-line {
  position: absolute;
  top: 0;
  right: 0;
  width: 200px; /* 横幅（調整可） */
  height: 100vh; /* 高さ：画面全体 */
  background-color: #E3F0FA;
  clip-path: polygon(100% 0, 0 50%, 100% 100%);
  z-index: 1;
}

.agree-inner {
  position: relative;
  z-index: 3;
  max-width: 800px;
  margin: 0 auto;
}

.agree-title {
  font-size: 2.5rem;
  margin-bottom: 20px;
  font-weight: bold;
  letter-spacing: 0.05em;
}

.agree-text {
  font-size: 1.1rem;
  line-height: 1.8;
}
/* ======== レスポンシブ対応 ======== */
@media (max-width: 1024px) {
  .agree {
    padding: 80px 0;
  }

  .agree-bgtext {
    font-size: 5rem;
    top: 30%;
    left: 35%;
    transform: translate(-50%, -50%);
  }

  .agree-title {
    font-size: 2rem;
  }

  .agree-text {
    font-size: 1rem;
  }

  .l-line,.r-line {
    width: 150px;
  }
}

@media (max-width: 768px) {
  .agree {
    padding: 60px 0;
  }

  .agree-bgtext {
    font-size: 3rem;
    top: 20%;
    left: 45%;
    transform: translate(-50%, -50%);
  }

  .agree-inner {
    padding: 0 10px;
  }

  .agree-title {
    font-size: 1.6rem;
    margin-bottom: 15px;
  }

  .agree-text {
    font-size: 0.95rem;
    line-height: 1.7;
  }
}

/*事業内容*/
.business {
  width: 100%;
  background-color: #0b73bf;
  color: #000;
  padding: 100px 0;
  z-index: 0;
  overflow: hidden;
}

.business-text {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 100px;
  margin-bottom: 100px;
}

.business-text-left {

}

.business-text-right {
  flex-grow: 1;
  min-width: 300px; /* 小さくなりすぎないための下限 */
}


.business-bgtext {
  font-size: 4rem;
  font-weight: 900;
  color: #fff;
  letter-spacing: 0.2em;
  white-space: nowrap;
  pointer-events: none;
}

.section-title {
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  padding-left: 1rem;
  color: #fff;
}

.section-subtitle {
  font-size: 1.2rem;
  color: #fff;
  line-height: 1.8;
}


.business-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  justify-content: center;
}

.business-card {
  position: relative;
  padding: 30px;
  border-radius: 12px;
  max-width: 320px;
  aspect-ratio: 1 / 1; /* 正方形 */
  flex: 1 1 300px;
  color: #fff;
  text-align: left;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  z-index: 0;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
  transition: transform 0.3s ease;
}
.business-cards a.business-card {
  display: block;
  text-decoration: none;
  color: inherit;
}
.business-cards a.business-card:hover {
  transform: translateY(-3px);
  transition: all 0.3s ease;
}


.business-card:hover {
  transform: translateY(-5px);
}

.business-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
  z-index: 1;
}

.business-card * {
  position: relative;
  z-index: 2;
}

.card-title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -80%); /* 少し上にずらす */
  font-size: 1.5rem;
  color:#fff;
  margin: 0;
  font-weight: bold;
  text-align: center;
  width: 100%;
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);
}

.card-text {
  position: absolute;
  top: 65%;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1rem;
  color:#fff;
  line-height: 1.6;
  width: 90%;
  text-align: center;
  text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);
}

.business-card.imglogo .imglogo1 {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 125px;
}
.business-card.imglogo .imglogo2 {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 125px;
}
/* カードごとの背景画像 */
.business-card.cut {
  background-image: url('img/logo1.png'); /* 精密切削加工 */
}
.business-card.connector {
  background-image: url('img/2634597.jpg'); /* 高周波同軸コネクター */
}
.business-card.antenna {
  background-image: url('img/about-board.jpg'); /* 小型アンテナの製造 */
}
/* ======== レスポンシブ対応 ======== */
@media (max-width: 1199px) {
.business-text {
  gap: 70px;
}
.business-bgtext {
  font-size: 3rem;

}
.section-subtitle {
  font-size: 1.1rem;
  color: #fff;
  line-height: 1.8;
}
}
@media (max-width: 991px) {
    .business-bgtext {
  font-size: 3rem;
}
.section-title {
  font-size: 1.6rem;
}
  .business-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 50px;
  margin-bottom: 100px;
}
}
@media (max-width: 768px) {
.business-bgtext {
  font-size: 2.4rem;
}
.section-title {
  font-size: 1.6rem;
}
  .section-subtitle {
  font-size: 0.95rem;
  color: #fff;
  line-height: 1.8;
}
  .business-cards {
    flex-direction: column;
    align-items: center;
  }
}

/*TOP会社概要*/
/* 会社概要セクション */
.device {
  width: 100%;
  background-color: #0b73bf;
  padding: 100px 0;
  overflow: hidden;
}

.device-title {
  font-size: 2rem;
  text-align: center;
  font-weight: bold;
  letter-spacing: 0.05em;
  color: #fff;
  margin-bottom: 60px; /* 100→60：締まりを出す */
}

/* 2分割：Gridで安定レイアウト */
.device-section {
  display: grid;
  grid-template-columns: 1.05fr 1fr; /* テキストやや広め */
  gap: 50px;
  align-items: center; /* 画像・テキストを縦中央に */
  margin-bottom: 80px;
}

/* テキスト */
.device-section p {
  font-size: 1.1rem;     /* 1.2rem→1.1rem：読みやすく */
  color: #fff;
  line-height: 1.9;
}

/* 画像：はみ出し防止＋影＋角丸 */
.device-section img {
  width: 100%;
  max-width: 640px;       /* 広い画面でも巨大化しすぎない */
  height: auto;
  display: block;
  margin-left: auto;      /* 右カラム内で自然に収まる */
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
}

/* CTAリンク：上品＋アクセシブル */
.device-link {
  text-align: center;
}

.device-link a {
  display: inline-flex;          /* 中央にアイコン余白を取りやすい */
  align-items: center;
  gap: 10px;
  padding: 16px 28px;            /* 25/50→16/28：行間バランス調整 */
  background: transparent;       /* 透明ベース */
  color: #fff;                   /* 背景が青なので白文字 */
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid rgba(255,255,255,0.9);
  border-radius: 999px;          /* ピル型 */
  transition: all 0.28s ease;
  box-shadow: 0 6px 16px rgba(0,0,0,0.18);
}

.device-link a::after {
  content: "→";                  /* 矢印で行動喚起 */
  transition: transform 0.28s ease;
}

.device-link a:hover {
  background: #fff;              /* 反転 */
  color: #0b73bf;
  border-color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0,0,0,0.22);
}

.device-link a:hover::after {
  transform: translateX(3px);
}

/* レスポンシブ */
@media (max-width: 992px) {
  .device {
    padding: 80px 0;
  }
  .device-section {
    grid-template-columns: 1fr; /* 1カラム */
    gap: 28px;
    margin-bottom: 60px;
  }
  .device-section img {
    margin: 0 auto;             /* 画像を中央に */
    max-width: 540px;
  }
  .device-section p {
    font-size: 1rem;
    line-height: 1.8;
  }
}

@media (max-width: 576px) {
  .device {
    padding: 64px 0;
  }
  .device-title {
    font-size: 1.6rem;
    margin-bottom: 36px;
  }
  .device-section {
    gap: 20px;
  }
  .device-section img {
    max-width: 100%;
    border-radius: 10px;
    box-shadow: 0 6px 16px rgba(0,0,0,0.18);
  }
  .device-link a {
    width: 100%;
    justify-content: center;
    padding: 14px 20px;
    font-size: 1rem;
  }
}



/*新着情報*/
.top_news {
  width: 100%;
  overflow-x: hidden; /* 念のための保険 */
  padding-top: 100px;
  padding-bottom: 100px;
  background-color: #f8f9fc; /* 背景色追加でセクション感 */
}

.container {
  max-width: 100%;
  padding: 0 20px; /* スマホでも余白 */
  box-sizing: border-box;
}

.tntitle {
  text-align: center;
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-bottom: 50px;
}
.news-item {
  display: flex;
  align-items: center;
  text-decoration: none;
  padding: 25px 75px 25px 30px;
  transition: all 0.3s ease;
  border-bottom: solid 1px #ccc;
}

.news-date,
.news-category {
  font-size: 1rem;
  color: #000;
  white-space: nowrap;
  margin-right: 20px;
  padding: 2px 8px;
}

.news-category {
  font-size: 0.8125rem;
  background-color: #007acc;
  color: #fff;
}

.news-item p {
  color: #333;
  flex-grow: 1;
  min-width: 0;
  font-size:clamp(0.938rem, 0.922rem + 0.06vw, 1rem);
}
.news-item:hover p {
  text-decoration: underline;
  color: #007acc; /* 任意で色変更なども */
  transition: color 0.3s;
}

/* TOP CTA */
.top_cta {
  position: relative;
  width: 100%;
  padding: 100px 0;
  background-image: url('img/facts-bg.jpg');
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}

.top_cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(rgba(11,115,191,0.8), rgba(0,40,80,0.85));
  z-index: 1;
}

.top_cta > .container {
  position: relative;
  z-index: 2;
  text-align: center;
}

/* 見出し */
.top_cta h2 {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 40px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

/* テキストボックス（ガラス風） */
.top_cta .tc_txt {
  display: block;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  padding: 24px 40px;
  color: #f0f8ff;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.3);
  max-width: 880px;
  margin: 0 auto 40px;
  line-height: 1.8;
}

/* CTAボタン */
.top_cta a {
  display: block;
  background: #fff;
  color: #0b6ddf;
  font-weight: bold;
  width: fit-content;
  margin: 0 auto 50px; 
  padding: 16px 36px;
  border-radius: 50px;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.top_cta a:hover {
  background: #0b6ddf;
  color: #fff;
  box-shadow: 0 6px 16px rgba(0,0,0,0.3);
}

/* 電話部分 */
.top_cta .tc_tel {
  margin-top: 40px;
  font-weight: 600;
  font-size: 1.1rem;
  line-height: 1.6;
}
.top_cta .tc_tel span {
  font-size: 1.8rem;
  display: block;
  margin: 8px 0;
  color: #fff;
  letter-spacing: 0.05em;
}

/* モバイル対応 */
@media (max-width: 768px) {
  .top_cta {
    padding: 60px 20px;
  }
  .top_cta .tc_txt {
    padding: 20px;
  }
  .top_cta h2 {
    font-size: 1.5rem;
  }
}


/*採用セクション*/
.top_recruit {
  width: 100%;
  overflow-x: hidden; /* 念のための保険 */
  padding-top: 100px;
  padding-bottom: 100px;
  background-color: #f8f9fc; /* 背景色追加でセクション感 */
}
.tr_section {
  display: flex;
  gap: 50px;
  justify-content: space-between;
  align-items: center;
}
.tr_title {
   font-size: 2rem;
    font-weight: bold;
    letter-spacing: 0.05em;
    margin-bottom: 50px;
    text-align: center;
    color: #0B73BF;
}
.tr_section > div:first-child img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}


.tr_section p {
  font-size: 1.2rem;
  line-height: 1.8;
  margin-bottom: 40px;
}

.tr_alink {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.tr_alink a {
  display: inline-block;
  padding: 12px 24px;
  font-size: 1.1rem;
  font-weight: bold;
  color: #fff;
  background-color: #0B73BF;
  text-decoration: none;
  border-radius: 5px;
  transition: background 0.3s ease;
}

.tr_alink a:hover {
  background-color: #095a95;
}
/* タブレット以下で2カラム→縦並び */
@media (max-width: 992px) {
  .top_recruit {
    padding-top: 72px;
    padding-bottom: 72px;
  }
  .tr_section {
    flex-direction: column;
    gap: 32px;
    align-items: center; /* 中央寄せ */
    text-align: center;  /* テキスト中央寄せ */
  }
  .tr_title {
    font-size: 1.8rem;
    margin-bottom: 36px;
  }
  .tr_section > div:first-child img {
    max-width: 640px;     /* 画像の最大幅を制御 */
    width: 100%;
    border-radius: 10px;
  }
  .tr_section p {
    font-size: 1.05rem;
    line-height: 1.9;
    margin-bottom: 28px;
    margin-left: auto;
    margin-right: auto;
    max-width: 760px;
  }
  .tr_alink a {
    font-size: 1rem;
    padding: 12px 22px;
  }
}

/* スマホ: 文字と余白をさらに調整、ボタンは幅広め */
@media (max-width: 576px) {
  .top_recruit {
    padding-top: 56px;
    padding-bottom: 56px;
  }
  .tr_title {
    font-size: 1.5rem;
    margin-bottom: 24px;
    letter-spacing: 0.04em;
  }
  .tr_section {
    gap: 24px;
  }
  .tr_section p {
    font-size: 0.95rem;
    line-height: 1.8;
    margin-bottom: 24px;
    padding: 0 6px;        /* 行端の窮屈さを軽減 */
  }
  .tr_alink {
    width: 100%;
  }
  .tr_alink a {
    display: block;
    width: min(100%, 420px); /* 端末幅に合わせつつ幅を出す */
    margin: 0 auto;
    padding: 12px 18px;
    border-radius: 6px;
  }
}

/* 極小端末: 画像の角丸影を弱めて圧迫感を軽減 */
@media (max-width: 360px) {
  .tr_section > div:first-child img {
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  }
  .tr_alink a {
    font-size: 0.95rem;
    padding: 10px 16px;
  }
}

/*広告デザインぺージ*/
/* ===== Advertising Page ===== */

/* Hero */
.ad-hero{
  background: linear-gradient(135deg,#0b73bf 0%,#094a8f 100%);
  color:#fff;
  padding: 80px 0;
  text-align:center;
}
.ad-ttl{
  font-size:2.2rem;
  font-weight:800;
  letter-spacing:.04em;
  margin:0 0 12px;
}
.ad-lead{
  font-size:1.05rem;
  line-height:1.9;
  opacity:.95;
}

/* Intro */
.ad-intro{
  background:#f7f9fc;
  padding:60px 0 40px;
}
.ad-intro__text{
  max-width:900px;
  margin:0 auto 20px;
  color:#1f2937;
  line-height:1.9;
}
.ad-badges{
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
  padding:0; margin:0;
  list-style:none;
}
.ad-badges li span{
  display:inline-block;
  border:1px solid #0b73bf;
  color:#0b73bf;
  padding:6px 12px;
  border-radius:999px;
  font-weight:700;
  background:#fff;
}

/* Services */
.ad-services{ padding:60px 0; }
.sec-ttl{
  text-align:center;
  font-size:1.8rem;
  font-weight:800;
  color:#0b73bf;
  margin-bottom:28px;
  letter-spacing:.03em;
}
.ad-grid{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap:18px;
  padding:0; margin:0;
  list-style:none;
}
.ad-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:22px;
  box-shadow:0 6px 20px rgba(0,0,0,.04);
  transition:transform .18s ease, box-shadow .18s ease;
}
.ad-card:hover{
  transform: translateY(-3px);
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.ad-card h3{
  font-size:1.1rem;
  margin:0 0 8px;
  color:#111827;
  font-weight:700;
}
.ad-card p{
  color:#374151;
  margin:0;
  line-height:1.7;
  font-size:.98rem;
}

/* CTA */
.ad-cta{
  background: linear-gradient(135deg,#0b73bf 0%,#0a5bab 100%);
  color:#fff;
  padding:70px 0;
  text-align:center;
}
.ad-cta__ttl{
  font-size:1.8rem;
  font-weight:800;
  margin:0 0 10px;
}
.ad-cta__txt{
  opacity:.95;
  margin:0 0 24px;
}
.ad-cta__actions{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
}
.btn-main, .btn-ghost{
  display:inline-block;
  padding:12px 24px;
  border-radius:999px;
  font-weight:800;
  text-decoration:none;
  transition: all .2s ease;
}
.btn-main{
  background:#fff; color:#0b73bf;
}
.btn-main:hover{
  transform: translateY(-2px);
  box-shadow:0 8px 18px rgba(0,0,0,.2);
}
.btn-ghost{
  background:transparent; color:#fff; border:2px solid #fff;
}
.btn-ghost:hover{
  background:#fff; color:#0b73bf;
}

/* Responsive */
@media (max-width: 992px){
  .ad-grid{ grid-template-columns: repeat(2,1fr); }
  .ad-ttl{ font-size:2rem; }
}
@media (max-width: 640px){
  .ad-grid{ grid-template-columns: 1fr; }
  .ad-hero{ padding:64px 0; }
  .ad-lead{ font-size:1rem; }
  .sec-ttl{ font-size:1.6rem; }
}
@media (max-width: 400px){
  .flow-steps{ grid-template-columns: 1fr; }
}

/* 会社概要 */
.company-info {
  margin-top: 80px;
  margin-bottom: 80px;
}

.company-table {
  width: 100%;
  border-collapse: collapse;
}

.company-table th,
.company-table td {

  padding: 15px 20px;
  text-align: left;
  vertical-align: top;
}

.company-table th {
  background-color: #f5f5f5;
  width: 30%;
  font-weight: bold;
  color: #333;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  /*.company-info {
    padding-left: 16px;
    padding-right: 16px;
  }*/

  .company-table,
  .company-table tbody,
  .company-table tr {
    display: block;
    width: 100%;
  }

  .company-table th,
  .company-table td {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border-left: 1px solid #ccc;
    border-right: 1px solid #ccc;
  }

  .company-table th {
    background: #f0f4f8;
    font-size: 0.9rem;
    border-top: 1px solid #ccc;
    border-bottom: none; /* 下線は削除して重なり回避 */
  }

  .company-table td {
    font-size: 0.95rem;
    border-top: none; /* 上線は削除して重なり回避 */
  }
  .company-table td {
  border-bottom: none; /* 初期状態ではすべて消す */
}
.company-table tr:last-of-type td:last-of-type {
  border-bottom: 1px solid #ccc;
}
}
/*マップ*/
.company-access {
  padding: 80px 0;
  background: #f9fafb;
  position: relative;
    width: 100%;
    background-image: url(img/4940340_m.jpg);
    background-size: cover;
    background-position: center;
    overflow: hidden;
}
.company-access::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(11, 115, 191, 0.8), rgba(0, 40, 80, 0.85));
  z-index: 1; /* 背景より上、コンテンツより下 */
}
.company-access .container {
  position: relative;
  z-index: 2;
  color: #fff; /* 白文字にすると映える */
}
.company-access h2 {
  text-align: center;
  font-size: 2rem;
  margin-bottom: 30px;
  font-weight: bold;
  color: #fff;
  
}

.access-desc {
  text-align: center;
  font-size: 1rem;
  margin-bottom: 30px;
  line-height: 1.8;
}
@media (max-width: 992px) {
  .company-access h2 {
  font-size: 1.6rem;
  }
  .access-desc {
  font-size: .95rem;
}
}
.map-wrap {
  max-width: 900px;
  margin: 0 auto;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}



/*沿革*/
.comhis {
  padding: 80px 0;
}
.comhis2 {
  padding-bottom: 80px;
}
.ad-ttl2{
  font-size:2.2rem;
  font-weight:800;
  letter-spacing:.04em;
  margin:0 0 12px;
  color: #0b73bf;
  text-align: center;
}
.company-subtitle {
  font-size: 1.5rem;
  font-weight: 600;
  text-align: center;
  color: #0b73bf;
  margin-bottom: 40px;
  letter-spacing: 0.05em;
}
@media (max-width: 992px) {
  .ad-ttl2 {
  font-size: 1.6rem;
  }
  
.company-subtitle {
  font-size: 1.2rem;
}
}
/*20**年 dt*/
.secHistory .list > dt {
    font-size: 1.25rem;
    font-weight: bold;
    color: #0566d4;
    width: 114px;
    float: left;
    line-height: 1.5;
    position: relative;
}
@media (max-width: 992px) {
.secHistory .list > dt {
  font-size: 1rem;
  width: 68px;
  clear: both;
}
}
/* ● */
.secHistory .list > dt:before {
    content: '';
    background: #0566d4;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    position: absolute;
    top: 50%;
    right: 0;
    -webkit-transform: translate(50%, -50%);
    -ms-transform: translate(50%, -50%);
    transform: translate(50%, -50%);
    z-index: 2;
}
/*線 dd*/
.secHistory .list > dd {
    border-left: 1px solid #0566d4;
    margin-left: 114px;
    padding-left: 14px;
}
.secHistory .list > dt:first-of-type:after {/*上線消し白で上書き*/
    content: '';
    background: #fff;
    width: 1px;
    height: 0.5em;
    position: absolute;
    top: 0;
    right: -1px;
}
.secHistory .list > dd:last-of-type {
    border-left: 0;
}
.secHistory .list > dt:last-of-type:after {
    content: '';
    background: #0566d4;
    width: 1px;
    height: 0.5em;
    position: absolute;
    top: 0;
    right: -1px;
}
@media (max-width: 992px) {
.secHistory .list > dd {
    margin-left: 68px;
    padding-left: 0;
}
}
/* 詳細右枠 dl*/
.secHistory .month {
    padding-bottom: 22px;
}
/*月*/
.secHistory .month dt {
  font-size:clamp(0.938rem, 0.922rem + 0.06vw, 1rem);
  line-height: 1.5;
  width: 3em;
  float: left;
  text-align: right;
  color: #0566d4;
  font-weight: bold;
}
/*本文大枠*/
.secHistory .month dd {
  font-size: clamp(0.875rem, 0.86rem + 0.06vw, 1rem);
  margin-left: 3.8em;
  padding-bottom: 7px;
}
.secHistory .month .notes {/*注釈文*/
    font-size: clamp(0.688rem, 0.672rem + 0.06vw, 0.75rem);
    color: #adadad;
}


/*採用情報ぺージ*/
/* 採用ページ全体 */
.recruit-page {
  padding: 40px 0;
  color: #1f2937;
}

/* 見出し */
.recruit-title {
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
}

.recruit-intro {
  text-align: center;
  margin-bottom: 40px;
  line-height: 1.8;
}

/* カードレイアウト */
/* 一覧コンテナ */
.recruit-cards {
  display: block; /* flex解除 */
  margin-bottom: 60px;
}

/* 各職種ボックスを1行ずつに */
.recruit-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.04);
  padding: 24px 32px;
  margin-bottom: 24px;
  transition: background 0.3s ease;
}
.recruit-card:hover {
  background: #f9fafb;
  transform: none;
}

/* タイトル行 */
.job-title {
  font-size: 1.2rem;
  font-weight: 600;
  color: #0b6ddf;
  margin-bottom: 1rem;
  border-bottom: 2px solid #0b6ddf;
  padding-bottom: 6px;
}
.job-title span {
  font-size: 0.9rem;
  color: #6b7280;
}

/* 職種詳細をテーブル風に */
.job-detail {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
  list-style: none;
  padding: 0;
}
.job-detail li {
  display: grid;
  grid-template-columns: 160px 1fr;
  padding: 8px 0;
  border-bottom: 1px dotted #d1d5db;
  line-height: 1.6;
}
.job-detail li strong {
  color: #374151;
  font-weight: 600;
}

/* 応募ボタン */
.apply-btn {
  display: inline-block;
  padding: 10px 24px;
  background: #0b6ddf;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
  transition: background 0.2s;
}
.apply-btn:hover {
  background: #0849a8;
}
/* スマホ対応 */
@media (max-width: 768px) {
  .job-detail li {
    grid-template-columns: 100%;
  }
  .job-detail li strong {
    display: block;
    margin-bottom: 2px;
  }
}
/* ===== ≤ 992px（タブレット） ===== */
@media (max-width: 992px) {
  .recruit-card {
    padding: 24px 22px;
  }
  .job-title {
    font-size: 1.15rem;
    margin-bottom: 12px;
  }
  .job-detail li {
    grid-template-columns: 140px 1fr;  /* 少し圧縮 */
    gap: 10px;
    padding: 8px 0;
    line-height: 1.7;
  }
  .apply-btn {
    display: block;                    /* ボタンをブロック化 */
    width: fit-content;
    margin: 8px 0 0 auto;              /* 右寄せで視認性UP */
    padding: 12px 22px;
  }
}

/* ===== ≤ 768px（スマホ横～標準） ===== */
@media (max-width: 768px) {
  .recruit-card {
    padding: 20px 16px;
    border-radius: 8px;
  }
  .job-title {
    font-size: 1.08rem;
    padding-bottom: 6px;
  }
  .job-detail li {
    grid-template-columns: 100%;       /* 表→段落に切替 */
    gap: 4px;
    padding: 10px 0;
  }
  .job-detail li strong {
    display: block;                    /* ラベルを上段に */
    margin-bottom: 2px;
    color: #111827;
  }
  .job-detail li br { display: none; } /* 不要な改行を抑制 */
  .apply-btn {
    width: 100%;                       /* 端末幅いっぱい */
    margin: 12px 0 0 0;
    text-align: center;
  }
}

/* ===== ≤ 560px（小さめ端末） ===== */
@media (max-width: 560px) {
  .recruit-card { padding: 18px 14px; }
  .job-detail li { padding: 8px 0; 
  font-size: 0.95rem;}
  .apply-btn { padding: 12px 18px; }
}

/* アクセシビリティ（フォーカスリング） */
.apply-btn:focus-visible {
  outline: 2px solid #66b3ff;
  outline-offset: 2px;
}

/* 応募方法セクション */
.apply-section {
  border-top: 2px solid #e5e7eb;
  padding-top: 40px;
}
.apply-section h3 {
  font-size: 1.5rem;
  margin-bottom: 20px;
}
.apply-section p {
  margin-bottom: 16px;
  line-height: 1.8;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .recruit-card {
    flex: 1 1 100%;
  }
  .recruit-intro, .apply-section p {
  font-size: 0.95rem;
}
}

/*まんがきょうだん*/
/* 作品紹介ブロック */
.mk-intro{
  background:#f7f9fc;
  padding:56px 0;
}
.mk-grid{
  display:grid;
  grid-template-columns: 420px 1fr; /* 表紙：テキスト＝約4:6 */
  gap:32px;
  align-items:start;
}
.mk-cover img{
  width:100%;
  height:auto;
  border-radius:12px;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
  background:#fff;
}
.mk-meta h2{
  margin:0 0 .4rem;
  font-size:1.6rem;
  font-weight:800;
  color:#0b73bf;
}
.mk-desc{
  color:#1f2937;
  line-height:1.9;
  margin:6px 0 14px;
}
.mk-spec{
  list-style:none;
  padding:0;
  margin:0 0 14px;
  color:#374151;
  line-height:1.8;
}
.mk-spec li+li{ margin-top:4px; }
.mk-price{
  font-size:1.4rem;
  font-weight:800;
  color:#111827;
  margin:8px 0 6px;
}
.mk-stock{
  display:inline-block;
  font-size:.9rem;
  font-weight:700;
  padding:6px 10px;
  border-radius:999px;
  line-height:1;
}
.mk-stock.ok{      background:#e8f7ee; color:#166534; }
.mk-stock.low{     background:#fff7e6; color:#92400e; }
.mk-stock.out{     background:#fde8e8; color:#991b1b; }

.order-btn {
  display: inline-block;
  background: #0b73bf;         /* メインカラー（ズームブルー） */
  color: #fff;
  font-size: 1.1rem;
  font-weight: bold;
  padding: 14px 32px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 10px rgba(11, 115, 191, 0.2);
}

.order-btn:hover {
  background: #095a95;         /* 濃いブルーに変化 */
  box-shadow: 0 6px 14px rgba(11, 115, 191, 0.3);
  transform: translateY(-2px);
}

.order-btn:active {
  transform: translateY(0);
  box-shadow: 0 3px 8px rgba(11, 115, 191, 0.2);
}

/* スマホ対応（中央寄せ＆幅調整） */
@media (max-width: 768px) {
  .order-btn {
    display: block;
    width: 100%;
    text-align: center;
    padding: 16px 0;
    font-size: 1rem;
    margin-top: 20px;
  }
}


/* 購入方法（ステップ） */
.mk-how{
  background:#fff;
  padding:48px 0 24px;
}
.mk-how h3{
  text-align:center;
  font-size:1.5rem;
  font-weight:800;
  color:#0b73bf;
  margin:0 0 16px;
}
.mk-steps{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap:14px;
  list-style:none;
  padding:0; margin:0 auto 10px;
  max-width:960px;
}
.mk-steps li{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:16px;
  text-align:center;
  box-shadow:0 6px 18px rgba(0,0,0,.04);
  color:#374151;
  line-height:1.6;
  font-weight:600;
}
.mk-note{
  text-align:center;
  color:#374151;
  margin:6px 0 0;
}

/* 申込みフォーム（CF7） */
.mk-form{
  background:#f7f9fc;
  padding:48px 0 64px;
}
.mk-form h3{
  text-align:center;
  font-size:1.5rem;
  font-weight:800;
  color:#0b73bf;
  margin:0 0 16px;
}
.cf7-table{
  width:100%;
  max-width:900px;
  margin:0 auto;
  border-collapse:separate;
  border-spacing:0 10px; /* 行間で読みやすく */
}
.cf7-table th,
.cf7-table td{
  vertical-align:top;
}
.cf7-table th{
  width:220px;
  padding:10px 14px 0 0;
  color:#374151;
  font-weight:700;
}
.cf7-table td{
  padding:0 0 0 0;
}
.cf7-table input[type="text"],
.cf7-table input[type="email"],
.cf7-table input[type="tel"],
.cf7-table input[type="number"],
.cf7-table select,
.cf7-table textarea{
  width:100%;
  padding:10px 12px;
  border:1px solid #d1d5db;
  border-radius:8px;
  background:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.03) inset;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.cf7-table textarea{ min-height:140px; }
.cf7-table input:focus,
.cf7-table select:focus,
.cf7-table textarea:focus{
  outline:none;
  border-color:#0b73bf;
  box-shadow:0 0 0 3px rgba(11,115,191,.15);
}
.req{ color:#ef4444; font-weight:700; }

/* 送信ボタン（CF7） */
.wpcf7 form .wpcf7-submit{
  appearance:none;
  display:inline-block;
  margin:18px auto 0;
  padding:12px 28px;
  background:#0b73bf;
  color:#fff;
  font-weight:800;
  border:none;
  border-radius:999px;
  cursor:pointer;
  transition:transform .1s ease, background .2s ease, box-shadow .2s ease;
  box-shadow:0 8px 18px rgba(11,115,191,.25);
}
.wpcf7 form .wpcf7-submit:hover{ background:#095a95; }
.wpcf7 form .wpcf7-submit:active{ transform: translateY(1px); }
.wpcf7 form .wpcf7-spinner{ margin-left:10px; }

/* 注意事項 */
.mk-terms{
  background:#fff;
  padding:36px 0 64px;
}
.mk-terms h4{
  font-size:1.2rem;
  font-weight:800;
  color:#0b73bf;
  margin:0 0 10px;
}
.mk-terms ul{
  max-width:900px;
  margin:0 auto;
  padding-left:18px;
  color:#374151;
  line-height:1.9;
}
@media (max-width: 768px) {
  .mk-terms ul{
  font-size:0.95rem;
}
}
/* ===== Responsive ===== */
@media (max-width: 992px){
  .mk-grid{
    grid-template-columns: 360px 1fr;
    gap:24px;
  }
  .mk-steps{ grid-template-columns: 1fr 1fr; }
  .ad-ttl{ font-size:1.9rem; }
}
@media (max-width: 768px){
  .ad-hero{ padding:56px 0; }
  .mk-grid{
    grid-template-columns: 1fr;       /* 縦積み */
    gap:18px;
  }
  .mk-cover img{ max-width:520px; margin:0 auto; display:block; }
  .mk-meta h2{ text-align:center; }
  .mk-price, .mk-stock{ display:block; }
  .mk-steps{ grid-template-columns: 1fr; }
  .cf7-table{
    border-spacing:0 12px;
  }
  .cf7-table th{
    width:auto;
    display:block;
    padding:0 0 6px;
  }
  .cf7-table td{
    display:block;
  }
}
@media (max-width: 420px){
  .ad-ttl{ font-size:1.6rem; }
  .ad-lead{ font-size:.95rem; }
  .mk-cover img{ max-width:100%; }
}

/*選択された商品*/
.selected-product {
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 12px 14px;
}
.selected-product p {
  margin: 4px 0;
  line-height: 1.6;
}
.selected-product strong {
  color: #0b73bf;
}
@media (max-width: 768px) {
  /* 既存の cf7-table が縦積みになる想定。選択中ブロックはそのままでOK */
  .selected-product { padding: 12px; }
}

.mansbumi {
  text-align:center;
}
.mansbumi p{
  display: flex;
  flex-direction: column;
}


/*新着情報一覧ページ　アーカイブ*/
.top_news_archive {
  width: 100%;
  overflow-x: hidden;
  padding-top: 100px;
  padding-bottom: 100px;
  background-color: #f8f9fc;
}

.news_list {
  display: flex;
  flex-direction: column;
}

.news-item {
  display: flex;
  align-items: center;
  text-decoration: none;
  padding: 25px 75px 25px 30px;
  transition: all 0.3s ease;
  border-bottom: solid 1px #ccc;
}

.news-date,
.news-category {
  font-size:clamp(0.938rem, 0.922rem + 0.06vw, 1rem);
  color: #000;
  white-space: nowrap;
  margin-right: 20px;
  padding: 2px 8px;
}

.news-category {
  font-size: 0.8125rem;
  background-color: #007acc;
  color: #fff;
}

.news-item p {
  color: #333;
  flex-grow: 1;
  min-width: 0;
}

.news-item:hover p {
  text-decoration: underline;
  color: #007acc;
  transition: color 0.3s;
}

.news-arrow {
  margin-left: auto;
  display: flex;
  align-items: center;
  color: #007acc;
}

.pagination {
  margin-top: 50px;
  text-align: center;
}
.pagination .page-numbers {
  display: inline-block;
  margin: 0 5px;
  padding: 8px 12px;
  background: #fff;
  color: #007acc;
  border: 1px solid #007acc;
  text-decoration: none;
  transition: all 0.3s;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover {
  background: #007acc;
  color: #fff;
}

/*お知らせ一覧内　カテゴリー*/
.news-category-list {
  margin-bottom: 50px;
  padding: 20px;
  background: #f1f5f9;
  border-radius: 21px;
}
.news-category-ul {
  display: flex;
  flex-wrap: wrap; /* 折り返し可能にする */
  gap: 10px;        /* 各カテゴリの間隔 */
  list-style: none;
  padding: 0;
  margin: 0;
}
.news-category-ul li {
  margin: 0; /* gapで調整するので不要 */
}
.news-category-ul li a {
  display: inline-block;
  padding: 6px 12px;
  background-color: #fff;
  color: #000;
  font-weight: 500;
  border: 1px solid #ccc;
  border-radius: 20px;
  font-size: 0.9rem;
  text-decoration: none;
  transition: 0.3s;
}
.news-category-ul li a:hover {
  background-color: #007acc;
  color: #fff;
  border-color: #007acc;
}

@media screen and (max-width: 768px) {
.top_news_archive {
  padding-top: 60px;
  padding-bottom: 60px;
}
.news-item {
  flex-direction: column;
  align-items: flex-start;
  padding: 20px;
}
/* 日付とカテゴリの横並び共通 */
.news-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 8px;
  gap: 10px;
}
.news-date {
  margin: 0;
  padding: 2px 8px 2px 0;
}
.news-arrow {
  display: none; /* モバイルでは非表示（必要なら残してもOK） */
}
.news-item p {
  margin-bottom: 10px;
}
.news-category-ul {
  gap: 8px;
}
.pagination .page-numbers {
  padding: 6px 10px;
  font-size: 0.9rem;
}
}

/*お知らせ詳細ぺージ*/
/* 全体レイアウト */
.single_layout {
  max-width: 960px;
  margin: 0 auto;
  padding: 60px 20px;
  background-color: #fff;
  font-family: 'Noto Sans JP', sans-serif;
}

/* 記事ヘッダー部分 */
.blog-header {
  margin-bottom: 30px;
  border-bottom: 1px solid #ddd;
  padding-bottom: 20px;
}

.blog-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.calendar-date {
  display: flex;
  gap: 2px;
  font-size: 0.95rem;
  line-height: 1;
}

.post-category {
  background-color: #007acc;
  color: #fff;
  font-size: 0.85rem;
  padding: 4px 10px;
  border-radius: 16px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  height: 100%;
}



.category-label {
  display: inline-block;
  background-color: #007acc;
  color: #fff;
  padding: 3px 10px;
  margin-right: 8px;
  font-size: 0.85rem;
  border-radius: 20px;
}

.blog-title h1 {
  font-size: clamp(1.3rem, 2vw + 1rem, 1.75rem);
  line-height: 1.5;
  margin: 0;
}

/* 本文 */
.newssingle {
  line-height: 1.9;
  font-size: 1rem;
}

.newssingle p {
  margin-bottom: 1.5em;
}

/* Gutenberg 見出し対応 */
.newssingle h2,
.newssingle h3,
.newssingle h4 {
  margin-top: 2em;
  margin-bottom: 0.8em;
  font-weight: bold;
}

.newssingle h2 {
  font-size: 1.5rem;
  border-left: 5px solid #007acc;
  padding-left: 10px;
}

.newssingle h3 {
  font-size: 1.25rem;
  border-left: 4px solid #ccc;
  padding-left: 8px;
}

.newssingle ul,
.newssingle ol {
  padding-left: 1.5em;
  margin-bottom: 1.5em;
}

.newssingle li {
  margin-bottom: 0.5em;
}

/* 画像・表対応 */
.newssingle img {
  max-width: 100%;
  height: auto;
  margin: 20px 0;
}

.newssingle table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 2em;
}

.newssingle th,
.newssingle td {
  border: 1px solid #ccc;
  padding: 10px;
  text-align: left;
}

/* ===== ページナビ（前・次・一覧）共通 ===== */
.next-prev-bt {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  margin: 60px auto 0;
  flex-wrap: wrap;
  text-align: center;
}

.next-prev-bt p {
  margin: 0;
  font-size: 0.95rem;
}

.next-prev-bt a {
  display: inline-block;
  padding: 10px 18px;
  background-color: #007acc;
  color: #fff;
  text-decoration: none;
  border-radius: 25px;
  transition: background-color 0.3s;
  text-align: center;
  min-width: 180px; /* 最低幅を指定して見た目をそろえる */
}

.next-prev-bt a:hover {
  background-color: #005f99;
}

@media screen and (max-width: 768px) {
  .single_layout {
  padding: 60px 10px;
}
  .next-prev-bt {
    flex-direction: column;
    gap: 20px;
    margin-top: 40px;
  }

  .next-prev-bt a {
    width: 100%;
    max-width: 250px;
    min-width: auto;
  }

  .next-prev-bt p {
    width: 100%;
    text-align: center;
  }
}








/* お問い合わせフォーム */
.contact-intro {
  text-align: center;
  padding: 80px 0 0px;
  background: #f8f9fc;
}
.contact-title {
  font-size: 2rem;
  font-weight: bold;
  color: #0b73bf;
  margin-bottom: 15px;
}
.contact-lead {
  font-size: 1.1rem;
  line-height: 1.8;
  color: #333;
}
@media screen and (max-width: 768px) {
  .contact-title {
  font-size: 1.6rem;}
.contact-lead {
  font-size: 0.95rem;
}
}
.contact-form-section {
  background-color: #f8f8f8;
  padding: 80px 0;
}

.contact-form-section .container {
  margin: 0 auto;
  background: #fff;
  padding: 40px 20px;
  border-radius: 10px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}
@media screen and (max-width: 1199px) {
  .contact-form-section .container {
  padding: 0;
}
}
.cf7-table {
  width: 100%;
  padding: 40px 10px;
  border-collapse: collapse;
}

.cf7-table th {/*項目名*/
  width: 30%;
  text-align: left;
  padding: 15px 10px;
  background: #f5f5f5;
  font-weight: bold;
}
.req {
  color: #e60033;
  font-size: 0.875rem;
}


.cf7-table td {/*入力フィールド*/
  padding: 15px 10px;
  background: #fff;
}

.cf7-table input,
.cf7-table textarea,
.cf7-table select {
  width: 100%;
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 6px;
  background-color: #eaf4fb;
  box-sizing: border-box;
}
@media screen and (max-width: 991px) {
  .cf7-table,
  .cf7-table tbody,
  .cf7-table tr,
  .cf7-table th,
  .cf7-table td {
    display: block;
    width: 100%;
  }

  .cf7-table tr {
    margin-bottom: 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
  }

  .cf7-table th {
    background: none;
    padding: 10px 0 5px;
    font-size: 0.95rem;
  }

  .cf7-table td {
    background: none;
    padding: 0 0 10px;
  }

  .cf7-table th .req {
    display: inline-block;
    margin-left: 8px;
  }
}


/* チェックボックス */
td #ckbox label {
  display: flex;
  align-items: center;
  gap: 8px; 
/*  white-space: nowrap;*/
}
td #ckbox label input[type="checkbox"] {margin: 0;}
.cf7-table td[colspan="2"] {
  text-align: center;
  padding: 20px 0px;
}
#ckbox {
  margin-right: 8px;
}
/* チェックボックスを非表示に */
input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border: 2px solid #007acc;
  border-radius: 4px;
  position: relative;
  cursor: pointer;
  background-color: #fff;
}
/* チェックが入った時のスタイル */
input[type="checkbox"]:checked::before {
  content: "✔";
  position: absolute;
  top: -5px;
  left: 2px;
  color: #007acc;
  font-size: 16px;
}

.submit-cell {
  text-align: center;
  padding-top: 30px;
}
input[type="submit"] {
  cursor: pointer;
  background: #007acc;
  border: solid 1px #007acc;
  color: #fff;
  font-size: 1rem;
  transition: all 0.3s ease;
}
input[type="submit"]:hover {
  background: #fff;
  color: #007acc;
}
@media screen and (max-width: 991px) {
.cf7-table .wpcf7-list-item-label {
  font-size: 0.95rem;
}
}
/*お問い合わせ完了ぺージ*/
.thanks-section {
  width: 100%;
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8f9fc;
  padding: 80px 20px;
}
.thanks-section .container {
  display: flex;
  align-items: center;
  justify-content: center;
}
.thanks-box {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 60px 40px;
  max-width: 720px;
  width: 100%;
  text-align: center;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}

.thanks-text {
  font-size: 1rem;
  line-height: 1.9;
  color: #333;
  margin-bottom: 40px;
  font-weight: 500;
}

.thank-btn a {
  display: inline-block;
  background: #0b73bf;
  color: #fff;
  text-decoration: none;
  padding: 14px 40px;
  font-size: 1.1rem;
  border-radius: 6px;
  transition: background 0.3s ease;
}

.thank-btn a:hover {
  background: #094f88;
}

/* スマホ対応 */
@media (max-width: 768px) {
  .thanks-section {
    padding: 40px 10px;
}
  .thanks-box {
    padding: 40px 20px;
  }
  .thanks-text {
    font-size: .95rem;
  }
  .thank-btn a {
    width: 100%;
    max-width: 280px;
  }
}




/* フッター */
footer {
  background-color: #1a1a1a;
  color: #fff;
  font-size: 0.9rem;
}

.footer-top {
  padding: 40px 0;
  border-bottom: 1px solid #333;
}

.footer-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 30px;
}

.footer-logo img {
  width: 180px;
  height: auto;
}

/* フッター内ナビ再構築 */
/*.footer-nav { width: 100%; }*/
.footer-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 32px 48px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-col { min-width: 0; }

.fnav-heading {
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 12px 0;
  letter-spacing: .04em;
}

.fnav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.fnav-list li { margin: 0 0 8px 0; }
.fnav-list a {
  color: #fff;
  font-weight: 400;
  text-decoration: none;
  transition: color .2s ease, opacity .2s ease;
}
.fnav-list a:hover { color: #fff; }

/* 既存の .footer-nav ul/li の縦並び指定は無効化 */
.footer-nav > ul,
.footer-nav > ul > li { margin: 0; }

/* レスポンシブ */
@media (max-width: 768px) {
  .footer-columns { grid-template-columns: 1fr; gap: 24px; }
  .fnav-heading { text-align: center; }
  .fnav-list li { text-align: center; }
}

.footer-info p {
  margin: 0 0 10px;
  line-height: 1.6;
}

.footer-bottom {
  background-color: #111;
  padding: 15px 0;
  text-align: center;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0 0 10px;
  display: flex;
  justify-content: center;
  gap: 20px;
}

.footer-links li a {
  color: #ccc;
  text-decoration: none;
  font-size: 0.85rem;
}

.footer-links li a:hover {
  color: #fff;
}

.footer-copyright {
  font-size: 0.75rem;
  color: #888;
  margin: 0;
}

/* Responsive */
@media (max-width: 768px) {
  .footer-grid {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .footer-nav ul li {
    display: inline-block;
    margin: 0 10px 10px 10px;
  }

  .footer-info {
    margin-top: 20px;
  }
}
/*プライバシーポリシーぺージ*/
.pp { padding: 60px 0; background: #fff; }
.pp .pp-title { font-size: 2rem; font-weight: 700; color: #0b73bf; margin-bottom: 30px; text-align: center; }
.pp h2 { font-size: 1.2rem; font-weight: 700; margin-top: 40px; margin-bottom: 10px; color: #333; }
.pp p, .pp address { line-height: 1.9; color: #333; }
.pp address { font-style: normal; margin-top: 10px; }
