/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .kyoso-container        - 1200px（内側padding clamp(20px,4vw,40px)込み）のコンテナ。--narrow:1000px / --form:880px
 * .kyoso-section          - clamp() 可変のセクション上下余白。--lg / --md / --sm
 * .kyoso-heading          - 大型Anton英字 + 斜めバー付き日本語の見出し（heading と併用）。__en--xl/--lg-plus/--lg/--md/--sm
 * .kyoso-subhead          - 「01 — TRANSPORT」型の番号付き小見出し + 下バー
 * .kyoso-btn              - 角丸2pxの四角ボタン（イエロー）+ Anton矢印。--outline / --center / --back
 * .kyoso-logo             - ロゴマーク + 社名テキスト（ヘッダー / フッター共用）。--footer
 * .kyoso-header*          - ヘッダー（sticky・ナビ下線・電話ボックス・SP電話ボタン）
 * .kyoso-nav-toggle       - 四角いハンバーガーボタン
 * .kyoso-sp-nav           - ヘッダー直下に開くドロップダウン型SPナビ
 * .kyoso-footer*          - フッター（ネイビー背景・グリッドナビ・ボタン2種）
 * .kyoso-cta*             - お問い合わせCTA（斜めカット背景 + 電話カード + フォームボタン）
 * .kyoso-mv*              - TOPメインビジュアル（グラデーション暗幕・英日キャッチ・SCROLL DOWN）
 * .kyoso-deco             - clip-path による斜めの背景パネル装飾（各modifierで位置・形）
 * .kyoso-bgtext           - アウトライン英字の背景透かし
 * .kyoso-topics           - TOPお知らせの見出し+一覧 2カラム
 * .kyoso-blog-list        - blog-list の値調整
 * .kyoso-split            - flex-basis 指定の可変2カラム（__col--400/420/440/460/600/280）
 * .kyoso-stack            - 縦積みflex + gap
 * .kyoso-photo            - 写真 + 黄色バー装飾（--bar-bl / --bar-tr）
 * .kyoso-lead / .kyoso-text - キャッチ見出し / 本文
 * .kyoso-area             - AREA ラベル行（--band で帯型）
 * .kyoso-grid-auto        - auto-fit minmax(320px) グリッド（--260）
 * .kyoso-card             - 天ライン付き番号カード（強み）
 * .kyoso-recruit*         - TOP採用（写真全面 + 角カットパネル）
 * .kyoso-tags / .kyoso-chips - 枠線タグ / グレーチップ
 * .kyoso-hero*            - 下層ページヒーロー（page-hero と併用）
 * .kyoso-breadcrumb       - breadcrumb の値調整
 * .kyoso-request          - 新規依頼の番号+アイコンカード
 * .kyoso-dl               - 項目/内容の定義リスト（会社情報・募集要項）
 * .kyoso-sign             - 代表署名
 * .kyoso-map              - Google Map 埋め込み枠
 * .kyoso-group            - 関連会社カード
 * .kyoso-entry-cta        - 採用ページのエントリーCTA
 * .kyoso-tel-box          - お問い合わせページの電話ボックス
 * .kyoso-form*            - お問い合わせフォーム（カード型ラジオ・入力欄・送信ボタン）
 * .kyoso-news             - サムネイル付きお知らせ一覧
 * .kyoso-pagination       - pagination の値調整
 * .kyoso-archive          - サイドバー月別アーカイブ
 * .kyoso-article          - お知らせ詳細
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 【値の粒度不足】
 *  - section / container / 見出しサイズが固定px。clamp() による可変値（例: padding clamp(72px,10vw,140px)）が指定できない
 *  - container に内側padding込みの max-width（1200px で中身1120px）がない
 *  - utility の gap / margin に 8・12・14・18・24・28px の刻みがない
 *  - 角丸 2px（ほぼ角なし）の btn がない（$btn_radius で変更可能だが btn 自体の max-width/border が合わない）
 * 【指定方向不足】
 *  - column2 が %固定のため、flex-basis + wrap で折り返す可変2カラムが組めない
 * 【状態不足】
 *  - カード型ラジオ（:has(input:checked) で枠色変更）がない
 * 【構造不足】
 *  - 英字（大）+ 斜めバー + 日本語（小）の見出し構造がない
 *  - ヘッダー直下に開くドロップダウン型SPナビがない（sp-nav はフルスクリーンのみ）
 *  - 写真全面 → 1199px以下で写真上・パネル下に組み替わるセクションがない
 *  - 定義リスト型（dl）の会社概要テーブルがない
 * 【装飾パターン不足】
 *  - clip-path の斜めパネル背景装飾がない
 *  - 角を斜めにカットしたパネル（clip-path）がない
 *  - 写真の角からはみ出す黄色バー装飾がない
 *  - アウトライン英字（text-stroke）の背景透かしの位置指定版がない（heading-stroke は見出し用）
 *
 */

/* ==========================================================================
   Base（共通 base の値をデザインに合わせて調整）
   ========================================================================== */
body {
  line-break: strict;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0;
}

a:hover {
  opacity: 1;
}

.text-accent {
  color: #F2C230;
}

/* ==========================================================================
   Layout
   ========================================================================== */
.kyoso-container {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 40px);
}
.kyoso-container--narrow {
  max-width: 1000px;
}
.kyoso-container--form {
  max-width: 880px;
}

.kyoso-section {
  padding: clamp(72px, 9vw, 120px) 0;
}
.kyoso-section--lg {
  padding: clamp(72px, 10vw, 140px) 0;
}
.kyoso-section--md {
  padding: clamp(56px, 7vw, 100px) 0;
}
.kyoso-section--sm {
  padding: clamp(56px, 7vw, 96px) 0;
}

.kyoso-split {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(36px, 6vw, 80px);
}
.kyoso-split--stretch {
  align-items: stretch;
}
.kyoso-split--center {
  align-items: center;
}
.kyoso-split--side {
  gap: clamp(40px, 5vw, 64px);
}
.kyoso-split__col {
  flex: 1 1 440px;
  min-width: 0;
}
.kyoso-split__col--280 {
  flex-basis: 280px;
  max-width: 100%;
}
.kyoso-split__col--400 {
  flex-basis: 400px;
}
.kyoso-split__col--420 {
  flex-basis: 420px;
}
.kyoso-split__col--460 {
  flex-basis: 460px;
}
.kyoso-split__col--600 {
  flex-basis: 600px;
}

