/*
 * ======================================
 * 株式会社マリンワークス サイト固有CSS（site.css）
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * 【共通レイアウト/タイポ】
 *  .mw-container / --narrow / --mid / --form  - 1280/980/1024/880px の中央寄せラッパー（左右32px余白）
 *  .mw-sec / --sm / --lg / --flush-top        - セクション上下余白（110/90/120px）
 *  .mw-label (--sm --xs --light --soft)       - Outfit の英字アイバウラベル
 *  .mw-h1 / .mw-h2 (--white)                  - セクション見出し
 *  .mw-lead / .mw-lead__big / .mw-lead__text  - 中央寄せリード文ブロック
 *  .mw-grid2 / .mw-grid3 / .mw-grid-auto      - グリッド
 *  .mw-text / .mw-text--mute / --light        - 本文テキスト色・行間
 *  .mw-photo (+ aspect/grad)                  - 写真プレースホルダ（顧客提供写真の差し替え枠）
 *  .mw-grad-1/2/3 / -dark / -blue / -msg      - プレースホルダ用グラデーション背景
 *
 * 【ヘッダー/フッター/CTA】
 *  .mw-header .mw-logo .mw-flogo .mw-fnav .mw-frelated  - ヘッダー/フッター調整
 *  .mw-cta .mw-cta__inner __title __desc               - CONTACT帯
 *
 * 【TOP】
 *  .mw-hero (__slide __veil __num __tag __depth __content __title __sub __dots __dot __tagline)
 *  .mw-message (__grid __photo-wrap __namecard) / .mw-msg-lead / .mw-sign
 *  .mw-headblock (--center)  - ラベル+見出し+リードの見出しブロック
 *  .mw-cardnum (__no __title __text)  - 上ボーダー+大番号カード（強み/求める人材像）
 *  .mw-news (__head __all __list) / .mw-newsrow (__date __cat __title)
 *  .mw-scard (__media __num __en __body __title __text __more)  - サービスカード
 *  .mw-recruit (__bgtext __points __point) / .mw-promo (--dark --blue)
 *  .mw-contact-split
 *
 * 【下層共通】
 *  .mw-phero (__bg __label __title) / .mw-bc  - 下層ページヒーロー & パンくず
 *  .mw-rhero  - 採用ページの大型ヒーロー
 *  .mw-linkcard / .mw-jvcta  - 誘導カード / グラデCTA帯
 *
 * 【事業内容】
 *  .mw-sblock (__head __no __title __sub __media __list __listhead __cats) / .mw-cat
 *  .mw-qual / .mw-qcard / .mw-spec (__label __val __unit)
 *
 * 【重機・船舶】
 *  .mw-shipcard / .mw-dronecard / .mw-equip / .mw-machinery
 *
 * 【採用】
 *  .mw-flow (__step __num __body) / .mw-notice
 *
 * 【会社概要】
 *  .mw-deflist (__row __key __val) / .mw-office (__map __body) / .mw-form
 *
 * 【ブログCMS】
 *  .mw-blog (__main __side) / .mw-postrow / .mw-pager / .mw-side (__block __title)
 *  .mw-filter / .mw-article / .mw-pn / .mw-catnav
 *
 * 【ユーティリティ】
 *  [data-reveal] スクロールフェードイン / .mw-rd-1〜4 遅延
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 *  ・装飾パターン不足：ダーク背景フルブリードのMVスライド／巨大背景英字／海洋ダークテーマ全般
 *    （共通 mv-kenburns/slideshow は明色前提・Swiper or Ken Burns 構成のため、本デザインの
 *      クロスフェード+深度スケール+巨大英字の重厚レイアウトは site 側で実装）
 *  ・構造不足：左番号+右写真の事業詳細ブロック、2分割プロモカード、深度スケール
 *  ・値の粒度不足：セクション余白 90/100/110px、英字ラベル clamp サイズ
 *  ・色不足：ダーク背景上の明るいアクセントブルー #3aa6ff（accent_color に割当済）
 */

/* ============================================================
   0. ベース調整
   ============================================================ */
html { scroll-padding-top: 90px; }
/* 本文の既定ウェイトを 500 に（指定なし＝400 の箇所を全体的に 500 へ） */
body { font-weight: 500; }
body.is-nav-open { overflow: hidden; }

