@charset "UTF-8";
/*
 * ======================================
 * 株式会社セイワ測量設計 サイト固有CSS
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * -- Layout --
 * .seiwa-container        - コンテンツ幅1180px + 左右ガター32px（元データ実数値）
 * .seiwa-container--tight - コンテンツ幅1116px（MV・ヒーロー・パンくず・バナー）
 * .seiwa-container--narrow- コンテンツ幅820px（フォーム用）
 * .seiwa-pt-110 / .seiwa-pt-120 / .seiwa-pb-110 / .seiwa-pb-130
 *                         - セクション上下padding（共通utilityに刻みがない値）
 * .seiwa-mb-48 / 52 / 56  - 見出しブロック下の余白（元データの gap 実数値）
 * .seiwa-anchor           - アンカー着地位置のヘッダー高さ補正
 * .seiwa-br-pc           - PC時のみ有効な改行（896px以下で非表示）
 *
 * -- Typography --
 * .seiwa-shead            - セクション見出し（英字11px + 日本語30pxゴシック）
 * .seiwa-shead--lg        - 中央寄せ大サイズ（日本語32px）
 * .seiwa-shead__lead      - 見出し下リード文
 * .seiwa-mini-head        - 小見出し（英字10px + 日本語14px）
 * .seiwa-txt              - 本文（ゴシック weight300 / lh2）
 * .seiwa-txt--lg / --sm / --light
 *
 * -- Header / Footer --
 * .seiwa-header           - 白背景 + 下線1pxヘッダー（影なし）
 * .seiwa-header__inner    - min-height82px + padding12/32
 * .seiwa-header__right    - CTA周りの余白調整
 * .seiwa-logo             - テキストロゴ（日本語19px + 英字10px）
 * .seiwa-nav              - 1行テキストナビ（下線ホバーなし・色変化のみ）
 * .seiwa-cta              - ヘッダーCTA（padding14/26）
 * .seiwa-spnav__tel       - SPナビ内の電話番号（白文字化）
 * .seiwa-footer 一式      - ブルーフッター（2カラムgrid + コピーライト行）
 *
 * -- Sections --
 * .seiwa-mv 一式          - メインビジュアル（静止画 + グラデ幕 + コピー）
 * .seiwa-hero 一式        - 下層ページヒーロー（高さ340px）
 * .seiwa-bread            - パンくず帯
 * .seiwa-about            - 見出し300px + 本文1fr の2カラム
 * .seiwa-bizcards / .seiwa-bizcard 一式 - TOP事業案内カード3列
 * .seiwa-rbnr 一式        - 採用情報バナー（写真 + グラデ幕 + 枠線ボタン）
 * .seiwa-form 一式        - お問い合わせ／応募フォーム
 * .form-pattern-1 上書き   - CMSフォームの送信ボタン・必須ラベル（!important）
 * .seiwa-thanks 一式      - 送信完了ページ（thanks.php）
 * .seiwa-svcards / .seiwa-svcard 一式 - 事業内容カード（上線2px + 連番）
 * .seiwa-dl 一式          - 概要テーブル（dl grid + 罫線）
 * .seiwa-ovw / .seiwa-ovw__img 一式 - 概要（dl）+ 写真の2カラム
 * .seiwa-map 一式          - アクセス（地図埋め込み枠）
 * .seiwa-ctaband 一式     - フッター上お問い合わせ帯（写真+ブルー幕+枠線ボタン2つ）
 * .seiwa-points / .seiwa-point 一式 - 求人ポイントカード（FAアイコン + 見出し横並び）
 * .seiwa-work 一式        - 職場の雰囲気（テキスト + 写真2カラム）
 * .seiwa-jobs / .seiwa-job 一式 - 募集要項カード
 *
 * -- Animation --
 * .seiwa-rise / --d1 / --d2 - 読み込み時フェードアップ
 * .seiwa-reveal / .is-revealed - スクロール連動フェードアップ（JS付与）
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 *
 * ■ 値の粒度不足
 *   - font-size: 11 / 15 / 17 / 19 / 21 / 26 / 30 / 34 / 52 px が fz-* にない
 *   - font-weight: 300（細ウェイト）が fw-* にない
 *   - padding/margin: 76 / 88 / 110 / 130 px が spacing utility にない
 *   - letter-spacing: 0.06em / 0.08em / 0.3em / 0.34em / 0.4em が ls-* にない
 *   - line-height: 1.9 / 1.95 / 2.2 が lh-* にない
 *   - gap: 14 / 24 / 26 / 28 / 32 / 56 / 64 px が gap-* にない
 *   - container: コンテンツ幅 + 左右固定paddingを両立するコンテナがない
 *     （.container は BP以下で 95% + 10px になり、元データの 32px 固定と不一致）
 *
 * ■ 指定方向不足
 *   - grid の列比率指定（1.2fr 1fr / 300px 1fr / 130px 1fr）を作るクラスがない
 *   - grid-column: span N（カード横結合）のutilityがない
 *   - background-position: center 40% 等の位置指定utilityがない
 *
 * ■ 状態不足
 *   - hover で transform + box-shadow を同時に当てるカードホバーの組み合わせが
 *     単体クラスにない（hover-up / hover-shadow は移動量・影の値が元データと不一致）
 *   - input の :focus で border色 + 背景色を同時に変えるstateがない
 *
 * ■ 構造不足
 *   - 「英字小 + 日本語大（ゴシック・weight500）」の縦積みセクション見出しがない
 *     （.heading は英字5rem/bold前提のため値の上書き量が多くなる）
 *   - 上線2px + 連番 + タイトル + 本文のサービスカード構造がない
 *   - dl を grid で組む概要テーブル（tableを使わない）の構造がない
 *
 * ■ 装飾パターン不足
 *   - 斜め方向（100deg）の2色グラデーション幕がない
 *     （bg-overlay / page-hero__overlay--brand は単色 or 別配色）
 *   - 白1px枠線 + 透明背景の写真上ボタンがない
 *
 */