.kyoso-stack {
  display: flex;
  flex-direction: column;
}
.kyoso-stack--26 {
  gap: 26px;
}
.kyoso-stack--28 {
  gap: 28px;
}
.kyoso-stack--32 {
  gap: 32px;
}
.kyoso-stack--40 {
  gap: 40px;
}
.kyoso-stack--section {
  gap: clamp(40px, 5vw, 64px);
}

.kyoso-grid-auto {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: clamp(16px, 1.6vw, 20px);
}
.kyoso-grid-auto--260 {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 16px;
}

/* ==========================================================================
   Heading（.heading .heading--left と併用）
   ========================================================================== */
.kyoso-heading {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.kyoso-heading--center {
  align-items: stretch;
  text-align: center;
}
.kyoso-heading--center .heading__ja {
  justify-content: center;
}
.kyoso-heading .heading__en {
  margin: 0;
  font-family: "Anton", sans-serif;
  font-weight: 400;
  line-height: 0.92;
  letter-spacing: 0;
  color: #1E5FA8;
}
.kyoso-heading.heading--white .heading__en,
.kyoso-heading.heading--white .heading__ja {
  color: #fff;
}
.kyoso-heading__en--xl {
  font-size: clamp(56px, 8vw, 110px);
  letter-spacing: 0.01em;
}
.kyoso-heading .kyoso-heading__en--xl {
  letter-spacing: 0.01em;
}
.kyoso-heading__en--lg-plus {
  font-size: clamp(56px, 7.5vw, 100px);
}
.kyoso-heading__en--md {
  font-size: clamp(52px, 6vw, 80px);
}
.kyoso-heading__en--lg {
  font-size: clamp(48px, 6vw, 80px);
}
.kyoso-heading__en--sm {
  font-size: clamp(40px, 5vw, 64px);
}
.kyoso-heading .heading__ja {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.16em;
  color: #1A2433;
}
.kyoso-heading .heading__ja::before {
  content: "";
  flex: 0 0 auto;
  width: 26px;
  height: 6px;
  background: #F2C230;
  transform: skewX(-30deg);
}
.kyoso-heading--nobar .heading__ja::before {
  content: none;
}

/* 番号付き小見出し（事業内容） */
.kyoso-subhead {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.kyoso-subhead::after {
  content: "";
  width: 56px;
  height: 5px;
  margin-top: 6px;
  background: #F2C230;
}
.kyoso-subhead__en {
  margin: 0;
  font-family: "Anton", sans-serif;
  font-size: 14px;
  letter-spacing: 0.24em;
  line-height: 1.5;
  color: #1E5FA8;
}
.kyoso-subhead__ja {
  margin: 0;
  text-wrap: balance;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

/* ==========================================================================
   Text
   ========================================================================== */
.kyoso-lead {
  margin: 0;
  text-wrap: balance;
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
.kyoso-lead--sm {
  font-size: clamp(22px, 2.4vw, 28px);
}
.kyoso-lead--md {
  font-size: clamp(22px, 2.6vw, 32px);
}
.kyoso-text {
  margin: 0;
  font-size: 16px;
  line-height: 2.1;
  letter-spacing: 0.04em;
  text-wrap: pretty;
}
.kyoso-text--sm {
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.03em;
}
.kyoso-text--wide {
  max-width: 920px;
}

/* ==========================================================================
   Button
   ========================================================================== */
.kyoso-btn {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 28px;
  padding: 18px 26px;
  border-radius: 2px;
  background: #F2C230;
  color: #1A2433;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  white-space: nowrap;
  transition: background 0.3s ease, color 0.3s ease;
}
.kyoso-btn:hover {
  background: #0D2747;
  color: #fff;
}
.kyoso-btn__arrow {
  font-family: "Anton", sans-serif;
  font-weight: 400;
}
.kyoso-btn--back {
  gap: 20px;
}
.kyoso-btn--center {
  align-self: center;
}

/* ==========================================================================
   Logo
   ========================================================================== */
.kyoso-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #1A2433;
}
.kyoso-logo .kyoso-logo__mark {
  width: auto;
  height: clamp(36px, 4vw, 50px);
}
.kyoso-logo__name {
  font-size: clamp(26px, 2.8vw, 38px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.14em;
}
.kyoso-logo--footer {
  align-self: flex-start;
  margin-bottom: 0;
  color: #fff;
}
.kyoso-logo--footer .kyoso-logo__mark {
  height: 46px;
  filter: brightness(0) invert(1);
}
.kyoso-logo--footer .kyoso-logo__name {
  font-size: 26px;
}
.kyoso-logo:hover {
  color: inherit;
}

/* ==========================================================================
   Header
   ========================================================================== */
.kyoso-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  border-bottom: 1px solid #E3E8EE;
  box-shadow: none;
}
.kyoso-header__inner {
  max-width: none;
  height: clamp(64px, 7vw, 88px);
  padding: 0 clamp(16px, 2vw, 32px);
  gap: 24px;
}
.kyoso-header__nav {
  margin-left: auto;
  margin-right: clamp(16px, 2vw, 32px);
  gap: clamp(14px, 1.8vw, 30px);
}
.kyoso-header__nav .header__nav-item a {
  gap: 3px;
  padding: 6px 0;
  border-bottom: 3px solid transparent;
}
.kyoso-header__nav .header__nav-item a::after {
  content: none;
}
.kyoso-header__nav .header__nav-item a:hover {
  border-bottom-color: rgba(242, 194, 48, 0.5);
}
.kyoso-header__nav .header__nav-item--current a,
.kyoso-header__nav .header__nav-item--current a:hover {
  border-bottom-color: #F2C230;
}
.kyoso-header__nav .header__nav-en {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.06em;
  color: #1E5FA8;
}
.kyoso-header__nav .header__nav-ja {
  margin-top: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.06em;
  color: #1A2433;
}

.kyoso-header-tel {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 2px;
  background: #1E5FA8;
  color: #fff;
  font-family: "Yu Gothic", "YuGothic", "游ゴシック体", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
}
.kyoso-header-tel::before {
  content: none;
}
.kyoso-header-tel:hover {
  opacity: 1;
  background: #174C88;
  color: #fff;
}
.kyoso-header-tel__icon {
  flex: 0 0 auto;
  fill: #F2C230;
}
.kyoso-header-tel__body {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.kyoso-header-tel__num {
  font-family: "Anton", sans-serif;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.06em;
}
.kyoso-header-tel__note {
  margin-top: 2px;
  font-size: 10px;
  letter-spacing: 0.1em;
}

.kyoso-header-sptel {
  display: none;
}

/* ハンバーガー（四角・メインカラー） */
.kyoso-nav-toggle {
  top: calc((clamp(64px, 7vw, 88px) - 44px) / 2);
  right: clamp(16px, 2vw, 32px);
  border-radius: 2px;
  background: #1E5FA8;
  backdrop-filter: none;
}
.kyoso-nav-toggle .nav-toggle__line {
  width: 20px;
  background: #fff;
}
.kyoso-nav-toggle .nav-toggle__line:nth-child(1) {
  top: 14px;
}
.kyoso-nav-toggle .nav-toggle__line:nth-child(2) {
  top: 21px;
}
.kyoso-nav-toggle .nav-toggle__line:nth-child(3) {
  top: 28px;
}
.kyoso-nav-toggle.is-active .nav-toggle__line:nth-child(1),
.kyoso-nav-toggle.is-active .nav-toggle__line:nth-child(3) {
  top: 21px;
}

/* SPナビ（ヘッダー直下に開くドロップダウン） */
.kyoso-sp-nav {
  top: clamp(64px, 7vw, 88px);
  bottom: auto;
  display: block;
  max-height: calc(100vh - clamp(64px, 7vw, 88px));
  padding: 12px 20px 28px;
  background: #1E5FA8;
  box-shadow: 0 12px 24px rgba(10, 30, 60, 0.2);
}
.kyoso-sp-nav .sp-nav__list {
  max-width: none;
  text-align: left;
}
.kyoso-sp-nav .sp-nav__item {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.kyoso-sp-nav .sp-nav__item:first-child {
  border-top: none;
}
.kyoso-sp-nav .sp-nav__link {
  align-items: baseline;
  padding: 16px 4px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}
.kyoso-sp-nav .sp-nav__link::after {
  content: none;
}
.kyoso-sp-nav .sp-nav__en {
  order: 1;
  margin: 0;
  padding: 0;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: #F2C230;
  opacity: 1;
}
.kyoso-sp-nav .sp-nav__bottom {
  max-width: none;
  margin-top: 20px;
}
.kyoso-sp-nav__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px;
  border-radius: 2px;
  background: #F2C230;
  color: #1A2433;
  font-family: "Anton", sans-serif;
  font-size: 22px;
  letter-spacing: 0.06em;
}
.kyoso-sp-nav__tel:hover {
  color: #1A2433;
}
.kyoso-sp-nav__tel-icon {
  flex: 0 0 auto;
  fill: #1A2433;
}

@media (max-width: 999px) {
  .kyoso-header-sptel {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: auto;
    margin-right: 52px;
    border-radius: 2px;
    background: #F2C230;
  }
  .kyoso-header-sptel svg {
    fill: #1A2433;
  }
}
@media (min-width: 1000px) {
  .kyoso-sp-nav {
    display: none;
  }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.kyoso-footer {
  background: #123F73;
  color: #fff;
}
.kyoso-footer__body {
  padding: 0;
}
.kyoso-footer__inner {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 40px;
  max-width: 1200px;
  padding: clamp(56px, 6vw, 80px) clamp(20px, 4vw, 40px);
}
.kyoso-footer__left {
  display: flex;
  flex: 1 1 320px;
  flex-direction: column;
  gap: 20px;
  width: auto;
}
.kyoso-footer__right {
  display: flex;
  flex: 1 1 420px;
  flex-direction: column;
  gap: 24px;
  width: auto;
}
.kyoso-footer__info {
  margin: 0;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.06em;
  color: #fff;
}
.kyoso-footer__tel {
  font-family: "Anton", sans-serif;
  font-size: 20px;
  letter-spacing: 0.06em;
  color: #fff;
}
.kyoso-footer__tel:hover {
  color: #F2C230;
}
.kyoso-footer__nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 4px 24px;
}
.kyoso-footer__nav .footer-body__nav-item a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  color: #fff;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.kyoso-footer__nav .footer-body__nav-item a::before {
  content: "";
  width: 10px;
  height: 3px;
  background: #F2C230;
}
.kyoso-footer__nav .footer-body__nav-item a:hover {
  color: #F2C230;
}
.kyoso-footer__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.kyoso-footer__btn {
  display: flex;
  flex: 1 1 200px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  border-radius: 2px;
  color: #1A2433;
  line-height: 1.2;
  white-space: nowrap;
  transition: background 0.3s ease, color 0.3s ease;
}
.kyoso-footer__btn--tel {
  background: #fff;
  font-family: "Anton", sans-serif;
  font-size: 19px;
  letter-spacing: 0.06em;
}
.kyoso-footer__btn--form {
  background: #F2C230;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.1em;
}
.kyoso-footer__btn:hover {
  background: #0D2747;
  color: #fff;
}
.kyoso-footer__bottom {
  padding: 18px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}
.kyoso-footer__copyright {
  font-family: inherit;
  font-size: 12px;
  letter-spacing: 0.1em;
  color: #fff;
}

/* ==========================================================================
   Contact CTA（footer-cta footer-cta--2col-stack と併用）
   ========================================================================== */
.kyoso-cta {
  overflow: hidden;
  padding: clamp(72px, 9vw, 120px) 0;
  background: #1E5FA8;
  color: #fff;
}
.kyoso-cta::before {
  content: none;
}
.kyoso-cta__shape {
  position: absolute;
  top: 0;
  right: 0;
  width: 45%;
  height: 100%;
  background: #2468B3;
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
}
.kyoso-cta .kyoso-cta__inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 0 clamp(20px, 4vw, 40px);
  text-align: left;
}
.kyoso-cta .kyoso-cta__left {
  display: flex;
  flex: 1 1 380px;
  flex-direction: column;
  gap: 20px;
}
.kyoso-cta .kyoso-cta__desc {
  margin: 0;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.04em;
}
.kyoso-cta .kyoso-cta__right {
  display: flex;
  flex: 1 1 440px;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
}
.kyoso-cta__tel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  padding: clamp(22px, 2.6vw, 30px);
  border-radius: 2px;
  background: #fff;
  color: #1A2433;
}
.kyoso-cta__tel:hover {
  color: #1A2433;
}
.kyoso-cta__tel-main {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.kyoso-cta__tel-label {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #1E5FA8;
}
.kyoso-cta__tel-num {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Anton", sans-serif;
  font-size: clamp(34px, 4vw, 48px);
  line-height: 1;
  letter-spacing: 0.04em;
}
.kyoso-cta__tel-icon {
  flex: 0 0 auto;
  width: 0.8em;
  height: 0.8em;
  fill: #1E5FA8;
}
.kyoso-cta__tel-note {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
.kyoso-cta__form {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 30px;
  border-radius: 2px;
  background: #F2C230;
  color: #1A2433;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  white-space: nowrap;
  transition: background 0.3s ease, color 0.3s ease;
}
.kyoso-cta__form:hover {
  background: #0D2747;
  color: #fff;
}
.kyoso-cta__form-arrow {
  font-family: "Anton", sans-serif;
  font-size: 20px;
  font-weight: 400;
}

/* ==========================================================================
   Decoration
   ========================================================================== */
.kyoso-deco {
  position: absolute;
  pointer-events: none;
}
.kyoso-deco--topics-l {
  top: 0;
  left: 0;
  width: clamp(60px, 10vw, 160px);
  height: 100%;
  background: #E3E8EE;
  clip-path: polygon(0 0, 40% 0, 100% 100%, 0 100%);
}
.kyoso-deco--topics-r {
  right: clamp(20px, 5vw, 80px);
  bottom: 0;
  width: clamp(40px, 5vw, 80px);
  height: 60%;
  background: #F8E4A2;
  clip-path: polygon(0 0, 60% 0, 100% 100%, 40% 100%);
}
.kyoso-deco--panel-r {
  top: 0;
  right: 0;
  width: min(46vw, 620px);
  height: 100%;
  background: #F4F6F8;
  clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%);
}
.kyoso-deco--panel-r-sm {
  top: 0;
  right: 0;
  width: min(42vw, 560px);
  height: 100%;
  background: #F4F6F8;
  clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%);
}
.kyoso-deco--panel-l-sm {
  top: 0;
  left: 0;
  width: min(42vw, 560px);
  height: 100%;
  background: #F4F6F8;
  clip-path: polygon(0 0, 100% 0, 78% 100%, 0 100%);
}
.kyoso-deco--strength-l {
  top: 0;
  left: 0;
  width: clamp(80px, 12vw, 180px);
  height: 100%;
  background: #E3E8EE;
  clip-path: polygon(0 0, 100% 0, 30% 100%, 0 100%);
}
.kyoso-deco--strength-r {
  right: clamp(20px, 6vw, 90px);
  bottom: 0;
  width: clamp(50px, 6vw, 90px);
  height: clamp(140px, 18vw, 240px);
  background: #F8E4A2;
  clip-path: polygon(40% 0, 100% 0, 60% 100%, 0 100%);
}
.kyoso-deco--request-r {
  top: 0;
  right: clamp(20px, 6vw, 90px);
  width: clamp(50px, 6vw, 90px);
  height: clamp(120px, 14vw, 200px);
  background: #F8E4A2;
  clip-path: polygon(40% 0, 100% 0, 60% 100%, 0 100%);
}

.kyoso-bgtext {
  position: absolute;
  top: clamp(40px, 6vw, 80px);
  right: -1vw;
  margin: 0;
  font-family: "Anton", sans-serif;
  font-size: clamp(90px, 16vw, 240px);
  line-height: 1;
  letter-spacing: 0.02em;
  color: transparent;
  -webkit-text-stroke: 1px #CFD8E2;
  pointer-events: none;
}

/* ==========================================================================
   Photo
   ========================================================================== */
.kyoso-photo {
  position: relative;
}
.kyoso-photo__img {
  display: block;
  width: 100%;
  border-radius: 2px;
  object-fit: cover;
}
.kyoso-photo__img--fill {
  height: 100%;
  min-height: clamp(360px, 90vw, 520px);
  object-position: center 62%;
}
.kyoso-photo__img--4-3 {
  aspect-ratio: 4 / 3;
}
.kyoso-photo__img--3-4 {
  max-height: 640px;
  aspect-ratio: 3 / 4;
}
.kyoso-photo--bar-bl::after,
.kyoso-photo--bar-tr::after {
  content: "";
  position: absolute;
  width: 120px;
  height: 12px;
  background: #F2C230;
}
.kyoso-photo--bar-bl::after {
  left: -12px;
  bottom: -12px;
}
.kyoso-photo--bar-tr::after {
  top: -12px;
  right: -12px;
}

/* ==========================================================================
   TOP：メインビジュアル
   ========================================================================== */
.kyoso-mv {
  position: relative;
  height: clamp(560px, calc(100vh - 88px), 880px);
  overflow: hidden;
  background: #0D2747;
}
/* z-index:0 で重なりを閉じ込め、CMSスライダー内部の z-index:1 が暗幕・コピーを覆わないようにする */
#slideshow {
  position: absolute;
  inset: 0;
  z-index: 0;
  height: clamp(560px, calc(100vh - 88px), 880px);
}
#slideshow .swiper-slide,
#slideshow .main_slider__inner {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
#slideshow .main_slider__inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* ズームは表示中スライドで毎回再生（フェードアウト中のスライドは継続させて巻き戻りを防ぐ） */
#slideshow .swiper-slide-active .main_slider__inner img,
#slideshow .swiper-slide-prev .main_slider__inner img {
  animation: kyoso-mv-zoom 7s linear forwards;
}
@keyframes kyoso-mv-zoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.06);
  }
}
.kyoso-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(9, 28, 54, 0.3) 0%, rgba(9, 28, 54, 0.52) 55%, rgba(9, 28, 54, 0.78) 100%);
  pointer-events: none;
}
.kyoso-mv__content {
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(14px, 2vw, 22px);
  height: 100%;
  color: #fff;
  text-align: center;
}
.kyoso-mv__content > * {
  align-self: stretch;
}
.kyoso-mv__place {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 0;
  font-family: "Anton", sans-serif;
  font-size: clamp(12px, 1.1vw, 14px);
  line-height: 1.5;
  letter-spacing: 0.32em;
  color: #F2C230;
}
.kyoso-mv__place::before,
.kyoso-mv__place::after {
  content: "";
  width: 32px;
  height: 2px;
  background: #F2C230;
}
.kyoso-mv__catch {
  margin: 0;
  font-size: clamp(32px, 5.4vw, 68px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.1em;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}
.kyoso-mv__en {
  margin: 0;
  font-family: "Anton", sans-serif;
  font-size: clamp(34px, 7.6vw, 112px);
  line-height: 1;
  letter-spacing: 0.03em;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.3);
}
.kyoso-mv__lead {
  margin: 6px 0 0;
  font-size: clamp(13px, 1.2vw, 15px);
  line-height: 1.9;
  letter-spacing: 0.12em;
}
.kyoso-mv__scroll {
  position: absolute;
  right: clamp(16px, 3vw, 40px);
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  color: #fff;
}
.kyoso-mv__scroll-text {
  font-family: "Anton", sans-serif;
  font-size: 12px;
  letter-spacing: 0.24em;
  writing-mode: vertical-rl;
}
.kyoso-mv__scroll-line {
  width: 1px;
  height: 64px;
  background: rgba(255, 255, 255, 0.7);
}

