/* ==========================================================================
   works.css — 実績・導入事例 (/works/) アーカイブ固有スタイル
   前提: sub-page.css 読み込み済み（トークン・[data-reveal]/[data-line]初期状態・共通コンポーネント）
   正本: Yamato Works 実績・導入事例 - 構造案.dc.html (2026-08-05)
   ========================================================================== */

/* --------------------------------------------------------------------------
   共通: セクション区切り線
   -------------------------------------------------------------------------- */
.sub-works-rule {
  height: 1px;
  background: var(--c3-rule);
}
.sub-works-rule--light {
  background: var(--c3-rule-light);
}

/* --------------------------------------------------------------------------
   ヒーロー — PC（/promise/ FV構造と同一型: 5fr 3fr / video 449:555 / loop）
   -------------------------------------------------------------------------- */
.sub-works-hero {
  position: relative;
  background-color: var(--c3-bg);
  z-index: 1;
  padding-top: var(--c3-header-h);
  display: grid;
  grid-template-columns: 5fr 3fr; /* 62.5% 左列 / 37.5% 右列 */
  align-items: stretch;
}

.sub-works-hero__main {
  padding: 96px 48px 80px;
}

.sub-works-hero__eyebrow {
  margin: 0;
  font-family: var(--c3-font-en), 'Noto Sans JP', sans-serif;
  font-size: 11px;
  letter-spacing: .26em;
  color: var(--c3-text-muted);
  word-break: keep-all;
}

.sub-works-hero__h1 {
  margin: 30px 0 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(34px, 4.4vw, 56px);
  line-height: 1.45;
  letter-spacing: .04em;
  word-break: keep-all;
  text-wrap: pretty;
}

.sub-works-hero__accent {
  width: 32px;
  height: 2px;
  background: var(--c3-vermilion);
  margin: 30px 0 0;
}

.sub-works-hero__lead {
  margin: 30px 0 0;
  max-width: 580px;
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: .04em;
  color: var(--c3-text-body);
  text-wrap: pretty;
}

.sub-works-hero__side {
  border-left: 1px solid var(--c3-rule);
  position: relative;
  min-height: 555px; /* 焼き込み寸法(449:555)を床として保証 */
}

/* 列いっぱいに cover 充填 / overflow: visible でスタンプのはみ出しを許容 */
.sub-works-hero__video-wrap {
  position: absolute;
  inset: 0;
  overflow: visible;
}

.sub-works-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.sub-works-hero__stamp-wrap {
  position: absolute;
  bottom: -20px;
  right: -20px;
  z-index: 2;
}

.sub-works-hero__stamp-wrap .sub-stamp {
  background-color: var(--c3-bg);
}

/* SP ユニット・SP リード — PC非表示 */
.sub-works-hero__sp-unit,
.sub-works-hero__sp-video,
.sub-works-hero__sp-lead { display: none; }

/* --------------------------------------------------------------------------
   POLICY セクション（掲載のルール三箇条）
   -------------------------------------------------------------------------- */
.sub-works-policy {
  position: relative;
}

.sub-works-policy__header {
  padding: 96px 48px 64px;
}

.sub-works-policy__label {
  margin: 0;
  font-family: var(--c3-font-en), 'Noto Sans JP', sans-serif;
  font-size: 11px;
  letter-spacing: .3em;
  color: var(--c3-text-muted);
}

.sub-works-policy__h2 {
  margin: 24px 0 0;
  font-family: var(--c3-font-serif);
  font-weight: 600;
  font-size: clamp(28px, 3.2vw, 42px);
  line-height: 1.6;
  letter-spacing: .04em;
  word-break: keep-all;
  text-wrap: pretty;
}

.sub-works-policy__accent {
  width: 32px;
  height: 2px;
  background: var(--c3-vermilion);
  margin: 26px 0 0;
}

/* 一・二・三: 25%/75% グリッド（正本準拠） */
.sub-works-policy__rule {
  display: grid;
  grid-template-columns: 25% 1fr;
  align-items: start;
}

.sub-works-policy__rule-num {
  padding: 56px 48px;
}

.sub-works-policy__rule-ja {
  display: block;
  font-family: var(--c3-font-serif);
  font-size: 40px;
  font-weight: 600;
  color: var(--c3-vermilion);
  line-height: 1;
}

.sub-works-policy__rule-body {
  border-left: 1px solid var(--c3-rule-light);
  padding: 56px 48px;
}