/* ==========================================================================
   0. サイト共通値
   ========================================================================== */
:root {
  --seiwa-main: #3073B5;
  --seiwa-main-dark: #255d95;
  --seiwa-ttl: #16202b;
  --seiwa-body: #3a4652;
  --seiwa-muted: #5a6672;
  --seiwa-weak: #7b8794;
  --seiwa-num: #a9b6c2;
  --seiwa-line: #e6eaee;
  --seiwa-input-line: #e2e7ec;
  --seiwa-gray: #F5F5F5;
  --seiwa-on-hero: #f0f7fd;
  --seiwa-on-hero-en: #eaf4fd;
  --seiwa-footer-hover: #d6eaf9;
  --seiwa-font-en: "Noto Sans", Arial, Helvetica, sans-serif;
  --seiwa-header-h: 82px;
}

body {
  /* ヘッダーは header-bar（fixed）のため、その高さ分を本文に確保する */
  padding-top: var(--seiwa-header-h);
}

/* ==========================================================================
   1. Layout
   ========================================================================== */
.seiwa-container {
  width: 100%;
  max-width: 1244px; /* 元データ：コンテンツ1180px + 左右ガター32px */
  margin: 0 auto;
  padding-left: 32px;
  padding-right: 32px;
}
/* MV・ページヒーロー・パンくず・バナー：元データが max-width:1180 に padding:32 を内包（コンテンツ1116px） */
.seiwa-container--tight {
  max-width: 1180px;
}
.seiwa-container--narrow {
  max-width: 884px; /* 元データ：コンテンツ820px + 左右ガター32px */
}

.seiwa-pt-110 { padding-top: 110px; }
.seiwa-pt-120 { padding-top: 120px; }
.seiwa-pb-110 { padding-bottom: 110px; }
.seiwa-pb-130 { padding-bottom: 130px; }

/* 見出しブロック→コンテンツ間の余白（元データの gap 実数値） */
.seiwa-mb-48 { margin-bottom: 48px; }
.seiwa-mb-52 { margin-bottom: 52px; }
.seiwa-mb-56 { margin-bottom: 56px; }

.seiwa-anchor { scroll-margin-top: var(--seiwa-header-h); }

/* PC時のみ有効な改行（896px以下では改行しない） */
.seiwa-br-pc { display: inline; }

/* ==========================================================================
   2. Typography
   ========================================================================== */
/* -- セクション見出し（.heading と組み合わせて使用） -- */
.seiwa-shead .heading__en {
  display: block;
  font-family: var(--seiwa-font-en);
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.34em;
  color: var(--seiwa-main);
}
.seiwa-shead .heading__ja {
  display: block;
  margin-top: 10px;
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: var(--seiwa-ttl);
}
.seiwa-shead--lg .heading__ja { font-size: 3.2rem; }
.seiwa-shead__lead {
  margin: 16px 0 0;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 2;
  color: var(--seiwa-muted);
}
.seiwa-shead--lg .heading__en + .heading__ja { margin-top: 10px; }

/* -- 小見出し -- */
.seiwa-mini-head {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.seiwa-mini-head__en {
  font-family: var(--seiwa-font-en);
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.3em;
  color: var(--seiwa-main);
}
.seiwa-mini-head__ja {
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--seiwa-ttl);
}

/* -- 本文 -- */
.seiwa-txt {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 2;
  color: var(--seiwa-muted);
}
.seiwa-txt--lg {
  font-size: 1.6rem;
  line-height: 2.2;
  color: var(--seiwa-body);
}
.seiwa-txt--sm { font-size: 1.4rem; }
.seiwa-txt--light { color: var(--seiwa-on-hero); }