/* 本文の既定色をデザインのスレートに寄せる（見出しは濃色のまま） */
main p { color: #3a4156; }

/* ============================================================
   1. 共通レイアウト / タイポ
   ============================================================ */
.mw-container { max-width: 1280px; margin: 0 auto; padding: 0 32px; width: 100%; }
.mw-container--narrow { max-width: 980px; }
.mw-container--mid    { max-width: 1024px; }
.mw-container--form   { max-width: 1000px; }
.mw-container--form-lg{ max-width: 1000px; }
@media (max-width: 639px) { .mw-container { padding: 0 20px; } }

.mw-sec { padding: 110px 0; }
.mw-sec--sm { padding: 90px 0; }
.mw-sec--lg { padding: 120px 0; }
.mw-sec--flush-top { padding-top: 0; }
@media (max-width: 896px) {
  .mw-sec { padding: 64px 0; }
  .mw-sec--sm { padding: 56px 0; }
  .mw-sec--lg { padding: 70px 0; }
}

.mw-label {
  font-family: "Outfit", sans-serif;
  font-weight: 800;
  font-size: clamp(17px, 1.7vw, 22px);
  letter-spacing: 0.16em;
  color: #0000aa;
  line-height: 1;
  margin: 0 0 14px;
}
.mw-label--sm { font-size: 12px; letter-spacing: 0.14em; margin-bottom: 10px; }
.mw-label--xs { font-size: 11px; letter-spacing: 0.12em; margin-bottom: 10px; }
.mw-label--light { color: #3aa6ff; }
.mw-label--soft  { color: rgba(255,255,255,0.78); }

.mw-h1 { font-weight: 700; font-size: clamp(26px, 3.4vw, 44px); color: #fff; line-height: 1.2; margin: 0; }
.mw-h2 { font-weight: 700; font-size: clamp(22px, 2.6vw, 32px); color: #0a0a14; line-height: 1.3; margin: 0; }
.mw-h2--white { color: #fff; }

.mw-text { color: #3a4156; font-size: 15px; line-height: 2.0; }
.mw-text--mute { color: #9aa1b5; }
.mw-text--light { color: #c4cad8; }

.mw-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.mw-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.mw-grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 24px; }
@media (max-width: 896px) {
  .mw-grid3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .mw-grid2, .mw-grid3 { grid-template-columns: 1fr; }
}

/* 見出しブロック（ラベル + 見出し [+ リード]） */
.mw-headblock { margin-bottom: 56px; }
.mw-headblock--center { text-align: center; }
.mw-headblock__lead { margin: 16px 0 0; max-width: 760px; color: #3a4156; font-size: 15px; line-height: 1.95; }
.mw-headblock--center .mw-headblock__lead { margin-left: auto; margin-right: auto; }
@media (max-width: 896px) { .mw-headblock { margin-bottom: 40px; } }

/* リード（中央寄せ大文字 + 説明） */
.mw-lead { text-align: center; }
.mw-lead__big { margin: 0 0 24px; font-weight: 700; font-size: clamp(20px, 2.4vw, 28px); line-height: 1.6; color: #0a0a14; }
.mw-lead__text { margin: 0; font-size: 15px; line-height: 2.1; color: #3a4156; }

/* 写真プレースホルダ（顧客提供写真の差し替え枠） */
.mw-photo {
  position: relative;
  overflow: hidden;
  background: linear-gradient(150deg, #11203a, #1d3258);
}
.mw-photo > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mw-photo__label {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.7); font-size: 12px; letter-spacing: 0.08em; text-align: center; padding: 10px;
}
.mw-photo--4-3 { aspect-ratio: 4 / 3; }
.mw-photo--4-5 { aspect-ratio: 4 / 5; }
.mw-photo--16-9 { aspect-ratio: 16 / 9; }

.mw-grad-1   { background: linear-gradient(150deg, #11203a, #1d3258); }
.mw-grad-2   { background: linear-gradient(150deg, #0e1d33, #1a2e50); }
.mw-grad-3   { background: linear-gradient(150deg, #13243f, #21385f); }
.mw-grad-dark{ background: linear-gradient(150deg, #0d1426, #1d2c4a); }
.mw-grad-blue{ background: linear-gradient(150deg, #0000aa, #0088cc); }
.mw-grad-msg { background: linear-gradient(160deg, #11182b, #1d2c4a); }

.bg-f5 { background: #f5f7fa; }
.bg-ink { background: #070b16; }

.mw-w-680 { max-width: 680px; }
.mw-w-760 { max-width: 760px; }
.mw-w-820 { max-width: 820px; }
.mw-w-1040 { max-width: 1040px; }
.mw-label--wide { letter-spacing: 0.2em; }
.mw-tel-inline { color: #0000aa; font-weight: 700; text-decoration: none; }

/* 改行制御：.br-pc はPCのみ改行、.br-sp はSPのみ改行 */
.br-sp { display: none; }
@media (max-width: 639px) {
  .br-pc { display: none; }
  .br-sp { display: inline; }
}

/* ============================================================
   2. ヘッダー / フッター / CTA
   ============================================================ */
/* ロゴマーク（logo.png：左半分が透明・濃紺の版のため、暗背景では白版を敷く） */
.mw-logo__img { display: block; width: auto; height: 50px; flex-shrink: 0; }
.mw-logo__img--plate { background: #fff; padding: 6px 8px; border-radius: 3px; height: 56px; }
.mw-header .header-logo { gap: 14px; }
.mw-header .header-logo__name { font-size: 1.6rem; letter-spacing: 0.02em; }
.mw-header .header-logo__sub { font-size: 0.85rem; letter-spacing: 0.16em; color: #8c93a8; }
@media (max-width: 1100px) {
  .mw-header .header-logo__name { font-size: 1.4rem; }
  .mw-logo__img { height: 42px; }
}
@media (max-width: 639px) {
  .mw-header .header-logo { gap: 10px; }
  .mw-logo__img { height: 34px; }
  .mw-logo__img--plate { height: 46px; }
}

/* CTA帯（footer-cta の base_color 面を利用） */
.mw-cta__inner { max-width: 720px; gap: 0; }
.mw-cta__title { font-weight: 700; font-size: clamp(22px, 2.6vw, 32px); color: #fff; line-height: 1.2; margin: 0 0 15px; }
.mw-cta__desc { color: rgba(255,255,255,0.88); font-size: 15px; line-height: 1.9; margin: 0 0 30px; }
.mw-cta .footer-cta__tel { font-size: 3.4rem; }
@media (max-width: 639px) { .mw-cta .footer-cta__tel { font-size: 2.6rem; } }

/* フッター */
/* ロゴ行：inner と同じ最大幅・左右padding で全幅に配置 */
.mw-footer__head { max-width: 1200px; margin: 0 auto 44px; padding: 0 5%; }
.mw-flogo { display: inline-flex; align-items: center; gap: 18px; }
.mw-flogo .header-logo__name { font-size: 1.7rem; white-space: nowrap; }
.mw-flogo .header-logo__sub { font-size: 0.9rem; letter-spacing: 0.16em; white-space: nowrap; }
.mw-fnav { margin-top: 6px; }
@media (min-width: 897px) {
  .mw-footer .footer-body__inner { align-items: stretch; }
  .mw-footer .footer-body__left { width: 34%; }
  .mw-footer .footer-body__right {
    width: 62%; margin-left: 0;
    display: flex; flex-direction: column; align-items: flex-end;
  }
  .mw-footer .footer-body__right .mw-fbanner { margin-top: auto; }
  .mw-fnav { flex-wrap: nowrap; white-space: nowrap; }
}
@media (max-width: 639px) {
  .mw-footer__head { margin-bottom: 32px; }
  .mw-flogo .header-logo__name { font-size: 1.5rem; }
}
.mw-fnav .footer-body__nav-item a { display: flex; flex-direction: column; gap: 8px; line-height: 1.3; }
.mw-fnav__en { font-size: 1.1rem; font-weight: 700; letter-spacing: 0.08em; color: rgba(255,255,255,0.45); }
.mw-fnav__ja { font-size: 1.3rem; }
.mw-fnav .footer-body__nav-item a:hover .mw-fnav__en { color: rgba(255,255,255,0.7); }
/* 関連企業・支援団体バナー */
.mw-fbanner {
  display: flex; align-items: center; gap: 14px; margin-top: 22px; padding: 14px 18px;
  max-width: 360px; border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.04); text-decoration: none;
  transition: background .3s, border-color .3s, transform .3s;
}
.mw-fbanner:hover { background: rgba(255,255,255,0.09); border-color: rgba(255,255,255,0.4); transform: translateY(-2px); }
.mw-fbanner__label {
  flex-shrink: 0; font-size: 1.05rem; font-weight: 700; letter-spacing: 0.06em; color: #fff;
  background: #0000aa; padding: 4px 12px; border-radius: 999px;
}
.mw-fbanner--support { max-width: 480px; }
.mw-fbanner--support .mw-fbanner__label { background: #1f8a5b; }
.mw-fbanner__name { flex: 1; font-size: 1.35rem; font-weight: 700; color: rgba(255,255,255,0.9); line-height: 1.35; }
.mw-fbanner__arrow { flex-shrink: 0; color: rgba(255,255,255,0.55); font-size: 1.2rem; transition: color .3s, transform .3s; }
.mw-fbanner:hover .mw-fbanner__arrow { color: #fff; transform: translateX(3px); }

/* ============================================================
   3. TOP — ヒーロー
   ============================================================ */
.mw-hero {
  position: relative;
  height: 88vh; min-height: 620px; max-height: 880px;
  background: #04060d; overflow: hidden;
  display: flex; align-items: center;
}
.mw-hero__slide {
  position: absolute; inset: 0; opacity: 0;
  transition: opacity 1.1s ease;
}
.mw-hero__slide.is-active { opacity: 1; }
.mw-hero__slide--1 { background: linear-gradient(120deg, #0a1322, #16294a 60%, #0c1a30); }
.mw-hero__slide--2 { background: linear-gradient(120deg, #08111f, #102845 55%, #0a1626); }
.mw-hero__slide--3 { background: linear-gradient(120deg, #0b1526, #13233f 60%, #091420); }
.mw-hero__cms { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: #04060d; }
.mw-hero__cms #cms-slider-1-1-area { width: 100%; height: 100%; }
.mw-hero__cms .slider_wrapper,
.mw-hero__cms .main_slider__outer,
.mw-hero__cms .main_slider,
.mw-hero__cms .swiper,
.mw-hero__cms .swiper-wrapper,
.mw-hero__cms .swiper-slide { height: 100% !important; }
.mw-hero__cms img, .mw-hero__cms video { width: 100%; height: 100%; object-fit: cover; display: block; }
.mw-hero__veil {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(4,6,13,0.92) 0%, rgba(4,6,13,0.55) 45%, rgba(4,6,13,0.2) 100%);
}
.mw-hero__num {
  position: absolute; right: 36px; bottom: 120px;
  font-family: "Outfit", sans-serif; font-weight: 900; font-size: 15vw; line-height: 0.8;
  color: rgba(255,255,255,0.04); letter-spacing: -0.02em; pointer-events: none;
}
.mw-hero__tag {
  position: absolute; right: 40px; top: 50%; transform: translateY(-50%);
  writing-mode: vertical-rl;
  font-family: "Outfit", sans-serif; font-weight: 700; font-size: 13px; letter-spacing: 0.3em;
  color: rgba(255,255,255,0.4);
}
.mw-hero__depth {
  position: absolute; left: 32px; top: 50%; transform: translateY(-50%);
  display: flex; flex-direction: column; z-index: 3;
}
.mw-hero__depth-row { display: flex; align-items: center; gap: 8px; height: 46px; }
.mw-hero__depth-row span:first-child { width: 18px; height: 1px; background: rgba(255,255,255,0.3); }
.mw-hero__depth-row span:last-child { font-family: "Outfit", sans-serif; font-size: 10px; color: rgba(255,255,255,0.45); letter-spacing: 0.1em; }
.mw-hero__content {
  position: relative; z-index: 4; max-width: 1100px; margin: 0 auto; padding: 0 32px; width: 100%; text-align: center;
}
.mw-hero__title {
  margin: 0; font-weight: 700; font-size: clamp(34px, 5vw, 68px); line-height: 1.28;
  color: #fff; letter-spacing: 0.01em; text-shadow: 0 2px 30px rgba(0,0,0,0.4);
}
.mw-hero__sub {
  margin: 28px auto 0; font-size: clamp(15px, 1.5vw, 19px); line-height: 1.9; color: #c4cad8; max-width: 620px;
}
.mw-hero__dots {
  position: absolute; bottom: 96px; left: 0; right: 0; z-index: 4;
  display: flex; gap: 10px; justify-content: center;
}
.mw-hero__dot { width: 36px; height: 3px; background: rgba(255,255,255,0.25); transition: background .4s; cursor: pointer; border: none; padding: 0; }
.mw-hero__dot.is-active { background: #3aa6ff; }
.mw-hero__tagline {
  position: absolute; left: 0; right: 0; bottom: 28px; z-index: 4; padding: 0 24px; text-align: center;
}
.mw-hero__tagline span {
  display: block; font-family: "Outfit", sans-serif; font-weight: 800;
  font-size: clamp(20px, 3.7vw, 52px); letter-spacing: 0.05em; line-height: 1;
  color: rgba(255,255,255,0.92); white-space: nowrap;
}
@media (max-width: 639px) {
  .mw-hero { height: auto; min-height: 0; padding: 130px 0 96px; }
  .mw-hero__depth, .mw-hero__tag, .mw-hero__num { display: none; }
  .mw-hero__dots { bottom: 64px; }
  .mw-hero__tagline span { white-space: normal; }
}

/* ============================================================
   4. TOP — 代表挨拶（MESSAGE）
   ============================================================ */
.mw-message__grid { display: grid; grid-template-columns: 0.4fr 1.6fr; gap: 48px; align-items: start; }
.mw-message__photo { position: relative; }
.mw-message__namecard {
  position: absolute; left: 0; bottom: 0; background: #0000aa; color: #fff; padding: 14px 22px;
}
.mw-message__namecard small { display: block; font-size: 11px; letter-spacing: 0.1em; opacity: 0.8; }
.mw-message__namecard strong { display: block; font-size: 20px; font-weight: 700; letter-spacing: 0.04em; }
.mw-msg-body { padding-top: 0; }
.mw-msg-lead {
  margin: 0 0 36px; font-weight: 700; font-size: clamp(22px, 2.2vw, 29px); line-height: 1.5; color: #0a0a14;
  border-left: 5px solid #0000aa; padding-left: 24px;
}
.mw-msg-text { font-size: 15px; line-height: 2.1; color: #3a4156; display: grid; gap: 20px; }
.mw-msg-text p { margin: 0; color: #3a4156; }
.mw-sign { margin: 28px 0 0; font-size: 14px; color: #5b6275; }
.mw-sign strong { font-weight: 700; font-size: 18px; color: #0a0a14; }
@media (max-width: 896px) {
  .mw-message__grid { grid-template-columns: 1fr; gap: 36px; }
  .mw-msg-body { padding-top: 0; }
}

/* ============================================================
   5. 上ボーダー+大番号カード（強み / 求める人材像）
   ============================================================ */
.mw-cardnum { background: #f5f7fa; padding: 40px 32px; border-top: 4px solid #0000aa; display: flex; flex-direction: column; }
.mw-cardnum__no { font-family: "Outfit", sans-serif; font-weight: 900; font-size: 54px; line-height: 1; color: #0000aa; margin-bottom: 18px; }
.mw-cardnum__title { margin: 0 0 14px; font-weight: 700; font-size: 19px; line-height: 1.5; color: #0a0a14; }
.mw-cardnum__text { margin: 0; font-size: 14px; line-height: 1.95; color: #3a4156; }
.mw-cardnum--sm { padding: 36px 30px; }
.mw-cardnum--sm .mw-cardnum__no { font-size: 40px; margin-bottom: 0; }
.mw-cardnum--sm .mw-cardnum__title { margin-top: 16px; font-size: 18px; }
@media (max-width: 639px) { .mw-cardnum { padding: 32px 26px; } .mw-cardnum__no { font-size: 44px; } }

/* ============================================================
   6. TOP — お知らせ（NEWS / ダーク）
   ============================================================ */
.mw-news { background: #070b16; padding: 90px 0; }
.mw-news__grid { display: grid; grid-template-columns: 0.7fr 2fr; gap: 56px; align-items: start; }
.mw-news__en { font-family: "Outfit", sans-serif; font-weight: 900; font-size: 40px; letter-spacing: 0.02em; color: #fff; margin: 0 0 8px; line-height: 1; }
.mw-news__ja { margin: 0 0 26px; font-size: 13px; color: #8c93a8; letter-spacing: 0.1em; }
.mw-news__all { display: inline-flex; align-items: center; gap: 8px; color: #3aa6ff; text-decoration: none; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; font-family: "Outfit", sans-serif; }
.mw-newsrow { display: flex; align-items: center; gap: 24px; padding: 22px 4px; border-bottom: 1px solid #1a2238; text-decoration: none; }
.mw-newsrow__date { font-family: "Outfit", sans-serif; font-size: 14px; color: #8c93a8; letter-spacing: 0.06em; flex-shrink: 0; }
.mw-newsrow__cat { flex-shrink: 0; font-size: 11px; font-weight: 700; color: #fff; background: #0000aa; padding: 5px 12px; letter-spacing: 0.06em; }
.mw-newsrow__title { font-size: 15px; color: #dfe3ec; line-height: 1.5; transition: color .3s; }
.mw-newsrow:hover .mw-newsrow__title { color: #fff; }
@media (max-width: 896px) {
  .mw-news__grid { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 639px) {
  .mw-newsrow { flex-wrap: wrap; gap: 8px 14px; }
  .mw-newsrow__title { width: 100%; }
}

/* ============================================================
   7. TOP — SERVICE カード
   ============================================================ */
.mw-service__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 56px; flex-wrap: wrap; }
.mw-service__head-lead { margin: 0; font-size: 15px; line-height: 1.9; color: #3a4156; max-width: 520px; }
.mw-scard { display: flex; flex-direction: column; text-decoration: none; background: #070b16; overflow: hidden; }
.mw-scard__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.mw-scard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,6,13,0.1), rgba(4,6,13,0.75)); }
.mw-scard__num { position: absolute; left: 20px; top: 18px; z-index: 1; font-family: "Outfit", sans-serif; font-weight: 900; font-size: 40px; line-height: 1; color: rgba(255,255,255,0.85); }
.mw-scard__en { position: absolute; left: 20px; bottom: 18px; z-index: 1; font-family: "Outfit", sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.14em; color: #3aa6ff; }
.mw-scard__body { padding: 28px 24px 30px; }
.mw-scard__title { margin: 0 0 12px; font-weight: 700; font-size: 19px; color: #fff; }
.mw-scard__text { margin: 0 0 18px; font-size: 13px; line-height: 1.9; color: #9aa1b5; }
.mw-scard__more { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: #3aa6ff; }
.mw-scard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.mw-scard:hover .mw-scard__media img { transform: scale(1.06); }

/* ============================================================
   8. TOP — RECRUIT（ダーク + 巨大背景英字）
   ============================================================ */
.mw-recruit { position: relative; background: #02040a; padding: 120px 0; overflow: hidden; }
.mw-recruit::before { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, #0a1730 0%, #02040a 70%); }
.mw-recruit__bgtext { position: absolute; right: -2%; bottom: -6%; font-family: "Outfit", sans-serif; font-weight: 900; font-size: 22vw; line-height: 0.8; color: rgba(58,166,255,0.05); pointer-events: none; }
.mw-recruit__inner { position: relative; z-index: 1; }
/* 背景写真版：写真の上に現在のネイビーグラデーションを乗算で重ねる */
.mw-recruit--photo { background-color: #02040a; background-size: cover; background-position: center; background-repeat: no-repeat; isolation: isolate; }
.mw-recruit--photo::before { mix-blend-mode: multiply; opacity: .85; }
.mw-recruit__title { margin: 0 0 18px; font-weight: 700; font-size: clamp(32px, 5vw, 64px); line-height: 1.2; color: #fff; }
.mw-recruit__lead { margin: 0 0 48px; font-size: clamp(15px, 1.6vw, 18px); color: #c4cad8; line-height: 1.9; max-width: 680px; }
/* 中央寄せCTA用：幅を広げて左右marginを効かせる（.mx-auto は main.css より後勝ちで打ち消されるため） */
.mw-recruit__lead--center { max-width: 900px; margin-left: auto; margin-right: auto; line-height: 2.05; }
.mw-recruit__points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,0.12); margin-bottom: 48px; }
.mw-recruit__point { background: #02040a; padding: 34px 28px; }
.mw-recruit__point span { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.1em; color: #3aa6ff; }
.mw-recruit__point h3 { margin: 14px 0 10px; font-weight: 700; font-size: 18px; color: #fff; line-height: 1.5; }
.mw-recruit__point p { margin: 0; font-size: 13px; line-height: 1.85; color: #9aa1b5; }
@media (max-width: 896px) { .mw-recruit { padding: 70px 0; } .mw-recruit__points { grid-template-columns: 1fr; } }

/* ボタン（ダーク背景の塗りボタン・矢印付き） */
.mw-btn { display: inline-flex; align-items: center; gap: 12px; background: #0000aa; color: #fff; text-decoration: none; font-weight: 700; font-size: 16px; padding: 20px 40px; transition: background .3s, opacity .3s; }
.mw-btn:hover { background: #0088cc; opacity: 1; }
.mw-btn__en { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.1em; }
.mw-btn--white { background: #fff; color: #0000aa; }
.mw-btn--white:hover { background: #eaf3ff; }
.mw-btn--ghost { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.35); }
.mw-btn--ghost:hover { background: rgba(255,255,255,0.16); }
.mw-btn--sm { padding: 16px 28px; font-size: 15px; }

/* ============================================================
   9. TOP — CONTACT split / 汎用プロモカード
   ============================================================ */
.mw-promo { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 240px; padding: 44px 40px; text-decoration: none; overflow: hidden; }
.mw-promo--dark { background: linear-gradient(150deg, #0d1426, #1d2c4a); }
.mw-promo--blue { background: linear-gradient(150deg, #0000aa, #0088cc); }
.mw-promo__title { margin: 0 0 10px; font-weight: 700; font-size: 24px; color: #fff; }
.mw-promo__text { margin: 0; font-size: 14px; color: #c4cad8; line-height: 1.8; }
.mw-promo--blue .mw-promo__text { color: rgba(255,255,255,0.9); }
.mw-promo__more { align-self: flex-end; font-size: 15px; font-weight: 700; color: #fff; margin-top: 18px; }

/* ============================================================
   10. 下層ページ ヒーロー & パンくず
   ============================================================ */
.mw-phero { position: relative; background-color: #0a1626; background-image: linear-gradient(120deg, rgba(4,6,13,0.86), rgba(16,32,58,0.7) 70%, rgba(10,22,38,0.82)), var(--phero-img, none); background-size: cover, cover; background-position: center, center; background-repeat: no-repeat, no-repeat; padding: 130px 0 64px; overflow: hidden; }
.mw-phero__bg { position: absolute; right: -1%; bottom: -30%; font-family: "Outfit", sans-serif; font-weight: 900; font-size: 18vw; line-height: 0.8; color: rgba(58,166,255,0.06); pointer-events: none; }
.mw-phero__inner { position: relative; z-index: 1; }
.mw-bc { font-family: "Outfit", sans-serif; font-size: 12px; letter-spacing: 0.08em; color: #8c93a8; margin: 0 0 28px; }
.mw-bc a { color: #8c93a8; text-decoration: none; }
.mw-bc a:hover { color: #c4cad8; }
.mw-bc .is-current { color: #3aa6ff; }
.mw-phero__label { font-family: "Outfit", sans-serif; font-weight: 800; font-size: clamp(17px, 1.7vw, 22px); letter-spacing: 0.16em; color: #3aa6ff; margin: 0 0 12px; }
@media (max-width: 639px) { .mw-phero { padding: 110px 0 48px; } }

/* 採用ページ 大型ヒーロー */
.mw-rhero { position: relative; min-height: 560px; background-color: #06203f; background-image: linear-gradient(115deg, rgba(2,4,10,0.86) 0%, rgba(10,23,48,0.68) 60%, rgba(6,32,63,0.6) 100%), var(--rhero-img, none); background-size: cover, cover; background-position: center, center; background-repeat: no-repeat, no-repeat; padding: 150px 0 90px; overflow: hidden; display: flex; align-items: center; }
.mw-rhero__bg { position: absolute; right: -2%; top: -8%; font-family: "Outfit", sans-serif; font-weight: 900; font-size: 20vw; line-height: 0.8; color: rgba(58,166,255,0.06); pointer-events: none; }
.mw-rhero__inner { position: relative; z-index: 1; width: 100%; }
.mw-rhero__title { margin: 0 0 24px; font-weight: 700; font-size: clamp(36px, 6vw, 80px); line-height: 1.1; color: #fff; letter-spacing: 0.01em; }
.mw-rhero__catch { margin: 0 0 18px; font-weight: 700; font-size: clamp(16px, 2vw, 22px); color: #3aa6ff; }
.mw-rhero__lead { margin: 0; font-size: 15px; line-height: 1.95; color: #c4cad8; max-width: 680px; }
@media (max-width: 639px) { .mw-rhero { min-height: 0; padding: 120px 0 64px; } }

/* 誘導カード（事業内容→保有船舶 等） */
.mw-linkcard { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: #fff; border: 1px solid #e6e9f0; padding: 40px 44px; text-decoration: none; flex-wrap: wrap; transition: box-shadow .3s, transform .3s; }
.mw-linkcard:hover { box-shadow: 0 10px 30px rgba(0,0,0,0.08); transform: translateY(-2px); opacity: 1; }
.mw-linkcard h3 { margin: 0 0 6px; font-weight: 700; font-size: 22px; color: #0a0a14; }
.mw-linkcard p { margin: 0; font-size: 14px; color: #3a4156; }
.mw-linkcard__btn { display: inline-flex; align-items: center; gap: 10px; background: #0000aa; color: #fff; font-weight: 700; font-size: 15px; padding: 16px 28px; white-space: nowrap; }

/* JV / パートナー向け グラデーションCTA帯 */
.mw-jvcta { position: relative; background: linear-gradient(120deg, #051634, #0a4a85); padding: 90px 0; overflow: hidden; text-align: center; }
.mw-jvcta__inner { max-width: 980px; }
.mw-jvcta h2 { margin: 0 0 22px; font-weight: 700; font-size: clamp(20px, 2.4vw, 28px); color: #fff; line-height: 1.4; }
.mw-jvcta p { margin: 0 0 36px; font-size: 15px; line-height: 2; color: rgba(255,255,255,0.92); }

/* ============================================================
   11. 事業内容ページ
   ============================================================ */
.mw-sblocks { display: grid; gap: 80px; }
.mw-sblock__top { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: stretch; }
.mw-sblock__no { font-family: "Outfit", sans-serif; font-weight: 900; font-size: clamp(48px, 5vw, 72px); line-height: 1; color: #0000aa; display: block; }
.mw-sblock__en { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 13px; letter-spacing: 0.16em; color: #0000aa; margin: 12px 0; }
.mw-sblock__title { margin: 0 0 20px; font-weight: 700; font-size: clamp(22px, 2.6vw, 32px); color: #0a0a14; line-height: 1.35; }
.mw-sblock__sub { margin: 0 0 18px; font-weight: 700; font-size: clamp(16px, 1.6vw, 19px); color: #0000aa; line-height: 1.7; }
.mw-sblock__text { margin: 0; font-size: 15px; line-height: 2.05; color: #3a4156; }
.mw-sblock__media { min-height: 360px; }
.mw-sblock__list { max-width: 1024px; margin: 48px auto 0; background: #f5f7fa; padding: 40px 48px; }
.mw-sblock__listhead { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.12em; color: #0000aa; margin: 0 0 24px; border-bottom: 2px solid #0000aa; padding-bottom: 12px; }
.mw-sblock__cats { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 40px; }
.mw-cat__name { margin: 0 0 8px; font-weight: 700; font-size: 14px; color: #0a0a14; display: flex; align-items: center; gap: 8px; }
.mw-cat__name::before { content: ""; width: 6px; height: 6px; background: #0088cc; flex-shrink: 0; }
.mw-cat__items { margin: 0 0 0 14px; font-size: 13px; line-height: 1.9; color: #3a4156; }
@media (max-width: 896px) {
  .mw-sblocks { gap: 56px; }
  .mw-sblock__top { grid-template-columns: 1fr; gap: 28px; }
  .mw-sblock__media { min-height: 240px; }
  .mw-sblock__list { padding: 28px 24px; }
  .mw-sblock__cats { grid-template-columns: 1fr; }
}

/* 有資格者一覧（ダーク） */
.mw-qual { background: #070b16; padding: 100px 0; }
.mw-qual--photo { position: relative; background-color: #070b16; background-image: linear-gradient(rgba(7,11,22,0.82), rgba(7,11,22,0.82)), var(--qual-img, none); background-size: cover, cover; background-position: center, center; background-repeat: no-repeat, no-repeat; }
.mw-qcards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
.mw-qcard { background: #0d1426; border-top: 3px solid #0000aa; padding: 32px 28px; }
.mw-qcard__en { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 11px; letter-spacing: 0.12em; color: #3aa6ff; margin: 0 0 22px; }
.mw-qcard__name { margin: 0 0 20px; font-weight: 700; font-size: 17px; color: #fff; }
.mw-qcard__list { display: grid; gap: 14px; }
.mw-spec { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid #1a2238; }
.mw-spec__label { font-size: 13px; color: #c4cad8; }
.mw-spec__val { font-family: "Outfit", sans-serif; font-weight: 900; font-size: 20px; color: #fff; white-space: nowrap; }
.mw-spec__unit { font-size: 12px; font-weight: 500; color: #8c93a8; margin-left: 3px; }
@media (max-width: 896px) { .mw-qual { padding: 64px 0; } .mw-qcards { grid-template-columns: 1fr; } }

/* ============================================================
   12. 重機・船舶一覧ページ
   ============================================================ */
.mw-shipcard { background: #fff; border: 1px solid #e6e9f0; display: flex; flex-direction: column; }
.mw-shipcard__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.mw-shipcard__tag { position: absolute; left: 16px; top: 14px; font-size: 11px; font-weight: 700; color: #fff; background: #0000aa; padding: 5px 12px; letter-spacing: 0.06em; }
.mw-shipcard__plabel { position: absolute; left: 16px; bottom: 14px; font-size: 12px; color: rgba(255,255,255,0.8); letter-spacing: 0.08em; }
.mw-shipcard__body { padding: 26px 28px 28px; }
.mw-shipcard__name { margin: 0 0 18px; font-weight: 700; font-size: 22px; color: #0a0a14; letter-spacing: 0.04em; }
.mw-specrow { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid #eef1f6; font-size: 14px; }
.mw-specrow__k { color: #8c93a8; }
.mw-specrow__v { color: #1a1f33; font-weight: 700; text-align: right; }

.mw-dronecard { background: #fff; border: 1px solid #e6e9f0; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.mw-dronecard__media { position: relative; min-height: 280px; overflow: hidden; }
.mw-dronecard__media > img { object-fit: contain; background: #fff; padding: 16px; }
.mw-dronecard__media .mw-photo__label { justify-content: flex-start; align-items: flex-end; padding: 16px; }
.mw-dronecard__body { padding: 26px 28px; }
.mw-dronecard__en { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 11px; letter-spacing: 0.12em; color: #0000aa; margin: 0 0 6px; }
.mw-dronecard__name { margin: 0 0 16px; font-weight: 700; font-size: 18px; color: #0a0a14; line-height: 1.4; }
.mw-dronecard__body .mw-specrow { font-size: 13px; padding: 9px 0; }
@media (max-width: 639px) { .mw-dronecard { grid-template-columns: 1fr; } .mw-dronecard__media { min-height: 200px; } }

.mw-equip { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.mw-equip .mw-spec { padding: 15px 0; }
@media (max-width: 639px) { .mw-equip { grid-template-columns: 1fr; gap: 0; } }
.mw-machinery__item p { margin: 14px 0 0; font-weight: 700; font-size: 14px; color: #0a0a14; line-height: 1.5; }

/* ============================================================
   12-2. 施工実績ページ（工事実績一覧テーブル）
   ============================================================ */
.mw-yrnav { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 56px; }
.mw-yrnav a { display: inline-flex; align-items: center; gap: 10px; border: 1px solid #d5dae6; padding: 12px 22px; font-weight: 700; font-size: 14px; color: #0a0a14; text-decoration: none; transition: all .3s ease; }
.mw-yrnav a span { font-family: "Outfit", sans-serif; font-size: 11px; font-weight: 800; letter-spacing: 0.06em; color: #8c93a8; }
.mw-yrnav a:hover { background: #0000aa; border-color: #0000aa; color: #fff; opacity: 1; }
.mw-yrnav a:hover span { color: rgba(255,255,255,0.72); }

.mw-wblock { scroll-margin-top: 110px; }
.mw-wblock + .mw-wblock { margin-top: 64px; }
.mw-wblock__head { display: flex; align-items: baseline; gap: 16px; padding-bottom: 14px; margin-bottom: 0; border-bottom: 2px solid #0000aa; }
.mw-wblock__year { margin: 0; font-weight: 700; font-size: clamp(19px, 2vw, 24px); color: #0a0a14; }
.mw-wblock__count { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.08em; color: #8c93a8; }

.mw-tblwrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.mw-wtbl { width: 100%; border-collapse: collapse; min-width: 680px; }
.mw-wtbl th { background: #f5f7fa; padding: 14px 18px; font-weight: 700; font-size: 12px; letter-spacing: 0.06em; color: #5b6275; text-align: left; white-space: nowrap; border-bottom: 1px solid #e6e9f0; }
.mw-wtbl td { padding: 18px; font-size: 14px; line-height: 1.75; color: #3a4156; border-bottom: 1px solid #e6e9f0; vertical-align: top; }
.mw-wtbl tbody tr:hover td { background: #fafbfd; }
.mw-wtbl__no { width: 64px; text-align: center !important; font-family: "Outfit", sans-serif; font-weight: 800; font-size: 13px; color: #8c93a8; }
.mw-wtbl__pref { width: 130px; }
.mw-wtbl__tag { display: inline-block; background: #eef1f6; color: #0000aa; font-weight: 700; font-size: 12px; letter-spacing: 0.04em; padding: 4px 12px; white-space: nowrap; }
.mw-wnote { margin: 48px 0 0; font-size: 13px; line-height: 1.9; color: #8c93a8; }
@media (max-width: 639px) {
  .mw-yrnav { gap: 8px; margin-bottom: 40px; }
  .mw-yrnav a { padding: 10px 16px; font-size: 13px; }
  .mw-wblock + .mw-wblock { margin-top: 48px; }
  .mw-wtbl { min-width: 560px; }
  .mw-wtbl td { padding: 14px 12px; font-size: 13px; }
  .mw-wtbl th { padding: 12px; }
  .mw-wtbl__no { width: 46px; }
  .mw-wtbl__pref { width: 104px; }
}

/* ============================================================
   13. 採用ページ
   ============================================================ */
.mw-flow { display: grid; }
.mw-flow__row { display: flex; gap: 28px; align-items: flex-start; padding: 28px 0; border-bottom: 1px solid #e6e9f0; }
.mw-flow__num { font-family: "Outfit", sans-serif; font-weight: 900; font-size: 14px; color: #fff; background: #0000aa; width: 68px; height: 68px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.mw-flow__row h3 { margin: 0 0 8px; font-weight: 700; font-size: 18px; color: #0a0a14; }
.mw-flow__row p { margin: 0; font-size: 14px; line-height: 1.9; color: #3a4156; }

/* 募集要項（職種別カード） */
.mw-req { background: #fff; border: 1px solid #e6e9f0; padding: 44px 40px; }
.mw-req + .mw-req { margin-top: 32px; }
.mw-req__head { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
.mw-req__en { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 11px; letter-spacing: 0.12em; color: #0000aa; margin: 0; }
.mw-req__badge { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; color: #fff; background: #0000aa; padding: 5px 12px; }
.mw-req__badge--part { background: #0088cc; }
.mw-req__title { margin: 0 0 14px; font-weight: 700; font-size: clamp(20px, 2.2vw, 26px); color: #0a0a14; line-height: 1.35; }
.mw-req__lead { margin: 0 0 26px; font-size: 14px; line-height: 1.95; color: #3a4156; }
.mw-req .mw-deflist__row { border-top: 1px solid #e6e9f0; border-bottom: none; }
.mw-req .mw-deflist__row:last-child { border-bottom: 1px solid #e6e9f0; }
.mw-req .mw-deflist__key { padding: 22px 24px 22px 0; }
.mw-req .mw-deflist__val { padding: 22px 0; font-size: 14px; }
.mw-req .mw-deflist__val strong { font-weight: 700; font-size: 17px; color: #0000aa; }
.mw-req__foot { margin: 24px 0 0; font-size: 12px; line-height: 1.9; color: #8c93a8; }
@media (max-width: 767px) {
  .mw-req { padding: 30px 22px; }
}
@media (max-width: 639px) {
  .mw-req .mw-deflist__key { padding: 18px 0 4px; }
  .mw-req .mw-deflist__val { padding: 0 0 18px; }
}
.mw-notice { border: 1px dashed #c4cad8; background: #f5f7fa; padding: 48px 40px; text-align: center; }
.mw-notice strong { display: block; font-weight: 700; font-size: 18px; color: #0a0a14; margin-bottom: 8px; }
.mw-notice p { margin: 0; font-size: 14px; color: #5b6275; line-height: 1.9; }
.mw-jobcard { background: #fff; padding: 34px 30px; border: 1px solid #e6e9f0; }
.mw-jobcard__en { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 11px; letter-spacing: 0.12em; color: #0000aa; margin: 0 0 12px; }
.mw-jobcard h3 { margin: 0 0 12px; font-weight: 700; font-size: 18px; color: #0a0a14; }
.mw-jobcard p { margin: 0; font-size: 14px; line-height: 1.95; color: #3a4156; }
/* 仕事の魅力プロモ（高さ可変・本文多め） */
.mw-appeal { padding: 44px 40px; min-height: 0; }
.mw-appeal h3 { margin: 0 0 18px; font-weight: 700; font-size: 22px; color: #fff; line-height: 1.5; }
.mw-appeal p { margin: 0 0 16px; font-size: 14px; line-height: 2; }
.mw-appeal--blue { background: linear-gradient(155deg, #0000aa, #0088cc); }
.mw-appeal--blue p { color: rgba(255,255,255,0.95); }
.mw-appeal--dark { background: #0d1426; border: 1px solid #1a2238; }
.mw-appeal--dark p { color: #c4cad8; }
.mw-appeal__hl { font-weight: 700; font-size: 16px; color: #fff; background: rgba(255,255,255,0.15); padding: 14px 18px; margin: 0; }
.mw-appeal__hl--line { background: none; padding: 0 0 0 14px; border-left: 3px solid #3aa6ff; color: #3aa6ff; }

/* ============================================================
   14. 会社概要ページ
   ============================================================ */
.mw-deflist__row { display: grid; grid-template-columns: 240px 1fr; border-bottom: 1px solid #e6e9f0; }
.mw-deflist__key { padding: 24px 24px 24px 4px; font-weight: 700; font-size: 15px; color: #0a0a14; }
.mw-deflist__val { padding: 24px 4px; font-size: 15px; line-height: 1.9; color: #3a4156; }
@media (max-width: 639px) {
  .mw-deflist__row { grid-template-columns: 1fr; }
  .mw-deflist__key { padding: 18px 4px 4px; }
  .mw-deflist__val { padding: 0 4px 18px; }
}
.mw-office { background: #fff; border: 1px solid #e6e9f0; }
.mw-office__map { display: block; height: 240px; position: relative; text-decoration: none; overflow: hidden; }
.mw-office__pin { position: absolute; left: 18px; top: 16px; width: 12px; height: 12px; border-radius: 50%; background: #0088cc; box-shadow: 0 0 0 5px rgba(0,136,204,0.25); }
.mw-office__body { padding: 28px 30px; }
.mw-office__body h3 { margin: 0 0 10px; font-weight: 700; font-size: 18px; color: #0a0a14; }
.mw-office__body p { margin: 0 0 6px; font-size: 14px; line-height: 1.8; color: #3a4156; }

/* フォーム */
.mw-form { display: grid; gap: 26px; }
.mw-form__label { display: block; font-weight: 700; font-size: 14px; color: #0a0a14; margin-bottom: 10px; }
.mw-form__req { color: #0088cc; }
.mw-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.mw-form__types { display: flex; gap: 12px; flex-wrap: wrap; }
.mw-form__type { display: flex; align-items: center; gap: 8px; border: 1px solid #d4d9e4; padding: 14px 20px; font-size: 14px; cursor: pointer; flex: 1; min-width: 200px; }
.mw-form__type input { accent-color: #0000aa; width: 16px; height: 16px; }
.mw-form input[type="text"], .mw-form input[type="email"], .mw-form input[type="tel"], .mw-form textarea {
  width: 100%; padding: 14px 16px; border: 1px solid #d4d9e4; font-size: 15px; background: #f5f7fa;
  font-family: "Zen Kaku Gothic New", sans-serif; border-radius: 0;
}
.mw-form textarea { resize: vertical; }
.mw-form input:focus, .mw-form textarea:focus { outline: none; border-color: #0000aa; }
.mw-form__submit { display: inline-flex; align-items: center; gap: 10px; background: #0000aa; color: #fff; border: none; font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 800; font-size: 16px; padding: 20px 56px; cursor: pointer; transition: background .3s; }
.mw-form__submit:hover { background: #0088cc; }
.mw-form__note { margin: 18px 0 0; font-size: 12px; color: #8c93a8; }
@media (max-width: 639px) { .mw-form__row { grid-template-columns: 1fr; } }

/* プライバシーポリシー（お問い合わせフォーム下） */
.mw-privacy { margin-top: 48px; padding: 32px 36px; background: #f5f7fa; border: 1px solid #e6e9f0; }
.mw-privacy__title { margin: 0 0 18px; font-weight: 700; font-size: 17px; color: #0a0a14; padding-bottom: 14px; border-bottom: 1px solid #e6e9f0; }
.mw-privacy__body > p { margin: 0 0 18px; font-size: 14px; line-height: 1.9; color: #3a4156; }
.mw-privacy__list { margin: 0; }
.mw-privacy__list dt { font-weight: 700; font-size: 14px; color: #0a0a14; margin-top: 16px; }
.mw-privacy__list dd { margin: 6px 0 0; font-size: 14px; line-height: 1.9; color: #3a4156; }
.mw-privacy__note { margin: 22px 0 0; font-size: 12px; color: #8c93a8; }
@media (max-width: 639px) { .mw-privacy { padding: 24px 20px; } }

/* ============================================================
   15. ブログCMS（一覧・詳細）
   ============================================================ */
.mw-blog { display: grid; grid-template-columns: 1fr 320px; gap: 56px; align-items: start; }
@media (max-width: 896px) { .mw-blog { grid-template-columns: 1fr; gap: 40px; } }

.mw-postrow { display: grid; grid-template-columns: 200px 1fr; gap: 24px; padding: 24px 0; border-bottom: 1px solid #e6e9f0; text-decoration: none; align-items: center; }
.mw-postrow__date { font-family: "Outfit", sans-serif; font-size: 13px; color: #8c93a8; letter-spacing: 0.04em; }
.mw-postrow__cat { font-size: 11px; font-weight: 700; color: #fff; background: #0000aa; padding: 4px 11px; letter-spacing: 0.04em; }
.mw-postrow__meta { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
.mw-postrow__title { margin: 0; font-weight: 700; font-size: 17px; line-height: 1.6; color: #0a0a14; transition: color .3s; }
.mw-postrow:hover .mw-postrow__title { color: #0000aa; }
@media (max-width: 639px) { .mw-postrow { grid-template-columns: 120px 1fr; gap: 16px; } }

.mw-pager { display: flex; justify-content: center; gap: 8px; margin-top: 48px; flex-wrap: wrap; }
.mw-pager a, .mw-pager span { display: flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; font-family: "Outfit", sans-serif; font-weight: 700; font-size: 14px; text-decoration: none; border: 1px solid #d4d9e4; color: #3a4156; background: #fff; transition: all .3s; }
.mw-pager a:hover { border-color: #0000aa; color: #0000aa; opacity: 1; }
.mw-pager .is-current { border-color: #0000aa; color: #fff; background: #0000aa; }

/* ブログCMS ページャ（.pages: 前へ/次へ型）をサイトのトンマナに合わせる */
.pages { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 48px; flex-wrap: wrap; }
.pages a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 22px; font-weight: 700; font-size: 14px; text-decoration: none; border: 1px solid #d4d9e4; color: #3a4156; background: #fff; transition: all .3s; white-space: nowrap; }
.pages a:hover { border-color: #0000aa; color: #0000aa; }

.mw-side { display: grid; gap: 36px; align-self: start; }
.mw-side__title { font-family: "Outfit", sans-serif; font-weight: 800; font-size: 12px; letter-spacing: 0.12em; color: #0000aa; margin: 0 0 16px; border-bottom: 2px solid #0000aa; padding-bottom: 10px; }
.mw-side__nav { display: grid; gap: 14px; }
.mw-side__item { display: block; text-decoration: none; }
.mw-side__item .d { display: block; font-family: "Outfit", sans-serif; font-size: 12px; color: #8c93a8; margin-bottom: 4px; }
.mw-side__item .t { display: block; font-size: 13px; line-height: 1.6; color: #3a4156; transition: color .3s; }
.mw-side__item:hover .t { color: #0000aa; }
.mw-catnav { display: grid; gap: 2px; }
.mw-catnav a { display: flex; justify-content: space-between; align-items: center; padding: 12px 4px; text-decoration: none; border-bottom: 1px solid #eef1f6; font-size: 14px; color: #3a4156; }
.mw-catnav a:hover { color: #0000aa; opacity: 1; }
.mw-catnav .n { font-family: "Outfit", sans-serif; font-size: 12px; color: #8c93a8; }
.mw-side__promo { display: block; background: linear-gradient(150deg, #0000aa, #0088cc); padding: 32px 28px; text-decoration: none; }
.mw-side__promo p.h { margin: 0 0 14px; font-weight: 700; font-size: 18px; color: #fff; line-height: 1.5; }
.mw-side__promo span.m { font-size: 14px; color: #fff; font-weight: 700; }

/* カテゴリフィルタ（お知らせ一覧） */
.mw-filter { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 36px; }
.mw-filter a { display: inline-flex; align-items: center; padding: 10px 22px; border: 1px solid #d4d9e4; font-size: 14px; color: #3a4156; text-decoration: none; transition: all .3s; }
.mw-filter a:hover { border-color: #0000aa; color: #0000aa; opacity: 1; }
.mw-filter .is-active { background: #0000aa; border-color: #0000aa; color: #fff; }

/* 記事詳細 */
.mw-article__meta { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.mw-article__date { font-family: "Outfit", sans-serif; font-size: 14px; color: #8c93a8; letter-spacing: 0.04em; }
.mw-article__cat { font-size: 11px; font-weight: 700; color: #fff; background: #0000aa; padding: 5px 13px; letter-spacing: 0.04em; }
.mw-article__title { margin: 0 0 32px; font-weight: 700; font-size: clamp(20px, 2.2vw, 28px); line-height: 1.5; color: #0a0a14; }
.mw-article__hero { margin-bottom: 40px; }
.mw-article__body { font-size: 15px; line-height: 2.1; color: #3a4156; display: grid; gap: 24px; }
.mw-article__body p { margin: 0; color: #3a4156; }
.mw-article__body h2 { margin: 8px 0 0; font-weight: 700; font-size: 20px; color: #0a0a14; border-left: 4px solid #0000aa; padding-left: 16px; }
.mw-pn { display: flex; justify-content: space-between; gap: 16px; margin-top: 56px; padding-top: 32px; border-top: 1px solid #e6e9f0; flex-wrap: wrap; }
.mw-pn a { text-decoration: none; display: flex; flex-direction: column; }
.mw-pn__label { font-family: "Outfit", sans-serif; font-size: 11px; color: #8c93a8; letter-spacing: 0.1em; }
.mw-pn__t { font-size: 14px; color: #3a4156; font-weight: 700; }
.mw-pn__next { text-align: right; }
.mw-pn__back { display: inline-flex; align-items: center; gap: 8px; background: #0000aa; color: #fff; font-weight: 700; font-size: 14px; padding: 14px 28px; align-self: center; }
.mw-pn--backonly { justify-content: center; }

/* ============================================================
   16. スクロールフェードイン
   ============================================================ */
.has-js [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.has-js [data-reveal].is-revealed { opacity: 1; transform: none; }
.mw-rd-1 { transition-delay: .08s; }
.mw-rd-2 { transition-delay: .16s; }
.mw-rd-3 { transition-delay: .24s; }
.mw-rd-4 { transition-delay: .32s; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}
