/*
Theme Name: Manufacturing Corporate Theme
Theme URI: https://mje-create.com
Author: MJE Inc.
Author URI: https://mje-create.com
Description: 製造系コーポレートサイト用テンプレートテーマ。ネイビー×グレーを基調としたレスポンシブデザイン。管理画面から更新しやすい構成。
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: mfgcorp-theme
*/

/* ============================================================
   0. 変数
============================================================ */
:root{
  --color-navy: #00162d;
  --color-navy-light: #0a2540;
  --color-gray: #8a8f98;
  --color-gray-light: #f5f6f7;
  --color-gray-border: #e3e5e8;
  --color-white: #ffffff;
  --color-text: #222831;
  --color-blue-accent: #2f6fb0;
  --font-en: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-jp: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  --header-height: 84px;
  --header-height-sp: 60px;
  --content-width: 1200px;
}

/* ============================================================
   1. リセット・基本設定
============================================================ */
*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-jp);
  font-size:15px;
  font-weight:500;
  line-height:1.9;
  color: var(--color-text);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
@media (min-width: 768px){ body{ font-size:16px; } }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; transition: opacity .25s ease, background-color .25s ease, color .25s ease; }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6{ margin:0; font-weight:300; }
p{ margin:0 0 1em; }
button{ font-family:inherit; cursor:pointer; }
input,textarea,select{ font-family:inherit; }

.en-title{
  font-family: var(--font-en);
  text-transform: uppercase;
  font-weight:300;
  letter-spacing: .04em;
}

.inner{ max-width: var(--content-width); margin:0 auto; padding:0 24px; }
@media (max-width: 767px){ .inner{ padding:0 20px; } }

.section{ padding: 90px 0; }
@media (max-width: 767px){ .section{ padding: 56px 0; } }

.section--navy{ background: var(--color-navy); color:#fff; }
.section--gray{ background: var(--color-gray-light); }

.section-head{ margin-bottom: 48px; }
.section-head .badge{
  display:inline-block;
  background: var(--color-gray-light);
  color: var(--color-navy);
  font-size:12px;
  letter-spacing:.08em;
  padding:6px 18px;
  transform: skewX(-10deg);
  margin-bottom: 16px;
}
.section-head .badge span{ display:inline-block; transform: skewX(10deg); }
.section--navy .section-head .badge{ background: rgba(255,255,255,.08); color:#fff; }

.section-head h2{
  font-family: var(--font-en);
  font-weight:300;
  font-size: 50px;
  line-height:1.1;
  text-transform: uppercase;
  letter-spacing: .02em;
}
@media (max-width: 767px){ .section-head h2{ font-size: 34px; } }

.section-head .ja{
  display:block;
  font-family: var(--font-jp);
  font-size:14px;
  font-weight:500;
  color: var(--color-gray);
  margin-top:8px;
  letter-spacing:.05em;
}

/* 見出しボックス（斜線ハッチング背景） */
.heading-box{
  position:relative;
  display:inline-block;
  padding: 26px 32px;
  margin-bottom: 8px;
}
.heading-box .en{
  display:block;
  font-family: var(--font-en);
  font-weight:300;
  font-size: 34px;
  letter-spacing:.02em;
}
.heading-box .ja{
  display:block;
  font-family: var(--font-jp);
  font-size:14px;
  font-weight:500;
  margin-top:0;
  letter-spacing:.05em;
  color: var(--color-gray);
}
.heading-box--dark{
  color:#fff;
  background-color: rgba(255,255,255,.03);
  background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.09) 0 2px, transparent 1px 10px);
  width: 100%;
}
.heading-box--light{
  color: var(--color-navy);
  /* background-color: rgba(0,22,45,.02); */
  background-image: repeating-linear-gradient(135deg, rgba(0,22,45,.09) 0 2px, transparent 1px 10px);
  width: 100%;
}
@media (max-width:767px){
  .heading-box{ padding: 20px 24px; }
  .heading-box .en{ font-size:28px; }
}

