/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .yk-wrap / --1080 / --1000 / --860   - 左右パディング込み1200px等の内側ラッパー
 * .yk-section / --sm                    - clamp()で可変するセクション上下余白
 * .yk-stack-md / -lg / -xl              - セクション内ブロック間の可変gap
 * .yk-heading / --lg / __lead           - 日本語（明朝・上）＋英語ラベル（Anton・下・金の短線）の見出し
 * .yk-label-en / --long                 - 金の短線付き英字ラベル
 * .yk-btn / --outline / --solid / --lg / --xl / --block - 直角・細線のボタン
 * .yk-icon-btn / .yk-sns-btn / --sm     - SNSアイコンボタン
 * .yk-gold-text / .yk-num / --sm〜--xl  - ロゴ同色のゴールドグラデーション文字・番号
 * .yk-text / --lg                       - 本文（補助色・行間2）
 * .yk-meta / .yk-tag / .yk-badge        - 日付・カテゴリ枠・ラベル
 * .yk-stroke-text                       - 縁取りの大きい英字
 * .yk-minsa / --white / --band          - ミンサー柄（×と◇の交互）
 * .yk-fixed-bg / __img / __shade        - スクロールしても動かない固定背景写真
 * .yk-photo-frame / --tl / --tr / --bl  - 金の細枠をずらして重ねた写真
 * .yk-map                               - 沖縄本島の線画（ゴールドグラデ）＋拠点ピン
 * .yk-dl                                - 金の罫線で区切る項目表（会社概要・募集要項）
 * .yk-filter                            - 絞り込みボタン
 * .yk-form / .yk-req / .yk-opt / .yk-choice - 暗背景フォーム
 * .yk-map-embed                         - グレースケール反転の Google Map
 * .yk-cta-grid / .yk-cta-card           - お問い合わせCTAの3カード
 * .yk-page-hero                         - 下層ヒーロー（左→右グラデ暗幕＋縁取り英字）
 * .yk-header / .yk-nav-toggle / .yk-sp-nav / .yk-footer - 共通ヘッダー・SPナビ・フッターの配色差分
 * .yk-works / .yk-benefit / .yk-philosophy / .yk-contact-card / .yk-post / .yk-side - 各下層ページのセクション
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 【値の粒度不足】
 *  - セクション余白・見出しサイズが clamp() による可変値（80〜128px 等）。固定px＋tablet半減の utility では再現できない
 *  - gap の刻み（14 / 18 / 22 / 28px）が gap-* に無い
 *  - letter-spacing .24em（英字ラベル）が ls-* の上限 .2em を超える
 * 【構造不足】
 *  - 「日本語上・英語下＋英字の左右に短線」の見出し構造が heading 系に無い
 *  - 12カラムgridで写真と枠ボックスを重ねる構造（column2--overlap は -80px 固定で比率・縦ずれが合わない）
 *  - 縦書きで理念を右から並べる構造（heading-vertical は見出し単体用）
 *  - 写真の背後に金の細枠をずらして置く写真フレーム（img-frame は白枠＋影）
 * 【装飾パターン不足】
 *  - ゴールドグラデーション文字（heading-big--gradient は $base→$sub の2色固定）
 *  - ミンサー柄、縁取り英字（heading-stroke は見出しとセットで border-bottom 付き）
 *  - 固定背景（clip-path + position:fixed。background-attachment:fixed は iOS 非対応のため）
 *  - 上辺を斜めにカットし白線で区切るセクション境界、採用バナー背景の斜め2色
 *  - 地図画像をマスクしてグラデーションで塗る表現
 * 【状態不足】
 *  - ヘッダー：スクロールで透過グラデ→黒背景＋金の下線に切り替わる状態（header-sticky は absolute→fixed の切替のみ）
 *  - 角丸なし・金の細線ボタン（.btn は radius 10px / border 2px / max-width 300px 固定）
 *
 */

/* ロゴと同じゴールドのグラデーション（背景に金を使う場合は必ずこれ） */
:root { --yk-gold: linear-gradient(180deg, #F3DC8C 0%, #D4AF4F 45%, #B88A2E 55%, #E2C46A 100%); }

/* ==========================================================================
   Base（サイト固有）
   ========================================================================== */
body { font-size: 1.6rem; overflow-x: clip; }
a:hover { opacity: 1; }
button { font-family: inherit; }

/* ==========================================================================
   Layout
   ========================================================================== */
.yk-wrap {
  width: 100%;
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 40px);
}
.yk-wrap--1080 { max-width: 1080px; }
.yk-wrap--1000 { max-width: 1000px; }
.yk-wrap--860  { max-width: 860px; }

.yk-section     { padding: clamp(80px, 10vw, 128px) 0; }
.yk-section--sm { padding: clamp(80px, 10vw, 120px) 0; }
.yk-border-top  { border-top: 1px solid rgba(199, 162, 75, .25); }

.yk-stack-md { gap: clamp(32px, 4vw, 48px); }
.yk-stack-lg { gap: clamp(36px, 4vw, 56px); }
.yk-stack-xl { gap: clamp(48px, 6vw, 88px); }

.yk-head-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
}

/* 画像の切り取り位置 */
.yk-obj-y30 { object-position: center 30%; }
.yk-obj-y35 { object-position: center 35%; }
.yk-obj-y40 { object-position: center 40%; }
.yk-obj-y45 { object-position: center 45%; }
.yk-obj-x60 { object-position: 60% center; }
.yk-obj-x70 { object-position: 70% center; }

/* ==========================================================================
   Heading
   ========================================================================== */