/* ==========================================================================
   TOP：お知らせ
   ========================================================================== */
.kyoso-topics {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(28px, 5vw, 72px);
}
.kyoso-topics__head {
  display: flex;
  flex: 0 1 260px;
  flex-direction: column;
  gap: 24px;
}
.kyoso-topics__body {
  flex: 1 1 520px;
  min-width: 0;
}

.kyoso-blog-list {
  border-top: 1px solid #9AA8B8;
}
.kyoso-blog-list .blog-list__item {
  border-bottom: 1px solid #9AA8B8;
}
.kyoso-blog-list .blog-list__link {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 24px;
  padding: 22px 4px;
  color: #1A2433;
}
.kyoso-blog-list .blog-list__link:hover {
  background: transparent;
}
.kyoso-blog-list .blog-list__date {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.kyoso-blog-list .blog-list__title {
  flex: 1 1 280px;
  min-width: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.04em;
}

/* ==========================================================================
   TOP：事業紹介
   ========================================================================== */
.kyoso-area {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  padding: 18px 0;
  border-top: 1px solid #D5DCE4;
  border-bottom: 1px solid #D5DCE4;
}
.kyoso-area__label {
  font-family: "Anton", sans-serif;
  font-size: 14px;
  letter-spacing: 0.14em;
  color: #1E5FA8;
}
.kyoso-area__text {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.kyoso-area--band {
  align-items: center;
  gap: 12px 24px;
  padding: 22px 26px;
  border: 0;
  background: #1E5FA8;
  color: #fff;
}
.kyoso-area--band .kyoso-area__label {
  font-size: 18px;
  letter-spacing: 0.16em;
  color: #F2C230;
}
.kyoso-area--band .kyoso-area__text {
  font-size: 16px;
}
.kyoso-area__note {
  font-weight: 500;
}

/* ==========================================================================
   TOP：強み
   ========================================================================== */
.kyoso-strength__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}
.kyoso-strength__intro {
  max-width: 440px;
  margin: 0;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.04em;
}
.kyoso-card {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: clamp(24px, 2.4vw, 32px);
  border-top: 4px solid #1E5FA8;
  background: #fff;
}
.kyoso-card__num {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: "Anton", sans-serif;
  font-size: 56px;
  line-height: 1;
  color: #1E5FA8;
}
.kyoso-card__num::after {
  content: "";
  width: 22px;
  height: 5px;
  background: #F2C230;
  transform: skewX(-30deg);
}
.kyoso-card__title {
  margin: 0;
  text-wrap: balance;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.02em;
}
.kyoso-card__text {
  margin: 0;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.03em;
  text-wrap: pretty;
}

/* ==========================================================================
   TOP：採用
   ========================================================================== */
.kyoso-recruit {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: clamp(560px, 52vw, 680px);
  overflow: hidden;
  background: #F4F6F8;
}
.kyoso-recruit__photo {
  position: absolute;
  inset: 0;
}
.kyoso-recruit__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(9, 28, 54, 0.25);
}
.kyoso-recruit__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 100% 0%;
}
.kyoso-recruit__inner {
  padding-top: clamp(28px, 6vw, 80px);
  padding-bottom: clamp(28px, 6vw, 80px);
}
.kyoso-recruit__panel {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: min(520px, 40vw);
  padding: clamp(32px, 4vw, 52px);
  background: #1E5FA8;
  color: #fff;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 36px), calc(100% - 36px) 100%, 0 100%);
}
@media (max-width: 1199px) {
  .kyoso-recruit__photo {
    position: relative;
  }
  .kyoso-recruit__img {
    height: auto;
    aspect-ratio: 16 / 10;
  }
  .kyoso-recruit__panel {
    max-width: 100%;
  }
}
.kyoso-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.kyoso-tags__item {
  padding: 6px 14px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

/* ==========================================================================
   下層：ページヒーロー（page-hero と併用）
   ========================================================================== */
.kyoso-hero {
  display: flex;
  align-items: center;
  height: clamp(260px, 30vw, 380px);
}
.kyoso-hero--sm {
  height: clamp(200px, 22vw, 280px);
}
.kyoso-hero .kyoso-hero__overlay {
  background: linear-gradient(90deg, rgba(17, 58, 108, 0.92) 0%, rgba(17, 58, 108, 0.7) 50%, rgba(17, 58, 108, 0.35) 100%);
}
.kyoso-hero .kyoso-hero__content {
  gap: 10px;
  height: auto;
  color: #fff;
}
.kyoso-hero__en {
  margin: 0;
  font-family: "Anton", sans-serif;
  font-size: clamp(56px, 9vw, 120px);
  line-height: 0.92;
}
.kyoso-hero--sm .kyoso-hero__en {
  font-size: clamp(48px, 7vw, 96px);
}
.kyoso-hero__ja {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.18em;
}
.kyoso-hero--sm .kyoso-hero__ja {
  font-size: 16px;
}

/* パンくず */
.kyoso-breadcrumb {
  padding: 0;
  background: #F4F6F8;
  font-size: 13px;
  letter-spacing: 0.06em;
}
.kyoso-breadcrumb .kyoso-container {
  padding-top: 14px;
  padding-bottom: 14px;
}
.kyoso-breadcrumb .breadcrumb__item:not(:last-child)::after {
  margin: 0 10px;
  color: #1A2433;
}
.kyoso-breadcrumb .breadcrumb__link:hover {
  text-decoration: none;
  color: #174C88;
}
.kyoso-breadcrumb .breadcrumb__current {
  color: #1A2433;
}

/* ==========================================================================
   事業内容
   ========================================================================== */
.kyoso-chips-wrap {
  gap: 12px;
}
.kyoso-chips__label {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.12em;
  color: #1E5FA8;
}
.kyoso-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.kyoso-chips__item {
  padding: 10px 18px;
  background: #F4F6F8;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.kyoso-request {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 28px;
  background: #fff;
}
.kyoso-request__body {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.kyoso-request__num {
  font-family: "Anton", sans-serif;
  font-size: 32px;
  line-height: 1;
  color: #1E5FA8;
}
.kyoso-request__title {
  margin: 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.kyoso-request__icon {
  flex: 0 0 auto;
  width: 80px;
  height: 80px;
  object-fit: contain;
}

/* ==========================================================================
   会社概要 / 採用情報
   ========================================================================== */
.kyoso-sign {
  align-self: flex-end;
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.12em;
}
.kyoso-sign__name {
  font-size: 24px;
  letter-spacing: 0.2em;
}

.kyoso-dl {
  margin: 0;
  padding: clamp(8px, 2vw, 24px) clamp(20px, 3vw, 48px);
  background: #fff;
}
.kyoso-dl__row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 24px;
  padding: 22px 0;
  border-bottom: 1px solid #E3E8EE;
}
.kyoso-dl__term {
  flex: 0 0 160px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.08em;
  color: #1E5FA8;
}
.kyoso-dl__desc {
  flex: 1 1 300px;
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

.kyoso-access__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}
.kyoso-access__address {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.04em;
}
.kyoso-map {
  height: clamp(300px, 36vw, 460px);
  border-radius: 0;
}
.kyoso-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  filter: saturate(0.85);
}

.kyoso-group {
  display: flex;
  flex-wrap: wrap;
  border-top: 4px solid #1E5FA8;
  background: #fff;
}
.kyoso-group__img {
  flex: 1 1 320px;
  min-width: 0;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.kyoso-group__body {
  display: flex;
  flex: 1 1 280px;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  padding: clamp(24px, 3vw, 40px);
}
.kyoso-group__name {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.kyoso-group__note {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.kyoso-group__list {
  margin: 8px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid #E3E7EE;
  list-style: none;
}
.kyoso-group__item {
  position: relative;
  padding-left: 1em;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.kyoso-group__item::before {
  content: "・";
  position: absolute;
  left: 0;
}

/* 採用：エントリーCTA */
.kyoso-entry-cta {
  position: relative;
  overflow: hidden;
  padding: clamp(64px, 8vw, 100px) 0;
  background: #1E5FA8;
  color: #fff;
}
.kyoso-entry-cta__inner {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 24px;
  text-align: center;
}
.kyoso-entry-cta .kyoso-heading {
  gap: 24px;
}
.kyoso-entry-cta__note {
  margin: 0;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.04em;
}
.kyoso-entry-cta__btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  width: 100%;
}
.kyoso-entry-cta__tel {
  display: flex;
  flex: 1 1 320px;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  max-width: 440px;
  padding: 22px 28px;
  border-radius: 2px;
  background: #fff;
  color: #1A2433;
}
.kyoso-entry-cta__tel:hover {
  color: #1A2433;
}
.kyoso-entry-cta__tel > span {
  align-self: stretch;
  text-align: center;
}
.kyoso-entry-cta__tel-label {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.12em;
  color: #1E5FA8;
}
.kyoso-entry-cta__tel-num {
  font-family: "Anton", sans-serif;
  font-size: clamp(30px, 3.4vw, 40px);
  line-height: 1;
  letter-spacing: 0.04em;
}
.kyoso-entry-cta .kyoso-entry-cta__form {
  flex: 1 1 320px;
  justify-content: center;
  gap: 20px;
  max-width: 440px;
  padding: 22px 28px;
}

/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.kyoso-tel-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  padding: clamp(22px, 3vw, 32px);
  border-top: 4px solid #1E5FA8;
  background: #F4F6F8;
  color: #1A2433;
}
.kyoso-tel-box:hover {
  color: #1A2433;
}
.kyoso-tel-box__label {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.kyoso-tel-box__num {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Anton", sans-serif;
  font-size: clamp(30px, 3.6vw, 42px);
  line-height: 1;
  letter-spacing: 0.04em;
  color: #1E5FA8;
}
.kyoso-tel-box__icon {
  flex: 0 0 auto;
  width: 0.8em;
  height: 0.8em;
  fill: #1E5FA8;
}
.kyoso-tel-box__note {
  font-size: 13px;
  line-height: 1.7;
  letter-spacing: 0.06em;
}

.kyoso-form__intro {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: 0.04em;
  text-align: center;
}
.kyoso-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.kyoso-form__field {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
label.kyoso-form__field {
  gap: 10px;
}
.kyoso-form__label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.kyoso-form__required {
  padding: 2px 8px;
  background: #1E5FA8;
  color: #fff;
  font-size: 11px;
  line-height: 1.5;
}
.kyoso-form__types {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 12px;
}
.kyoso-form__type {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 22px;
  border: 2px solid #C5CFDA;
  border-radius: 2px;
  background: #fff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: border-color 0.3s ease, background 0.3s ease;
}
.kyoso-form__type:has(.kyoso-form__radio:checked) {
  border-color: #1E5FA8;
  background: #EEF3F9;
}
.kyoso-form__radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.kyoso-form__mark {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 2px solid #1E5FA8;
  border-radius: 50%;
}
.kyoso-form__mark::after {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: transparent;
}
.kyoso-form__radio:checked + .kyoso-form__mark::after {
  background: #1E5FA8;
}
.kyoso-form__radio:focus-visible + .kyoso-form__mark {
  outline: 2px solid #F2C230;
  outline-offset: 2px;
}
.kyoso-form .kyoso-form__input {
  padding: 16px 18px;
  border: 1px solid #C5CFDA;
  border-radius: 2px;
  background: #fff;
  font-size: 16px;
}
.kyoso-form .kyoso-form__input:focus {
  border-color: #1E5FA8;
}
.kyoso-form .kyoso-form__textarea {
  line-height: 1.8;
  resize: vertical;
}
.kyoso-form__submit {
  align-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  min-width: min(100%, 320px);
  padding: 20px 40px;
  border: 0;
  border-radius: 2px;
  background: #F2C230;
  color: #1A2433;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.14em;
  cursor: pointer;
  transition: background 0.3s ease, color 0.3s ease;
}
.kyoso-form__submit:hover {
  background: #0D2747;
  color: #fff;
}

/* ==========================================================================
   お知らせ一覧 / 詳細
   ========================================================================== */
.kyoso-news {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #D5DCE4;
}
.kyoso-news__item {
  border-bottom: 1px solid #D5DCE4;
}
.kyoso-news__link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 28px;
  padding: 24px 0;
  color: #1A2433;
}
.kyoso-news__link:hover {
  color: #1A2433;
}
.kyoso-news__link:hover .kyoso-news__title {
  color: #1E5FA8;
}
.kyoso-news__img {
  flex: 0 0 auto;
  width: min(100%, 240px);
  aspect-ratio: 3 / 2;
  border-radius: 2px;
  object-fit: cover;
}
.kyoso-news__body {
  display: flex;
  flex: 1 1 280px;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
.kyoso-news__date {
  font-family: "Anton", sans-serif;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #1E5FA8;
}
.kyoso-news__title {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.04em;
  transition: color 0.3s ease;
}
.kyoso-news__excerpt {
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
  color: #4A5568;
}

.kyoso-pagination {
  margin: 0;
}
.kyoso-pagination .pagination__link {
  min-width: 44px;
  height: 44px;
  padding: 0;
  border-color: #D5DCE4;
  border-radius: 0;
  font-family: "Anton", sans-serif;
  font-size: 16px;
}
.kyoso-pagination .pagination__link--next {
  padding: 0 18px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
}

.kyoso-archive__title {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 3px solid #1E5FA8;
}
.kyoso-archive__en {
  font-family: "Anton", sans-serif;
  font-size: 22px;
  line-height: 1.3;
  color: #1E5FA8;
}
.kyoso-archive__ja {
  font-size: 12px;
  font-weight: 700;
}
.kyoso-archive__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.kyoso-archive__link {
  display: flex;
  justify-content: space-between;
  padding: 12px 2px;
  border-bottom: 1px solid #E3E8EE;
  color: #1A2433;
  font-size: 14px;
  line-height: 1.5;
}
.kyoso-archive__link:hover {
  color: #1E5FA8;
}

.kyoso-article {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.kyoso-article__date {
  font-family: "Anton", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #1E5FA8;
}
.kyoso-article__title {
  margin: 0;
  text-wrap: balance;
  padding-bottom: 24px;
  border-bottom: 1px solid #D5DCE4;
  font-size: clamp(24px, 2.8vw, 34px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.04em;
}
.kyoso-article__img {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 2px;
  object-fit: cover;
}
.kyoso-article__body {
  display: flex;
  flex-direction: column;
  gap: 22px;
  font-size: 16px;
  line-height: 2.1;
  letter-spacing: 0.04em;
}
.kyoso-article__body p {
  margin: 0;
}
.kyoso-article__body h2 {
  margin: 12px 0 0;
  padding-left: 16px;
  border-left: 5px solid #F2C230;
  font-size: 20px;
  font-weight: 700;
}
.kyoso-article__back {
  margin-top: 24px;
}

/* ==========================================================================
   改行切り替え（スマホ：699px以下）
   ========================================================================== */
.kyoso-br-sp {
  display: none;
}
@media (max-width: 699px) {
  .kyoso-br-sp {
    display: inline;
  }
  .kyoso-br-pc {
    display: none;
  }
}

/* ==========================================================================
   ページトップボタン（共通 .page-top の値調整）
   ========================================================================== */
.kyoso-page-top .page-top__link {
  border-radius: 2px;
  background: #1E5FA8;
  color: #fff;
}
.kyoso-page-top .page-top__link::before {
  content: "\f077";
  font-family: "Font Awesome 6 Free";
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
}
.kyoso-page-top .page-top__link:hover {
  background: #F2C230;
  color: #1A2433;
}

/* ==========================================================================
   送信完了（thanks.php）
   ========================================================================== */
.kyoso-thanks__text {
  margin: 0;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.04em;
  text-align: center;
}

/* ==========================================================================
   お問い合わせフォーム（フォームCMS .form-pattern-1 の上書き）
   ========================================================================== */
.kyoso-form-area .form-contents {
  padding: 0 !important;
  background: transparent !important;
}
.kyoso-form-area .form-contents .custom-area {
  padding-bottom: 28px;
  border-bottom: 1px solid #E3E8EE;
}
.kyoso-form-area .form-contents form dl {
  margin-bottom: 40px !important;
}
.kyoso-form-area .form-contents form dl dt:not(.pattern-exclusion) {
  width: 220px !important;
  padding-top: 26px !important;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.08em;
}
.kyoso-form-area .form-contents form dl dd:not(.pattern-exclusion) {
  padding: 18px 0 18px 220px !important;
  border-bottom: 1px solid #E3E8EE !important;
}
/* 必須・任意バッジ */
.kyoso-form-area .form-pattern-1 dl dt:not(.pattern-exclusion) span::before {
  top: -1px !important;
  margin-right: 10px !important;
  padding: 2px 8px !important;
  border-radius: 0 !important;
  font-size: 11px !important;
  letter-spacing: 0.08em;
}
.kyoso-form-area .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before {
  background: #1E5FA8 !important;
  color: #fff !important;
}
.kyoso-form-area .form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::before {
  content: "任意" !important;
  background: #9AA8B8 !important;
  color: #fff !important;
}
/* 入力欄（背景色はエラー時にCMSのJSが付けるため上書きしない） */
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea,
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect,
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea-date,
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea-time,
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea-datetime,
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea-datetimepicker {
  padding: 14px 16px !important;
  border: 1px solid #C5CFDA !important;
  border-radius: 2px !important;
  font-family: inherit;
  font-size: 16px !important;
  line-height: 1.6;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) input.textarea,
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect {
  height: 54px !important;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) textarea.textarea {
  line-height: 1.8;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea:focus,
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea-serect:focus {
  border-color: #1E5FA8 !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(30, 95, 168, 0.15) !important;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .textarea::placeholder {
  color: #9AA8B8;
}
/* エラー表示 */
.kyoso-form-area .form-contents .form-err-msg {
  margin: 0 0 28px !important;
  padding: 16px 20px !important;
  border: 1px solid #D64545 !important;
  border-left-width: 4px !important;
  border-radius: 0 !important;
  background: #FFF5F5 !important;
  color: #C53030 !important;
  font-size: 14px;
  line-height: 1.8;
}
/* 送信完了メッセージ */
.kyoso-form-area .form-pattern-1 .form-thanks-msg {
  padding: clamp(28px, 4vw, 44px) !important;
  border: 0 !important;
  border-top: 4px solid #1E5FA8 !important;
  background: #F4F6F8 !important;
  font-size: 15px;
  line-height: 2;
}
.kyoso-form-area .form-pattern-1 .form-thanks-msg .back-home-btn {
  width: min(100%, 300px) !important;
}
.kyoso-form-area .form-pattern-1 .form-thanks-msg .back-home-btn a {
  padding: 18px 0 !important;
  border: 0 !important;
  border-radius: 2px !important;
  background: #F2C230 !important;
  color: #1A2433 !important;
  font-size: 15px !important;
  letter-spacing: 0.1em !important;
}
.kyoso-form-area .form-pattern-1 .form-thanks-msg .back-home-btn a:hover {
  background: #0D2747 !important;
  color: #fff !important;
}
/* ファイル添付欄 */
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .upload-area {
  border: 2px dashed #9AA8B8 !important;
  border-radius: 2px;
  background: #F4F6F8 !important;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .upload-area .upload-msg p {
  color: #1A2433 !important;
  font-size: 14px;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .upload-msg button {
  max-width: 100%;
  border: 1px solid #C5CFDA !important;
  border-radius: 2px !important;
  background: #fff !important;
  color: #1A2433 !important;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .upload-msg button::before {
  background-color: #1E5FA8 !important;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .input-file-clear {
  border: 0 !important;
  border-radius: 2px !important;
  background: #1E5FA8 !important;
  color: #fff !important;
}
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .upload-msg button:hover,
.kyoso-form-area .form-pattern-1 dd:not(.pattern-exclusion) .input-file-clear:hover {
  background: #0D2747 !important;
  color: #fff !important;
}
/* 送信ボタン（サイトのボタンと同じデザイン・中央配置） */
.kyoso-form-area .form-pattern-1 .submit-btn {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: min(100%, 300px) !important;
  margin: 0 auto !important;
  padding: 20px 40px !important;
  border: 0 !important;
  border-radius: 2px !important;
  background: #F2C230 !important;
  color: #1A2433 !important;
  font-family: inherit;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.5;
  letter-spacing: 0.14em;
  white-space: nowrap;
  transition: background 0.3s ease, color 0.3s ease !important;
}
.kyoso-form-area .form-pattern-1 .submit-btn::before {
  background-color: #1A2433 !important;
}
.kyoso-form-area .form-pattern-1 .submit-btn:hover {
  background: #0D2747 !important;
  color: #fff !important;
}
.kyoso-form-area .form-pattern-1 .submit-btn:hover::before {
  background-color: #fff !important;
}
@media (max-width: 1024px) {
  .kyoso-form-area .form-contents form dl dt:not(.pattern-exclusion) {
    width: 100% !important;
    margin-bottom: 0 !important;
    padding-top: 22px !important;
  }
  .kyoso-form-area .form-contents form dl dd:not(.pattern-exclusion) {
    padding: 12px 0 22px !important;
  }
}

/* ==========================================================================
   スマホ（699px以下）
   ========================================================================== */
@media (max-width: 699px) {
  /* MV：ヘッダーを除いた全画面 */
  .kyoso-mv,
  #slideshow {
    height: calc(100svh - clamp(64px, 7vw, 88px));
  }
  .kyoso-mv__lead {
    font-size: 15px;
    line-height: 1.8;
  }

  /* 左寄せの見出し・ボタンは中央配置 */
  .kyoso-heading.heading--left {
    align-items: stretch;
    text-align: center;
  }
  .kyoso-heading.heading--left .heading__ja {
    justify-content: center;
  }
  .kyoso-subhead {
    align-items: center;
    text-align: center;
  }
  .kyoso-subhead > * {
    align-self: stretch;
  }
  .kyoso-topics__head,
  .kyoso-strength__head,
  .kyoso-access__head {
    flex: 1 1 100%;
    flex-direction: column;
    align-items: stretch;
  }
  .kyoso-access__address {
    text-align: center;
  }

  /* ボタン：中央配置・横幅をそろえる */
  .kyoso-btn {
    align-self: center;
    justify-content: center;
    width: min(100%, 300px);
  }

  /* フッター：ナビ非表示・中央配置 */
  .kyoso-footer__nav {
    display: none;
  }
  .kyoso-footer__left {
    align-items: center;
    text-align: center;
  }
  .kyoso-logo--footer {
    align-self: center;
  }
  .kyoso-footer__right,
  .kyoso-footer__btns {
    width: 100%;
  }
  .kyoso-footer__copyright {
    text-align: center;
  }

  /* TOP強み：導入文を中央配置 */
  .kyoso-strength__intro {
    max-width: none;
    text-align: center;
  }

  /* お問い合わせCTA：案内文を中央配置 */
  .kyoso-cta .kyoso-cta__desc {
    text-align: center;
  }

  /* お知らせ一覧：サムネイルを中央配置 */
  .kyoso-news__img {
    margin-inline: auto;
  }
}
