/* =========================================================
   Universal Label System（by Luxe）
   ========================================================= */
.label {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 8px;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  border-radius: 4px;
  line-height: 1.2;
  letter-spacing: 0.03em;
  vertical-align: middle;
  text-transform: uppercase;
  animation: labelFade 2.5s ease-in-out infinite;
}

/* variations */
.label.-new    { background: linear-gradient(135deg, #ff4b2b, #ff416c); }
.label.-renew  { background: linear-gradient(135deg, #ffb347, #ffcc33); }
.label.-coming { background: linear-gradient(135deg, #6a11cb, #2575fc); }

@keyframes labelFade { 0%,100%{opacity:1} 50%{opacity:.7} }
/* =========================================================
   Recruit Catch Visual tuning
   ========================================================= */
.p-recruit-kv__catchTextBlock {
  background: rgba(0,0,0,0.65);
  border-radius: 6px;
  padding: 10px 12px;
  margin: 8px 0;
  text-align: center;
}

.p-recruit-kv__catchText {
  color: #fff;
  font-size: clamp(14px, 3.5vw, 18px);
  line-height: 1.5;
  font-weight: 500;
}

.p-recruit-kv__catchText span.red {
  color: #ff4b2b;
  font-weight: 700;
}

/* 銀座店用タイトルを少し浮かせる */
.p-recruit-kv__titleText {
  color: #000;
  font-size: clamp(16px, 4vw, 20px);
  font-weight: 600;
  text-align: center;
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(6px);
  border-radius: 6px;
  padding: 8px 12px;
  display: inline-block;
  margin-top: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
/* 「×」マーク非表示 */
.p-recruit-kv__cross {
  display: none !important;
}
/* キャッチコピーの文字調整 */
.p-recruit-kv__catchText {
  color: #fff;
  font-size: clamp(16px, 4.2vw, 20px); /* ←以前より一段階大きく */
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0.03em;
}

/* 下の「銀座店オープン決定！」の見出しも少し大きめ */
.p-recruit-kv__titleText {
  font-size: clamp(18px, 4.8vw, 22px);
  font-weight: 600;
  letter-spacing: 0.02em;
}
.p-recruit-kv__catch::before {
  display: none !important;
  content: none !important;
}

/* 背景と文字スタイル（淡ゴールド＋柔らかい白） */
.p-recruit-kv__titleText {
  background: linear-gradient(135deg, rgba(255,255,255,0.9), rgba(255,248,230,0.9));
  color: #2b2b2b;
  border-radius: 12px;
  padding: 14px 18px;
  font-weight: 600;
  font-size: clamp(18px, 4.8vw, 22px);
  text-align: center;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  letter-spacing: 0.02em;
  display: inline-block;
  line-height: 1.5;
}

/* スマホ最適化 */
@media (max-width: 767px) {
  .p-recruit-kv__title {
    bottom: clamp(28px, 6vw, 50px);
  }
  .p-recruit-kv__titleText {
    font-size: 17px;
    padding: 12px 14px;
  }
}
/* ===== Recruit: 銀座見出し（外観はここで統一管理） ===== */
.p-recruit-kv__title { /* 位置のみ */
  position: absolute;
  left: 50%;
  bottom: clamp(28px, 5vw, 50px);
  transform: translateX(-50%);
  z-index: 4;
  width: auto;
  max-width: min(92%, 720px);
  text-align: center;
}

.p-recruit-kv__titleText { /* 背景＆文字 */
  background: linear-gradient(135deg, rgba(255,255,255,0.9), rgba(255,248,230,0.9));
  color: #2b2b2b;
  border-radius: 12px;
  padding: 14px 18px;
  font-weight: 600;
  font-size: clamp(18px, 4.8vw, 22px);
  text-align: center;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  letter-spacing: 0.02em;
  display: inline-block;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .p-recruit-kv__title { bottom: clamp(28px, 6vw, 50px); }
  .p-recruit-kv__titleText { font-size: 17px; padding: 12px 14px; }
}

/* ===== NEWラベル（銀座店） ===== */
.p-recruit-guideline .p-recruit-guideline__detailTitle .p-recruit-guideline__label.-new{
  display:inline-block;
  margin-left:8px;
  padding:2px 6px;
  font-size:12px;
  font-weight:700;
  color:#fff;
  background:linear-gradient(135deg,#ff4b2b,#ff416c);
  border-radius:4px;
  vertical-align:middle;
  animation: fadeBlink 2.5s infinite ease-in-out;
}
@keyframes fadeBlink{0%,100%{opacity:1}50%{opacity:.6}}

/* ===== タイトルのふわっと表示（.js-titleに付与） ===== */
.js-title {
  opacity: 0;
  filter: blur(8px);
  transform: translateY(10px);
  transition: opacity 0.9s ease-out, transform 0.9s ease-out, filter 1s ease-out;
}
.js-title.is-inview {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}
/* タイトル枠の既定背景・影・擬似要素をOFFにする */
.p-recruit-kv__title,
.p-recruit-kv__texts {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

.p-recruit-kv__title::before,
.p-recruit-kv__title::after {
  content: none !important;
  background: none !important;
  box-shadow: none !important;
  border: none !important;
}
/* === Hero テキストのモバイル最適化 === */
@media (max-width: 767px) {
  /* 上の2段キャッチ */
  .p-recruit-kv__catchText {
    font-weight: 600;
    font-size: clamp(15px, 4.4vw, 18px);
    letter-spacing: .02em;
    line-height: 1.55;
  }

  /* 銀座タイトル（中央ボックス） */
  .p-recruit-kv__titleText {
    font-weight: 700;                    /* 600→700で存在感UP */
    font-size: clamp(18px, 5vw, 22px);   /* ほんの少し大きめに */
    line-height: 1.55;
    padding: 14px 16px;
  }
}
/* === 銀座タイトル下のゴールドライン === */
.p-recruit-kv__titleText {
  position: relative;
}

.p-recruit-kv__titleText::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;                /* ボックスの下に線を出す */
  transform: translateX(-50%);
  width: 72%;
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg,#c9a34a,#f3dfa6,#c9a34a);
  opacity: 0;
  filter: blur(1px);
  transition: opacity .6s ease .15s, transform .6s ease .15s;
  transform-origin: center;
}

/* 画面に入ったら見せる（既存の .is-inview を利用） */
.p-recruit-kv__titleText.js-title.is-inview::after {
  opacity: 1;
  transform: translateX(-50%) scaleX(1);
}

/* ほんのり明滅 */
@keyframes goldGlow { 0%,100%{box-shadow:0 0 0 rgba(201,163,74,0)} 50%{box-shadow:0 0 10px rgba(201,163,74,.25)} }
.p-recruit-kv__titleText.js-title.is-inview::after {
  animation: goldGlow 2.8s ease-in-out infinite;
}
/* === 募集要項（カード化＆見出し強調）=== */
.p-recruit-guideline__detailBlock {
  background: rgba(255,255,255,0.9);
  border-radius: 12px;
  box-shadow: 0 6px 22px rgba(0,0,0,0.08);
  padding: 16px;
  margin: 18px 0;
  backdrop-filter: blur(2px);
}

.p-recruit-guideline__detailTitle {
  font-weight: 700;
  font-size: clamp(16px, 4.4vw, 18px);
  letter-spacing: .02em;
}

/* 店舗画像も角丸＋影で統一感 */
.p-recruit-guideline__detailImg img {
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

/* 行間・余白の整え（スマホ） */
@media (max-width: 767px) {
  .p-recruit-guideline__detail { line-height: 1.75; }
  .p-recruit-guideline__row { margin-bottom: 18px; }
}
/* === 銀座タイトル：モバイルで少し小さく＋下に寄せる === */
@media (max-width: 767px) {
  .p-recruit-kv__title {
    bottom: clamp(12px, 3.8vw, 24px); /* 以前より下へ寄せる（数px） */
  }
  .p-recruit-kv__titleText {
    font-size: clamp(16px, 4.4vw, 20px); /* ほんの少し小さく */
    line-height: 1.45;                   /* 行間を詰めて高さ圧縮 */
    padding: 10px 14px;                  /* 余白も控えめに */
    max-width: 86%;                      /* 幅をやや絞って回り込み回避 */
  }
}
/* === KVテキスト群を“上下で安定”させるフレックスレイアウト === */
.p-recruit-kv { position: relative; }

/* === テキスト全体を上下中央・水平中央に整列 === */
.p-recruit-kv__texts {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* 上下に配置 */
  align-items: center;            /* ←★これが抜けてた！中央揃えに復帰 */
  pointer-events: none;
  padding: clamp(8px, 3vw, 20px) clamp(10px, 4vw, 24px);
  gap: clamp(10px, 2.4vw, 16px);
}


/* 上のキャッチ群は“上寄せ”で並べる（既存見た目は維持） */
.p-recruit-kv__catch{
  display:flex;
  flex-direction:column;
  gap: clamp(6px, 1.8vw, 10px);
  pointer-events:auto; /* ボタン等があればクリック可に戻す */
}

/* 下の銀座タイトルは“下寄せ”に固定（絶対配置→フレックス下寄せへ） */
.p-recruit-kv__title{
  position:static;   /* 以前の absolute/bottom をリセット */
  margin-top:auto;   /* 下寄せに効く保険（space-betweenと併用） */
  pointer-events:auto;
  text-align:center;
}

/* タイトル箱のサイズを文字数変動に強く */
.p-recruit-kv__titleText{
  display:inline-block;
  max-width: min(88vw, 680px);   /* 横の暴れを抑える */
  padding: clamp(10px, 2.8vw, 16px) clamp(12px, 3.6vw, 18px);
  line-height: 1.5;
  font-size: clamp(16px, 4.4vw, 20px);
}

/* 上キャッチの文字も可読域に収める */
.p-recruit-kv__catchText{
  font-size: clamp(14px, 4.2vw, 18px);
  line-height: 1.55;
}

/* スマホでの安全余白（見出しが増えても挟まるのを防ぐ） */
@media (max-width: 767px){
  .p-recruit-kv__texts{ padding-top: clamp(10px, 4vw, 28px); padding-bottom: clamp(12px, 4.6vw, 30px); }
}
@media (min-width: 768px){
  .p-recruit-kv__titleText{ font-size: clamp(18px, 2.1vw, 26px); }
}
/* ========== Recruit KV 固定 ========== */
.p-recruit-kv { position: relative; }
.p-recruit-kv__img { position: relative; z-index: 1; }

/* テキスト層（上キャッチ＋下タイトル）を画像全面に被せる */
.p-recruit-kv__texts{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  justify-content:space-between;   /* 上下で分配 */
  align-items:center;              /* ★水平中央 */
  padding:clamp(8px,3vw,20px) clamp(10px,4vw,24px);
  gap:clamp(10px,2.4vw,16px);
  pointer-events:none;             /* クリックは下へ通す */
  z-index:2;
}

/* 上部キャッチ帯（中央寄せ） */
.p-recruit-kv__catch{
  width:100%;
  display:flex; flex-direction:column; gap:10px;
  align-items:center;              /* ★中央 */
}
.p-recruit-kv__catchTextBlock{
  pointer-events:auto;
  max-width:min(92%,980px);
  background:rgba(0,0,0,.58);
  color:#fff; border-radius:12px;
  padding:10px 14px;
  line-height:1.6; text-align:center;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}

/* 下部タイトル（中央寄せラック） */
.p-recruit-kv__title{
  width:100%;
  display:flex; justify-content:center; /* ★中央 */
  pointer-events:auto;
}
.p-recruit-kv__titleText{
  max-width:min(86%,640px);
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(4px);
          backdrop-filter:blur(4px);
  color:#111; font-weight:800; line-height:1.6;
  border-radius:16px; padding:16px 18px;
  text-align:center; box-shadow:0 10px 24px rgba(0,0,0,.14);
}

/* フォント・サイズ調整（スマホ基準） */
.p-recruit-kv__catchText{ font-size:clamp(15px,3.6vw,18px); }
.p-recruit-kv__titleText{ font-size:clamp(18px,4.2vw,22px); }

/* 文字が多いときの自動改行バランス */
.p-recruit-kv__titleText,
.p-recruit-kv__catchText{ word-break:normal; overflow-wrap:anywhere; }

/* タップで募集要項へ（既にJS設置済み前提） */
.p-recruit-kv__titleText a{ color:inherit; text-decoration:underline; }

/* 768px以上は少し広げる */
@media (min-width:768px){
  .p-recruit-kv__catchTextBlock{ max-width:min(88%,1080px); }
  .p-recruit-kv__titleText{ max-width:min(70%,760px); }
}
/* === 銀座店ボックス：強制センター＆サイズ調整 === */
.p-recruit-kv__title{
  display:block;                 /* フレックスの影響を受けてもOKに */
  text-align:center;             /* ★中央揃えの保険 */
}
.p-recruit-kv__titleText{
  display:inline-block;          /* 中央に置くための行内ブロック */
  margin:0 auto !important;      /* ★どんな外部指定でも中央に */
  max-width:min(88%, 560px);     /* ボックス幅をやや絞る */
  padding:12px 16px;             /* 背景ボックス薄めに */
  border-radius:14px;
  font-size:clamp(17px, 4vw, 20px); /* 文字が多くても崩れにくいサイズ */
}

/* 上下の間隔も微整形（被り防止） */
.p-recruit-kv__texts{
  gap:clamp(8px, 3vw, 18px);
  padding-bottom:clamp(10px, 4vw, 24px);
}
/* === 銀座店ボックス：強制センター＆サイズ調整（完全リセット版） === */
.p-recruit-kv__title{
  /* 旧 absolute 配置を無効化 */
  position: static !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;

  /* 中央寄せレイアウト */
  width: 100%;
  display: flex;
  justify-content: center;
  text-align: center;
  margin: 0;
  pointer-events: auto;
}

.p-recruit-kv__titleText{
  display: inline-block;
  margin: 0 auto !important;
  max-width: min(88%, 560px);
  padding: 12px 16px;
  border-radius: 14px;
  font-size: clamp(17px, 4vw, 20px);
  line-height: 1.55;
}

/* 上下間隔の微調整（安全余白） */
.p-recruit-kv__texts{
  gap: clamp(8px, 3vw, 18px);
  padding-bottom: clamp(10px, 4vw, 24px);
}
/* ==== 銀座店ボックスの位置＆透け感微調整 ==== */
.p-recruit-kv__title {
  display: flex;
  justify-content: center;
  text-align: center;
  margin: clamp(4px, 2vw, 12px) 0 0; /* ← 上に少し寄せる（上マージン縮小） */
}

/* ボックスのデザイン */
.p-recruit-kv__titleText {
  display: inline-block;
  margin: 0 auto;
  padding: 12px 18px;
  max-width: min(90%, 560px);
  font-size: clamp(17px, 4vw, 20px);
  font-weight: 700;
  line-height: 1.55;
  color: #000;
  background: rgba(255, 255, 255, 0.48); /* ← 少し透け感UP（0.88→0.78） */
  border-radius: 16px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
}
/* ===== 募集要項カードの読みやすさ強化 ===== */

/* カードの内側を白面＋軽い影で読みやすく */
.p-recruit-guideline__detailDesc {
  display: grid;
  gap: 14px;
}

/* 各情報ブロックを“箱”化してメリハリ */
.p-recruit-guideline__detailDescWrap {
  background: #fff;
  border-radius: 14px;
  padding: 14px 16px;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  line-height: 1.75;
  letter-spacing: .02em;
  position: relative;
}

/* テキスト内の数字を少し強調（見やすさUP） */
.p-recruit-guideline__detailDescWrap {
  --em: #111;
}
.p-recruit-guideline__detailDescWrap :where(b,strong){
  color: var(--em);
}

/* 住所や時間の段落間を詰めすぎないよう微調整 */
.p-recruit-guideline__detailDescWrap br + br { line-height: 1; }
.p-recruit-guideline__detailDescWrap br { content: ""; }

/* モバイル微調整：左右余白・サイズ感 */
@media (max-width: 767px){
  .p-recruit-guideline__detailDescWrap{
    padding: 12px 14px;
    border-radius: 12px;
  }
  .p-recruit-guideline__detailDescWrap::before{
    top: -9px;
    left: 10px;
    font-size: 11px;
    padding: 2px 8px;
  }
}

/* PCでは左右2カラム感を少し出す（画像横の情報に奥行き） */
@media (min-width: 768px){
  .p-recruit-guideline__detailDesc{
    grid-template-columns: 1fr;
  }
  .p-recruit-guideline__detailDescWrap{
    padding: 16px 18px;
    border-radius: 14px;
  }
}