.sub-works-policy__rule-text {
  margin: 0;
  max-width: 700px;
  font-family: var(--c3-font-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .06em;
  word-break: keep-all;
  text-wrap: pretty;
}

/* --------------------------------------------------------------------------
   事例カード / 近日枠グリッド（正本: 1fr 1fr 1fr / SP: 1fr）
   -------------------------------------------------------------------------- */
.sub-works-cards {
  position: relative;
}

.sub-works-cards__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

/* 中央列（2番目・5番目…）に左右ボーダー */
.sub-works-cards__grid > *:nth-child(3n+2) {
  border-left: 1px solid var(--c3-rule);
  border-right: 1px solid var(--c3-rule);
}

/* 近日プレースホルダー */
.sub-works-cards__item--soon {
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sub-works-cards__soon-label {
  font-family: var(--c3-font-serif);
  font-size: 15px;
  letter-spacing: .3em;
  color: rgba(26, 26, 26, .4);
}

/* 実績カード（投稿あり時） */
.sub-works-cards__item {
  overflow: hidden;
}

.sub-works-card {
  display: block;
  text-decoration: none;
  color: var(--c3-ink);
}

.sub-works-card__thumb {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.sub-works-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}

.sub-works-card:hover .sub-works-card__img {
  transform: scale(1.04);
}

.sub-works-card__body {
  padding: 18px 24px 22px;
}

.sub-works-card__title {
  margin: 0;
  font-family: var(--c3-font-serif);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: .04em;
  word-break: keep-all;
  text-wrap: pretty;
}

.sub-works-cards__note {
  margin: 0;
  padding: 32px 48px 88px;
  max-width: 700px;
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: .04em;
  color: var(--c3-text-body);
  text-wrap: pretty;
}

/* --------------------------------------------------------------------------
   ホバー演出（PCのみ・タッチデバイス除外）
   -------------------------------------------------------------------------- */

/* POLICY 三箇条: 薄グレー地（/price/ 料金行・/promise/ 約束行と同一文法） */
@media (hover: hover) and (pointer: fine) {
  .sub-works-policy__rule {
    transition: background-color .25s ease;
  }
  .sub-works-policy__rule:hover {
    background-color: var(--c3-hover-bg);
  }
}

/* 近日枠 + 実績カード: 朱 inset 枠線（レイアウトシフトなし） */
@media (hover: hover) and (pointer: fine) {
  .sub-works-cards__item--soon,
  .sub-works-cards__item {
    transition: box-shadow .22s ease;
  }
  .sub-works-cards__item--soon:hover,
  .sub-works-cards__item:hover {
    box-shadow: inset 0 0 0 1px var(--c3-vermilion);
    position: relative;
    z-index: 1;
  }
}

/* --------------------------------------------------------------------------
   reduced-motion: FV動画停止
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .sub-works-hero__video,
  .sub-works-hero__sp-video { animation: none; }
}

/* --------------------------------------------------------------------------
   レスポンシブ — SP（767px以下）
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {

  /* ─ ヒーロー SP ─ */
  .sub-works-hero {
    display: block;
    padding-top: var(--c3-header-h);
  }

  .sub-works-hero__main {
    padding: 56px 24px 12px;
    position: relative;
    z-index: 1;
  }

  .sub-works-hero__h1 {
    font-size: 30px;
    word-break: auto-phrase;
  }

  /* SP: リード・動画列を非表示 */
  .sub-works-hero__lead,
  .sub-works-hero__side { display: none; }

  /* SP FV ユニット */
  .sub-works-hero__sp-unit {
    display: block;
    position: relative;
    z-index: 0;
    margin-top: -68px;
  }

  .sub-works-hero__sp-videobox {
    position: relative;
    margin: 0 16px 56px;
  }

  .sub-works-hero__sp-video-inner {
    clip-path: polygon(0 40%, 100% 0, 100% 100%, 0 100%);
    overflow: hidden;
  }

  .sub-works-hero__sp-video {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center center;
  }

  .sub-works-hero__sp-stamp-wrap {
    display: block;
    position: absolute;
    bottom: -20px;
    right: 0;
    z-index: 2;
  }

  .sub-works-hero__sp-stamp-wrap .sub-stamp {
    background-color: var(--c3-bg);
  }

  /* SP専用リード */
  .sub-works-hero__sp-lead {
    display: block;
    padding: 40px 24px 56px;
    font-size: 14px;
    line-height: 2.2;
    letter-spacing: .04em;
    color: var(--c3-text-body);
  }

  /* ─ POLICY SP ─ */
  .sub-works-policy__header { padding: 56px 24px 40px; }

  .sub-works-policy__rule { display: block; }

  .sub-works-policy__rule-num { padding: 32px 24px 0; }

  .sub-works-policy__rule-ja { font-size: 32px; }

  .sub-works-policy__rule-body {
    border-left: none;
    padding: 12px 24px 36px;
  }

  .sub-works-policy__rule-text {
    max-width: none;
    font-size: 18px;
    line-height: 1.95;
  }

  /* ─ カードグリッド SP ─ */
  .sub-works-cards__grid {
    grid-template-columns: 1fr;
  }

  /* SP: 中央列ボーダーリセット → 縦並び区切りへ */
  .sub-works-cards__grid > *:nth-child(3n+2) {
    border-left: none;
    border-right: none;
  }

  .sub-works-cards__grid > * + * {
    border-top: 1px solid var(--c3-rule);
  }

  /* SP 近日: aspect-ratio 16/7（正本SP準拠） */
  .sub-works-cards__item--soon {
    aspect-ratio: 16 / 7;
  }

  .sub-works-cards__note {
    padding: 18px 24px 56px;
    max-width: none;
    line-height: 2.1;
  }

}