/* ==========================================================================
   3. Header
   ========================================================================== */
.header-bar.seiwa-header {
  background: #ffffff;
  border-bottom: 1px solid var(--seiwa-line);
  box-shadow: none;
  /* ヘッダー内は一律 Noto Sans JP 600 */
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  font-weight: 600;
}
.header__inner.seiwa-header__inner {
  max-width: 1180px;
  height: auto;
  min-height: var(--seiwa-header-h);
  padding: 12px 32px;
  gap: 32px;
}
.seiwa-header__right {
  gap: 0;
  height: auto;
}

/* -- ロゴ -- */
.header__logo.seiwa-logo {
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-decoration: none;
}
.header__logo.seiwa-logo:hover { opacity: 1; }
.seiwa-logo__ja {
  font-size: 1.9rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.06em;
  color: var(--seiwa-ttl);
}
.seiwa-logo__en {
  font-family: var(--seiwa-font-en);
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.34em;
  color: var(--seiwa-main);
}

/* -- PCナビ -- */
.header__nav.seiwa-nav {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 16px 22px;
  margin-right: 22px;
}
.seiwa-nav .header__nav-item a {
  flex-direction: row;
  padding: 0;
}
.seiwa-nav .header__nav-item a::after { content: none; }
.seiwa-nav__ja {
  font-size: 1.4rem;
  line-height: 1;
  letter-spacing: 0.05em;
  white-space: nowrap;
  color: var(--seiwa-body);
  transition: color 0.3s ease;
}
.seiwa-nav .header__nav-item a:hover .seiwa-nav__ja,
.seiwa-nav .header__nav-item--current .seiwa-nav__ja { color: var(--seiwa-main); }

/* -- ヘッダーCTA -- */
.header__cta.seiwa-cta {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  height: auto;
  padding: 14px 26px;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  background: var(--seiwa-main);
  color: #ffffff;
}
.header__cta.seiwa-cta:hover { background: var(--seiwa-main-dark); }
.seiwa-cta__icon {
  flex-shrink: 0;
  width: 18px;
  height: 15px;
}

/* -- SPナビ -- */
/* 英字ラベル（.sp-nav__en）は使用しないため、日本語ラベルと矢印の間隔をここで確保する */
.sp-nav__link::after { margin-left: 10px; }
.seiwa-spnav__tel,
.seiwa-spnav__tel::before { color: #ffffff; }

/* ==========================================================================
   4. メインビジュアル
   ========================================================================== */
.seiwa-mv {
  position: relative;
  height: 640px;
  overflow: hidden;
  background: var(--seiwa-main);
}
/* スライダー読込前に1枚目を先に描画しておく下敷き */
.seiwa-mv__poster {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  background-position: center 45%;
  background-size: cover;
  background-repeat: no-repeat;
}
.seiwa-mv__slideshow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.seiwa-mv__slideshow .swiper-slide,
.seiwa-mv__slideshow .main_slider__inner { width: 100%; height: 100%; }
.seiwa-mv__slideshow img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
}
.seiwa-mv__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  background: linear-gradient(100deg, rgba(20, 72, 124, 0.78) 0%, rgba(30, 92, 152, 0.58) 62%, rgba(48, 115, 181, 0.26) 100%);
}
.seiwa-mv__body {
  position: relative;
  z-index: 3;
  height: 100%;
}
.seiwa-mv__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 28px;
  height: 100%;
}
.seiwa-mv__en {
  font-family: var(--seiwa-font-en);
  font-size: 1.1rem;
  line-height: 1;
  letter-spacing: 0.4em;
  color: var(--seiwa-on-hero-en);
}
.seiwa-mv__ttl {
  font-size: 5.2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: #ffffff;
}
.seiwa-mv__line {
  width: 64px;
  height: 2px;
  background: #ffffff;
  transform-origin: left;
  animation: seiwaLineIn 0.9s ease-out 0.5s both;
}
.seiwa-mv__lead {
  max-width: 740px;
  font-size: 1.7rem;
  font-weight: 400;
  line-height: 2;
  color: var(--seiwa-on-hero);
}

/* ==========================================================================
   5. 下層ページヒーロー
   ========================================================================== */
.page-hero.seiwa-hero {
  height: 340px;
  background: var(--seiwa-main);
}
.seiwa-hero .page-hero__bg { object-position: center 62%; }
.seiwa-hero .page-hero__overlay {
  background: linear-gradient(100deg, rgba(20, 72, 124, 0.78) 0%, rgba(48, 115, 181, 0.3) 100%);
}
.seiwa-hero .page-hero__content { height: 100%; }
.seiwa-hero__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  height: 100%;
}
.seiwa-hero__en {
  font-family: var(--seiwa-font-en);
  font-size: 1.1rem;
  line-height: 1;
  letter-spacing: 0.34em;
  color: #ffffff;
}
.seiwa-hero__ttl {
  font-size: 4rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.1em;
  color: #ffffff;
}