.yk-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.yk-heading.heading--left { align-items: flex-start; }
.yk-heading .heading__ja {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: clamp(28px, 3.4vw, 42px);
  letter-spacing: .08em;
  line-height: 1.4;
  color: #F2EEE6;
}
.yk-heading--lg .heading__ja { font-size: clamp(28px, 4vw, 50px); }
.yk-heading .heading__en,
.yk-label-en {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Anton", sans-serif;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: .24em;
  line-height: 1.2;
  color: #C7A24B;
}
.yk-heading .heading__en::before,
.yk-heading:not(.heading--left) .heading__en::after,
.yk-label-en::before {
  content: "";
  width: 32px;
  height: 1px;
  background: currentColor;
}
.yk-label-en--long { gap: 14px; }
.yk-label-en--long::before { width: 40px; }
.yk-heading.heading--white .heading__en,
.yk-heading.heading--white .heading__ja { color: #FFFFFF; }
.yk-heading__lead {
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
  color: #DDD7CB;
}

/* ==========================================================================
   Button
   ========================================================================== */
.yk-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  height: 52px;
  padding: 0 28px;
  font-size: 14px;
  letter-spacing: .12em;
  white-space: nowrap;
  text-decoration: none;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.yk-btn .font-en { color: inherit; }
.yk-btn--start { align-self: flex-start; }
.yk-btn--outline {
  border: 1px solid #C7A24B;
  color: #F2EEE6;
}
.yk-btn--outline:hover { background: var(--yk-gold); color: #111111; }
.yk-btn--solid {
  background: var(--yk-gold);
  color: #111111;
  font-weight: 700;
}
.yk-btn--solid:hover { background: var(--yk-gold); filter: brightness(1.08); color: #111111; }
.yk-btn--lg { height: 56px; padding: 0 32px; gap: 16px; }
.yk-btn--xl { height: 60px; padding: 0 36px; gap: 16px; font-size: 15px; flex: none; }
.yk-btn--block { display: flex; width: 100%; height: 56px; }

.yk-icon-btn {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(199, 162, 75, .45);
  color: #F2EEE6;
  font-size: 17px;
  transition: background .3s ease, color .3s ease;
}
.yk-icon-btn:hover { background: var(--yk-gold); color: #111111; }

.yk-sns-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 52px;
  border: 1px solid rgba(199, 162, 75, .5);
  color: #F2EEE6;
  font-size: 14px;
  text-decoration: none;
  transition: color .3s ease;
}
.yk-sns-btn i { font-size: 18px; }
.yk-sns-btn--sm {
  height: 44px;
  padding: 0 16px;
  border-color: rgba(199, 162, 75, .45);
  font-size: 13px;
}
.yk-sns-btn--sm i { font-size: 17px; }
.yk-sns-btn:hover { color: #C7A24B; }

/* ==========================================================================
   Parts
   ========================================================================== */
.yk-gold-text,
.yk-num {
  background: linear-gradient(180deg, #F3DC8C 0%, #D4AF4F 45%, #B88A2E 55%, #E2C46A 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.yk-num {
  align-self: flex-start;
  font-family: "Anton", sans-serif;
  font-weight: 400;
  line-height: 1;
  color: #C7A24B;
}
.yk-num--sm { font-size: 28px; line-height: 1.2; }
.yk-num--md { font-size: 48px; }
.yk-num--lg { font-size: 56px; }
.yk-num--xl { font-size: 64px; }

.yk-text {
  margin: 0;
  font-size: 15px;
  line-height: 2;
  color: #DDD7CB;
}
.yk-text--lg { line-height: 2.1; }

.yk-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
}
.yk-meta__date {
  font-family: "Anton", sans-serif;
  letter-spacing: .1em;
  color: #BDB6A8;
}
.yk-tag {
  padding: 3px 10px;
  border: 1px solid #C7A24B;
  color: #C7A24B;
  font-size: 12px;
  line-height: normal;
}
.yk-badge {
  padding: 4px 14px;
  background: var(--yk-gold);
  color: #111111;
  font-weight: 700;
}
.yk-badge--outline {
  background: transparent;
  border: 1px solid #C7A24B;
  color: #C7A24B;
}

/* 縁取りの大きい英字 */
.yk-stroke-text {
  position: absolute;
  font-family: "Anton", sans-serif;
  font-weight: 400;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(199, 162, 75, .42);
  white-space: nowrap;
  pointer-events: none;
}

/* ミンサー柄（×型と◇型の交互） */
.yk-minsa {
  width: 105px;
  height: 15px;
  background-repeat: repeat-x;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='15'%3E%3Cg fill='%23C7A24B'%3E%3Crect x='0' y='0' width='5' height='5'/%3E%3Crect x='10' y='0' width='5' height='5'/%3E%3Crect x='5' y='5' width='5' height='5'/%3E%3Crect x='0' y='10' width='5' height='5'/%3E%3Crect x='10' y='10' width='5' height='5'/%3E%3Crect x='35' y='0' width='5' height='5'/%3E%3Crect x='30' y='5' width='5' height='5'/%3E%3Crect x='40' y='5' width='5' height='5'/%3E%3Crect x='35' y='10' width='5' height='5'/%3E%3C/g%3E%3C/svg%3E");
}
.yk-minsa--white {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='15'%3E%3Cg fill='%23FFFFFF'%3E%3Crect x='0' y='0' width='5' height='5'/%3E%3Crect x='10' y='0' width='5' height='5'/%3E%3Crect x='5' y='5' width='5' height='5'/%3E%3Crect x='0' y='10' width='5' height='5'/%3E%3Crect x='10' y='10' width='5' height='5'/%3E%3Crect x='35' y='0' width='5' height='5'/%3E%3Crect x='30' y='5' width='5' height='5'/%3E%3Crect x='40' y='5' width='5' height='5'/%3E%3Crect x='35' y='10' width='5' height='5'/%3E%3C/g%3E%3C/svg%3E");
}
.yk-minsa--band {
  width: 100%;
  height: 14px;
  opacity: .8;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='105' height='14'%3E%3Cg fill='%23C7A24B'%3E%3Crect width='105' height='1'/%3E%3Crect y='13' width='105' height='1'/%3E%3Crect x='0' y='4' width='6' height='6'/%3E%3Crect x='9' y='4' width='6' height='6'/%3E%3Crect x='18' y='4' width='6' height='6'/%3E%3Crect x='27' y='4' width='6' height='6'/%3E%3Crect x='36' y='4' width='6' height='6'/%3E%3Crect x='57' y='4' width='6' height='6'/%3E%3Crect x='66' y='4' width='6' height='6'/%3E%3Crect x='75' y='4' width='6' height='6'/%3E%3Crect x='84' y='4' width='6' height='6'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat: repeat;
}

/* 固定背景（スクロールしても写真が動かない） */
.yk-fixed-bg {
  position: absolute;
  inset: 0;
  clip-path: inset(0);
  pointer-events: none;
}
.yk-fixed-bg__img {
  position: fixed;
  inset: 0;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.yk-fixed-bg__img--mono { filter: grayscale(1) contrast(1.05); }
.yk-fixed-bg__img--gray { filter: grayscale(1); }
.yk-fixed-bg__shade { position: fixed; inset: 0; }
.yk-fixed-bg__shade--80 { background: rgba(22, 22, 22, .8); }
.yk-fixed-bg__shade--86 { background: rgba(22, 22, 22, .86); }

/* 金の細枠をずらした写真フレーム */
.yk-photo-frame { position: relative; }
.yk-photo-frame::before {
  content: "";
  position: absolute;
  border: 1px solid #C7A24B;
}
.yk-photo-frame__img {
  position: relative;
  overflow: hidden;
}
.yk-photo-frame__img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 枠が右下にずれる */
.yk-photo-frame--br { padding: 0 16px 16px 0; }
.yk-photo-frame--br::before { top: 16px; left: 16px; right: 0; bottom: 0; }
/* 枠が左下にずれる */
.yk-photo-frame--bl { padding: 0 0 18px 18px; }
.yk-photo-frame--bl::before { top: 18px; right: 18px; left: 0; bottom: 0; }
/* 枠が右上にずれる */
.yk-photo-frame--tr { padding: 18px 18px 0 0; }
.yk-photo-frame--tr::before { top: 0; right: 0; left: 18px; bottom: 18px; }

.yk-ratio-4-5  { aspect-ratio: 4 / 5; }
.yk-ratio-3-2  { aspect-ratio: 3 / 2; }
.yk-ratio-4-3  { aspect-ratio: 4 / 3; }
.yk-ratio-2-1  { aspect-ratio: 2 / 1; }
.yk-ratio-16-9 { aspect-ratio: 16 / 9; }

/* 沖縄本島の地図 */
.yk-map {
  position: relative;
  aspect-ratio: 629 / 768;
}
.yk-map__img {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #F3DC8C 0%, #D4AF4F 45%, #B88A2E 55%, #E2C46A 100%);
  -webkit-mask: url(https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28709/map-okinawa.png) center / contain no-repeat;
  mask: url(https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28709/map-okinawa.png) center / contain no-repeat;
}
.yk-map__pin {
  position: absolute;
  left: 12%;
  top: 79%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  background: var(--yk-gold);
  border: 3px solid #111111;
  outline: 1px solid #C7A24B;
}
.yk-map--section .yk-map__pin { border-color: #1C1C1C; }
.yk-map__label {
  position: absolute;
  left: 15%;
  top: 80.5%;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.8;
  color: #F2EEE6;
  white-space: nowrap;
}

/* Google Map（暗色） */
.yk-map-embed {
  position: relative;
  aspect-ratio: 16 / 7;
  min-height: 320px;
  border: 1px solid rgba(199, 162, 75, .4);
  border-radius: 0;
}
.yk-map-embed iframe {
  position: absolute;
  inset: 0;
  filter: grayscale(1) invert(.9) contrast(.9);
}

/* 金の罫線の項目表 */
.yk-dl {
  margin: 0;
  border-top: 1px solid #C7A24B;
}
.yk-dl__row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 24px;
  padding: 22px 4px;
  border-bottom: 1px solid rgba(199, 162, 75, .3);
}
.yk-dl__row dt {
  flex: 0 0 180px;
  font-weight: 700;
  font-size: 15px;
  line-height: 1.8;
  color: #C7A24B;
}
.yk-dl--160 .yk-dl__row dt { flex-basis: 160px; }
.yk-dl__row dd {
  flex: 1 1 320px;
  min-width: 0;
  margin: 0;
  font-size: 15px;
  line-height: 1.9;
}
.yk-dl--160 .yk-dl__row dd { flex-basis: 360px; }
.yk-dl__row dd a { color: #F2EEE6; text-decoration: underline; }
.yk-dl__note { font-size: 13px; color: #BDB6A8; }
.yk-dl__em { font-weight: 700; font-size: 17px; }

/* 絞り込みボタン */
.yk-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.yk-filter__label { margin-right: 6px; font-size: 13px; color: #BDB6A8; }
.yk-filter__btn {
  height: 44px;
  padding: 0 20px;
  border: 1px solid #C7A24B;
  background: transparent;
  color: #F2EEE6;
  font-size: 14px;
  letter-spacing: .06em;
  cursor: pointer;
  transition: background .3s ease, color .3s ease;
}
.yk-filter__btn.is-active,
.yk-filter__btn:hover { background: var(--yk-gold); color: #111111; }
.yk-filter__count {
  margin-left: 8px;
  font-family: "Anton", sans-serif;
  font-size: 12px;
  opacity: .8;
}

/* ==========================================================================
   Form
   ========================================================================== */
.yk-form {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.yk-form__field {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.yk-form__row {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
}
.yk-form__row > .yk-form__field { flex: 1 1 280px; }
.yk-form__row > .yk-form__field--sm { flex: 1 1 200px; }
.yk-form__row > .yk-form__field--lg { flex: 2 1 280px; }
.yk-form__label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 700;
}
.yk-form fieldset { border: 0; }
.yk-form legend { margin-bottom: 12px; }
.yk-req,
.yk-opt {
  padding: 1px 8px;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.8;
}
.yk-req { background: var(--yk-gold); color: #111111; }
.yk-opt { border: 1px solid #BDB6A8; color: #BDB6A8; }
.yk-form .form-input {
  height: 54px;
  padding: 0 16px;
  background: #1C1C1C;
  border: 1px solid rgba(199, 162, 75, .45);
  border-radius: 0;
  color: #F2EEE6;
  font-size: 16px;
  font-family: inherit;
}
.yk-form textarea.form-input {
  height: auto;
  padding: 14px 16px;
  line-height: 1.8;
  resize: vertical;
}
.yk-form--dark .form-input { background: #111111; }
.yk-form .form-input:focus { outline: none; border-color: #C7A24B; }
.yk-form .form-input::placeholder { color: #8E877B; }
.yk-choice-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.yk-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 48px;
  padding: 0 20px;
  border: 1px solid rgba(199, 162, 75, .45);
  font-size: 15px;
  cursor: pointer;
}
.yk-choice input { width: 18px; height: 18px; accent-color: #C7A24B; }
.yk-check {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 15px;
  cursor: pointer;
}
.yk-check--center { justify-content: center; font-size: 14px; }
.yk-check input { width: 20px; height: 20px; accent-color: #C7A24B; }
.yk-submit {
  align-self: center;
  height: 64px;
  min-width: min(100%, 320px);
  padding: 0 40px;
  background: var(--yk-gold);
  border: 0;
  color: #111111;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: .16em;
  cursor: pointer;
  transition: background .3s ease;
}
.yk-submit:hover { background: var(--yk-gold); filter: brightness(1.08); }

/* ==========================================================================
   Header
   ========================================================================== */
.yk-header {
  background: linear-gradient(180deg, rgba(0, 0, 0, .6), rgba(0, 0, 0, 0));
  border-bottom: 1px solid transparent;
  box-shadow: none;
  color: #F2EEE6;
  transition: background .4s, border-color .4s;
}
.yk-header.is-scrolled,
.yk-header.is-solid {
  background: rgba(17, 17, 17, .96);
  border-bottom-color: rgba(199, 162, 75, .35);
}
.yk-header__inner {
  max-width: 1360px;
  height: 88px;
  padding: 0 clamp(16px, 3vw, 32px);
  gap: 24px;
}
.yk-header__logo img { display: block; height: 34px; }
.yk-header__nav { gap: 4px; margin-right: 0; }
.yk-header__nav .header__nav-item a {
  gap: 4px;
  padding: 8px 12px;
  color: #F2EEE6;
}
.yk-header__nav .header__nav-item a::after { display: none; }
.yk-header__nav .header__nav-item a:hover,
.yk-header__nav .header__nav-item--current a { color: #C7A24B; }
.yk-header__nav .header__nav-ja {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.3;
  color: inherit;
  white-space: nowrap;
}
.yk-header__nav .header__nav-en {
  font-weight: 400;
  font-size: 9px;
  letter-spacing: .2em;
  color: #C7A24B;
  opacity: .85;
}
.yk-header__right { gap: 24px; height: auto; }
.yk-header__tel {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding-left: 20px;
  border-left: 1px solid rgba(199, 162, 75, .35);
  color: #F2EEE6;
}
.yk-header__tel::before,
.yk-sp-nav__tel::before { display: none; }
.yk-header__tel:hover { opacity: 1; color: #F2EEE6; }
.yk-header__tel-num {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 400;
  font-size: 20px;
  letter-spacing: .06em;
  line-height: 1;
}
.yk-header__tel-num::before {
  content: "\f095";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 13px;
  color: #C7A24B;
}
.yk-header__tel-time {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 10px;
  letter-spacing: .06em;
  line-height: 1.5;
  color: #BDB6A8;
}
.yk-header__sns { gap: 6px; }
.yk-header__cta {
  flex-direction: row;
  gap: 10px;
  height: 48px;
  padding: 0 22px;
  background: var(--yk-gold);
  color: #111111;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .1em;
}
.yk-header__cta:hover { background: var(--yk-gold); filter: brightness(1.08); color: #111111; }
.yk-header__cta .font-en { font-size: 12px; }
.yk-header__sp-tel { display: none; }

.yk-nav-toggle {
  top: 12px;
  right: clamp(16px, 3vw, 32px);
  background: var(--yk-gold);
  backdrop-filter: none;
  border: 1px solid #C7A24B;
  border-radius: 0;
}
.yk-nav-toggle .nav-toggle__line {
  width: 20px;
  height: 1.5px;
  background: #111111;
}
.yk-nav-toggle .nav-toggle__line:nth-child(1) { top: 14px; }
.yk-nav-toggle .nav-toggle__line:nth-child(2) { top: 21px; }
.yk-nav-toggle .nav-toggle__line:nth-child(3) {
  top: 28px;
  width: 12px;
  transform: translateX(calc(-50% + 4px));
}
.yk-nav-toggle.is-active { background: transparent; }
.yk-nav-toggle.is-active .nav-toggle__line { background: #C7A24B; }
.yk-nav-toggle.is-active .nav-toggle__line:nth-child(3) { width: 20px; }

@media (max-width: 1179px) {
  .yk-header__inner { height: 68px; padding: 0 clamp(16px, 3vw, 32px); }
  .yk-header__logo img { height: 28px; }
  .yk-header__sp-tel {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin: 0 52px 0 auto;
    border: 1px solid rgba(199, 162, 75, .5);
    color: #C7A24B;
    font-size: 17px;
  }
}

/* SPナビ */
.yk-sp-nav {
  justify-content: flex-start;
  align-items: stretch;
  gap: 28px;
  padding: 12px 24px 40px;
  background: #111111;
}
.yk-sp-nav__head {
  display: flex;
  align-items: center;
  height: 44px;
}
.yk-sp-nav__name {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: .08em;
  color: #F2EEE6;
}
.yk-sp-nav__list { max-width: none; text-align: left; }
.yk-sp-nav .sp-nav__item,
.yk-sp-nav .sp-nav__item:first-child {
  border-top: 0;
  border-bottom: 1px solid rgba(199, 162, 75, .25);
}
.yk-sp-nav .sp-nav__link {
  padding: 18px 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 600;
  font-size: 18px;
  letter-spacing: .08em;
  color: #F2EEE6;
}
.yk-sp-nav .sp-nav__link::after { display: none; }
.yk-sp-nav .sp-nav__link:hover { background: transparent; color: #C7A24B; }
.yk-sp-nav .sp-nav__link.is-current { color: #C7A24B; }
.yk-sp-nav .sp-nav__en {
  margin: 0;
  padding: 0;
  font-size: 11px;
  letter-spacing: .2em;
  color: #C7A24B;
  opacity: 1;
}
.yk-sp-nav__bottom {
  display: flex;
  flex-direction: column;
  gap: 28px;
  max-width: none;
  margin-top: 0;
}
.yk-sp-nav__tel {
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 18px;
  border: 1px solid #C7A24B;
  color: #F2EEE6;
}
.yk-sp-nav__tel-num {
  font-weight: 400;
  font-size: 26px;
  letter-spacing: .06em;
  line-height: 1.3;
}
.yk-sp-nav__tel-time {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: #BDB6A8;
}
.yk-sp-nav__sns {
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

/* ==========================================================================
   Page Hero（下層）
   ========================================================================== */
.yk-page-hero {
  display: flex;
  align-items: flex-end;
  min-height: clamp(340px, 42vw, 480px);
  background: repeating-linear-gradient(135deg, #2a2826 0 14px, #262422 14px 28px);
}
.yk-page-hero__overlay {
  background: linear-gradient(90deg, rgba(17, 17, 17, .85) 0%, rgba(17, 17, 17, .55) 55%, rgba(17, 17, 17, .2) 100%);
}
.yk-page-hero__stroke {
  right: -2vw;
  bottom: -3vw;
  z-index: 1;
  font-size: clamp(90px, 16vw, 220px);
  letter-spacing: .02em;
}
.yk-page-hero__content {
  height: auto;
  gap: 18px;
  padding-top: 140px;
  padding-bottom: clamp(40px, 5vw, 64px);
}
.yk-page-hero__ja {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: clamp(34px, 5vw, 56px);
  letter-spacing: .1em;
  line-height: 1.3;
}

/* ==========================================================================
   お問い合わせCTA
   ========================================================================== */
.yk-cta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 16px;
}
.yk-cta-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 180px;
  padding: 32px 24px;
  background: #111111;
  border: 1px solid rgba(199, 162, 75, .45);
  color: #F2EEE6;
  text-align: center;
  transition: background .3s ease, border-color .3s ease;
}
.yk-cta-card:hover { background: #151515; border-color: #C7A24B; color: #F2EEE6; }
.yk-cta-card__label {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .12em;
  color: #C7A24B;
}
.yk-cta-card__tel {
  font-family: "Anton", sans-serif;
  font-size: clamp(28px, 3vw, 34px);
  letter-spacing: .04em;
  line-height: 1;
}
.yk-cta-card__note { font-size: 12px; color: #BDB6A8; }
.yk-cta-card__icon { font-size: 40px; line-height: 1; }
.yk-cta-card__text { font-size: 14px; letter-spacing: .06em; }
.yk-cta-card--gold { background: var(--yk-gold); border-color: #C7A24B; color: #111111; }
.yk-cta-card--gold:hover { background: var(--yk-gold); filter: brightness(1.08); border-color: #D9B865; color: #111111; }
.yk-cta-card--gold .yk-cta-card__label,
.yk-cta-card--gold .yk-cta-card__note { color: inherit; }
.yk-cta-card__main {
  font-weight: 700;
  font-size: clamp(22px, 2.4vw, 26px);
  letter-spacing: .08em;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.yk-footer {
  background: #0B0B0B;
  border-top: 1px solid rgba(199, 162, 75, .35);
  color: #F2EEE6;
}
/* フッター最上部のミンサー柄帯（全ページ共通） */
.yk-footer__minsa {
  width: 100%;
  height: 44px;
  background: url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28709/minnsa-line.webp") left center / auto 100% repeat-x;
  filter: grayscale(1) brightness(.55);
}
.yk-footer__body { padding: clamp(56px, 7vw, 88px) 0 40px; }
.yk-footer__inner { flex-wrap: nowrap; }
.yk-footer__left { gap: 28px; }
.yk-footer__logo { margin: 0; }
.yk-footer__logo img { display: block; height: 44px; max-width: 100%; }
.yk-footer__info {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px 20px;
  font-size: 14px;
  line-height: 1.8;
}
.yk-footer__info dt { font-weight: 500; color: #C7A24B; }
.yk-footer__btns { gap: 12px; }
.yk-footer__tel {
  flex: 1 1 240px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2px;
  min-height: 64px;
  border: 1px solid #C7A24B;
  color: #F2EEE6;
  transition: background .3s ease;
}
.yk-footer__tel:hover { background: rgba(199, 162, 75, .12); color: #F2EEE6; }
.yk-footer__tel-num {
  font-family: "Anton", sans-serif;
  font-size: 24px;
  letter-spacing: .06em;
  line-height: 1.1;
}
.yk-footer__tel-time { font-size: 11px; color: #BDB6A8; }
.yk-footer__contact {
  flex: 1 1 200px;
  height: auto;
  min-height: 64px;
  font-size: 16px;
}
.yk-footer__map {
  position: relative;
  min-height: 320px;
  border: 1px solid rgba(199, 162, 75, .35);
}
.yk-footer__map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(1) invert(.9) contrast(.9);
}
.yk-footer__bottom {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px clamp(20px, 4vw, 40px) 32px;
  border-top: 1px solid rgba(199, 162, 75, .2);
}
.yk-footer__bottom .footer-bottom__copyright {
  font-size: 11px;
  letter-spacing: .16em;
  color: #9C9588;
}
@media (max-width: 979px) {
  .yk-footer__inner { flex-direction: column; gap: 48px; }
  .yk-footer__inner > .column2__child { width: 100%; margin-bottom: 0; }
}

/* ==========================================================================
   会社案内
   ========================================================================== */
.yk-greeting {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(40px, 6vw, 88px);
}
.yk-greeting__photo { flex: 0 1 400px; min-width: min(100%, 280px); }
/* 代表挨拶：写真左下のミンサー柄（メインビューと同じ白の半透明・写真の背面） */
.yk-greeting__photo { isolation: isolate; }
.yk-greeting__minsa {
  position: absolute;
  z-index: -1;
  display: block;
  height: auto;
  max-width: none;
  filter: brightness(0) invert(1);
  opacity: .2;
  pointer-events: none;
}
.yk-greeting__minsa--01 { left: clamp(-90px, -6.5vw, -40px); bottom: clamp(-130px, -9vw, -64px); width: clamp(140px, 15vw, 210px); }
.yk-greeting__minsa--02 { left: clamp(84px, 9.5vw, 136px); bottom: clamp(-150px, -10.5vw, -78px); width: clamp(70px, 7.5vw, 105px); opacity: .12; }
@media (max-width: 899px) {
  /* 縦並び時は下の見出しに近づきすぎないよう控えめに */
  .yk-greeting__minsa--01 { bottom: -44px; }
  .yk-greeting__minsa--02 { bottom: -56px; }
}
@media (max-width: 639px) {
  /* スマホは本文幅を中央に置き、左右の空きを揃える */
  .yk-greeting .yk-greeting__body > * { margin-inline: auto; width: 100%; }
  /* スマホは写真の右下、見出し「代表挨拶」の高さに大小を並べる */
  .yk-greeting__minsa--01 { left: auto; right: 0; bottom: -105px; width: 96px; }
  .yk-greeting__minsa--02 { left: auto; right: 112px; bottom: -83px; width: 52px; }
}
/* 代表挨拶：横並び時は写真を本文の範囲内で追従（overflow:hidden だと sticky が効かないため clip に） */
@media (min-width: 900px) {
  .yk-greeting-sec { overflow: clip; }
  .yk-greeting__photo { position: sticky; top: 112px; }
}
.yk-greeting__body {
  flex: 1 1 480px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.yk-greeting__lead {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 600;
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.8;
  letter-spacing: .06em;
  color: #C7A24B;
}
.yk-greeting__text {
  display: flex;
  flex-direction: column;
  gap: 1em;
  max-width: 255px;
}
/* 本文幅を文字数（15px単位）に合わせ、段落の最終行が1〜2文字だけにならない幅に揃える */
.yk-greeting__body { container-type: inline-size; }
@container (min-width: 285px) { .yk-greeting__body > * { max-width: 285px; } }
@container (min-width: 315px) { .yk-greeting__body > * { max-width: 315px; } }
@container (min-width: 330px) { .yk-greeting__body > * { max-width: 330px; } }
@container (min-width: 420px) { .yk-greeting__body > * { max-width: 420px; } }
@container (min-width: 435px) { .yk-greeting__body > * { max-width: 435px; } }
@container (min-width: 480px) { .yk-greeting__body > * { max-width: 480px; } }
@container (min-width: 495px) { .yk-greeting__body > * { max-width: 495px; } }
@container (min-width: 510px) { .yk-greeting__body > * { max-width: 510px; } }
@container (min-width: 525px) { .yk-greeting__body > * { max-width: 525px; } }
@container (min-width: 570px) { .yk-greeting__body > * { max-width: 570px; } }
@container (min-width: 585px) { .yk-greeting__body > * { max-width: 585px; } }
@container (min-width: 600px) { .yk-greeting__body > * { max-width: 600px; } }
@container (min-width: 615px) { .yk-greeting__body > * { max-width: 615px; } }
@container (min-width: 630px) { .yk-greeting__body > * { max-width: 630px; } }
@container (min-width: 645px) { .yk-greeting__body > * { max-width: 645px; } }
@container (min-width: 660px) { .yk-greeting__body > * { max-width: 660px; } }
@container (min-width: 675px) { .yk-greeting__body > * { max-width: 675px; } }
.yk-greeting__sign {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 16px;
  padding-top: 8px;
}
.yk-greeting__sign-role { font-size: 13px; letter-spacing: .1em; color: #BDB6A8; }
.yk-greeting__sign-name {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: 24px;
  letter-spacing: .2em;
}

.yk-philosophy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(40px, 5vw, 64px);
}
.yk-philosophy__cols {
  display: flex;
  flex-direction: row-reverse;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(24px, 3vw, 44px);
}
.yk-philosophy__slogan {
  writing-mode: vertical-rl;
  padding-left: clamp(12px, 2vw, 28px);
  border-left: 1px solid rgba(199, 162, 75, .5);
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: clamp(30px, 3.6vw, 46px);
  letter-spacing: .2em;
  line-height: 1.6;
}
.yk-philosophy__item {
  writing-mode: vertical-rl;
  display: flex;
  flex-direction: column;
  gap: 18px;
  height: clamp(380px, 34vw, 440px);
  font-family: "Shippori Mincho B1", serif;
}
.yk-philosophy__title {
  font-weight: 800;
  font-size: clamp(19px, 1.8vw, 22px);
  letter-spacing: .14em;
  line-height: normal;
  color: #F2EEE6;
}
.yk-philosophy__text {
  font-weight: 600;
  font-size: 15px;
  line-height: 2;
  letter-spacing: .1em;
  color: #DDD7CB;
}
.yk-philosophy__closing {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 600;
  font-size: clamp(14px, 1.5vw, 17px);
  line-height: 2.2;
  letter-spacing: .04em;
  text-align: center;
  color: #E3CD95;
}

.yk-access-address { margin: 0; font-size: 15px; line-height: 1.9; }

/* ==========================================================================
   事業内容
   ========================================================================== */
.yk-biz {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(36px, 5vw, 72px);
}
.yk-biz--reverse { flex-wrap: wrap-reverse; }
.yk-biz__media { flex: 1.2 1 460px; min-width: 0; }
.yk-biz__body {
  flex: 1 1 380px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.yk-biz__num {
  display: flex;
  align-items: center;
  gap: 16px;
}
.yk-biz__num-en {
  font-family: "Anton", sans-serif;
  font-size: 12px;
  letter-spacing: .2em;
  line-height: 1.4;
}
.yk-biz__title {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: clamp(28px, 3.2vw, 40px);
  letter-spacing: .08em;
  line-height: 1.4;
}
.yk-biz__gallery {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
}
.yk-biz__gallery-item { position: relative; overflow: hidden; }
.yk-biz__gallery-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.yk-biz__gallery-item--wide { grid-column: 1 / 3; }

/* 型枠工事一式：大小2枚を重ねて配置（大＝右上、小＝左下に重ねる） */
.yk-biz__stagger {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  padding-bottom: 14%;
}
.yk-biz__stagger-main { grid-column: 3 / 13; grid-row: 1; }
.yk-biz__stagger-sub {
  grid-column: 1 / 7;
  grid-row: 1;
  align-self: end;
  z-index: 1;
  margin-bottom: -24%;
  border: 6px solid #111111;
}

.yk-area-sec__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.yk-area-sec__shade { position: absolute; inset: 0; background: rgba(17, 17, 17, .78); }
.yk-area-sec__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(32px, 5vw, 64px);
}
.yk-area-sec__map { flex: 0 1 340px; min-width: min(100%, 260px); }
.yk-area-sec__body {
  flex: 1 1 400px;
  min-width: min(100%, 300px);
  max-width: 480px;
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 3vw, 36px);
}
.yk-area-list { border-top: 1px solid #C7A24B; }
.yk-area-list__item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 26px 0;
  border-bottom: 1px solid rgba(199, 162, 75, .3);
}
.yk-area-list__en {
  font-family: "Anton", sans-serif;
  font-size: 12px;
  letter-spacing: .2em;
  color: #C7A24B;
}
.yk-area-list__ja {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: 22px;
  letter-spacing: .08em;
  line-height: 1.6;
}

/* ==========================================================================
   施工実績
   ========================================================================== */
.yk-works { border-top: 1px solid #C7A24B; }
.yk-works__row {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 200px 140px;
  align-items: center;
  gap: 24px;
  padding: 20px 8px;
  border-bottom: 1px solid rgba(199, 162, 75, .25);
  transition: background .3s ease;
}
.yk-works__row:nth-child(odd) { background: rgba(255, 255, 255, .015); }
.yk-works__row:hover { background: rgba(199, 162, 75, .06); }
.yk-works__row.is-hidden { display: none; }
.yk-works__row--head,
.yk-works__row--head:nth-child(odd),
.yk-works__row--head:hover {
  padding: 16px 8px;
  border-bottom-color: rgba(199, 162, 75, .5);
  background: transparent;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  color: #C7A24B;
}
.yk-works__no {
  font-family: "Anton", sans-serif;
  font-size: 15px;
  letter-spacing: .06em;
  color: #C7A24B;
}
.yk-works__name {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 600;
  font-size: 16px;
  line-height: 1.7;
}
.yk-works__place { font-size: 14px; color: #DDD7CB; }
.yk-works__type { justify-self: start; }
@media (max-width: 759px) {
  .yk-works__row--head { display: none; }
  .yk-works__row {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 6px 12px;
    padding: 18px 4px;
  }
  .yk-works__place,
  .yk-works__type { grid-column: 2; }
}

/* ==========================================================================
   採用情報
   ========================================================================== */
.yk-recruit-lead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(36px, 5vw, 72px);
}
.yk-recruit-lead__body {
  flex: 1 1 440px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 26px;
}
.yk-recruit-lead__media { flex: 1 1 440px; min-width: 0; }
.yk-recruit-lead__tags { display: flex; flex-wrap: wrap; gap: 10px; }
.yk-recruit-lead__tags .yk-badge {
  padding: 6px 16px;
  font-size: 14px;
  letter-spacing: .08em;
}
.yk-recruit-lead__title {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: .08em;
  line-height: 1.45;
}
.yk-recruit-lead__text { font-size: 16px; line-height: 2.1; }
.yk-apply { scroll-margin-top: 80px; }

.yk-benefit {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr));
  column-gap: clamp(32px, 5vw, 72px);
  border-top: 1px solid rgba(199, 162, 75, .5);
}
.yk-benefit__item {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 4px 20px;
  padding: 26px 4px;
  border-bottom: 1px solid rgba(199, 162, 75, .3);
}
.yk-benefit__item .yk-num { grid-row: span 2; }
.yk-benefit__title {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: 19px;
  line-height: 1.6;
  letter-spacing: .06em;
}
.yk-benefit__text { font-size: 14px; line-height: 1.8; color: #DDD7CB; }

/* ==========================================================================
   お問い合わせ
   ========================================================================== */
.yk-contact-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: 16px;
}
.yk-contact-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  padding: 36px 28px;
  background: #111111;
  border: 1px solid rgba(199, 162, 75, .45);
  text-align: center;
}
.yk-contact-card__en {
  font-family: "Anton", sans-serif;
  font-size: 12px;
  letter-spacing: .24em;
  color: #C7A24B;
}
.yk-contact-card__title {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: 24px;
  letter-spacing: .08em;
  line-height: 1.5;
}
.yk-contact-card__qr {
  display: grid;
  place-items: center;
  width: 148px;
  height: 148px;
  padding: 10px;
  background: #F2EEE6;
  color: #555555;
  font-size: 11px;
  line-height: 1.6;
}
.yk-contact-card__tel {
  font-family: "Anton", sans-serif;
  font-size: clamp(32px, 3.4vw, 40px);
  letter-spacing: .04em;
  line-height: 1.2;
  color: #F2EEE6;
}
.yk-contact-card__tel:hover { color: #C7A24B; }
.yk-contact-card__note { font-size: 14px; line-height: 1.8; color: #DDD7CB; }
.yk-contact-card__icon { font-size: 56px; line-height: 1; color: #C7A24B; }
.yk-contact-card__id {
  font-family: "Anton", sans-serif;
  font-size: 18px;
  letter-spacing: .06em;
}
.yk-contact-card .yk-btn { align-self: stretch; height: 54px; margin-top: auto; font-weight: 700; letter-spacing: .1em; font-size: 16px; }
.yk-contact-card .yk-btn i { font-size: 20px; }

/* ==========================================================================
   現場ブログ（一覧・詳細）
   ========================================================================== */
.yk-blog-layout {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(48px, 5vw, 64px);
}
.yk-blog-layout__main {
  flex: 1 1 600px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.yk-blog-layout__side {
  flex: 0 1 300px;
  min-width: min(100%, 260px);
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.yk-post-list { border-top: 1px solid rgba(199, 162, 75, .5); }
.yk-post {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 28px;
  padding: 28px 0;
  border-bottom: 1px solid rgba(199, 162, 75, .25);
  color: #F2EEE6;
  transition: color .3s ease;
}
.yk-post:hover { color: #C7A24B; }
.yk-post__img {
  position: relative;
  flex: 0 0 min(100%, 260px);
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid rgba(199, 162, 75, .2);
}
.yk-post__img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.yk-post__body {
  flex: 1 1 280px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
}
.yk-post__title {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 600;
  font-size: clamp(18px, 1.8vw, 21px);
  line-height: 1.7;
}
.yk-post__excerpt { margin: 0; font-size: 14px; line-height: 1.9; color: #BDB6A8; }

.yk-pagination { margin: 0; }
.yk-pagination .pagination__link {
  min-width: 48px;
  height: 48px;
  border: 1px solid rgba(199, 162, 75, .5);
  border-radius: 0;
  color: #F2EEE6;
  font-family: "Anton", sans-serif;
  font-size: 16px;
}
.yk-pagination .pagination__link--text { padding: 0 18px; font-family: "Noto Sans JP", sans-serif; font-size: 14px; }
.yk-pagination .pagination__link.is-current { background: var(--yk-gold); color: #111111; }

.yk-side {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.yk-side--recent { gap: 16px; }
.yk-side--archive { gap: 10px; }
.yk-side__title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin: 0;
  padding-bottom: 12px;
  border-bottom: 1px solid #C7A24B;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: .08em;
  line-height: 1.5;
}
.yk-side--archive .yk-side__title { margin-bottom: 4px; }
.yk-side__title-en {
  font-family: "Anton", sans-serif;
  font-weight: 400;
  font-size: 11px;
  letter-spacing: .2em;
  color: #C7A24B;
}
.yk-side__link {
  display: flex;
  justify-content: space-between;
  padding: 4px 0;
  font-size: 14px;
  color: #F2EEE6;
  transition: color .3s ease;
}
.yk-side__link:hover { color: #C7A24B; }
.yk-side__count { color: #BDB6A8; }
.yk-side__recent {
  display: flex;
  gap: 12px;
  color: #F2EEE6;
  transition: color .3s ease;
}
.yk-side__recent:hover { color: #C7A24B; }
.yk-side__thumb {
  flex: 0 0 72px;
  height: 54px;
  overflow: hidden;
}
.yk-side__thumb img { width: 100%; height: 100%; object-fit: cover; }
.yk-side__recent-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  line-height: 1.6;
}
.yk-side__recent-date {
  font-family: "Anton", sans-serif;
  font-size: 11px;
  letter-spacing: .1em;
  color: #BDB6A8;
}

.yk-entry-section { padding: clamp(120px, 14vw, 160px) 0 clamp(80px, 10vw, 120px); }
.yk-article {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.yk-article__head {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-bottom: 28px;
  border-bottom: 1px solid #C7A24B;
}
.yk-article__meta { display: flex; align-items: center; gap: 14px; font-size: 13px; }
.yk-article__meta .yk-badge { padding: 4px 12px; }
.yk-article__title {
  margin: 0;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: clamp(22px, 3.2vw, 35px);
  line-height: 1.55;
  letter-spacing: .06em;
}
.yk-article__hero {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(199, 162, 75, .2);
}
.yk-article__hero img,
.yk-article__photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.yk-article__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 44em;
  font-size: 16px;
  line-height: 2.1;
  color: #E6E1D6;
}
.yk-article__body h2 {
  margin: 16px 0 0;
  padding-left: 16px;
  border-left: 3px solid #C7A24B;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  font-size: 22px;
  line-height: 1.6;
  color: #F2EEE6;
}
.yk-article__photo { position: relative; overflow: hidden; }
.yk-article__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  padding-top: 28px;
  border-top: 1px solid rgba(199, 162, 75, .35);
}
.yk-article__nav .yk-btn { padding: 0 20px; letter-spacing: normal; }
.yk-article__nav .yk-btn--outline { border-color: rgba(199, 162, 75, .5); }
.yk-article__nav .yk-btn--outline:hover { background: transparent; border-color: #C7A24B; color: #C7A24B; }
.yk-article__nav .yk-btn--solid { padding: 0 24px; letter-spacing: .08em; }

/* ==========================================================================
   補助
   ========================================================================== */
.yk-head-row--wide { gap: 24px; }
.yk-gap-32 { gap: 32px; }
.yk-btn--wide { padding: 0 40px; }
.yk-post.is-hidden { display: none; }
.yk-section--blog { padding: clamp(72px, 9vw, 112px) 0; }
.yk-works__row { line-height: normal; }
.yk-works__row .yk-tag { display: inline-block; }
.yk-filter--works .yk-filter__btn { font-weight: 500; letter-spacing: .08em; }
.yk-meta { line-height: normal; }
.yk-recruit-lead__tags .yk-badge,
.yk-article__meta .yk-badge { line-height: normal; }
.yk-form__label,
.yk-req,
.yk-opt { line-height: normal; }
.yk-side__link,
.yk-side__title,
.yk-contact-card__title { line-height: normal; }
.yk-heading--sm { gap: 10px; }
.yk-heading--sm .heading__ja { font-size: clamp(20px, 2vw, 24px); }
.yk-gap-24 { gap: 24px; }
.yk-heading__icon { margin-right: .4em; font-size: .85em; color: #C7A24B; }

/* 会社案内：代表挨拶の縁取り英字 */
.yk-greeting__stroke {
  right: -2vw;
  bottom: -3vw;
  font-size: clamp(90px, 16vw, 220px);
  letter-spacing: .02em;
}
/* 会社案内：会社概要の背後に斜めの黒パネル */
.yk-outline::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: min(880px, 72%);
  background: #111111;
  transform: translateX(-50%) skewX(-6deg);
  pointer-events: none;
}
@media (max-width: 639px) {
  .yk-outline::before { width: 86%; }
}
/* ミンサー柄の全幅ライン */
.yk-minsa--line {
  width: 100%;
  background-position: 0 center;
}

/* 下層ヒーローの大きな英字：枠線ではなく白の透過 */
.yk-page-hero__stroke {
  color: rgba(255, 255, 255, .28);
  -webkit-text-stroke: 0;
}

/* 背景画像を全面に敷く */
.yk-bg-cover {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

/* 薄い斜めの細線（全面）。--right：右上がり／--left：左上がり */
.yk-lines::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.yk-lines--right::before {
  background: repeating-linear-gradient(-45deg, rgba(199, 162, 75, .07) 0 1px, transparent 1px 14px);
}
.yk-lines--left::before {
  background: repeating-linear-gradient(45deg, rgba(199, 162, 75, .07) 0 1px, transparent 1px 14px);
}

/* お問い合わせ：LINE・電話・Instagram（枠なし・縦線区切り・ホバーでうっすら背景） */
.yk-contact-cards {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}
.yk-contact-card {
  padding: 56px 28px;
  background: transparent;
  border: 0;
  transition: background .3s ease;
}
.yk-contact-card + .yk-contact-card { border-left: 1px solid rgba(199, 162, 75, .5); }
.yk-contact-card:hover { background: rgba(199, 162, 75, .06); }
.yk-contact-card .yk-text-link { margin-top: auto; }
.yk-text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 4px;
  border-bottom: 1px solid #C7A24B;
  color: #C7A24B;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: .1em;
  line-height: 1.5;
  transition: color .3s ease, border-color .3s ease;
}
.yk-text-link .font-en { font-weight: 400; }
.yk-text-link:hover { color: #D9B865; border-color: #D9B865; }
@media (max-width: 899px) {
  .yk-contact-cards { grid-template-columns: minmax(0, 1fr); }
  .yk-contact-card { padding: 40px 20px; }
  .yk-contact-card + .yk-contact-card { border-left: 0; border-top: 1px solid rgba(199, 162, 75, .5); }
}
.yk-contact-card__qr { background: #FFFFFF; }
.yk-contact-card__qr img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* ラジオ選択肢：四角枠なし */
.yk-choice-list { gap: 12px 32px; }
.yk-choice {
  height: auto;
  padding: 4px 0;
  border: 0;
}

/* お問い合わせ：区切りの縦線を上下に短く */
.yk-contact-card { position: relative; }
.yk-contact-card + .yk-contact-card { border-left: 0; }
.yk-contact-card + .yk-contact-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 40px;
  bottom: 40px;
  width: 1px;
  background: rgba(199, 162, 75, .5);
}
@media (max-width: 899px) {
  .yk-contact-card + .yk-contact-card::before { display: none; }
}
.yk-contact-card { color: #F2EEE6; }
.yk-contact-card:hover { color: #F2EEE6; }
.yk-contact-card:hover .yk-contact-card__tel { color: #C7A24B; }
.yk-header__nav .header__nav-ja { font-size: 17px; }

/* お問い合わせCTA：LINEアイコンは白 */
.yk-cta-card .fa-line { color: #FFFFFF; }

/* ==========================================================================
   タブレット・スマホ調整（共通）
   ========================================================================== */
@media (min-width: 640px) {
  .yk-cta-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
  .yk-cta-card { min-height: 150px; padding: 24px 12px; }
  .yk-cta-card__tel { font-size: 24px; }
  .yk-cta-card__main { font-size: 20px; }
}
@media (max-width: 639px) {
  .yk-cta-grid { gap: 10px; }
  .yk-cta-card { min-height: 0; padding: 22px 16px; gap: 8px; }
  .yk-cta-card__tel { font-size: 28px; }
  .yk-cta-card__icon { font-size: 32px; }
  .yk-heading__lead { font-size: 14px; }
}

/* CMS出力の外側spanはレイアウトに影響させない */
#cms-blog-entry-list-1-area { display: contents; }

/* ブログ詳細：CMS出力 */
.yk-article__body > span,
.yk-article__body > span > div { display: flex; flex-direction: column; gap: 24px; }
.yk-article__body img { display: block; max-width: 100%; height: auto; }
.yk-article__body p { margin: 0; }
.yk-article__nav { align-items: center; }
.yk-article__pager .pages { display: flex; flex-wrap: wrap; gap: 12px; }
.yk-article__pager .pages a {
  display: inline-flex;
  align-items: center;
  height: 52px;
  padding: 0 20px;
  border: 1px solid rgba(199, 162, 75, .5);
  color: #F2EEE6;
  font-size: 14px;
  transition: border-color .3s ease, color .3s ease;
}
.yk-article__pager .pages a:hover { border-color: #C7A24B; color: #C7A24B; }

/* ブログ一覧：抜粋は2行まで（以降は…） */
.yk-post__excerpt {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* お問い合わせCTA：背景画像に暗めのレイヤー */
.yk-cta-sec { position: relative; }
.yk-cta-sec::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(17, 17, 17, .55);
  pointer-events: none;
}

/* ==========================================================================
   スマホ調整（下層）
   ========================================================================== */
@media (max-width: 639px) {
  /* 見出し：長い見出しの折返し対策 */
  .yk-heading .heading__ja { font-size: 22px; }
  .yk-page-hero { min-height: 280px; }
  .yk-page-hero__content { padding-top: 110px; padding-bottom: 36px; gap: 12px; }
  .yk-page-hero__ja { font-size: 30px; }

  /* 事業内容 */
  .yk-biz__title { font-size: 26px; }
  .yk-biz__num .yk-num--xl { font-size: 52px; }
  .yk-area-list__ja { font-size: 18px; }

  /* 施工実績：絞り込みと一覧 */
  .yk-filter__label { flex-basis: 100%; margin: 0; }
  .yk-filter__btn { height: 40px; padding: 0 16px; font-size: 13px; }
  .yk-works__row { grid-template-columns: 32px auto minmax(0, 1fr); gap: 6px 10px; }
  .yk-works__name { grid-column: 2 / 4; font-size: 15px; }
  .yk-works__place { grid-column: 2; font-size: 13px; }
  .yk-works__type { grid-column: 3; }

  /* ブログ一覧：サムネ左・テキスト右 */
  .yk-post { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 0 14px; padding: 18px 0; align-items: start; }
  .yk-post__img { flex: none; width: 100%; }
  .yk-post__body { gap: 6px; }
  .yk-post__title { font-size: 15px; line-height: 1.6; }
  .yk-post__excerpt { font-size: 12px; line-height: 1.7; }

  /* 採用・会社：本文行間 */
  .yk-greeting__sign { flex-wrap: wrap; }
  .yk-recruit-lead__title { font-size: 26px; }
  .yk-philosophy__slogan { font-size: 28px; }
}
@media (max-width: 639px) { .yk-blog-layout__side { flex-basis: 100%; } }
@media (max-width: 639px) {
  .yk-heading__lead {
    text-align: center;
    text-wrap: balance;
    word-break: auto-phrase;
  }
}

/* ==========================================================================
   スマホ調整（追加）
   ========================================================================== */
@media (max-width: 639px) {
  /* 会社案内：代表挨拶の写真を80%で中央 */
  .yk-greeting__photo { flex: none; width: 80%; min-width: 0; margin: 0 auto; }

  /* 会社案内：経営理念を横書きの縦並びに */
  .yk-philosophy { gap: 32px; }
  .yk-philosophy__cols { flex-direction: column; flex-wrap: nowrap; gap: 0; width: 100%; }
  .yk-philosophy__slogan {
    writing-mode: horizontal-tb;
    order: -1;
    padding: 0 0 24px;
    margin-bottom: 8px;
    border-left: 0;
    border-bottom: 1px solid rgba(199, 162, 75, .5);
    font-size: 26px;
    letter-spacing: .12em;
    line-height: 1.6;
    text-align: center;
  }
  .yk-philosophy__item {
    writing-mode: horizontal-tb;
    height: auto;
    gap: 8px;
    padding: 20px 0;
    border-bottom: 1px solid rgba(199, 162, 75, .2);
  }
  .yk-philosophy__title { font-size: 18px; letter-spacing: .08em; }
  .yk-philosophy__text { font-size: 14px; line-height: 1.9; letter-spacing: .04em; }
  .yk-philosophy__closing { font-size: 14px; line-height: 2; text-align: left; }

  /* 事業内容：地図をトップと同じ80%で中央 */
  .yk-area-sec__map { flex: none; width: 80%; min-width: 0; margin: 0 auto; }

  /* 採用：福利厚生の間隔 */
  .yk-benefit__item { gap: 4px 4px; }

  /* お問い合わせ：LINE・電話・Instagram */
  .yk-contact-card { gap: 14px; padding: 32px 16px; }
  .yk-contact-card__title { font-size: 20px; }
  .yk-contact-card__qr { width: 128px; height: 128px; padding: 8px; }
  .yk-contact-card__tel { font-size: 30px; }
  .yk-contact-card__note { font-size: 13px; }
  .yk-contact-card__icon { font-size: 44px; }
  .yk-contact-card__id { font-size: 16px; }
}

/* ブログ：月別アーカイブ（CMS出力の ul > li > a） */
.yk-side__cms ul { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.yk-side__cms a {
  display: block;
  padding: 4px 0;
  font-size: 14px;
  line-height: normal;
  color: #F2EEE6;
  transition: color .3s ease;
}
.yk-side__cms a:hover { color: #C7A24B; }
@media (max-width: 639px) { .yk-post { grid-template-columns: 88px minmax(0, 1fr); gap: 0 12px; } }

/* ==========================================================================
   CMSフォーム（cdn.rs-sys.jp mail-form.css の上書き。暗背景・直角・金）
   ========================================================================== */
.yk-cms-form .form-contents.form-pattern-1 { padding: 0; background: transparent; color: #F2EEE6; }
.yk-cms-form .form-contents form dl { margin: 0; }
.yk-cms-form .form-contents form dl dt:not(.pattern-exclusion) {
  float: none;
  width: auto;
  margin: 0 0 10px;
  padding: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: normal;
  color: #F2EEE6;
}
.yk-cms-form .form-contents form dl dt:not(.pattern-exclusion) span { display: inline-flex; align-items: center; gap: 10px; }
.yk-cms-form .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before,
.yk-cms-form .form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::before { content: none; }
.yk-cms-form .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::after,
.yk-cms-form .form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::after {
  padding: 1px 8px;
  font-size: 11px;
  font-weight: 400;
  line-height: normal;
}
.yk-cms-form .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::after { content: "必須"; background: var(--yk-gold); color: #111111; }
.yk-cms-form .form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::after { content: "任意"; border: 1px solid #BDB6A8; color: #BDB6A8; }
.yk-cms-form .form-contents form dl dd:not(.pattern-exclusion) { margin: 0; padding: 0 0 22px; line-height: normal; }
.yk-cms-form .form-pattern-1 dd:not(.pattern-exclusion) .textarea {
  width: 100%;
  height: 54px;
  padding: 0 16px;
  background: #111111;
  border: 1px solid rgba(199, 162, 75, .45);
  border-radius: 0;
  color: #F2EEE6;
  font-family: inherit;
  font-size: 16px;
}
.yk-cms-form .form-pattern-1 dd:not(.pattern-exclusion) textarea.textarea { height: auto; min-height: 160px; padding: 14px 16px; line-height: 1.8; resize: vertical; }
.yk-cms-form .form-pattern-1 dd:not(.pattern-exclusion) .textarea:focus { outline: none; border-color: #C7A24B; }
.yk-cms-form .form-pattern-1 dd:not(.pattern-exclusion) .textarea::placeholder { color: #8E877B; }
.yk-cms-form .form-contents form dl dd:not(.pattern-exclusion) label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 4px 32px 4px 0;
  font-size: 15px;
  cursor: pointer;
}
.yk-cms-form .form-contents form dl dd:not(.pattern-exclusion) input.radio,
.yk-cms-form .form-contents form dl dd:not(.pattern-exclusion) input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: #C7A24B; }
.yk-cms-form .form-pattern-1 .submit-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(100%, 320px);
  height: 64px;
  margin: 12px auto 0;
  padding: 0 40px;
  background: var(--yk-gold);
  border: 0;
  border-radius: 0;
  color: #111111;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: .16em;
  transition: filter .3s ease;
}
.yk-cms-form .form-pattern-1 :not(.pattern-exclusion) button.submit-btn:hover { background: var(--yk-gold); filter: brightness(1.08); }
.yk-cms-form .form-pattern-1 .submit-btn::before { background-color: #111111; }
.yk-cms-form .form-thanks-msg { color: #F2EEE6; text-align: center; line-height: 2; }
.yk-cms-form .form-err-msg { color: #E8A0A0; line-height: 1.8; }
.yk-cms-form .back-home-btn a {
  display: inline-flex;
  align-items: center;
  height: 52px;
  margin-top: 24px;
  padding: 0 28px;
  border: 1px solid #C7A24B;
  color: #F2EEE6;
  letter-spacing: .12em;
}
.yk-cms-form .back-home-btn a:hover { background: var(--yk-gold); color: #111111; }
.yk-cms-form .form-pattern-1 dl dd:not(.pattern-exclusion) { border-bottom: 0; }
.yk-cms-form .form-pattern-1 .form-thanks-msg { padding: 40px 20px; background: transparent; border: 1px solid rgba(199, 162, 75, .45); }
.yk-cms-form .form-pattern-1 .form-thanks-msg .back-home-btn a { background: transparent; border: 1px solid #C7A24B; border-radius: 0; color: #F2EEE6; }
.yk-cms-form .form-pattern-1 .form-thanks-msg .back-home-btn a:hover { background: var(--yk-gold); color: #111111; }
/* 黒背景のセクションでは入力欄をチャコールに */
.yk-cms-form--on-black .form-pattern-1 dd:not(.pattern-exclusion) .textarea { background: #1C1C1C; }
/* ブログ詳細：前後の記事リンクを中央に */
.yk-article__nav { justify-content: center; }
.yk-article__pager .pages { justify-content: center; }
/* ブログ詳細：本文エリアの最低高さ */
.yk-article__body { min-height: 300px; }
@media (max-width: 639px) { .yk-article__body { min-height: 100px; } }

/* ==========================================================================
   タブレット調整（640〜899px）：会社案内
   ========================================================================== */
@media (min-width: 640px) and (max-width: 899px) {
  /* 代表挨拶：写真を中央・60% */
  .yk-greeting__photo { flex: none; width: 60%; min-width: 0; margin: 0 auto; }
  .yk-greeting__body { flex-basis: 100%; }

  /* 経営理念：横書き、理念は2列 */
  .yk-philosophy__cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 40px;
    width: 100%;
  }
  .yk-philosophy__slogan {
    grid-column: 1 / -1;
    writing-mode: horizontal-tb;
    order: -1;
    padding: 0 0 28px;
    margin-bottom: 8px;
    border-left: 0;
    border-bottom: 1px solid rgba(199, 162, 75, .5);
    font-size: 32px;
    letter-spacing: .12em;
    line-height: 1.6;
    text-align: center;
  }
  .yk-philosophy__item {
    writing-mode: horizontal-tb;
    height: auto;
    gap: 8px;
    padding: 22px 0;
    border-bottom: 1px solid rgba(199, 162, 75, .2);
  }
  .yk-philosophy__title { font-size: 19px; letter-spacing: .08em; }
  .yk-philosophy__text { font-size: 14px; line-height: 1.9; letter-spacing: .04em; }

  /* アクセス：住所を見出しの下に */
  .yk-greeting ~ * .yk-head-row,
  .yk-outline .yk-head-row { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* ==========================================================================
   タブレット調整（640〜979px）：フッター
   左：ロゴ＋会社情報／右：電話・お問い合わせ・SNS／下：地図（全幅）
   ========================================================================== */
@media (min-width: 640px) and (max-width: 979px) {
  .yk-footer__inner { gap: 40px; }
  .yk-footer__left {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 20px 40px;
    align-items: start;
  }
  .yk-footer__logo { grid-column: 1; grid-row: 1; }
  .yk-footer__info { grid-column: 1; grid-row: 2 / 4; }
  .yk-footer__btns { grid-column: 2; grid-row: 1 / 3; flex-direction: column; gap: 12px; }
  .yk-footer__btns > * { flex: none; width: 100%; }
  .yk-footer__left > .footer-body__sns { grid-column: 2; grid-row: 3; }
  .yk-footer__map { min-height: 280px; }
}
/* 受付時間の文字は白 */
.yk-header__tel-time,
.yk-cta-card__note { color: #FFFFFF; }
/* スマホ：フッターのSNSボタンを上のボタンと同じ横幅に */
@media (max-width: 639px) {
  .yk-footer__left > .footer-body__sns > .yk-sns-btn { flex: 1 1 0; padding: 0; }
}
/* スマホ：事業内容「施工実績を見る」ボタンを中央に */
@media (max-width: 639px) {
  .yk-btn--outline.yk-btn--lg.yk-btn--start { align-self: center; }
}
/* スマホ：採用情報「応募フォームへ」ボタンを中央に */
@media (max-width: 639px) {
  .yk-btn--xl.yk-btn--start.yk-btn--wide { align-self: center; }
}

/* CMSフォーム：送信完了メッセージ */
.yk-cms-form .form-contents .form-thanks-msg .back-home-btn { width: min(100%, 300px); margin: 32px auto 0; }
.yk-cms-form .form-contents .form-thanks-msg .back-home-btn a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 56px;
  margin: 0;
  padding: 0;
  font-size: 15px;
  letter-spacing: .12em;
}
.yk-cms-form .form-contents .form-thanks-msg .thanks-msg-area { font-size: 16px; line-height: 2; }
@media (max-width: 639px) {
  .yk-cms-form .form-pattern-1 .form-thanks-msg { padding: 28px 18px; }
  .yk-cms-form .form-contents .form-thanks-msg .thanks-msg-area { font-size: 14px; line-height: 1.9; text-align: left; }
}

/* ヘッダーロゴを少し大きく（PCのみ 34→47px。1179px以下は28pxのまま） */
@media (min-width: 1180px) {
  .yk-header__logo img { height: 47px; }
}

/* ヘッダー：はみ出し防止（余裕をもたせて段階的に詰める）
   1440px以上：通常サイズ（内側幅を1440pxまで広げて余白を確保）
   1280〜1439px：やや詰める／1180〜1279px：さらに詰める */
.yk-header__inner { max-width: 1440px; }
.yk-header__nav { flex-shrink: 1; min-width: 0; }
@media (min-width: 1180px) and (max-width: 1439px) {
  .yk-header__inner { gap: 16px; }
  .yk-header__logo img { height: 34px; }
  .yk-header__nav { gap: 0; }
  .yk-header__nav .header__nav-item a { padding: 8px 8px; }
  .yk-header__nav .header__nav-ja { font-size: 15px; letter-spacing: .04em; }
  .yk-header__right { gap: 14px; }
  .yk-header__tel { padding-left: 14px; }
  .yk-header__tel-num { font-size: 18px; }
}
@media (min-width: 1180px) and (max-width: 1279px) {
  .yk-header__inner { gap: 12px; }
  .yk-header__logo img { height: 30px; }
  .yk-header__nav .header__nav-item a { padding: 8px 6px; }
  .yk-header__nav .header__nav-ja { font-size: 14px; letter-spacing: .02em; }
  .yk-header__right { gap: 10px; }
  .yk-header__tel { padding-left: 12px; }
  .yk-header__tel-num { font-size: 17px; }
  .yk-header__sns { gap: 4px; }
}
/* ロゴ47pxでも1440〜1599pxで余裕を残すため、ナビ余白を少しだけ詰める */
@media (min-width: 1440px) and (max-width: 1599px) {
  .yk-header__nav .header__nav-item a { padding: 8px 10px; }
}

/* ロゴ：マークは画像の左側だけを表示し、社名はキャッチと同じ明朝体の文字で表示 */
.yk-header__logo,
.yk-footer__logo {
  display: flex;
  align-items: center;
  gap: .45em;
  text-decoration: none;
}
.yk-header__logo img.yk-logo__mark,
.yk-footer__logo img.yk-logo__mark {
  width: auto;
  max-width: none;
  aspect-ratio: 130 / 55;
  object-fit: cover;
  object-position: left center;
}
.yk-logo__name {
  font-family: "Shippori Mincho B1", serif;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .08em;
  white-space: nowrap;
}
.yk-header__logo .yk-logo__name { font-size: 18px; }
.yk-footer__logo .yk-logo__name { font-size: 22px; }
@media (max-width: 1179px) {
  .yk-header__logo .yk-logo__name { font-size: 16px; }
}
@media (min-width: 1180px) {
  .yk-header__logo .yk-logo__name { font-size: 24px; }
}
@media (min-width: 1180px) and (max-width: 1439px) {
  .yk-header__logo .yk-logo__name { font-size: 18px; }
}
@media (min-width: 1180px) and (max-width: 1279px) {
  .yk-header__logo .yk-logo__name { font-size: 16px; }
}

/* ミンサー柄のあしらい（白の半透明・セクション背景に配置） */
.yk-minsa-deco {
  position: absolute;
  z-index: 0;
  display: block;
  height: auto;
  max-width: none;
  filter: brightness(0) invert(1);
  opacity: .1;
  pointer-events: none;
}
/* 採用情報リード：右下 */
.yk-minsa-deco--lead01 { right: clamp(12px, 2.2vw, 36px); bottom: clamp(10px, 1.2vw, 18px); width: clamp(110px, 13vw, 190px); }
.yk-minsa-deco--lead02 { right: clamp(134px, 16.5vw, 240px); bottom: clamp(8px, 1vw, 14px); width: clamp(56px, 6.4vw, 92px); opacity: .07; }
/* TOP現場ブログ：右下（メインビューとは大小を入れ替え：minsa02が大、minsa01が小） */
.yk-minsa-deco--blog02 { right: clamp(12px, 2.2vw, 36px); bottom: clamp(10px, 1.2vw, 18px); width: clamp(110px, 13vw, 190px); }
.yk-minsa-deco--blog01 { right: clamp(134px, 16.5vw, 240px); bottom: clamp(8px, 1vw, 14px); width: clamp(56px, 6.4vw, 92px); opacity: .07; }