/* ============================================================
   2. ボタン
============================================================ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width: 220px;
  padding: 16px 28px;
  border-radius: 999px;
  border:1px solid var(--color-navy);
  background: var(--color-navy);
  color:#fff;
  font-size:14px;
  letter-spacing:.05em;
  text-align:center;
}
.btn:hover{ opacity:.82; }
.btn--outline{
  background: transparent;
  border-color: rgba(255,255,255,.6);
  color:#fff;
}
.btn--white{
  background:#fff;
  border-color:#fff;
  color: var(--color-navy);
}
.btn--outline-navy{
  background: transparent;
  border-color: var(--color-navy);
  color: var(--color-navy);
}
.btn--block{ width: fit-content; }

/* ============================================================
   3. ヘッダー
============================================================ */
.site-header{
  position: fixed;
  top:0; left:0; width:100%;
  z-index: 999;
  height: var(--header-height-sp);
  background: #fff;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  transition: background-color .3s ease, box-shadow .3s ease;
}
@media (min-width: 768px){ .site-header{ height: var(--header-height); } }

.site-header.is-transparent{
  background: transparent;
  box-shadow: none;
}

.site-header__inner{
  max-width: 1440px;
  margin:0 auto;
  height:100%;
  padding:0 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.site-logo__link{ display:flex; align-items:center; }
.site-logo__img{ height: 32px; width:auto; }
@media (min-width: 768px){ .site-logo__img{ height: 40px; } }

/* ロゴのスクロール連動切り替え（白ロゴ⇔通常ロゴ 両方設定時） */
.site-logo__img--normal{ display:none; }
.site-header.is-transparent .site-logo__img--white{ display:block; }
.site-header.is-transparent .site-logo__img--normal{ display:none; }
.site-header:not(.is-transparent) .site-logo__img--white{ display:none; }
.site-header:not(.is-transparent) .site-logo__img--normal{ display:block; }
.site-logo-text{
  font-family: var(--font-en);
  font-weight:700;
  font-size:18px;
  letter-spacing:.03em;
  color: var(--color-navy);
}
.site-header.is-transparent .site-logo-text{ color:#fff; }

.header-nav{ display:none; align-items:center; gap:8px; }
@media (min-width:1024px){ .header-nav{ display:flex; } }
.header-nav ul{ display:flex; align-items:center; gap:32px; }
.header-nav a{
  display:block;
  font-size:14px;
  font-weight:500;
  letter-spacing:.02em;
  color: var(--color-navy);
  position:relative;
  padding: 6px 0;
}
.site-header.is-transparent .header-nav a{ color:#fff; }
.header-nav a::after{
  content:'';
  position:absolute; left:0; bottom:-2px;
  width:0; height:1px; background: currentColor;
  transition: width .25s ease;
}
.header-nav a:hover::after{ width:100%; }
.header-nav .nav-en{ display:block; font-family: var(--font-en); font-size:14px; letter-spacing:.05em; }
.header-nav .nav-ja{ display:block; font-size:10px; margin-top:2px; opacity:.7; }

.header-icons{ display:flex; align-items:center; gap:14px; }
.header-icons a{ display:flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; border:1px solid rgba(0,0,0,.15); color: var(--color-navy); }
.site-header.is-transparent .header-icons a{ border-color: rgba(255,255,255,.4); color:#fff; }
.header-icons svg{ width:14px; height:14px; fill:currentColor; }

/* ハンバーガー */
.nav-toggle{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:36px; height:36px;
  border:none; background:none;
  padding:0;
  z-index: 1001;
}
@media (min-width:1024px){ .nav-toggle{ display:none; } }
.nav-toggle span{
  display:block; width:100%; height:2px;
  background: var(--color-navy);
  transition: transform .3s ease, opacity .3s ease, background-color .3s ease;
}
.site-header.is-transparent .nav-toggle span{ background:#fff; }
.nav-toggle.is-active span{ background: var(--color-navy) !important; }
.nav-toggle.is-active span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-active span:nth-child(2){ opacity:0; }
.nav-toggle.is-active span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

.sp-nav{
  position: fixed;
  inset:0;
  background: var(--color-navy);
  color:#fff;
  z-index: 1000;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding: 40px;
  opacity:0;
  visibility:hidden;
  transform: translateY(-10px);
  transition: opacity .3s ease, transform .3s ease, visibility .3s ease;
}
.sp-nav.is-active{ opacity:1; visibility:visible; transform:none; }
@media (min-width:1024px){ .sp-nav{ display:none; } }
.sp-nav ul{ display:flex; flex-direction:column; gap:22px; }
.sp-nav a{ font-size:20px; font-weight:500; }
.sp-nav .nav-en{ font-family: var(--font-en); font-size:20px; }
.sp-nav .nav-ja{ display:block; font-size:12px; opacity:.7; margin-top:2px; }

/* ============================================================
   4. ページヒーロー（下層ページ）
============================================================ */
.page-hero{
  position: relative;
  padding-top: 140px;
  padding-bottom: 60px;
  overflow:hidden;
}
@media (max-width: 767px){ .page-hero{ padding-top: 100px; padding-bottom: 40px; } }
.page-hero__inner{ position:relative; z-index:2; max-width: var(--content-width); margin:0 auto; padding:0 24px; }
.page-hero__inner .en{
  display:block;
  font-family: var(--font-en);
  font-weight:300;
  font-size: 52px;
  color: var(--color-navy);
  text-transform: uppercase;
}
@media (max-width:767px){ .page-hero__inner .en{ font-size:34px; } }
.page-hero__inner .ja{
  display:block; margin-top:6px;
  font-size:13px; color: var(--color-gray);
  letter-spacing:.05em;
}

.page-hero--photo{ padding-bottom: 0; }
.page-hero--no-photo{ padding-bottom: 40px; }
.page-hero--photo .page-hero__photo{
  margin-top: 32px;
  height: 340px;
  background-size: cover;
  background-position: center;
  position:relative;
}
.page-hero--photo .page-hero__photo::after{
  content:'';
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,22,45,.25), rgba(0,22,45,.55));
}
@media (max-width:767px){ .page-hero--photo .page-hero__photo{ height: 200px; } }

/* 斜めカット装飾 */
.diagonal-cut{
  position: relative;
}
.diagonal-cut::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:-1px;
  height: 60px;
  background: var(--color-gray-light);
  clip-path: polygon(0 100%, 100% 40%, 100% 100%);
}
@media (max-width:767px){ .diagonal-cut::after{ height:34px; } }
.diagonal-cut--navy::after{ background: var(--color-navy); }

/* 斜めカット装飾（実SVG図形版・下にとがる・全ブラウザ対応） */
.diagonal-cut-svg{ position: relative; }
.diagonal-cut-svg__shape{
  position:absolute;
  left:0; right:0; bottom:0px;
  width:100%;
  height:110px;
  z-index:1;
  filter: drop-shadow(0 8px 8px rgba(10,30,60,.35));
}
.diagonal-cut-svg__shape path{ fill: var(--color-navy); }
@media (max-width:767px){ .diagonal-cut-svg__shape{ height:60px; } }

/* ============================================================
   5. フロントページ：MV
============================================================ */
.hero-mv{
  position: relative;
  height: 100svh;
  min-height: 560px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#fff;
  overflow:hidden;
}
.hero-mv__bg{
  position:absolute; inset:0;
  background-size: cover;
  background-position:center;
}
.hero-mv__bg::after{
  content:'';
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,10,22,.55), rgba(0,22,45,.75));
}
.hero-mv__content{ position:relative; z-index:2; padding: 0 24px; }
.hero-mv__copy{
  font-size: 26px;
  font-weight:500;
  letter-spacing:.06em;
  margin-bottom: 28px;
}
@media (min-width:768px){ .hero-mv__copy{ font-size: 42px; } }
.hero-mv__logo img{ height: 26px; margin: 0 auto; }
@media (min-width:768px){ .hero-mv__logo img{ height: 34px; } }
.hero-mv__logo .site-logo-text{ color:#fff; font-size:20px; }
.hero-mv__scroll{
  position:absolute; left:50%; bottom:36px; transform: translateX(-50%);
  z-index:2;
  font-family: var(--font-en);
  font-size:11px; letter-spacing:.2em; color:#fff;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.hero-mv__scroll::after{
  content:'';
  width:1px; height:44px;
  background: linear-gradient(to bottom, transparent, rgba(255,255,255,.9), transparent);
  background-size: 100% 200%;
  background-position: 0% -100%;
  animation: scrollLine 1.8s linear infinite;
}
@keyframes scrollLine{
  0%{ background-position: 0% -100%; }
  100%{ background-position: 0% 200%; }
}

/* イントロ */
.top-intro{ position:relative; padding: 90px 0; margin-top:-60px; color:#fff; }
.top-intro::before{
  content:'';
  position:absolute;
  bottom:0; left:0; right:0;
  top: 60px;
  background: var(--color-navy);
  z-index:0;
}
.top-intro .inner{ position:relative; z-index:2; }
.top-intro__diagonal{
  position:absolute;
  left:0; right:0; top:0;
  width:100%;
  height:60px;
  z-index:1;
}
.top-intro__diagonal path{ fill: var(--color-navy); }
@media (max-width:767px){
  .top-intro{ padding:56px 0; margin-top:-34px; }
  .top-intro::before{ top:34px; }
  .top-intro__diagonal{ height:34px; }
}
.top-intro__grid{ display:grid; gap:40px; }
@media (min-width: 1024px){ .top-intro__grid{ grid-template-columns: 1.1fr .9fr; align-items:start; } }
.top-intro h2{ font-size: 26px; font-weight:500; line-height:1.6; margin-bottom:20px; }
@media (min-width:768px){ .top-intro h2{ font-size:34px; } }
.top-intro__text{ color: rgba(255,255,255,.85); font-size:15px; }
.top-intro__links{ display:grid; gap:0; }
.top-intro__link{
  display:flex; align-items:center; justify-content:space-between;
  padding: 22px 0;
  border-top: 1px solid #fff;
  background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, .09) 0 2px, transparent 1px 10px);
  width: 100%;
}
.top-intro__link:last-child{ border-bottom: 1px solid #fff; }
.top-intro__link .ttl{ font-family: var(--font-en); font-size:26px; font-weight:300; text-transform:uppercase; }
.top-intro__link small{ display:block; font-size:12px; font-weight:400; color:#fff; margin-top:4px; }
.top-intro__link .arrow{ font-size:13px; }

/* 写真バンド */
.top-photoband{ display:flex; }
.top-photoband > div{ flex:1; height: 260px; background-size:cover; background-position:center; }
@media (max-width:767px){ .top-photoband{ flex-direction:column; } .top-photoband > div{ height:180px; } }

/* Company 帯 */
.top-company{
  position:relative;
  padding: 90px 0;
  background: var(--color-gray-light);
  background-size: cover;
  background-position: center;
  overflow:hidden;
}
.top-company.has-bg::before{
  content:'';
  position:absolute; inset:0;
  background: rgba(245,246,247,.88);
  z-index:1;
}
@media (max-width:767px){ .top-company{ padding:56px 0; } }
.top-company__grid{ position:relative; z-index:2; display:grid; gap:32px; align-items:center; }
@media (min-width:1024px){ .top-company__grid{ grid-template-columns: .8fr 1.2fr; } }
.top-company__text h2{ font-family: var(--font-en); font-size:38px; font-weight:300; text-transform:uppercase; }
.top-company__text .ja{ display:block; font-size:14px; color: var(--color-gray); margin:0; }
.top-company__text p{ margin: 1em 0 3em; }
.top-company__photos{ display:flex; align-items:flex-start; gap:0; }
.top-company__photos > div{ flex:1; height: 420px; background-size:cover; background-position:center; }
.top-company__photos > div:nth-child(2){ margin-top: 30px; }
.top-company__photos > div:nth-child(3){ margin-top: 60px; }
@media (max-width:1023px){
  .top-company__photos > div{ height: 300px; }
  .top-company__photos > div:nth-child(2){ margin-top: 20px; }
  .top-company__photos > div:nth-child(3){ margin-top: 40px; }
}
@media (max-width:767px){
  .top-company__photos > div{ height: 190px; }
  .top-company__photos > div:nth-child(2){ margin-top: 12px; }
  .top-company__photos > div:nth-child(3){ margin-top: 24px; }
}

/* News */
.top-news{ position:relative; padding: 90px 0 150px; margin-top:-60px; color:#fff; }
.top-news::before{
  content:'';
  position:absolute;
  top:60px; left:0; right:0;
  bottom: 110px;
  background: var(--color-navy);
  z-index:0;
}
.top-news__diagonal-top{
  position:absolute;
  left:0; right:0; top:0;
  width:100%;
  height:60px;
  z-index:1;
}
.top-news__diagonal-top path{ fill: var(--color-navy); }
.top-news .inner{ position:relative; z-index:2; }
@media (max-width:767px){
  .top-news{ padding:56px 0 90px; margin-top:-34px; }
  .top-news::before{ top:34px; bottom:60px; }
  .top-news__diagonal-top{ height:34px; }
}
.top-news__grid{ display:grid; gap: 48px; align-items:start; }
@media (min-width:768px){ .top-news__grid{ grid-template-columns: 3fr 7fr; } }
.top-news__head{ margin-bottom: 0; }
.news-list{ border-top: 1px solid rgba(255,255,255,.18); }
.news-list__item{
  display:grid;
  grid-template-columns: 110px 1fr auto;
  gap:24px;
  align-items:center;
  padding: 20px 0;
  border-bottom: 1px solid rgba(255,255,255,.18);
}
@media (max-width:767px){ .news-list__item{ grid-template-columns: 1fr; gap:8px; } }
.news-list__date{ font-size:13px; color: rgba(255,255,255,.6); }
.news-list__title{ font-size:14px; color:#fff; }
.news-list__more{ font-size:12px; color:#fff; white-space:nowrap; }

/* ============================================================
   6. 企業理念ページ
============================================================ */
.philosophy-lead{ background: var(--color-navy); color:#fff; padding: 70px 0 90px; text-align:center; }
.philosophy-lead h2{ font-size:22px; font-weight:500; line-height:1.9; max-width:900px; margin:0 auto 24px; }
@media (min-width:768px){ .philosophy-lead h2{ font-size:28px; } }
.philosophy-lead p{ color: rgba(255,255,255,.8); font-size:14px; max-width:760px; margin:0 auto; }


/* スライドショーの設定 */
.photo-strip {
  display: flex;
  overflow: hidden;
  width: 100%;
 animation: photo-slide 8s linear infinite;
}
.photo-strip div {
  flex: 0 0 240px;
  height: 180px;
  background-size: cover;
  background-position: center;
}
@media (max-width: 767px) {
  .photo-strip div {
    flex-basis: 160px;
    height: 130px;
  }
}

.feature-block{ display:grid; gap:36px; align-items:center; padding: 60px 0; }
@media (min-width:1024px){ .feature-block{ grid-template-columns: 1fr 1fr; } .feature-block.is-reverse .feature-block__photo{ order:2; } }
.feature-block__photo{ padding-top:65%; background-size:cover; background-position:center; }
.feature-block__text h3{
  display:inline-block;
  padding: 10px 20px;
  font-size:18px;
  font-weight:700;
  letter-spacing:.03em;
  color: var(--color-navy);
  height: fit-content;
  transform: skewX(-8deg);
  background-image: repeating-linear-gradient(135deg, rgba(0, 22, 45, .09) 0 2px, transparent 1px 10px);
  margin-bottom:18px;
}
.feature-block__text h3 span{ display:inline-block; transform: skewX(8deg); }
.feature-block__text p{ font-size:14px; color:#4a4f56; }

/* ============================================================
   7. 事業内容ページ
============================================================ */
.service-item{ display:grid; gap:36px; align-items:start; padding: 70px 0; border-bottom:1px solid var(--color-gray-border); }
.service-item:last-child{ border-bottom:none; }
@media (min-width:1024px){
  .service-item{ grid-template-columns: 200px 1fr; }
}
.service-item__label{
  display:inline-block;
  /* background: var(--color-gray-light); */
  padding: 10px 20px;
  font-size:18px;
  font-weight:700;
  letter-spacing:.03em;
  color: var(--color-navy);
  height: fit-content;
  transform: skewX(-8deg);
  background-image: repeating-linear-gradient(135deg, rgba(0, 22, 45, .09) 0 2px, transparent 1px 10px);
}
.service-item__label span{ display:inline-block; transform: skewX(8deg); }
.service-item__photo{ padding-top: 56%; background-size:cover; background-position:center; margin-bottom:18px; }
.service-item__text{ font-size:15px; color:#4a4f56; }

/* ============================================================
   8. 会社情報ページ
============================================================ */
.info-table{ width:100%; border-collapse:collapse; margin: 0 auto; }
.info-table th, .info-table td{ padding: 18px 16px; border-bottom:1px solid var(--color-gray-border); text-align:left; vertical-align:top; font-size:14px; }
.info-table th{ width: 180px; color: var(--color-gray); font-weight:600; }
@media (max-width:767px){ .info-table th, .info-table td{ display:block; width:100%; padding: 6px 0; } .info-table tr{ display:block; padding:14px 0; border-bottom:1px solid var(--color-gray-border); } .info-table th, .info-table td{ border-bottom:none; } }

.table-heading{ text-align:center; margin: 70px 0 30px; position:relative; }
.table-heading span{
  display:inline-block;
  /* background: var(--color-gray-light); */
  padding: 10px 40px;
  font-size:14px;
  font-weight:700;
  color: var(--color-navy);
  background-image: repeating-linear-gradient(135deg, rgba(0, 22, 45, .09) 0 2px, transparent 1px 10px);
  width: 50%;
}

.history-table{ width:100%; border-collapse:collapse; }
.history-table tr{ border-bottom:1px solid var(--color-gray-border); }
.history-table th, .history-table td{ padding:16px; text-align:left; font-size:14px; }
.history-table th{ width:120px; color: var(--color-navy); font-weight:700; }

.access-block{ padding: 40px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.access-block:last-child{ border-bottom:none; }
.access-block h3{ font-size:16px; font-weight:700; margin-bottom:16px; }
.access-block iframe, .access-block .map-fallback{ width:100%; height:320px; border:0; background: rgba(255,255,255,.08); }
.access-block .addr{ margin-top:14px; font-size:13px; color: rgba(255,255,255,.85); }

.equip-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: 24px; }
@media (min-width:768px){ .equip-grid{ grid-template-columns: repeat(4,1fr); } }
.equip-item img{ width:100%; aspect-ratio:1/1; object-fit:cover; }
.equip-item p{ text-align:center; font-size:12px; margin-top:8px; margin-bottom:0; }

/* ============================================================
   9. お問い合わせ / フォーム
============================================================ */
.contact-lead{ font-size:14px; margin-bottom: 40px; text-align:center; }
.hidden-fields-container{ display:none !important; }
.wpcf7 form.CF7_table p{ margin:0; }
.wpcf7-form table.CF7_table{ width:100%; border-collapse:collapse; }
.wpcf7-form table.CF7_table th,
.wpcf7-form table.CF7_table td{ display:block; width:100%; padding:0; text-align:left; border:0; }
.wpcf7-form table.CF7_table tr{ display:block; padding: 22px 0; border-bottom:1px solid var(--color-gray-border); }
.wpcf7-form table.CF7_table th{ font-size:14px; font-weight:600; margin-bottom:10px; display:flex; align-items:center; gap:10px; }
.wpcf7-form input[type=text], .wpcf7-form input[type=tel], .wpcf7-form input[type=email], .wpcf7-form textarea{
  width:100%;
  padding: 14px 16px;
  background: var(--color-gray-light);
  border: 1px solid var(--color-gray-border);
  font-size:14px;
}
.wpcf7-form textarea{ min-height: 160px; resize:vertical; }
.CF7_req{ display:inline-block; background: var(--color-blue-accent); color:#fff; font-size:11px; padding:3px 8px; border-radius:3px; }
.CF7_unreq{ display:inline-block; background: var(--color-gray); color:#fff; font-size:11px; padding:3px 8px; border-radius:3px; }
.wpcf7-form .privacy-agree{ margin: 20px 0; font-size:13px; }
.wpcf7-form .privacy-agree a{ color: var(--color-blue-accent); text-decoration: underline; }
.wpcf7-form input[type=submit]{
  display:block; margin: 30px auto 0;
  min-width: 260px;
  padding: 16px 30px;
  border-radius: 999px;
  border: 1px solid var(--color-navy);
  background: transparent;
  color: var(--color-navy);
  font-size:14px;
  letter-spacing:.05em;
}
.wpcf7-form input[type=submit]:hover{ background: var(--color-navy); color:#fff; }
.wpcf7-not-valid-tip{ color:#c0392b; font-size:12px; margin-top:6px; display:block; }
.wpcf7-response-output{ margin-top:20px !important; border-radius:4px; font-size:13px; }

/* ============================================================
   10. ニュース一覧・詳細
============================================================ */
.news-archive-list{ display:grid; gap: 40px; max-width: 760px; margin: 0 auto; }
.news-card{ display:block; }
.news-card__thumb{ width:100%; aspect-ratio: 16/8; object-fit:cover; margin-bottom:16px; }
.news-card__date{ font-size:12px; color: var(--color-gray); }
.news-card__title{ font-size:18px; font-weight:500; margin: 8px 0 12px; }
.news-card__excerpt{ font-size:13px; color:#4a4f56; }
.news-card__more{
  display:inline-block; margin-top:14px; padding: 10px 22px; font-size:12px;
  background: var(--color-blue-accent); color:#fff; border-radius:999px;
}
.news-single{ max-width: 800px; margin:0 auto; }
.news-single__meta{ font-size:13px; color: var(--color-gray); margin-bottom: 16px; }
.news-single__title{ font-size: 26px; font-weight:500; margin-bottom: 30px; line-height:1.5; }
.news-single__thumb{ width:100%; margin-bottom: 30px; }
.news-single__content{ font-size:15px; line-height:2; }
.news-single__content p{ margin:0 0 1.6em; }
.news-single__content img{ margin: 1.5em 0; }
.news-single__back{ margin-top: 60px; text-align:center; }

.pagination{ display:flex; justify-content:center; gap:8px; margin-top: 50px; }
.pagination .page-numbers{
  display:flex; align-items:center; justify-content:center;
  width:38px; height:38px; font-size:16px;
  border:1px solid var(--color-gray-border);
  color: var(--color-navy);
}
.pagination .page-numbers.current{ background: var(--color-navy); color:#fff; border-color: var(--color-navy); }

/* ============================================================
   11. プライバシーポリシー・汎用ページ
============================================================ */
.page-content{ max-width: 840px; margin: 0 auto; font-size:15px; line-height:2; }
.page-content h2{ font-size:20px; font-weight:700; margin: 2em 0 .8em; color: var(--color-navy); }
.page-content h3{ font-size:16px; font-weight:700; margin: 1.6em 0 .6em; }
.page-content p{ margin: 0 0 1.4em; }
.page-content ul{ list-style:disc; padding-left:1.4em; margin-bottom:1.4em; }
.page-content a{ color: var(--color-blue-accent); text-decoration:underline; }

.thanks-box{ max-width:640px; margin:0 auto; text-align:center; font-size:15px; }
.thanks-box p{ margin-bottom: 1.6em; }

/* ============================================================
   12. CONTACT バナー（共通）
============================================================ */
.contact-banner{ background: #fff; color: var(--color-navy); padding: 80px 0; }
@media (max-width:767px){ .contact-banner{ padding: 56px 0; } }
.contact-banner__grid{ display:grid; gap:40px; }
@media (min-width:1024px){ .contact-banner__grid{ grid-template-columns: 1fr 1fr; } }
.contact-banner p{ font-size:13px; color: #666; margin-top:20px; }
@media (min-width: 768px){ .contact-banner p{ font-size:15px; } }
.contact-banner__tel-label{ border-top:1px solid var(--color-gray-border); padding-top:16px; margin-bottom:6px; margin-top:0 !important; }
.contact-banner .contact-banner__tel{ font-family: var(--font-en); font-weight:300; letter-spacing:.02em; font-size:40px !important; margin:0; }
.contact-banner__tel a{ color: var(--color-navy); }
.contact-banner .contact-banner__hours{ font-size:12px; color: #888; margin-top:0px !important; }
.contact-banner .contact-banner__mail{ font-size:15px; margin: 22px 0 12px !important; border-top:1px solid var(--color-gray-border); padding-top:16px; color: #666; }

/* ============================================================
   13. フッター
============================================================ */
.site-footer{ background: var(--color-navy); color:#fff; }
.footer-nav{ padding: 30px 0; border-top:1px solid rgba(255,255,255,.15); }
.footer-nav ul{ display:flex; flex-wrap:wrap; justify-content:center; gap: 24px; }
.footer-nav a{ font-size:13px; }
.footer-bottom{ padding: 40px 0 30px; text-align:center; }
.footer-logo{ display:inline-flex; flex-direction:column; align-items:center; gap:10px; margin-bottom: 18px; }
.footer-logo__img{ height: 32px; }
.footer-logo-text{ font-family: var(--font-en); font-size:18px; font-weight:700; }
.footer-logo-sub{ font-size:11px; opacity:.6; }
.footer-sns{ display:flex; justify-content:center; gap:14px; margin-bottom: 18px; }
.footer-sns a{ display:flex; width:32px; height:32px; align-items:center; justify-content:center; border-radius:50%; border:1px solid rgba(255,255,255,.3); }
.footer-sns svg{ width:14px; height:14px; fill:#fff; }
.footer-copyright{ font-size:11px; color: rgba(255,255,255,.55); }

/* ============================================================
   14. 汎用ユーティリティ
============================================================ */
.is-sp-only{ display:block; }
.is-pc-only{ display:none; }
@media (min-width:768px){ .is-sp-only{ display:none; } .is-pc-only{ display:block; } }

.body-lock{ overflow:hidden; height:100%; }

.no-image-fallback{
  background: linear-gradient(135deg, var(--color-navy), var(--color-gray));
}

.skip-link{ position:absolute; left:-9999px; top:auto; }
.skip-link:focus{ left:10px; top:10px; z-index:2000; background:#fff; padding:10px 16px; }

/* ページ全体の横スクロールを防止 */
html,
body {
  overflow-x: hidden;
}