/* ==========================================================================
   6. パンくず
   ========================================================================== */
.seiwa-bread { border-bottom: 1px solid var(--seiwa-line); }
.seiwa-bread .seiwa-container {
  padding-top: 16px;
  padding-bottom: 16px;
}
.seiwa-bread__list {
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  color: var(--seiwa-weak);
}
.seiwa-bread .breadcrumb__item:not(:last-child)::after {
  content: "／";
  margin: 0 10px;
  color: var(--seiwa-weak);
}
.seiwa-bread .breadcrumb__link {
  color: var(--seiwa-weak);
  text-decoration: none;
}
.seiwa-bread .breadcrumb__link:hover {
  color: var(--seiwa-main);
  text-decoration: none;
  opacity: 1;
}
.seiwa-bread .breadcrumb__current { color: var(--seiwa-ttl); }

/* ==========================================================================
   7. 見出し+本文 2カラム
   ========================================================================== */
.seiwa-about {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 64px;
  align-items: start;
}

/* ==========================================================================
   8. TOP：事業案内カード
   ========================================================================== */
.seiwa-bizcards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.seiwa-bizcard {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  text-decoration: none;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.seiwa-bizcard:hover {
  opacity: 1;
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(22, 32, 43, 0.12);
}
.seiwa-bizcard__img {
  height: 190px;
  background-size: cover;
  background-position: center 45%;
  background-repeat: no-repeat;
}
.seiwa-bizcard__img--c50 { background-position: center 50%; }
.seiwa-bizcard__img--c55 { background-position: center 55%; }
.seiwa-bizcard__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 34px 32px 38px;
}
.seiwa-bizcard__en {
  font-family: var(--seiwa-font-en);
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.3em;
  color: var(--seiwa-main);
}
.seiwa-bizcard__ttl {
  font-size: 2.1rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.06em;
  color: var(--seiwa-ttl);
}
.seiwa-bizcard__txt {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2;
  color: var(--seiwa-muted);
}
.seiwa-bizcard__more {
  margin-top: 8px;
  font-family: var(--seiwa-font-en);
  font-size: 1.1rem;
  letter-spacing: 0.2em;
  color: var(--seiwa-main);
}

/* ==========================================================================
   9. TOP：採用情報バナー
   ========================================================================== */
.seiwa-rbnr {
  display: block;
  position: relative;
  overflow: hidden;
  background: var(--seiwa-main);
  text-decoration: none;
}
.seiwa-rbnr:hover { opacity: 1; }
.seiwa-rbnr__bg,
.seiwa-rbnr__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.seiwa-rbnr__bg {
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
}
.seiwa-rbnr__overlay {
  background: linear-gradient(100deg, rgba(24, 80, 136, 0.74) 0%, rgba(30, 92, 152, 0.5) 100%);
}
.seiwa-rbnr__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding-top: 88px;
  padding-bottom: 88px;
}
.seiwa-rbnr__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.seiwa-rbnr__en {
  font-family: var(--seiwa-font-en);
  font-size: 1.1rem;
  line-height: 1;
  letter-spacing: 0.34em;
  color: var(--seiwa-on-hero-en);
}
.seiwa-rbnr__ttl {
  font-size: 3.4rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #ffffff;
}
.seiwa-rbnr__txt {
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 2;
  color: var(--seiwa-on-hero);
}
.seiwa-rbnr__btn {
  flex-shrink: 0;
  padding: 18px 40px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  font-size: 1.4rem;
  letter-spacing: 0.1em;
  color: #ffffff;
  transition: background 0.3s ease, color 0.3s ease;
}
.seiwa-rbnr:hover .seiwa-rbnr__btn {
  background: #ffffff;
  color: var(--seiwa-main);
}

/* ==========================================================================
   10. フォーム
   ========================================================================== */
.seiwa-form {
  display: flex;
  flex-direction: column;
  gap: 26px;
}
.seiwa-form__label {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.seiwa-form__name {
  font-size: 1.3rem;
  letter-spacing: 0.1em;
  color: var(--seiwa-ttl);
}
.seiwa-form__req {
  margin-left: 8px;
  color: var(--seiwa-main);
}
.seiwa-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
}
.form-input.seiwa-form__input {
  padding: 15px 16px;
  border: 1px solid var(--seiwa-input-line);
  background: var(--seiwa-gray);
  font-size: 1.5rem;
  color: var(--seiwa-ttl);
}
.form-input.seiwa-form__input:focus {
  border-color: var(--seiwa-main);
  background: #ffffff;
}
.seiwa-form__input--area {
  line-height: 1.9;
  resize: vertical;
}
.seiwa-form__submit {
  align-self: center;
  margin-top: 14px;
  padding: 20px 76px;
  border: none;
  background: var(--seiwa-main);
  font-family: inherit;
  font-size: 1.5rem;
  letter-spacing: 0.2em;
  color: #ffffff;
  cursor: pointer;
  transition: background 0.25s ease;
}
.seiwa-form__submit:hover { background: var(--seiwa-main-dark); }
.seiwa-form__note {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 2;
  color: var(--seiwa-muted);
}
.seiwa-form__link {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid #a9c8e3;
}
.seiwa-form__link:hover {
  color: var(--seiwa-main);
  opacity: 1;
}

/* --------------------------------------------------------------------------
   10-2. CMSフォーム（form-pattern-1）の見た目調整
   CMS側が出力するHTML／CSSを後から上書きするため !important を付けている
   -------------------------------------------------------------------------- */
/* -- 送信ボタン：サイト共通のボタンデザイン + 中央配置 -- */
.form-pattern-1 .submit-btn,
button.submit-btn,
input.submit-btn {
  display: block !important;
  width: auto !important;
  min-width: 280px !important;
  max-width: 100% !important;
  margin: 14px auto 0 !important;
  padding: 20px 76px !important;
  border: none !important;
  border-radius: 0 !important;
  background: var(--seiwa-main) !important;
  font-family: "Noto Sans JP", "游ゴシック体", YuGothic, "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif !important;
  font-size: 1.5rem !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0.2em !important;
  text-align: center !important;
  color: #ffffff !important;
  cursor: pointer !important;
  transition: background 0.25s ease !important;
}
.form-pattern-1 .submit-btn:hover,
button.submit-btn:hover,
input.submit-btn:hover {
  background: var(--seiwa-main-dark) !important;
  opacity: 1 !important;
}
/* ボタンを内包する親要素側にfloat/左寄せが当たっていても中央に置く */
.form-pattern-1 .submit-btn-area,
.form-pattern-1 .btn-area {
  text-align: center !important;
  float: none !important;
}

/* -- 必須ラベル：赤 → サイトのメインカラー -- */
.form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  background: var(--seiwa-main) !important;
  color: #ffffff !important;
}

/* ==========================================================================
   10-3. 送信完了ページ
   ========================================================================== */
.seiwa-thanks {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.seiwa-thanks .heading { text-align: center; }
/* PC時に意図した位置で改行させるため、行の最大幅を本文量に合わせている */
.seiwa-thanks__txt {
  max-width: 720px;
  margin-bottom: 28px;
}
.seiwa-thanks__note {
  max-width: 920px;
  padding: 24px 28px;
  background: var(--seiwa-gray);
  font-size: 1.3rem;
  text-align: left;
}
.seiwa-thanks__btn {
  margin-top: 48px;
  padding: 20px 76px;
  background: var(--seiwa-main);
  font-size: 1.5rem;
  letter-spacing: 0.2em;
  color: #ffffff;
  transition: background 0.25s ease;
}
.seiwa-thanks__btn:hover {
  background: var(--seiwa-main-dark);
  color: #ffffff;
  opacity: 1;
}

/* ==========================================================================
   11. 事業内容カード
   ========================================================================== */
.seiwa-svcards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.seiwa-svcard {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 38px 36px;
  background: #ffffff;
  border-top: 2px solid var(--seiwa-main);
}
.seiwa-svcard--wide { grid-column: span 2; }
.seiwa-svcard__num {
  font-family: var(--seiwa-font-en);
  font-size: 1.1rem;
  line-height: 1;
  letter-spacing: 0.2em;
  color: var(--seiwa-num);
}
.seiwa-svcard__ttl {
  font-size: 1.9rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: var(--seiwa-ttl);
}
.seiwa-svcard__txt {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2;
  color: var(--seiwa-muted);
}

/* ==========================================================================
   12. 概要（dl）
   ========================================================================== */
.seiwa-dl {
  display: grid;
  grid-template-columns: 130px 1fr;
  margin: 0;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.9;
  color: var(--seiwa-body);
}
.seiwa-dl--wide { grid-template-columns: 140px 1fr; }
.seiwa-dl dt,
.seiwa-dl dd {
  padding: 18px 0;
  border-top: 1px solid var(--seiwa-line);
}
.seiwa-dl dt {
  letter-spacing: 0.08em;
  color: var(--seiwa-ttl);
}
.seiwa-dl dd { margin: 0; }
.seiwa-dl dt:last-of-type,
.seiwa-dl dd:last-of-type { border-bottom: 1px solid var(--seiwa-line); }
.seiwa-dl--limit { max-width: 760px; }
.seiwa-dl__note {
  display: block;
  font-size: 1.2rem;
  color: var(--seiwa-weak);
}

/* -- 概要 + 地図 -- */
.seiwa-ovw {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}
.seiwa-map {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.seiwa-map__frame { height: 420px; }
/* 概要の右カラムに置く写真（.seiwa-work__img と同じ background-cover 方式） */
.seiwa-ovw__img {
  align-self: stretch;
  min-height: 320px;
  background-size: cover;
  background-position: center 45%;
  background-repeat: no-repeat;
}
/* TOP事業案内カードと同じ画像を使うため、表示位置の微調整も合わせる */
.seiwa-ovw__img--c50 { background-position: center 50%; }
.seiwa-ovw__img--c55 { background-position: center 55%; }

/* ==========================================================================
   13. フッター上お問い合わせ帯
   ========================================================================== */
.seiwa-ctaband {
  position: relative;
  overflow: hidden;
  padding: 100px 0;
  color: #ffffff;
}
.seiwa-ctaband__bg,
.seiwa-ctaband__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.seiwa-ctaband__bg {
  background-size: cover;
  background-position: center 62%;
  background-repeat: no-repeat;
  filter: grayscale(60%);
}
.seiwa-ctaband__overlay {
  background: linear-gradient(45deg, rgba(48, 115, 181, 0.86) 0%, rgba(71, 140, 208, 0.72) 100%);
}
.seiwa-ctaband__inner {
  position: relative;
  z-index: 1;
}
.seiwa-ctaband__head {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 40px;
}
.seiwa-ctaband__ttl {
  position: relative;
  margin: 0;
  padding-right: 25px;
  font-family: var(--seiwa-font-en);
  font-variant-caps: small-caps;
  font-size: 5rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: #ffffff;
}
.seiwa-ctaband__ttl::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background: #ffffff;
}
.seiwa-ctaband__txt {
  margin: 0;
  padding-left: 25px;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.06em;
  color: #ffffff;
}
.seiwa-ctaband__bnr {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 24px;
  max-width: 800px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.seiwa-ctaband__bnr > li {
  width: calc((100% - 24px) / 2);
}
.seiwa-ctaband__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 10px;
  border: 1px solid #ffffff;
  background: transparent;
  font-family: var(--seiwa-font-en);
  font-size: 2.2rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  color: #ffffff;
  text-align: center;
  text-decoration: none;
  transition: background 0.3s ease;
}
.seiwa-ctaband__btn-en {
  font-variant-caps: small-caps;
}
.seiwa-ctaband__btn:hover {
  background: rgba(32, 32, 32, 0.2);
  color: #ffffff;
  opacity: 1;
}

/* ==========================================================================
   14. 求人：働くポイント
   ========================================================================== */
.seiwa-points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.seiwa-point {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 34px 30px;
  background: #ffffff;
}
.seiwa-point--wide { grid-column: span 3; }
/* アイコン + 見出しを横並びにする */
.seiwa-point__head {
  display: flex;
  align-items: center;
  gap: 14px;
}
.seiwa-point__icon {
  flex-shrink: 0;
  width: 34px;
  font-size: 2.6rem;
  line-height: 1;
  text-align: center;
  color: var(--seiwa-main);
}
.seiwa-point__ttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: var(--seiwa-ttl);
}
.seiwa-point__txt {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.95;
  color: var(--seiwa-muted);
}

/* ==========================================================================
   15. 求人：職場の雰囲気
   ========================================================================== */
.seiwa-work {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.seiwa-work__body {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.seiwa-work__img {
  height: 400px;
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
}

/* ==========================================================================
   16. 求人：募集要項
   ========================================================================== */
.seiwa-jobs {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.seiwa-job {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 44px 44px 48px;
  background: #ffffff;
}
.seiwa-job__head {
  display: flex;
  align-items: baseline;
  gap: 16px;
}
.seiwa-job__num {
  font-family: var(--seiwa-font-en);
  font-size: 1.2rem;
  letter-spacing: 0.2em;
  color: var(--seiwa-main);
}
.seiwa-job__ttl {
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: var(--seiwa-ttl);
}
.seiwa-job .seiwa-dl { line-height: 2; }
.seiwa-jobs__note {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 2;
  color: var(--seiwa-muted);
}

/* ==========================================================================
   17. フッター
   ========================================================================== */
.footer-body.seiwa-footer {
  padding: 72px 0 40px;
  background: var(--seiwa-main-dark);
}
.footer-body__inner.seiwa-footer__inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 56px;
  align-items: start;
  max-width: 1244px;
  padding: 0 32px;
}
.seiwa-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.seiwa-footer__logo {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.seiwa-footer__name {
  font-size: 2rem;
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: #ffffff;
}
.seiwa-footer__en {
  font-family: var(--seiwa-font-en);
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.34em;
  color: #ffffff;
}
.seiwa-footer__info {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 1.3rem;
  line-height: 1.9;
  color: #ffffff;
}
.seiwa-footer__tel {
  margin-top: 4px;
  font-family: var(--seiwa-font-en);
  font-size: 2.6rem;
  line-height: 1.2;
  letter-spacing: 0.06em;
  color: #ffffff;
  text-decoration: none;
}
.seiwa-footer__tel:hover {
  color: var(--seiwa-footer-hover);
  opacity: 1;
}
.seiwa-footer__nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 24px;
  align-items: start;
}
.seiwa-footer__list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.seiwa-footer__link {
  font-size: 1.3rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.92);
  text-decoration: none;
}
.seiwa-footer__link:hover {
  color: var(--seiwa-footer-hover);
  opacity: 1;
}
.seiwa-footer__bottom {
  max-width: 1244px;
  margin: 48px auto 0;
  padding: 24px 32px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
}
.seiwa-footer__copyright {
  font-family: var(--seiwa-font-en);
  font-size: 1.1rem;
  letter-spacing: 0.1em;
  color: #ffffff;
}

/* ==========================================================================
   18. アニメーション
   ========================================================================== */
@keyframes seiwaRise {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes seiwaLineIn {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
.seiwa-rise { animation: seiwaRise 1s ease-out both; }
.seiwa-rise--d1 { animation-duration: 1.1s; animation-delay: 0.1s; }
.seiwa-rise--d2 { animation-duration: 1.2s; animation-delay: 0.25s; }

/* MVのコピー：画像の読み込みが終わるまでアニメーションを開始しない
   （JS有効時のみ待機。JS無効・画像取得失敗時は通常どおり表示される）
   animation-name のみを切り替えて、--d1 / --d2 の duration・delay は活かす */
.js-mv .seiwa-mv .seiwa-rise { opacity: 0; animation-name: none; }
.js-mv .seiwa-mv .seiwa-mv__line { transform: scaleX(0); animation-name: none; }
.js-mv.is-mv-ready .seiwa-mv .seiwa-rise { opacity: 1; animation-name: seiwaRise; }
.js-mv.is-mv-ready .seiwa-mv .seiwa-mv__line { animation-name: seiwaLineIn; }

/* スクロール連動フェード：JSが動く環境でのみ初期非表示にする */
.js-anim .seiwa-reveal {
  opacity: 0;
  transform: translateY(20px);
}
.js-anim .seiwa-reveal.is-revealed {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

/* ==========================================================================
   19. レスポンシブ
   ========================================================================== */
@media (max-width: 1100px) {
  :root { --seiwa-header-h: 62px; }
  .header__inner.seiwa-header__inner {
    min-height: 62px;
    padding: 10px 20px;
    gap: 16px;
  }
  .seiwa-logo__ja { font-size: 1.6rem; }
  .seiwa-logo__en { font-size: 0.9rem; letter-spacing: 0.28em; }
}

@media (max-width: 896px) {
  .seiwa-container {
    padding-left: 24px;
    padding-right: 24px;
  }
  .seiwa-br-pc { display: none; }
  .seiwa-pt-110 { padding-top: 55px; }
  .seiwa-pt-120 { padding-top: 60px; }
  .seiwa-pb-110 { padding-bottom: 55px; }
  .seiwa-pb-130 { padding-bottom: 65px; }
  .seiwa-mb-48 { margin-bottom: 32px; }
  .seiwa-mb-52 { margin-bottom: 34px; }
  .seiwa-mb-56 { margin-bottom: 36px; }

  .seiwa-shead .heading__ja,
  .seiwa-shead--lg .heading__ja { font-size: 2.4rem; }
  .seiwa-shead__lead { font-size: 1.4rem; }
  .seiwa-txt--lg { font-size: 1.5rem; line-height: 2; }

  .seiwa-mv { height: 520px; }
  .seiwa-mv__inner { gap: 22px; }
  .seiwa-mv__ttl { font-size: 3.4rem; }
  .seiwa-mv__lead { font-size: 1.5rem; }

  .page-hero.seiwa-hero { height: 260px; }
  .seiwa-hero__ttl { font-size: 2.8rem; }

  .seiwa-about { grid-template-columns: 1fr; gap: 24px; }
  .seiwa-bizcards { grid-template-columns: 1fr; gap: 24px; }
  .seiwa-bizcard__img { height: 220px; }

  .seiwa-rbnr__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 28px;
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .seiwa-rbnr__ttl { font-size: 2.6rem; }

  .seiwa-svcards { grid-template-columns: 1fr; }
  .seiwa-svcard--wide { grid-column: auto; }
  .seiwa-svcard { padding: 30px 24px; }

  .seiwa-ovw { grid-template-columns: 1fr; gap: 40px; }
  .seiwa-map__frame { height: 320px; }
  .seiwa-ovw__img { height: 280px; min-height: 0; }

  .seiwa-points { grid-template-columns: repeat(2, 1fr); }
  .seiwa-point--wide { grid-column: span 2; }

  .seiwa-work { grid-template-columns: 1fr; gap: 28px; }
  .seiwa-work__img { height: 280px; }

  .seiwa-job { padding: 32px 26px 36px; }
  .seiwa-job__ttl { font-size: 1.9rem; }

  .footer-body__inner.seiwa-footer__inner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 0 24px;
  }
  .seiwa-footer__bottom { padding: 24px 24px 0; }
}

@media (max-width: 639px) {
  .seiwa-container {
    padding-left: 20px;
    padding-right: 20px;
  }
  .seiwa-shead .heading__ja,
  .seiwa-shead--lg .heading__ja { font-size: 2.1rem; }
  .seiwa-shead .heading__en { letter-spacing: 0.28em; }

  .seiwa-mv { height: 460px; }
  .seiwa-mv__en { font-size: 0.9rem; letter-spacing: 0.3em; }
  /* 1行15文字 × letter-spacing0.04em が画面幅に収まるサイズまで縮める（2行維持） */
  .seiwa-mv__ttl {
    font-size: clamp(1.6rem, 5.4vw, 2.2rem);
    letter-spacing: 0.04em;
  }
  .seiwa-mv__lead { font-size: 1.3rem; }

  .page-hero.seiwa-hero { height: 200px; }
  .seiwa-hero__ttl { font-size: 2rem; letter-spacing: 0.06em; }
  .seiwa-hero__en { font-size: 0.9rem; letter-spacing: 0.26em; }

  .seiwa-bizcard__body { padding: 26px 22px 30px; }
  .seiwa-bizcard__ttl { font-size: 1.8rem; }

  .seiwa-rbnr__ttl { font-size: 2.2rem; }
  .seiwa-rbnr__btn {
    width: 100%;
    padding: 16px 20px;
    text-align: center;
  }

  .seiwa-form__row { grid-template-columns: 1fr; }
  .seiwa-form__submit {
    width: 100%;
    padding: 18px 20px;
  }
  .form-pattern-1 .submit-btn,
  button.submit-btn,
  input.submit-btn {
    width: 100% !important;
    min-width: 0 !important;
    padding: 18px 20px !important;
    letter-spacing: 0.14em !important;
  }
  .seiwa-thanks__btn {
    display: block;
    width: 100%;
    padding: 18px 20px;
    text-align: center;
  }
  .seiwa-thanks__note { padding: 20px; }

  /* カード内の余白を詰めて本文の表示幅を確保する */
  .seiwa-job { padding: 28px 20px 32px; }
  .seiwa-job__ttl { font-size: 1.8rem; }

  /* SPは横1カラムでは項目名の幅に圧迫されるため、項目名を上・内容を下に積む */
  .seiwa-dl,
  .seiwa-dl--wide {
    grid-template-columns: 1fr;
    font-size: 1.4rem;
    line-height: 1.9;
  }
  .seiwa-dl dt {
    padding: 16px 0 0;
    border-top: 1px solid var(--seiwa-line);
    font-size: 1.2rem;
    letter-spacing: 0.14em;
    color: var(--seiwa-main);
  }
  .seiwa-dl dd {
    padding: 5px 0 16px;
    border-top: none;
  }
  /* 積み重ね時は項目名と内容の間に罫線が入らないようにする */
  .seiwa-dl dt:last-of-type { border-bottom: none; }
  .seiwa-dl dd:last-of-type { border-bottom: 1px solid var(--seiwa-line); }
  .seiwa-job .seiwa-dl { line-height: 1.9; }

  .seiwa-points { grid-template-columns: 1fr; }
  .seiwa-point--wide { grid-column: auto; }

  .seiwa-ctaband { padding: 60px 0; }
  .seiwa-ctaband__head {
    display: block;
    text-align: center;
    margin-bottom: 28px;
  }
  .seiwa-ctaband__ttl {
    padding-right: 0;
    font-size: 4rem;
  }
  .seiwa-ctaband__ttl::after { display: none; }
  .seiwa-ctaband__txt {
    margin-top: 12px;
    padding-left: 0;
    font-size: 1.4rem;
  }
  .seiwa-ctaband__bnr { gap: 14px; }
  .seiwa-ctaband__bnr > li { width: 100%; }
  .seiwa-ctaband__btn {
    padding: 12px 10px;
    font-size: 1.8rem;
    white-space: nowrap;
  }

  /* SPはハンバーガーメニューで同じ導線を用意しているためフッターナビは非表示 */
  .seiwa-footer__nav { display: none; }
  .seiwa-footer__tel { font-size: 2.2rem; }
  .seiwa-footer__name { font-size: 1.7rem; }

  /* PCで中央寄せしている長文は、SPでは左寄せにして読みやすくする */
  .seiwa-shead__lead,
  .seiwa-thanks,
  .seiwa-thanks__txt,
  .seiwa-ctaband__txt {
    text-align: left;
  }
  .seiwa-thanks .heading { text-align: center; }
}
