/* =============================================================
   NINE JAPAN — theme.css
   各ページ固有のセクションCSS（デザインHTMLの inline <style> を集約）
   + モバイルメニュー / モーション配慮 / WordPress調整
   依存順: tokens.css → kit.css → theme.css
   ============================================================= */

/* ---------- WordPress 共通調整 ---------- */
img { max-width: 100%; height: auto; }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 16px; top: 16px; z-index: 999; background: var(--nj-gold); color: var(--nj-ink); padding: 10px 16px; }

/* admin bar が出ても sticky nav が隠れないように */
.admin-bar .nj-nav { top: 32px; }
@media (max-width: 782px) { .admin-bar .nj-nav { top: 46px; } }

/* ---------- ハンバーガー（〜920px・新規実装） ---------- */
.nj-nav__toggle {
  display: none;
  width: 44px; height: 44px;
  border: 1px solid rgba(250,248,244,.32);
  background: transparent; cursor: pointer;
  position: relative; border-radius: 2px;
  flex: none;
}
.nj-nav__toggle span,
.nj-nav__toggle span::before,
.nj-nav__toggle span::after {
  content: ''; position: absolute; left: 50%; transform: translateX(-50%);
  width: 20px; height: 1.5px; background: var(--fg-1);
  transition: transform .35s var(--ease-out), opacity .2s;
}
.nj-nav__toggle span { top: 50%; margin-top: -.75px; }
.nj-nav__toggle span::before { top: -7px; }
.nj-nav__toggle span::after  { top: 7px; }
.nj-nav.is-open .nj-nav__toggle span { background: transparent; }
.nj-nav.is-open .nj-nav__toggle span::before { transform: translateX(-50%) translateY(7px) rotate(45deg); }
.nj-nav.is-open .nj-nav__toggle span::after  { transform: translateX(-50%) translateY(-7px) rotate(-45deg); }

@media (max-width: 920px) {
  .nj-nav__toggle { display: inline-flex; }
  /* スマホではヘッダーのCONTACTボタンを非表示（レイアウト崩れ防止） */
  .nj-nav__cta { display: none !important; }
  /* kit.css は .nj-nav__menu を display:none にしているが、開いた時だけ出す */
  .nj-nav.is-open .nj-nav__menu {
    display: flex; flex-direction: column; align-items: flex-start; gap: 20px;
    position: absolute; left: 0; right: 0; top: 100%;
    background: rgba(10,10,10,.96);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(250,248,244,.10);
    padding: 28px 24px;
  }
  .nj-nav { position: sticky; } /* 念のため */
}

/* ---------- モーション配慮 ---------- */
@media (prefers-reduced-motion: reduce) {
  .rise, .ticker__track, .scroll-mark::after { animation: none !important; }
  .rise { opacity: 1 !important; transform: none !important; }
  * { scroll-behavior: auto !important; }
}

/* =============================================================
   01 TOP  (front-page.php)
   ============================================================= */
.hero {
  position: relative; overflow: hidden;
  min-height: 880px; padding: 64px 48px 96px;
  background: var(--nj-ink); color: var(--fg-1);
}
.hero__bg9 {
  position: absolute; right: -80px; top: 20px;
  font-family: var(--font-display);
  font-size: 920px; line-height: .78;
  color: rgba(200, 166, 100, .14);
  letter-spacing: -.06em; pointer-events: none; user-select: none;
}
.hero__photo { position: absolute; right: 0; top: 0; bottom: 0; width: 54%; height: 100%; z-index: 1; }
.hero__photo::before { display: none; }
.hero__inner { position: relative; z-index: 2; max-width: 760px; }
.hero__eyebrow { font-family: var(--font-sub-en); font-size: 12px; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--nj-gold); display: inline-flex; align-items: center; gap: 14px; margin-bottom: 36px; }
.hero__eyebrow::before { content:''; width: 56px; height: 1.5px; background: var(--nj-gold); }
.hero__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(34px, 5vw, 72px); line-height: 1.12; letter-spacing: .04em; margin: 0; }
.hero__title .hl { display: block; white-space: nowrap; }
@media (max-width: 600px) { .hero__title .hl { white-space: normal; } }
.hero__title .crimson { color: var(--nj-crimson); }
.hero__title .stroke { color: var(--nj-gold); background: none; padding: 0; }
.hero__en { font-family: var(--font-display); font-size: clamp(38px, 6vw, 84px); line-height: .9; letter-spacing: .02em; color: var(--fg-1); margin: 0; }
.hero__en .gold { color: var(--nj-gold); }
.hero__copy { font-family: var(--font-body); font-size: 16px; line-height: 1.95; letter-spacing: .03em; max-width: 640px; color: var(--fg-2); margin: 40px 0 0; }
.hero__copy b { color: var(--fg-1); font-weight: 500; }
.hero__ctas { display: flex; gap: 16px; margin-top: 44px; flex-wrap: wrap; }
.hero__meta { position: absolute; left: 48px; bottom: 32px; z-index: 2; display: flex; gap: 56px; align-items: flex-end; }
.hero__meta-item .lbl { font-family: var(--font-sub-en); font-size: 10px; letter-spacing: .28em; text-transform: uppercase; color: var(--nj-ash); margin-bottom: 6px; }
.hero__meta-item .val { font-family: var(--font-display); font-size: 28px; letter-spacing: .04em; color: var(--fg-1); line-height: 1; }
.hero__meta-item .val .gold { color: var(--nj-gold); }
.scroll-mark { position: absolute; right: 48px; bottom: 32px; z-index: 3; font-family: var(--font-sub-en); font-size: 10px; letter-spacing: .3em; color: var(--fg-2); text-transform: uppercase; writing-mode: vertical-rl; display: flex; align-items: center; gap: 14px; }
.scroll-mark::after { content: ''; width: 1px; height: 64px; background: var(--nj-gold); animation: scroll-bar 2.5s var(--ease-in-out) infinite; }
@keyframes scroll-bar { 0%{height:0;opacity:.2}50%{opacity:1}100%{height:64px;opacity:.2} }
@media (max-width: 980px) {
  .hero { padding: 100px 24px 64px; min-height: 0; display: flex; flex-direction: column; }
  .hero__inner { order: 1; }
  .hero__photo { display: block; position: static; order: 2; width: 100%; height: 280px; right: auto; top: auto; margin: 32px 0 0; }
  .hero__photo::before { display: none; }
  .hero__bg9 { font-size: 520px; right: -40px; top: -40px; }
  .hero__meta { position: static; margin-top: 40px; order: 3; }
  .scroll-mark { display: none; }
}

.ticker { background: var(--nj-gold); color: var(--nj-ink); padding: 18px 0; overflow: hidden; border-top: 1px solid rgba(10,10,10,.15); border-bottom: 1px solid rgba(10,10,10,.15); }
.ticker__track { display: flex; gap: 56px; font-family: var(--font-display); font-size: 24px; letter-spacing: .04em; white-space: nowrap; animation: ticker 16s linear infinite; }
.ticker__track span { display: inline-flex; align-items: center; gap: 56px; }
.ticker__track .sep { width: 8px; height: 8px; background: var(--nj-ink); border-radius: 50%; display: inline-block; }
@keyframes ticker { 0%{transform:translateX(0)} 100%{transform:translateX(-50%)} }

.services { padding: 160px 48px; background: var(--nj-ink); }
.services__head { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; margin-bottom: 96px; align-items: end; }
.services__list { display: flex; flex-direction: column; gap: 0; }
.service-row { display: grid; grid-template-columns: 96px 1fr 1fr 220px; gap: 48px; padding: 36px 0; border-top: 1px solid rgba(250,248,244,.14); align-items: center; transition: padding .4s var(--ease-out), background .4s var(--ease-out); cursor: pointer; }
.service-row:hover { padding-left: 24px; background: rgba(250,248,244,.02); }
.service-row:last-child { border-bottom: 1px solid rgba(250,248,244,.14); }
.service-row__num { font-family: var(--font-display); font-size: 52px; line-height: 1; color: var(--nj-gold); letter-spacing: .04em; }
.service-row__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: 28px; line-height: 1.3; letter-spacing: .04em; }
.service-row__title .en { display: block; font-family: var(--font-display); font-size: 16px; letter-spacing: .22em; color: var(--nj-ash); font-weight: 400; margin-bottom: 4px; }
.service-row__desc { font-family: var(--font-body); font-size: 14px; line-height: 1.8; color: var(--fg-2); letter-spacing: .04em; }
.service-row__more { justify-self: end; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--fg-1); display: inline-flex; align-items: center; gap: 14px; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
@media (max-width: 920px) {
  .services { padding: 80px 24px; }
  .services__head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 56px; }
  .service-row { grid-template-columns: 56px 1fr; gap: 16px; }
  .service-row__desc, .service-row__more { grid-column: 1 / -1; }
}

.manifesto { background: var(--nj-paper); color: var(--nj-ink); padding: 160px 48px; position: relative; overflow: hidden;}
.manifesto__bg { position: absolute; right: -40px; bottom: -80px; font-family: var(--font-mincho); font-weight: 800; font-size: 520px; line-height: .9; color: rgba(10,10,10,.04); letter-spacing: .04em; }
.manifesto__grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 96px; position: relative; }
.manifesto__big { font-family: var(--font-mincho); font-weight: 700; font-size: clamp(56px, 8vw, 120px); line-height: 1.1; letter-spacing: .12em; color: var(--nj-ink); margin: 0; }
.manifesto__big .crimson { color: var(--nj-crimson); }
.manifesto__body p { font-family: var(--font-body); font-size: 16px; line-height: 2.1; letter-spacing: .06em; color: var(--fg-invert-2); margin: 0 0 24px; }
.manifesto__body p:first-child { font-size: 18px; color: var(--nj-ink); font-weight: 500; }
.manifesto__quote { margin-top: 48px; padding: 32px; background: var(--nj-ink); color: var(--fg-1); position: relative; }
.manifesto__quote::before { content: '"'; position: absolute; left: 16px; top: -32px; font-family: var(--font-mincho); font-size: 120px; line-height: 1; color: var(--nj-gold); }
.manifesto__quote p { font-family: var(--font-mincho); font-size: 22px; line-height: 1.7; letter-spacing: .08em; margin: 0; color: var(--fg-1); }
.manifesto__quote p:first-child { color: var(--fg-1); font-size: 22px; font-weight: 400; }
.manifesto__quote cite { display: block; margin-top: 18px; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .28em; color: var(--nj-gold); font-style: normal; }
@media (max-width: 920px) { .manifesto { padding: 80px 24px; } .manifesto__grid { grid-template-columns: 1fr; gap: 32px; } .manifesto__bg { font-size: 280px; } }

.metrics { background: var(--nj-charcoal); padding: 120px 48px; }
.metrics__head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 64px; }
.metrics__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.metric { border-top: 1px solid rgba(250,248,244,.24); padding-top: 24px; }
.metric__num { font-family: var(--font-display); font-size: clamp(64px, 8vw, 128px); line-height: .92; letter-spacing: .02em; color: var(--nj-gold); }
.metric__num small { font-size: 32px; vertical-align: super; margin-left: 4px; color: var(--fg-1); }
.metric__label { font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .28em; text-transform: uppercase; color: var(--nj-ash); margin-top: 12px; }
.metric__desc { font-family: var(--font-body); font-size: 13px; line-height: 1.7; color: var(--fg-2); margin-top: 8px; }
@media (max-width: 720px) { .metrics { padding: 80px 24px; } .metrics__grid { grid-template-columns: 1fr 1fr; gap: 24px; } .metrics__head { flex-direction: column; gap: 16px; align-items: flex-start; } }

.news { background: var(--nj-paper); padding: 128px 48px; }
.news__head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 56px; }
.news__list { display: flex; flex-direction: column; }
.news-row { display: grid; grid-template-columns: 140px 100px 1fr 32px; gap: 32px; padding: 24px 0; border-top: 1px solid #DCD4C3; align-items: center; transition: padding .4s var(--ease-out), background .4s var(--ease-out); cursor: pointer; }
.news-row:hover { padding-left: 16px; background: rgba(10,10,10,.02); }
.news-row:last-child { border-bottom: 1px solid #DCD4C3; }
.news-row__date { font-family: var(--font-mono); font-size: 13px; color: var(--nj-stone); letter-spacing: .04em; }
.news-row__cat { font-family: var(--font-sub-en); font-size: 10px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; padding: 4px 10px; border: 1px solid var(--nj-ink); color: var(--nj-ink); justify-self: start; }
.news-row__cat--news { background: var(--nj-ink); color: var(--fg-1); }
.news-row__cat--press { background: var(--nj-crimson); border-color: var(--nj-crimson); color: var(--fg-1); }
.news-row__cat--award { background: var(--nj-gold); border-color: var(--nj-gold); color: var(--nj-ink); }
.news-row__cat--media { background: transparent; }
.news-row__title { font-family: var(--font-jp-sans); font-weight: 700; font-size: 17px; letter-spacing: .04em; color: var(--nj-ink); }
.news-row__arrow { font-family: var(--font-mono); color: var(--nj-stone); font-size: 18px; }
@media (max-width: 720px) { .news { padding: 80px 24px; } .news-row { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; } .news-row__arrow { display: none; } }

/* 10th Anniversary / Team band（全幅・集合写真） */
.anniv { position: relative; min-height: 600px; display: flex; align-items: flex-end; background: var(--nj-ink); overflow: hidden; }
.anniv__photo { position: absolute; inset: 0; background-size: cover; background-position: center; }
.anniv::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.15) 0%, rgba(10,10,10,.35) 45%, rgba(10,10,10,.9) 100%); }
.anniv__overlay { position: relative; z-index: 2; padding: 72px 48px; color: var(--fg-1); max-width: 820px; }
.anniv__eyebrow { font-family: var(--font-sub-en); font-size: 12px; font-weight: 600; letter-spacing: .32em; text-transform: uppercase; color: var(--nj-gold); display: inline-flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.anniv__eyebrow::before { content: ''; width: 40px; height: 1.5px; background: var(--nj-gold); }
.anniv__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(32px, 4.4vw, 64px); line-height: 1.18; letter-spacing: .04em; margin: 0 0 20px; }
.anniv__title .gold { color: var(--nj-gold); }
.anniv__lead { font-family: var(--font-body); font-size: 15px; line-height: 1.95; letter-spacing: .04em; color: var(--fg-1); opacity: .92; max-width: 620px; margin: 0; }
@media (max-width: 720px) { .anniv { min-height: 440px; } .anniv__overlay { padding: 48px 24px; } }

.cta-strip { background: var(--nj-crimson); color: var(--fg-1); padding: 96px 48px; display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: center; position: relative; overflow: hidden; }
.cta-strip__bg { position: absolute; right: -60px; top: -120px; font-family: var(--font-display); font-size: 480px; line-height: .8; color: rgba(0,0,0,.12); letter-spacing: -.04em; }
.cta-strip__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(36px, 4.4vw, 64px); line-height: 1.15; letter-spacing: .04em; margin: 0; position: relative; }
.cta-strip__title .en { font-family: var(--font-display); font-size: 24px; letter-spacing: .24em; color: rgba(0,0,0,.4); display: block; margin-bottom: 12px; }
.cta-strip__actions { display: flex; flex-direction: column; gap: 14px; position: relative; }
@media (max-width: 720px) { .cta-strip { padding: 64px 24px; grid-template-columns: 1fr; gap: 32px; } }

/* =============================================================
   03 ABOUT  (page-about.php)
   ============================================================= */
.a-hero { background: var(--nj-ink); color: var(--fg-1); padding: 56px 48px 128px; position: relative; overflow: hidden; min-height: 720px; }
.a-hero__bg { position: absolute; left: -40px; bottom: -160px; font-family: var(--font-mincho); font-weight: 800; font-size: 720px; line-height: .82; letter-spacing: .04em; color: rgba(200,166,100,.06); }
.a-hero__inner { position: relative; max-width: 1100px; padding-top: 24px; }
.a-hero__breadcrumb { display: flex; gap: 14px; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--nj-ash); margin-bottom: 64px; }
.a-hero__breadcrumb .sep { color: var(--nj-gold); }
.a-hero__eyebrow { font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .32em; text-transform: uppercase; color: var(--nj-gold); display: inline-flex; align-items: center; gap: 14px; margin-bottom: 32px; }
.a-hero__eyebrow::before { content:''; width: 56px; height: 1.5px; background: var(--nj-gold); }
.a-hero__title { font-family: var(--font-display); font-size: clamp(52px, 11vw, 168px); line-height: .88; letter-spacing: 0; margin: 0; }
.a-hero__title .gold { color: var(--nj-gold); }
.a-hero__sub { font-family: var(--font-mincho); font-weight: 600; font-size: clamp(28px, 3.4vw, 44px); line-height: 1.5; letter-spacing: .12em; margin: 48px 0 0; }
.a-hero__sub .crimson { color: var(--nj-crimson); }
.a-hero__meta { margin-top: 56px; display: flex; gap: 56px; flex-wrap: wrap; font-family: var(--font-mono); font-size: 12px; color: var(--fg-2); }
.a-hero__meta div b { color: var(--nj-gold); display: block; font-family: var(--font-sub-en); font-size: 10px; letter-spacing: .28em; margin-bottom: 6px; }
@media (max-width: 720px) { .a-hero { padding: 64px 24px 96px; } .a-hero__bg { font-size: 320px; } }

.a-msg { background: var(--nj-paper); color: var(--nj-ink); padding: 128px 48px; }
.a-msg__grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 96px; }
.a-msg__photo { background: linear-gradient(135deg, #1c1c1c, #555); aspect-ratio: 3/4; position: sticky; top: 40px; align-self: start; }
.a-msg__photo::after { content:'CEO PHOTO'; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .3em; color: rgba(250,248,244,.45); }
.a-msg__photo::before { content:''; position: absolute; inset: 16px 16px -16px -16px; border: 1px solid var(--nj-gold); z-index: -1; }
.a-msg__photo--img { background-size: cover; background-position: center top; }
.a-msg__photo--img::after { content: none; }
.a-msg__body { display: flex; flex-direction: column; }
.a-msg__hd { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(36px,4.4vw,72px); line-height: 1.18; letter-spacing: .04em; margin: 0 0 32px; }
.a-msg__hd .crimson { color: var(--nj-crimson); }
.a-msg__hd .stroke { background: linear-gradient(180deg, transparent 60%, rgba(200,166,100,.35) 60%); }
.a-msg__copy p { font-family: var(--font-body); font-size: 16px; line-height: 2.1; letter-spacing: .06em; color: var(--fg-invert-2); margin: 0 0 22px; }
.a-msg__sig { margin-top: 32px; padding-top: 24px; border-top: 1px solid #DCD4C3; display: flex; justify-content: space-between; align-items: end; }
.a-msg__sig b { font-family: var(--font-jp-sans); font-weight: 700; font-size: 24px; letter-spacing: .12em; }
.a-msg__sig small { display: block; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .28em; color: var(--nj-stone); margin-top: 6px; }
.a-msg__sig .stamp { font-family: var(--font-mincho); font-size: 56px; color: var(--nj-crimson); letter-spacing: .08em; }
@media (max-width: 920px) { .a-msg { padding: 80px 24px; } .a-msg__grid { grid-template-columns: 1fr; gap: 48px; } .a-msg__photo { position: static; } }

.phil { background: var(--nj-ink); color: var(--fg-1); padding: 128px 48px; }
.phil__head { margin-bottom: 80px; }
.phil__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.phil__card { padding: 48px 32px; border: 1px solid rgba(250,248,244,.14); margin-left: -1px; }
.phil__card .num { font-family: var(--font-display); font-size: 80px; line-height: 1; color: var(--nj-gold); letter-spacing: 0; }
.phil__card .ti { font-family: var(--font-jp-sans); font-weight: 900; font-size: 26px; line-height: 1.3; letter-spacing: .06em; margin: 32px 0 16px; }
.phil__card .ti .en { display: block; font-family: var(--font-sub-en); font-size: 12px; font-weight: 500; letter-spacing: .28em; color: var(--nj-gold); margin-bottom: 8px; text-transform: uppercase; }
.phil__card .body { font-family: var(--font-body); font-size: 14px; line-height: 1.9; color: var(--fg-2); }
@media (max-width: 920px) { .phil { padding: 80px 24px; } .phil__list { grid-template-columns: 1fr; } }

.hist { background: var(--nj-paper); color: var(--nj-ink); padding: 128px 48px; }
.hist__head { margin-bottom: 64px; }
.hist__list { position: relative; padding-left: 32px; }
.hist__list::before { content:''; position: absolute; left: 6px; top: 16px; bottom: 16px; width: 2px; background: var(--nj-ink); }
.hist-item { display: grid; grid-template-columns: 140px 1fr; gap: 32px; padding: 28px 0; border-bottom: 1px solid #DCD4C3; position: relative; }
.hist-item:last-child { border-bottom: 0; }
.hist-item::before { content:''; position: absolute; left: -33px; top: 36px; width: 14px; height: 14px; background: var(--nj-crimson); border-radius: 50%; box-shadow: 0 0 0 4px var(--nj-paper); }
.hist-item .year { font-family: var(--font-display); font-size: 36px; color: var(--nj-ink); letter-spacing: .04em; }
.hist-item .year small { font-size: 12px; letter-spacing: .24em; color: var(--nj-stone); display: block; margin-top: 4px; font-family: var(--font-sub-en); text-transform: uppercase; }
/* ===== SPONSOR / スポンサー実績（ABOUT）：NEWSカード形式・横100%（.n-grid / .n-item を流用） ===== */
.a-sponsor__head { margin-bottom: 40px; }
.hist-item .body b { font-family: var(--font-jp-sans); font-weight: 900; font-size: 19px; letter-spacing: .04em; display: block; margin-bottom: 6px; }
.hist-item .body { font-family: var(--font-body); font-size: 14px; line-height: 1.85; color: var(--fg-invert-2); }
@media (max-width:720px) { .hist { padding: 80px 24px; } .hist-item { grid-template-columns: 1fr; gap: 8px; } }

.grp { background: var(--nj-charcoal); padding: 128px 48px; }
.grp__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 64px; }
.grp__card { background: var(--nj-ink); border-top: 2px solid var(--nj-gold); padding: 32px; }
.grp__card .name { font-family: var(--font-jp-sans); font-weight: 900; font-size: 22px; letter-spacing: .04em; }
.grp__card .name .en { display: block; font-family: var(--font-display); font-size: 14px; letter-spacing: .26em; color: var(--nj-gold); margin-bottom: 6px; font-weight: 400; }
.grp__card .desc { font-family: var(--font-body); font-size: 13px; line-height: 1.85; color: var(--fg-2); margin: 18px 0; }
.grp__card .table { font-family: var(--font-mono); font-size: 12px; color: var(--fg-2); }
.grp__card .table div { display: flex; gap: 12px; padding: 6px 0; border-top: 1px solid rgba(250,248,244,.12); }
.grp__card .table b { width: 64px; color: var(--nj-ash); font-weight: 400; }
@media (max-width: 920px) { .grp { padding: 80px 24px; } .grp__grid { grid-template-columns: 1fr; } }

/* =============================================================
   02 SERVICE  (single-service.php)
   ============================================================= */
.s-hero { background: var(--nj-ink); color: var(--fg-1); padding: 48px 48px 0; position: relative; overflow: hidden; }
.s-hero__breadcrumb { display: flex; gap: 14px; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--nj-ash); margin-bottom: 48px; }
.s-hero__breadcrumb .sep { color: var(--nj-gold); }
.s-hero__inner { display: grid; grid-template-columns: 1.05fr 1fr; gap: 64px; align-items: stretch; }
.s-hero__left { padding: 32px 0 96px; }
.s-hero__num { font-family: var(--font-display); font-size: 14px; letter-spacing: .3em; color: var(--nj-gold); }
.s-hero__num .big { font-size: 56px; letter-spacing: 0; line-height: 1; display:block; color: var(--fg-1); margin-bottom: 12px; }
.s-hero__brand { font-family: var(--font-display); font-size: clamp(52px, 9.5vw, 150px); line-height: .9; letter-spacing: 0; margin: 32px 0 16px; color: var(--fg-1); }
.s-hero__brand .gold { color: var(--nj-gold); }
.s-hero__brand .dash { color: var(--nj-crimson); }
.s-hero__sub { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(28px, 3.4vw, 48px); line-height: 1.15; letter-spacing: .04em; margin: 0 0 28px; }
.s-hero__sub .crimson { color: var(--nj-crimson); }
.s-hero__copy { font-family: var(--font-body); font-size: 16px; line-height: 2; color: var(--fg-2); max-width: 520px; }
.s-hero__copy b { color: var(--fg-1); font-weight: 500; }
.s-hero__chips { display: flex; gap: 8px; margin-top: 32px; flex-wrap: wrap; }
.s-hero__chip { font-family: var(--font-mono); font-size: 11px; letter-spacing: .06em; padding: 6px 12px; border: 1px solid rgba(250,248,244,.2); color: var(--fg-2); }
.s-hero__visual { background: linear-gradient(135deg, #2a2a2a, #0a0a0a); position: relative; min-height: 620px; border: 1px solid rgba(200,166,100,.32); }
.s-hero__visual .eyebrow-abs { position: absolute; left: 24px; top: 24px; font-family: var(--font-display); font-size: 16px; letter-spacing: .32em; color: var(--nj-gold); }
.s-hero__visual .ph-label { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font-family: var(--font-sub-en); font-size: 13px; letter-spacing: .28em; color: rgba(250,248,244,.35); text-align: center; line-height: 2; }
.s-hero__visual .badge { position: absolute; right: 24px; top: 24px; width: 88px; height: 88px; background: var(--nj-crimson); color: var(--fg-1); display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 50%; font-family: var(--font-sub-en); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; line-height: 1.2; text-align: center; }
.s-hero__visual .badge b { font-family: var(--font-display); font-size: 22px; letter-spacing: 0; }
@media (max-width: 920px) { .s-hero { padding: 64px 24px 0; } .s-hero__inner { grid-template-columns: 1fr; gap: 32px; } .s-hero__visual { min-height: 360px; } }

.spec { padding: 128px 48px; background: var(--nj-charcoal); }
.spec__head { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; margin-bottom: 64px; }
.spec__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(250,248,244,.14); border: 1px solid rgba(250,248,244,.14); }
.spec__cell { background: var(--nj-charcoal); padding: 40px 32px; }
.spec__cell .lbl { font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .28em; color: var(--nj-gold); text-transform: uppercase; margin-bottom: 14px; }
.spec__cell .val { font-family: var(--font-display); font-size: 56px; line-height: 1; color: var(--fg-1); letter-spacing: .02em; }
.spec__cell .val small { font-size: 18px; color: var(--fg-2); margin-left: 6px; letter-spacing: .12em; }
.spec__cell .desc { font-family: var(--font-body); font-size: 13px; line-height: 1.7; color: var(--fg-2); margin-top: 12px; }
@media (max-width: 720px) { .spec { padding: 80px 24px; } .spec__grid { grid-template-columns: 1fr; } .spec__head { grid-template-columns: 1fr; gap: 24px; } }

.features { background: var(--nj-paper); color: var(--nj-ink); padding: 128px 48px; }
.features__head { margin-bottom: 80px; }
.feature-list { display: flex; flex-direction: column; gap: 64px; }
.feature { display: grid; grid-template-columns: 160px 1fr 1fr; gap: 48px; padding-bottom: 64px; border-bottom: 1px solid #DCD4C3; }
.feature:last-child { border-bottom: 0; padding-bottom: 0; }
.feature__num { font-family: var(--font-display); font-size: 96px; line-height: 1; color: var(--nj-crimson); letter-spacing: 0; }
.feature__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: 32px; line-height: 1.25; letter-spacing: .04em; margin: 0; }
.feature__title .en { display: block; font-family: var(--font-display); font-size: 16px; letter-spacing: .26em; color: var(--nj-stone); font-weight: 400; margin-bottom: 8px; }
.feature__body { font-family: var(--font-body); font-size: 15px; line-height: 2; color: var(--fg-invert-2); letter-spacing: .04em; }
@media (max-width: 920px) { .features { padding: 80px 24px; } .feature { grid-template-columns: 1fr; gap: 16px; } }

.voice { background: var(--nj-ink); color: var(--fg-1); padding: 128px 48px; }
.voice__head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 64px; }
.voice__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.vcard { background: var(--nj-charcoal); padding: 30px 30px 26px; border-top: 2px solid var(--nj-gold); display:flex; flex-direction:column; }
.vcard__rate { color: var(--nj-gold); font-size: 15px; letter-spacing: 4px; margin-bottom: 14px; }
.vcard__quote { font-family: var(--font-mincho); font-size: 16px; line-height: 2; letter-spacing: .06em; color: var(--fg-1); flex:1; }
.vcard__quote::before { content: none; }
.vcard__src { display: flex; align-items: center; gap: 9px; margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(250,248,244,.14); }
.vcard__ico { flex:0 0 auto; width: 18px; height: 18px; color: var(--nj-gold); }
.vcard__ico svg { width:100%; height:100%; display:block; }
.vcard__srctxt { font-family: var(--font-jp-sans); font-size: 12px; letter-spacing: .04em; color: var(--nj-ash); }
@media (max-width: 920px) { .voice { padding: 80px 24px; } .voice__cards { grid-template-columns: 1fr; } .voice__head { flex-direction: column; align-items: flex-start; gap: 16px; } }

.inq { background: var(--nj-gold); color: var(--nj-ink); padding: 96px 48px; display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: center; }
.inq__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(32px,4vw,56px); line-height: 1.15; letter-spacing: .04em; margin: 0;}
.inq__title .en { display: block; font-family: var(--font-display); font-size: 24px; letter-spacing: .24em; color: rgba(10,10,10,.55); margin-bottom: 8px; }
.inq__actions { display: flex; flex-direction: column; gap: 12px; }
@media (max-width:720px){.inq{padding:64px 24px;grid-template-columns:1fr;gap:32px}}

/* =============================================================
   04 NEWS  (archive-news.php / single-news.php)
   ============================================================= */
.n-hero { background: var(--nj-ink); color: var(--fg-1); padding: 56px 48px 64px; position: relative; overflow: hidden; }
.n-hero__bc { display: flex; gap: 14px; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .24em; color: var(--nj-ash); text-transform: uppercase; margin-bottom: 48px;}
.n-hero__bc .sep { color: var(--nj-gold); }
.n-hero__title { font-family: var(--font-display); font-size: clamp(52px, 11vw, 168px); line-height: .9; margin: 0;}
.n-hero__title .gold { color: var(--nj-gold);}
.n-hero__sub { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(24px,3vw,40px); letter-spacing: .04em; margin: 24px 0 0; }
.n-hero__sub .crimson { color: var(--nj-crimson); }
.n-hero__bg { position: absolute; right: -50px; top: -50px; font-family: var(--font-display); font-size: 480px; line-height: .8; color: rgba(200,166,100,.08); pointer-events: none; }

.n-filter { background: var(--nj-paper); padding: 32px 48px; display: flex; align-items: center; gap: 24px; justify-content: space-between; flex-wrap: wrap; }
.n-filter__cats { display: flex; gap: 8px; flex-wrap: wrap; }
.n-filter__cat { font-family: var(--font-sub-en); font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; padding: 10px 18px; border: 1px solid var(--nj-ink); color: var(--nj-ink); cursor: pointer; border-radius: 2px; transition: background .35s, color .35s; display: inline-block; }
.n-filter__cat:hover { background: var(--nj-ink); color: var(--fg-1); }
.n-filter__cat.is-active { background: var(--nj-ink); color: var(--fg-1); }
.n-filter__cat .badge { color: var(--nj-gold); margin-left: 8px; }
.n-filter__search { display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--nj-ink); padding: 8px 4px; min-width: 240px; }
.n-filter__search input { border: 0; background: transparent; outline: 0; font-family: var(--font-body); font-size: 14px; color: var(--nj-ink); flex: 1; }
.n-filter__search button { border: 0; background: transparent; cursor: pointer; padding: 0; display: inline-flex; }

.n-feat { background: var(--nj-paper); padding: 28px 48px 60px; }
.n-feat__card { display: grid; grid-template-columns: 1.05fr 1fr; gap: 32px; align-items: center; padding: 22px; max-width: 980px; margin: 0 auto; background: var(--nj-ink); color: var(--fg-1); border-top: 4px solid var(--nj-crimson); }
.n-feat__photo { aspect-ratio: 16/10; background-color: #0a0a0a; background-image: linear-gradient(135deg,#3a2a18,#0a0a0a); position: relative; background-size: contain; background-repeat: no-repeat; background-position: center; }
.n-feat__photo.has-img { aspect-ratio: auto; background: none; }
.n-feat__img { display: block; width: 100%; height: auto; }
/* PCは従来どおり「枠に合わせて切り取り」表示 */
@media (min-width: 921px) {
  .n-feat__photo.has-img { aspect-ratio: 16/10; }
  .n-feat__img { height: 100%; object-fit: contain; object-position: center; }
}
.n-feat__photo .ph-label { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font-family: var(--font-sub-en); letter-spacing: .3em; color: rgba(250,248,244,.32); font-size: 12px; }
.n-feat__body { display: flex; flex-direction: column; justify-content: center; padding: 8px 12px; }
.n-feat__meta { display: flex; gap: 14px; align-items: center; font-family: var(--font-mono); font-size: 12px; color: var(--nj-ash); margin-bottom: 14px; }
.n-feat__badge { font-family: var(--font-sub-en); font-size: 10px; font-weight: 700; letter-spacing: .26em; padding: 4px 10px; background: var(--nj-gold); color: var(--nj-ink); }
.n-feat__h { font-family: var(--font-jp-sans); font-weight: 900; font-size: 25px; line-height: 1.4; letter-spacing: .03em; margin: 0 0 16px; }
.n-feat__excerpt { font-family: var(--font-body); font-size: 13.5px; line-height: 1.85; color: var(--fg-2); margin-bottom: 22px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.n-feat__more { font-family: var(--font-sub-en); font-size: 12px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--nj-gold); border-bottom: 1px solid var(--nj-gold); padding-bottom: 4px; display: inline-flex; gap: 12px; align-self: flex-start; }
@media (max-width:920px){.n-feat__card{grid-template-columns:1fr;padding:18px}.n-feat__h{font-size:21px}}

.n-grid { background: var(--nj-paper); padding: 64px 48px 128px; }
.n-grid__inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.n-item { display: flex; flex-direction: column; cursor: pointer; transition: transform .4s var(--ease-out); }
.n-item:hover { transform: translateY(-4px); }
.n-item__photo { aspect-ratio: 4/3; background-color: #0a0a0a; background-image: linear-gradient(135deg,#2a2a2a,#0a0a0a); position: relative; background-size: contain; background-repeat: no-repeat; background-position: center; }
.n-item__photo.has-img { aspect-ratio: auto; background: none; }
.n-item__img { display: block; width: 100%; height: auto; }
/* PCは従来どおり「枠に合わせて切り取り」表示 */
@media (min-width: 921px) {
  .n-item__photo.has-img { aspect-ratio: 4/3; }
  .n-item__img { height: 100%; object-fit: contain; object-position: center; }
}
.n-item__photo--dark { background: linear-gradient(135deg,#2a2a2a,#0a0a0a); }
.n-item__photo--gold { background: linear-gradient(135deg,#8e7340,#c8a664); }
.n-item__photo--crimson { background: linear-gradient(135deg,#8e0a20,#c8102e); }
.n-item__photo .ph-label { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .3em; color: rgba(250,248,244,.45); text-transform: uppercase; }
.n-item__photo--paper .ph-label { color: rgba(10,10,10,.4); }
.n-item__meta { display: flex; gap: 12px; align-items: center; font-family: var(--font-mono); font-size: 12px; color: var(--nj-stone); margin: 18px 0 10px; }
.n-item__cat { font-family: var(--font-sub-en); font-size: 10px; font-weight: 700; letter-spacing: .26em; padding: 4px 10px; }
.n-item__cat--news { background: var(--nj-ink); color: var(--fg-1); }
.n-item__cat--award { background: var(--nj-gold); color: var(--nj-ink); }
.n-item__cat--media { border: 1px solid var(--nj-ink); color: var(--nj-ink); }
.n-item__cat--press { background: var(--nj-crimson); color: var(--fg-1); }
.n-item__cat--event { background: var(--nj-gold-deep); color: var(--fg-1); }
.n-item__title { font-family: var(--font-jp-sans); font-weight: 700; font-size: 17px; line-height: 1.55; letter-spacing: .04em; color: var(--nj-ink); margin: 0; }

.n-pag { display: flex; justify-content: center; gap: 8px; margin-top: 80px; flex-wrap: wrap; }
.n-pag .page-numbers { list-style: none; display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin: 0; padding: 0; }
.n-pag .page-numbers li { display: block; margin: 0; }
.n-pag a, .n-pag span { width: 44px; height: 44px; border: 1px solid var(--nj-ink); color: var(--nj-ink); display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 13px; cursor: pointer; transition: background .35s, color .35s; }
.n-pag a:hover { background: var(--nj-ink); color: var(--fg-1); }
.n-pag .current { background: var(--nj-ink); color: var(--nj-gold); }
@media (max-width:920px){.n-grid__inner{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.n-grid__inner{grid-template-columns:1fr}}

/* single news (記事本文) */
.n-single { background: var(--nj-paper); color: var(--nj-ink); padding: 64px 48px 128px; }
.n-single__inner { max-width: 820px; margin: 0 auto; }
.n-single__meta { display: flex; gap: 14px; align-items: center; font-family: var(--font-mono); font-size: 13px; color: var(--nj-stone); margin-bottom: 24px; }
.n-single__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(28px,3.4vw,44px); line-height: 1.35; letter-spacing: .04em; margin: 0 0 40px; }
.n-single__thumb { display: block; width: auto; max-width: 100%; max-height: 640px; height: auto; margin: 0 auto 48px; }
.n-single__body { font-family: var(--font-body); font-size: 16px; line-height: 2.05; letter-spacing: .04em; color: var(--fg-invert-2); }
.n-single__body p { margin: 0 0 24px; }
.n-single__body h2 { font-size: 28px; margin: 48px 0 20px; }
.n-single__body h3 { font-size: 22px; margin: 40px 0 16px; }
.n-single__body img { margin: 24px 0; }
.n-single__back { margin-top: 64px; }
@media (max-width:720px){ .n-single { padding: 48px 24px 96px; } }

/* =============================================================
   05 RECRUIT  (page-recruit.php)
   ============================================================= */
.r-hero { background: var(--nj-ink); color: var(--fg-1); position: relative; overflow: hidden; min-height: 760px; }
.r-hero__inner { padding: 56px 48px 64px; display: grid; grid-template-columns: 1.1fr 1fr; gap: 64px; }
.r-hero__bc { display: flex; gap: 14px; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .24em; color: var(--nj-ash); text-transform: uppercase; margin-bottom: 48px; }
.r-hero__bc .sep { color: var(--nj-gold); }
.r-hero__eb { font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .32em; text-transform: uppercase; color: var(--nj-gold); display: inline-flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.r-hero__eb::before { content: ''; width: 48px; height: 1.5px; background: var(--nj-gold); }
.r-hero__title { font-family: var(--font-display); font-size: clamp(52px, 11vw, 168px); line-height: .88; margin: 0; }
.r-hero__title .gold { color: var(--nj-gold); }
.r-hero__sub { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(32px,3.8vw,56px); line-height: 1.2; letter-spacing: .04em; margin: 32px 0 0; }
.r-hero__sub .crimson { color: var(--nj-crimson); }
.r-hero__copy { font-family: var(--font-body); font-size: 16px; line-height: 2; color: var(--fg-2); max-width: 460px; margin-top: 32px; }
.r-hero__photo { background: linear-gradient(135deg,#3a2a18,#0a0a0a); position: relative; }
.r-hero__photo::after { content: 'TEAM PHOTO'; position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .3em; color: rgba(250,248,244,.32);}
.r-hero__photo::before { content:''; position: absolute; inset: 24px; border: 1px solid rgba(200,166,100,.42); }
@media (max-width:920px){.r-hero__inner{grid-template-columns:1fr;padding:64px 24px}.r-hero__photo{min-height:320px}}

.r-band { background: var(--nj-crimson); color: var(--fg-1); padding: 56px 48px; text-align: center; font-family: var(--font-mincho); font-weight: 600; font-size: clamp(28px,3.4vw,48px); line-height: 1.5; letter-spacing: .12em; }
.r-band small { display: block; font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .3em; color: rgba(255,255,255,.7); margin-top: 18px; }

.r-why { background: var(--nj-paper); color: var(--nj-ink); padding: 128px 48px; }
.r-why__head { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-bottom: 80px; }
.r-why__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 48px; }
.r-why__card { display: flex; flex-direction: column; }
.r-why__num { font-family: var(--font-display); font-size: 96px; line-height: 1; color: var(--nj-crimson); letter-spacing: 0; }
.r-why__ti { font-family: var(--font-jp-sans); font-weight: 900; font-size: 26px; line-height: 1.3; letter-spacing: .04em; margin: 32px 0 16px; }
.r-why__ti .en { display: block; font-family: var(--font-sub-en); font-size: 12px; font-weight: 500; letter-spacing: .28em; color: var(--nj-stone); text-transform: uppercase; margin-bottom: 6px; }
.r-why__body { font-family: var(--font-body); font-size: 14px; line-height: 1.95; color: var(--fg-invert-2); }
@media (max-width:920px){.r-why{padding:80px 24px}.r-why__head, .r-why__grid{grid-template-columns:1fr;gap:24px}}

.r-pos { background: var(--nj-ink); color: var(--fg-1); padding: 128px 48px; }
.r-pos__head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 64px; }
.r-pos__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.r-pos-item { display: grid; grid-template-columns: 80px 240px 1fr 280px 24px; gap: 32px; padding: 32px 0; border-top: 1px solid rgba(250,248,244,.14); align-items: center; transition: padding .4s var(--ease-out), background .4s var(--ease-out); cursor: pointer; }
.r-pos-item:hover { padding-left: 24px; background: rgba(250,248,244,.03); }
.r-pos-item:last-child { border-bottom: 1px solid rgba(250,248,244,.14); }
.r-pos-item__num { font-family: var(--font-display); font-size: 36px; color: var(--nj-gold); letter-spacing: .04em; }
.r-pos-item__cat { font-family: var(--font-sub-en); font-size: 11px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--nj-ash); }
.r-pos-item__cat b { display: block; color: var(--fg-1); font-family: var(--font-jp-sans); font-weight: 700; font-size: 19px; letter-spacing: .04em; margin-top: 6px; }
.r-pos-item__desc { font-family: var(--font-body); font-size: 13px; line-height: 1.8; color: var(--fg-2); }
.r-pos-item__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.r-pos-item__tag { font-family: var(--font-mono); font-size: 10px; padding: 4px 10px; border: 1px solid rgba(250,248,244,.32); color: var(--fg-2); }
.r-pos-item__arrow { font-family: var(--font-display); font-size: 24px; color: var(--nj-gold); }
@media (max-width:920px){.r-pos{padding:80px 24px}.r-pos-item{grid-template-columns: 1fr; gap: 8px}.r-pos-item__arrow{display:none}}

.r-flow { background: var(--nj-paper); color: var(--nj-ink); padding: 128px 48px; }
.r-flow__head { margin-bottom: 64px; }
.r-flow__steps { display: grid; grid-template-columns: repeat(5,1fr); gap: 0; }
.r-step { padding: 0 20px; text-align: center; position: relative; }
.r-step__icon { width: 64px; height: 64px; margin: 0 auto 20px; border-radius: 50%; border: 1.5px solid var(--nj-gold); background: #fff; color: var(--nj-gold-deep); display: flex; align-items: center; justify-content: center; position: relative; z-index: 2; }
.r-step__icon svg { width: 30px; height: 30px; }
/* ステップをつなぐ横線（時系列） */
.r-step::before { content: ''; position: absolute; top: 32px; left: -50%; width: 100%; height: 1.5px; background: repeating-linear-gradient(90deg, var(--nj-gold) 0 8px, transparent 8px 16px); z-index: 1; }
.r-step:first-child::before { display: none; }
.r-step__num { font-family: var(--font-display); font-size: 32px; line-height: 1; color: var(--nj-crimson); letter-spacing: 0; }
.r-step__ti { font-family: var(--font-jp-sans); font-weight: 900; font-size: 17px; letter-spacing: .04em; margin: 8px 0 8px; }
.r-step__ti .en { display: block; font-family: var(--font-sub-en); font-size: 11px; font-weight: 500; letter-spacing: .22em; color: var(--nj-stone); text-transform: uppercase; margin-bottom: 4px; }
.r-step__desc { font-family: var(--font-body); font-size: 13px; line-height: 1.7; color: var(--fg-invert-2); }
@media (max-width:920px){.r-flow{padding:80px 24px}.r-flow__steps{grid-template-columns:1fr;gap:8px;text-align:left}.r-step{display:grid;grid-template-columns:64px 1fr;gap:20px;align-items:start;padding:16px 0}.r-step__icon{margin:0}.r-step__num{grid-column:2}.r-step__ti,.r-step__desc{grid-column:2}.r-step::before{display:none}}

.r-cta { background: var(--nj-gold); color: var(--nj-ink); padding: 96px 48px; display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px; align-items: center; }
.r-cta__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(32px,4.2vw,64px); line-height: 1.15; letter-spacing: .04em; margin: 0; }
.r-cta__title .en { display: block; font-family: var(--font-display); font-size: 24px; letter-spacing: .24em; color: rgba(10,10,10,.55); margin-bottom: 8px; }
.r-cta__actions { display:flex; flex-direction:column; gap:12px; }
@media (max-width:720px){.r-cta{padding:64px 24px;grid-template-columns:1fr;gap:32px}}

/* =============================================================
   06 CONTACT  (page-contact.php)
   ============================================================= */
.c-hero { background: var(--nj-ink); color: var(--fg-1); padding: 56px 48px 64px; position: relative; overflow: hidden; }
.c-hero__bg { position: absolute; right: -100px; top: -140px; font-family: var(--font-display); font-size: 720px; line-height: .8; color: rgba(200,166,100,.06); pointer-events: none; }
.c-hero__inner { position: relative; max-width: 1200px; }
.c-hero__bc { display: flex; gap: 14px; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .24em; color: var(--nj-ash); text-transform: uppercase; margin-bottom: 48px; }
.c-hero__bc .sep { color: var(--nj-gold); }
.c-hero__title { font-family: var(--font-display); font-size: clamp(52px, 11vw, 168px); line-height: .88; margin: 0; }
.c-hero__title .gold { color: var(--nj-gold); }
.c-hero__sub { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(24px,3.2vw,40px); line-height: 1.3; letter-spacing: .04em; margin: 32px 0 0; }
.c-hero__sub .crimson { color: var(--nj-crimson); }

.c-body { background: var(--nj-paper); color: var(--nj-ink); padding: 128px 48px; }
.c-grid { display: grid; grid-template-columns: 1.7fr 1fr; gap: 80px; align-items: flex-start; }
.c-intro { font-family: var(--font-body); font-size: 15px; line-height: 1.95; color: var(--fg-invert-2); margin: 0 0 48px; max-width: 640px; line-break: strict; word-break: auto-phrase; overflow-wrap: normal; }
.nj-nowrap { white-space: nowrap; }
.c-intro b { color: var(--nj-ink); font-weight: 500; }
.c-tabs { display: flex; gap: 0; margin-bottom: 32px; border-bottom: 1px solid #DCD4C3; flex-wrap: wrap; }
.c-tab { font-family: var(--font-sub-en); font-size: 12px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; padding: 18px 28px; color: var(--nj-stone); border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; transition: color .35s, border-color .35s; background: none; }
.c-tab.is-active { color: var(--nj-ink); border-color: var(--nj-crimson); }
.c-tab .badge { font-family: var(--font-mono); font-size: 10px; color: var(--nj-stone); margin-right: 8px; }
.c-tab.is-active .badge { color: var(--nj-crimson); }

.c-form { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.c-field { display: flex; flex-direction: column; gap: 8px; }
.c-field--wide { grid-column: 1 / -1; }
.c-field__label { font-family: var(--font-jp-sans); font-size: 13px; font-weight: 500; letter-spacing: .06em; color: var(--nj-ink); display: flex; gap: 8px; align-items: center; }
.c-field__req { font-family: var(--font-sub-en); font-size: 9px; font-weight: 700; letter-spacing: .2em; color: #FFF; background: var(--nj-crimson); padding: 3px 6px; border-radius: 2px; }
.c-field__opt { font-family: var(--font-sub-en); font-size: 9px; font-weight: 700; letter-spacing: .2em; color: var(--nj-stone); background: var(--nj-mist); padding: 3px 6px; border-radius: 2px; }
.c-input,.c-textarea,.c-select { padding: 16px 18px; border: 1px solid #DCD4C3; background: #FFF; font-family: var(--font-body); font-size: 15px; color: var(--nj-ink); border-radius: 2px; outline: 0; transition: border-color .25s, box-shadow .25s; width: 100%; }
.c-input:focus,.c-textarea:focus,.c-select:focus { border-color: var(--nj-ink); box-shadow: 0 0 0 3px rgba(200,166,100,.28); }
.c-textarea { resize: vertical; min-height: 160px; line-height: 1.85; }
.c-select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230A0A0A' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; padding-right: 44px;}
.c-radio-group { display: flex; gap: 12px; flex-wrap: wrap; }
.c-radio { display: flex; gap: 10px; align-items: center; cursor: pointer; padding: 14px 20px; border: 1px solid #DCD4C3; border-radius: 2px; font-family: var(--font-body); font-size: 14px; color: var(--nj-ink); background: #FFF; transition: border-color .25s, background .25s; }
.c-radio.is-active { border-color: var(--nj-ink); background: var(--nj-ink); color: var(--fg-1); }
.c-radio input { accent-color: var(--nj-crimson); margin: 0; }
.c-consent { grid-column: 1 / -1; display: flex; gap: 12px; align-items: flex-start; padding: 20px; background: #FFF; border: 1px solid #DCD4C3; }
.c-consent input { margin-top: 4px; accent-color: var(--nj-crimson); }
.c-consent label { font-family: var(--font-body); font-size: 13px; line-height: 1.85; color: var(--fg-invert-2); }
.c-consent label a { color: var(--nj-crimson); border-bottom: 1px solid var(--nj-crimson); }
.c-actions { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; margin-top: 24px; }
.c-step { font-family: var(--font-mono); font-size: 12px; color: var(--nj-stone); }
.c-step .strong { color: var(--nj-ink); font-family: var(--font-display); font-size: 20px; letter-spacing: .04em; }
@media (max-width:920px) { .c-body { padding: 80px 24px; } .c-grid { grid-template-columns: 1fr; gap: 48px; } .c-form { grid-template-columns: 1fr; } .c-actions { flex-direction: column; gap: 20px; align-items: stretch; } }

.c-side { background: var(--nj-ink); color: var(--fg-1); padding: 40px 32px; }
.c-side__lbl { font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .28em; color: var(--nj-gold); text-transform: uppercase; margin-bottom: 18px; }
.c-side__row { display: flex; gap: 16px; align-items: flex-start; padding: 24px 0; border-top: 1px solid rgba(250,248,244,.14); }
.c-side__row:last-of-type { border-bottom: 1px solid rgba(250,248,244,.14); }
.c-side__row img { width: 22px; height: 22px; opacity: .8; margin-top: 4px; flex: none; filter: invert(86%) sepia(20%) saturate(420%) hue-rotate(2deg) brightness(95%); }
.c-side__row b { display: block; font-family: var(--font-jp-sans); font-weight: 700; font-size: 13px; letter-spacing: .12em; color: var(--fg-1); margin-bottom: 6px; }
.c-side__row .v { font-family: var(--font-body); font-size: 14px; line-height: 1.85; color: var(--fg-2); }
.c-side__row .v.big { font-family: var(--font-display); font-size: 32px; letter-spacing: .04em; color: var(--fg-1); line-height: 1; margin-bottom: 6px; }
.c-side__hours { font-family: var(--font-mono); font-size: 12px; color: var(--nj-ash); margin-top: 6px; }
.c-map { aspect-ratio: 1/1; background: linear-gradient(135deg,#1c1c1c,#0a0a0a); margin-top: 24px; position: relative; overflow: hidden; }
.c-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.c-map__label { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .3em; color: rgba(250,248,244,.42);}
.c-map .pin { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-100%); width: 14px; height: 14px; background: var(--nj-crimson); border-radius: 50%; box-shadow: 0 0 0 6px rgba(200,16,46,.22); }

/* Contact Form 7 を使う場合の最低限の橋渡し（任意） */
.c-form .wpcf7-not-valid-tip { color: var(--nj-crimson); font-size: 12px; }
.c-form .wpcf7-response-output { grid-column: 1/-1; border: 1px solid #DCD4C3; padding: 16px; font-size: 13px; }

/* =============================================================
   CEO  (page-ceo.php)
   ============================================================= */
.ceo-hero { background: var(--nj-ink); color: var(--fg-1); padding: 56px 48px 0; position: relative; overflow: hidden; }
.ceo-hero__bg { position: absolute; right: -60px; top: -40px; font-family: var(--font-mincho); font-weight: 800; font-size: 720px; line-height: .82; color: rgba(200,166,100,.06); pointer-events: none; user-select: none; }
.ceo-hero__inner { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 64px; align-items: stretch; }
.ceo-hero__main { padding: 24px 0 80px; }
.ceo-hero__eyebrow { font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .32em; text-transform: uppercase; color: var(--nj-gold); margin: 24px 0 24px; }
.ceo-hero__en { font-family: var(--font-display); font-size: clamp(40px, 7vw, 110px); line-height: .88; letter-spacing: .02em; margin: 0 0 8px; }
.ceo-hero__en .gold { color: var(--nj-gold); }
.ceo-hero__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(32px, 4.4vw, 64px); line-height: 1.15; letter-spacing: .04em; margin: 16px 0 0; }
.ceo-hero__title .crimson { color: var(--nj-crimson); }
.ceo-hero__copy { font-family: var(--font-body); font-size: 16px; line-height: 2; letter-spacing: .04em; color: var(--fg-2); max-width: 560px; margin: 32px 0 0; }
.ceo-hero__sig { margin-top: 36px; padding-left: 18px; border-left: 2px solid var(--nj-crimson); }
.ceo-hero__sig .lbl { font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .28em; color: var(--nj-stone); }
.ceo-hero__sig b { display: block; font-family: var(--font-jp-sans); font-weight: 700; font-size: 24px; letter-spacing: .12em; margin: 6px 0 4px; }
.ceo-hero__sig small { font-family: var(--font-body); font-size: 12px; color: var(--fg-2); letter-spacing: .06em; }
.ceo-hero__photo { align-self: stretch; min-height: 520px; border: 1px solid rgba(200,166,100,.32); position: relative; margin-bottom: 0; }
.ceo-stats { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: rgba(250,248,244,.14); border-top: 1px solid rgba(250,248,244,.14); }
.ceo-stat { background: var(--nj-ink); padding: 32px 24px; text-align: left; }
.ceo-stat .num { font-family: var(--font-display); font-size: clamp(40px, 5vw, 72px); line-height: 1; color: var(--nj-gold); letter-spacing: .02em; }
.ceo-stat .num small { font-size: 24px; color: var(--fg-1); margin-left: 2px; }
.ceo-stat .lbl { font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--nj-ash); margin-top: 10px; }
@media (max-width: 920px) {
  .ceo-hero { padding: 64px 24px 0; }
  .ceo-hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .ceo-hero__photo { min-height: 360px; }
  .ceo-stats { grid-template-columns: 1fr 1fr; }
}

.ceo-prof { background: var(--nj-paper); color: var(--nj-ink); padding: 128px 48px; }
.ceo-prof__head { margin-bottom: 56px; }
.ceo-prof__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 64px; align-items: start; }
.ceo-prof__lead p { font-family: var(--font-body); font-size: 16px; line-height: 2.1; letter-spacing: .06em; color: var(--fg-invert-2); margin: 0 0 24px; }
.ceo-prof__table { font-family: var(--font-body); }
.ceo-prof__table div { display: flex; gap: 16px; padding: 16px 0; border-top: 1px solid #DCD4C3; }
.ceo-prof__table div:last-child { border-bottom: 1px solid #DCD4C3; }
.ceo-prof__table b { width: 96px; flex: none; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--nj-stone); padding-top: 3px; }
.ceo-prof__table span { font-size: 15px; color: var(--nj-ink); letter-spacing: .04em; }
@media (max-width: 920px) { .ceo-prof { padding: 80px 24px; } .ceo-prof__grid { grid-template-columns: 1fr; gap: 40px; } }

.ceo-story { background: var(--nj-ink); color: var(--fg-1); padding: 128px 48px; }
.ceo-story__head { margin-bottom: 64px; }
.ceo-story__list { position: relative; padding-left: 32px; }
.ceo-story__list::before { content:''; position: absolute; left: 6px; top: 16px; bottom: 16px; width: 2px; background: var(--nj-gold); }
.ceo-story__item { display: grid; grid-template-columns: 160px 1fr; gap: 32px; padding: 28px 0; border-bottom: 1px solid rgba(250,248,244,.14); position: relative; }
.ceo-story__item:last-child { border-bottom: 0; }
.ceo-story__item::before { content:''; position: absolute; left: -33px; top: 34px; width: 14px; height: 14px; background: var(--nj-crimson); border-radius: 50%; box-shadow: 0 0 0 4px var(--nj-ink); }
.ceo-story__item .yr { font-family: var(--font-display); font-size: 28px; color: var(--nj-gold); letter-spacing: .08em; line-height: 1.1; }
.ceo-story__item .yr small { display: block; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .22em; color: var(--nj-stone); text-transform: uppercase; margin-top: 6px; }
.ceo-story__item .bd { font-family: var(--font-body); font-size: 14px; line-height: 1.85; color: var(--fg-2); }
.ceo-story__item .bd b { display: block; font-family: var(--font-jp-sans); font-weight: 900; font-size: 19px; color: var(--fg-1); letter-spacing: .04em; margin-bottom: 6px; }
@media (max-width: 720px) { .ceo-story { padding: 80px 24px; } .ceo-story__item { grid-template-columns: 1fr; gap: 8px; } }
/* ===== CEO BOOK / 著書 ===== */
.ceo-book { background: var(--nj-ink); padding: 128px 48px; }
.ceo-book__inner { display: grid; grid-template-columns: 340px 1fr; gap: 72px; align-items: center; }
.ceo-book__body { max-width: 820px; }
.ceo-book__media img { width: 100%; height: auto; display: block; border: 1px solid rgba(200,166,100,.32); box-shadow: 0 30px 70px rgba(0,0,0,.55); }
.ceo-book__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: 40px; color: var(--fg-1); letter-spacing: .05em; line-height: 1.2; margin: 16px 0 20px; }
.ceo-book__title .en { display: block; font-family: var(--font-display); font-size: 19px; letter-spacing: .14em; color: var(--nj-gold); font-weight: 400; margin-bottom: 10px; }
.ceo-book__lead { font-family: var(--font-jp-sans); font-weight: 700; font-size: 16px; line-height: 1.75; color: var(--nj-gold); margin: 0 0 18px; }
.ceo-book__desc { font-family: var(--font-body); font-size: 14px; line-height: 1.95; color: var(--fg-2); margin: 0 0 26px; }
.ceo-book__meta { display: flex; gap: 44px; margin: 0; padding-top: 22px; border-top: 1px solid rgba(250,248,244,.14); }
.ceo-book__meta dt { font-family: var(--font-sub-en); font-size: 10px; letter-spacing: .22em; color: var(--nj-stone); margin-bottom: 6px; }
.ceo-book__meta dd { font-family: var(--font-jp-sans); font-size: 14px; color: var(--fg-1); margin: 0; }
@media (max-width: 820px) {
  .ceo-book { padding: 72px 24px; }
  .ceo-book__inner { grid-template-columns: 1fr; gap: 32px; }
  .ceo-book__media { max-width: 240px; margin: 0 auto; }
  .ceo-book__title { font-size: 32px; }
  .ceo-book__meta { gap: 32px; }
}
/* ===== CEO GALLERY / ギャラリー ===== */
.ceo-gallery { background: var(--nj-ink); padding: 128px 48px; }
.ceo-gallery__head { margin-bottom: 56px; }
.ceo-gallery__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ceo-gallery__item { position: relative; aspect-ratio: 1 / 1; background: #111 center / cover no-repeat; border: 1px solid rgba(200,166,100,.14); padding: 0; cursor: pointer; overflow: hidden; filter: grayscale(.12); transition: transform .55s var(--ease-out), filter .55s ease; }
.ceo-gallery__item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.4)); opacity: 0; transition: opacity .4s; }
.ceo-gallery__item:hover { transform: scale(1.04); filter: grayscale(0); }
.ceo-gallery__item:hover::after { opacity: 1; }
.ceo-gallery__lb { position: fixed; inset: 0; z-index: 9999; background: rgba(8,8,8,.94); display: none; align-items: center; justify-content: center; }
.ceo-gallery__lb.is-open { display: flex; }
.ceo-gallery__lb-img { max-width: 90vw; max-height: 88vh; object-fit: contain; box-shadow: 0 20px 80px rgba(0,0,0,.6); }
.ceo-gallery__lb-close { position: absolute; top: 22px; right: 28px; background: none; border: 0; color: #fff; font-size: 40px; line-height: 1; cursor: pointer; opacity: .82; }
.ceo-gallery__lb-nav { position: absolute; top: 50%; transform: translateY(-50%); background: none; border: 0; color: #fff; font-size: 54px; line-height: 1; cursor: pointer; opacity: .72; padding: 0 20px; }
.ceo-gallery__lb-prev { left: 8px; }
.ceo-gallery__lb-next { right: 8px; }
.ceo-gallery__lb-close:hover, .ceo-gallery__lb-nav:hover { opacity: 1; }
@media (max-width: 720px) {
  .ceo-gallery { padding: 72px 20px; }
  .ceo-gallery__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .ceo-gallery__lb-nav { font-size: 38px; padding: 0 8px; }
  .ceo-gallery__lb-close { top: 14px; right: 16px; }
}

.ceo-media { background: var(--nj-charcoal); color: var(--fg-1); padding: 120px 48px; }
.ceo-media__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ceo-media__card { background: var(--nj-ink); border-top: 2px solid var(--nj-gold); padding: 32px; display: flex; flex-direction: column; gap: 12px; transition: transform .35s var(--ease-out); }
.ceo-media__card:hover { transform: translateY(-4px); }
.ceo-media__outlet { font-family: var(--font-jp-sans); font-weight: 700; font-size: 15px; letter-spacing: .06em; color: var(--fg-1); }
.ceo-media__ttl { font-family: var(--font-body); font-size: 14px; line-height: 1.7; color: var(--fg-2); margin: 0; }
.ceo-media__date { font-family: var(--font-mono); font-size: 12px; color: var(--nj-ash); margin-top: auto; }
@media (max-width: 920px) { .ceo-media { padding: 80px 24px; } .ceo-media__cards { grid-template-columns: 1fr; } }

/* =============================================================
   MEDIA バッジ（共通）
   ============================================================= */
.m-badge { font-family: var(--font-sub-en); font-size: 10px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; padding: 4px 10px; display: inline-block; line-height: 1.4; }
.m-badge--youtube { background: var(--nj-crimson); color: #fff; }
.m-badge--tv      { background: var(--nj-ink); color: var(--nj-gold); border: 1px solid var(--nj-gold); }
.m-badge--video   { background: var(--nj-ink); color: #fff; }
.m-badge--press   { background: var(--nj-gold); color: var(--nj-ink); }
.m-badge--magazine{ background: transparent; color: var(--nj-ink); border: 1px solid var(--nj-ink); }
.m-badge--web     { background: transparent; color: var(--nj-stone); border: 1px solid #DCD4C3; }
.ceo-media__badge { align-self: flex-start; }

/* =============================================================
   MEDIA HUB  (archive-media.php / single-media.php)
   ============================================================= */
.m-hero { background: var(--nj-ink); color: var(--fg-1); padding: 56px 48px 64px; position: relative; overflow: hidden; }
.m-hero__bg { position: absolute; right: -50px; top: -50px; font-family: var(--font-display); font-size: 480px; line-height: .8; color: rgba(200,166,100,.08); pointer-events: none; }
.m-hero__bc { display: flex; gap: 14px; font-family: var(--font-sub-en); font-size: 11px; letter-spacing: .24em; color: var(--nj-ash); text-transform: uppercase; margin-bottom: 48px; }
.m-hero__bc .sep { color: var(--nj-gold); }
.m-hero__title { font-family: var(--font-display); font-size: clamp(52px, 11vw, 168px); line-height: .9; margin: 0; }
.m-hero__title .gold { color: var(--nj-gold); }
.m-hero__sub { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(24px,3vw,40px); letter-spacing: .04em; margin: 24px 0 0; }
.m-hero__sub .crimson { color: var(--nj-crimson); }
.m-hero__lead { font-family: var(--font-body); font-size: 15px; line-height: 1.95; color: var(--fg-2); max-width: 640px; margin: 24px 0 0; }

.m-embed { position: relative; width: 100%; aspect-ratio: 16/9; background: #000; overflow: hidden; }
.m-embed iframe, .m-embed embed, .m-embed object, .m-embed video { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border: 0; }
.m-embed--ph { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg,#2a2a2a,#0a0a0a); border: 1px solid rgba(200,166,100,.32); }
.m-embed--ph span { font-family: var(--font-sub-en); font-size: 13px; letter-spacing: .3em; color: var(--nj-gold); }

.m-feat { background: var(--nj-ink); color: var(--fg-1); padding: 0 48px 96px; display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; }
.m-feat__body {}
.m-feat__meta { display: flex; gap: 14px; align-items: center; font-family: var(--font-mono); font-size: 12px; color: var(--nj-ash); margin-bottom: 20px; flex-wrap: wrap; }
.m-feat__ttl { font-family: var(--font-jp-sans); font-weight: 900; font-size: clamp(24px,2.6vw,36px); line-height: 1.35; letter-spacing: .04em; margin: 0 0 20px; }
.m-feat__exc { font-family: var(--font-body); font-size: 14px; line-height: 1.95; color: var(--fg-2); margin: 0 0 28px; }
.m-feat__more { font-family: var(--font-sub-en); font-size: 12px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--nj-gold); border-bottom: 1px solid var(--nj-gold); padding-bottom: 4px; }
@media (max-width: 920px) { .m-feat { grid-template-columns: 1fr; padding: 0 24px 64px; gap: 28px; } }

.m-videos { background: var(--nj-paper); color: var(--nj-ink); padding: 96px 48px; }
.m-videos__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.m-card { display: flex; flex-direction: column; transition: transform .35s var(--ease-out); }
.m-card:hover { transform: translateY(-4px); }
.m-card__thumb { position: relative; aspect-ratio: 16/9; background-size: cover; background-position: center; }
.m-press .m-card__thumb { aspect-ratio: 3 / 4; background-size: cover; background-position: center top; box-shadow: 0 14px 34px rgba(10,10,10,.18); border: 1px solid rgba(10,10,10,.06); }
.m-press .m-card__ttl { margin-top: 4px; }
.m-card__thumb--ph { background: linear-gradient(135deg,#2a2a2a,#0a0a0a); }
.m-card__thumb .m-badge { position: absolute; left: 12px; top: 12px; }
.m-card__play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 56px; height: 56px; border-radius: 50%; background: rgba(200,16,46,.92); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; }
.m-card__meta { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 12px; color: var(--nj-stone); margin: 16px 0 8px; }
.m-card__ttl { font-family: var(--font-jp-sans); font-weight: 700; font-size: 16px; line-height: 1.55; letter-spacing: .04em; color: var(--nj-ink); margin: 0; }
@media (max-width: 920px) { .m-videos { padding: 80px 24px; } .m-videos__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .m-videos__grid { grid-template-columns: 1fr; } }

.m-press { background: var(--nj-paper-2); color: var(--nj-ink); padding: 96px 48px 128px; }
.m-press__list { display: flex; flex-direction: column; }
.m-press__row { display: grid; grid-template-columns: 120px 96px 160px 1fr 24px; gap: 24px; align-items: center; padding: 22px 0; border-top: 1px solid #DCD4C3; transition: padding .35s var(--ease-out), background .35s var(--ease-out); }
.m-press__row:last-child { border-bottom: 1px solid #DCD4C3; }
.m-press__row:hover { padding-left: 12px; background: rgba(10,10,10,.02); }
.m-press__date { font-family: var(--font-mono); font-size: 13px; color: var(--nj-stone); }
.m-press__outlet { font-family: var(--font-jp-sans); font-weight: 700; font-size: 14px; color: var(--nj-ink); }
.m-press__ttl { font-family: var(--font-body); font-size: 14px; color: var(--fg-invert-2); letter-spacing: .04em; }
.m-press__arrow { font-family: var(--font-mono); color: var(--nj-stone); justify-self: end; }
@media (max-width: 920px) { .m-press { padding: 80px 24px; } .m-press__row { grid-template-columns: 1fr; gap: 6px; } .m-press__arrow { display: none; } }

/* generic page.php */
.nj-generic { background: var(--nj-paper); color: var(--nj-ink); padding: 128px 48px; }
.nj-generic__inner { max-width: 820px; margin: 0 auto; }
.nj-generic__inner h1 { margin-bottom: 32px; }
.nj-generic__inner p { font-family: var(--font-body); line-height: 2; color: var(--fg-invert-2); margin: 0 0 24px; }
@media (max-width:720px){ .nj-generic { padding: 80px 24px; } }

/* =============================================================
   BUSINESS 事業一覧（archive-service.php）
   ============================================================= */
.biz-hero { background: var(--nj-ink); color: var(--fg-1); padding: 64px 48px 72px; position: relative; overflow: hidden; }
.biz-hero__bg { position: absolute; right: -40px; top: -130px; font-family: var(--font-mincho); font-weight: 800; font-size: 560px; line-height: .8; color: rgba(200,166,100,.06); pointer-events: none; user-select: none; }
.biz-hero__inner { position: relative; }
.biz-hero .s-hero__breadcrumb { margin-bottom: 40px; }
.biz-hero__en { font-family: var(--font-display); font-size: clamp(48px, 10vw, 150px); line-height: .9; letter-spacing: .02em; margin: 18px 0 0; color: var(--fg-1); }
.biz-hero__en .gold { color: var(--nj-gold); }
.biz-hero__copy { font-family: var(--font-body); font-size: 17px; line-height: 1.95; letter-spacing: .04em; color: var(--fg-2); max-width: 680px; margin: 28px 0 0; }

.biz { background: var(--nj-ink); padding: 8px 48px 140px; }
.biz-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.biz-card { display: flex; flex-direction: column; background: var(--nj-charcoal); border: 1px solid rgba(200,166,100,.22); text-decoration: none; overflow: hidden; transition: transform .4s var(--ease-out), border-color .4s var(--ease-out); }
.biz-card:hover { transform: translateY(-6px); border-color: var(--nj-gold); }
.biz-card__media { position: relative; aspect-ratio: 16 / 10; background: linear-gradient(135deg, #2a2a2a, #0a0a0a); background-size: cover; background-position: center; }
.biz-card__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,10,10,.05) 0%, rgba(10,10,10,.6) 100%); }
.biz-card__tag { position: absolute; left: 26px; top: 22px; z-index: 2; font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .3em; text-transform: uppercase; color: var(--nj-gold); }
.biz-card__no { position: absolute; left: 24px; bottom: 14px; z-index: 2; font-family: var(--font-display); font-size: 64px; line-height: 1; color: var(--nj-gold); letter-spacing: .02em; }
.biz-card__ph { position: absolute; left: 50%; top: 48%; transform: translate(-50%,-50%); z-index: 1; font-family: var(--font-display); font-size: 22px; letter-spacing: .24em; color: rgba(250,248,244,.42); text-align: center; }
.biz-card__body { padding: 32px 32px 36px; display: flex; flex-direction: column; flex: 1; }
.biz-card__title { font-family: var(--font-jp-sans); font-weight: 900; font-size: 28px; line-height: 1.25; letter-spacing: .04em; color: var(--fg-1); margin: 0; }
.biz-card__sub { font-family: var(--font-jp-sans); font-weight: 700; font-size: 15px; letter-spacing: .08em; color: var(--nj-gold); margin: 10px 0 0; }
.biz-card__desc { font-family: var(--font-body); font-size: 14px; line-height: 1.95; letter-spacing: .04em; color: var(--fg-2); margin: 16px 0 24px; }
.biz-card__more { margin-top: auto; font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .26em; text-transform: uppercase; color: var(--nj-gold); display: inline-flex; align-items: center; gap: 10px; }
.biz-card__more span { transition: transform .35s var(--ease-out); }
.biz-card:hover .biz-card__more span { transform: translateX(6px); }
@media (max-width: 920px) {
  .biz-hero { padding: 88px 24px 56px; }
  .biz-hero__bg { font-size: 300px; top: -70px; }
  .biz { padding: 8px 24px 96px; }
  .biz-grid { grid-template-columns: 1fr; gap: 20px; }
}

/* =============================================================
   フッター修正（アイコン可視化 / EN・JP余白 / 固定CTA重なり）
   ============================================================= */
/* ① ソーシャルアイコンを視認できる色に（暗背景で白、ホバー時は金背景に黒） */
.nj-footer__socials a img { width: 16px; height: 16px; filter: brightness(0) invert(1); opacity: .7; transition: opacity .3s var(--ease-out), filter .3s var(--ease-out); }
.nj-footer__socials a:hover img { filter: brightness(0); opacity: 1; }
/* ② 英字ラベルと日本語の間に余白（COMPANY/CONTACT/SERVICE 共通） */
.nj-footer__col li a { display: flex; gap: 10px; color: inherit; text-decoration: none; transition: color .3s var(--ease-out); }
.nj-footer__col li a:hover { color: var(--nj-gold); }
@media (max-width: 560px) {
  .nj-footer__col li a { flex-direction: column; gap: 3px; }
  .nj-footer__col li .en { width: auto; padding-top: 0; }
}
/* ③ 固定CONTACTボタンがフッターに重ならないよう、フッターを前面に */
.nj-footer { z-index: 70; }

/* =============================================================
   NR-NINE 詳細ページ（template-parts/service-nr-nine.php）
   ============================================================= */
.nr-problem,.nr-mech,.nr-app,.nr-why,.nr-faq{background:var(--nj-paper);color:var(--nj-ink);padding:112px 48px;}
.nr-concept,.nr-tech,.nr-support{background:var(--nj-ink);color:var(--fg-1);padding:112px 48px;}
.nr-stats{background:var(--nj-charcoal);color:var(--fg-1);padding:96px 48px;}
.nr-sec__head{margin-bottom:48px;}
.nr-sec__head .section-lead{margin-top:14px;max-width:760px;}

/* 02 PROBLEM */
.nr-problem__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.nr-pcard{background:#fff;border:1px solid #E6DECF;padding:32px 28px;}
.nr-pcard__no{font-family:var(--font-display);font-size:34px;color:var(--nj-crimson);line-height:1;margin-bottom:14px;}
.nr-pcard p{font-family:var(--font-jp-sans);font-weight:700;font-size:15px;line-height:1.8;letter-spacing:.04em;margin:0;color:var(--nj-ink);}
.nr-problem__lead{margin:48px 0 0;text-align:center;font-family:var(--font-jp-sans);font-weight:900;font-size:clamp(22px,2.6vw,32px);letter-spacing:.04em;color:var(--nj-ink);}

/* 03 CONCEPT */
.nr-concept__body{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.nr-pyramid{display:flex;flex-direction:column;align-items:center;gap:8px;}
.nr-pyramid__row{color:var(--nj-ink);font-family:var(--font-jp-sans);font-weight:900;letter-spacing:.08em;text-align:center;padding:14px 0;border-radius:2px;}
.nr-pyramid__row--1{width:34%;background:var(--nj-gold);font-size:18px;}
.nr-pyramid__row--2{width:55%;background:#C9AD75;}
.nr-pyramid__row--3{width:76%;background:#BCA06E;}
.nr-pyramid__row--4{width:97%;background:#9F8560;color:var(--fg-1);}
.nr-pyramid__row--5{width:97%;background:#9F8560;color:var(--fg-1);}
.nr-trinity{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.nr-tri{background:var(--nj-charcoal);border-top:2px solid var(--nj-gold);padding:22px 22px;}
.nr-tri .en{font-family:var(--font-sub-en);font-size:11px;letter-spacing:.24em;color:var(--nj-gold);}
.nr-tri b{display:block;font-family:var(--font-jp-sans);font-weight:900;font-size:19px;color:var(--fg-1);margin:6px 0 2px;}
.nr-tri small{font-family:var(--font-body);font-size:12px;color:var(--fg-2);}
.nr-trinity__note{margin:0;align-self:center;font-family:var(--font-jp-sans);font-weight:700;font-size:15px;line-height:1.9;color:var(--fg-1);letter-spacing:.04em;}

/* 04 MECHANISM */
.nr-mech__body{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.nr-mech__text p{font-family:var(--font-body);font-size:15px;line-height:1.95;color:#4a463f;margin:0 0 16px;}
.nr-mech__text b{color:var(--nj-ink);}
.nr-mech__points{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.nr-mech__points li{position:relative;padding-left:22px;font-family:var(--font-jp-sans);font-weight:700;font-size:14px;color:var(--nj-ink);}
.nr-mech__points li::before{content:'';position:absolute;left:0;top:8px;width:8px;height:8px;background:var(--nj-crimson);border-radius:50%;}
.nr-mech__layers{display:flex;flex-direction:column;gap:4px;}
.nr-mech__layers .lyr{position:relative;padding:15px 18px;font-family:var(--font-jp-sans);font-weight:700;font-size:13px;color:#5a4a38;}
.nr-mech__layers .lyr:nth-child(1){background:#F0E8DA;}
.nr-mech__layers .lyr:nth-child(2){background:#E9DECB;}
.nr-mech__layers .lyr:nth-child(3){background:#E0D2BB;}
.nr-mech__layers .lyr--gen{background:#D2C0A2;}
.nr-mech__layers .lyr--deep{background:#C3AB83;color:#5a4a38;}
.nr-mech__layers .lyr--mfr{background:#B0925F;color:#fff;border:2px solid var(--nj-gold);}
.nr-mech__layers .lyr:last-child{background:#9C8157;color:#fff;}
.nr-mech__layers .tag{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-family:var(--font-sub-en);font-size:10px;letter-spacing:.08em;background:#8a8a8a;color:#fff;padding:3px 9px;border-radius:2px;}
.nr-mech__layers .tag--mfr{background:var(--nj-crimson);}

/* 05 TECHNOLOGY */
.nr-tech__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;}
.nr-tcard{background:var(--nj-charcoal);border-top:2px solid var(--nj-gold);padding:32px 28px 28px;display:flex;flex-direction:column;min-height:300px;}
.nr-tcard__no{font-family:var(--font-display);font-size:28px;color:var(--nj-gold);line-height:1;}
.nr-tcard .en{font-family:var(--font-sub-en);font-size:12px;letter-spacing:.22em;color:var(--nj-gold);margin-top:14px;}
.nr-tcard b{font-family:var(--font-jp-sans);font-weight:900;font-size:20px;color:var(--fg-1);margin:4px 0 0;}
.nr-tcard p{font-family:var(--font-body);font-size:13px;line-height:1.9;color:var(--fg-2);margin:14px 0 0;}
.nr-tcard__tag{margin-top:auto;padding-top:18px;font-family:var(--font-jp-sans);font-weight:700;font-size:15px;color:var(--nj-gold);}

/* 06 NUMBERS */
.nr-stats__grid{display:grid;grid-template-columns:repeat(6,1fr);}
.nr-stat{padding:0 20px;border-left:1px solid rgba(250,248,244,.14);}
.nr-stat:first-child{border-left:none;padding-left:0;}
.nr-stat .v{font-family:var(--font-display);font-size:60px;line-height:1;color:var(--fg-1);}
.nr-stat .v small{font-family:var(--font-jp-sans);font-weight:700;font-size:13px;margin-left:4px;}
.nr-stat .d{font-family:var(--font-body);font-size:12px;color:var(--fg-2);margin-top:12px;}

/* 07 APPLICATION */
.nr-app__body{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start;}
.nr-app__label{font-family:var(--font-jp-sans);font-weight:900;font-size:16px;color:var(--nj-ink);margin:0 0 16px;}
.nr-app__menus{display:flex;flex-wrap:wrap;gap:10px;}
.nr-app__menus span{font-family:var(--font-jp-sans);font-weight:700;font-size:13px;color:#7a5f3c;background:#EEE4D4;border-radius:16px;padding:8px 16px;}
.nr-app__att{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.nr-app__att li{position:relative;padding-left:20px;font-family:var(--font-body);font-size:14px;line-height:1.7;color:#4a463f;}
.nr-app__att li b{color:var(--nj-ink);font-family:var(--font-jp-sans);}
.nr-app__att li::before{content:'';position:absolute;left:0;top:8px;width:7px;height:7px;background:var(--nj-crimson);border-radius:50%;}
.nr-app__photo{position:relative;min-height:480px;background-size:cover;background-position:center;border:1px solid #E6DECF;}
.nr-app__cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font-family:var(--font-body);font-size:11px;padding:30px 16px 14px;}

/* 08 FEATURES */
.nr-feat__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.nr-fcard{background:var(--nj-charcoal);padding:32px 28px;border-bottom:2px solid var(--nj-gold);}
.nr-fcard__no{font-family:var(--font-display);font-size:30px;color:var(--nj-gold);line-height:1;}
.nr-fcard b{display:block;font-family:var(--font-jp-sans);font-weight:900;font-size:19px;color:var(--fg-1);margin:12px 0 10px;}
.nr-fcard p{font-family:var(--font-body);font-size:13px;line-height:1.9;color:var(--fg-2);margin:0;}

/* 09 WHY */
.nr-why__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.nr-wcard{background:#fff;border:1px solid #E6DECF;border-left:3px solid var(--nj-gold);padding:28px 26px;}
.nr-wcard b{display:block;font-family:var(--font-jp-sans);font-weight:900;font-size:18px;color:var(--nj-ink);margin-bottom:10px;}
.nr-wcard p{font-family:var(--font-body);font-size:13px;line-height:1.85;color:#4a463f;margin:0;}

/* 10 SUPPORT */
.nr-support__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.nr-scard{background:var(--nj-charcoal);padding:30px 26px;border-top:2px solid var(--nj-gold);}
.nr-scard .en{font-family:var(--font-sub-en);font-size:11px;letter-spacing:.22em;color:var(--nj-gold);}
.nr-scard b{display:block;font-family:var(--font-jp-sans);font-weight:900;font-size:18px;color:var(--fg-1);margin:8px 0 10px;}
.nr-scard p{font-family:var(--font-body);font-size:13px;line-height:1.85;color:var(--fg-2);margin:0;}

/* 12 FAQ */
.nr-faq__list{display:flex;flex-direction:column;gap:14px;max-width:920px;}
.nr-faq__list details{background:#fff;border:1px solid #E6DECF;}
.nr-faq__list summary{cursor:pointer;list-style:none;padding:22px 28px;font-family:var(--font-jp-sans);font-weight:700;font-size:15px;color:var(--nj-ink);position:relative;}
.nr-faq__list summary::-webkit-details-marker{display:none;}
.nr-faq__list summary::before{content:'Q';font-family:var(--font-display);color:var(--nj-crimson);margin-right:14px;}
.nr-faq__list summary::after{content:'+';position:absolute;right:24px;top:50%;transform:translateY(-50%);color:var(--nj-gold);font-size:22px;font-family:var(--font-display);}
.nr-faq__list details[open] summary::after{content:'\2212';}
.nr-faq__list details p{margin:0;padding:0 28px 24px 64px;font-family:var(--font-body);font-size:14px;line-height:1.9;color:#4a463f;}

/* responsive */
@media (max-width:920px){
  .nr-problem,.nr-mech,.nr-app,.nr-why,.nr-faq,.nr-concept,.nr-tech,.nr-support{padding:72px 24px;}
  .nr-stats{padding:64px 24px;}
  .nr-problem__grid{grid-template-columns:1fr 1fr;}
  .nr-concept__body,.nr-mech__body,.nr-app__body{grid-template-columns:1fr;gap:32px;}
  .nr-tech__grid,.nr-feat__grid,.nr-why__grid,.nr-trinity{grid-template-columns:1fr;}
  .nr-support__grid{grid-template-columns:1fr 1fr;}
  .nr-stats__grid{grid-template-columns:1fr 1fr 1fr;gap:28px 0;}
  .nr-stat{border-left:none;padding-left:0;}
  .nr-app__photo{min-height:320px;}
}

/* =============================================================
   NR-NINE update v0.4.0 — fixes + icons + photo band  (ICCHI)
   ============================================================= */

/* --- 修正② FEATURES セクションの背景・余白（崩れ修正） --- */
.nr-feat{background:var(--nj-ink);color:var(--fg-1);padding:112px 48px;}

/* --- 修正③ 本文を大きく・行間ゆったり / 余白を広げる --- */
.nr-tcard p,.nr-fcard p,.nr-wcard p,.nr-scard p,
.nr-mech__text p,.nr-app__att li{font-size:15px;line-height:2;}
.nr-tcard b,.nr-fcard b,.nr-wcard b,.nr-scard b{font-size:20px;}
.nr-app__menus span{font-size:14px;}
.nr-faq__list summary{font-size:16px;}
.nr-faq__list details p{font-size:15px;line-height:2;}
.nr-problem,.nr-mech,.nr-app,.nr-why,.nr-faq,
.nr-concept,.nr-tech,.nr-support,.nr-feat{padding-top:120px;padding-bottom:120px;}

/* --- アイコン（線画ゴールド）：各カード右上に配置 --- */
.nr-tcard,.nr-fcard,.nr-wcard{position:relative;}
.nr-ico{position:absolute;top:26px;right:26px;width:40px;height:40px;
  color:var(--nj-gold);opacity:.9;pointer-events:none;}
.nr-ico svg{width:100%;height:100%;display:block;}
.nr-wcard .nr-ico{top:24px;right:24px;width:34px;height:34px;opacity:1;}
/* タイトル等がアイコンに重ならないよう右側に余白 */
.nr-tcard .en,.nr-tcard b,.nr-fcard b,.nr-wcard b{padding-right:48px;}

/* --- 全幅 写真バンド（施術風景） --- */
.nr-band{position:relative;display:grid;grid-template-columns:repeat(3,1fr);
  gap:2px;background:var(--nj-ink);}
.nr-band__cell{margin:0;min-height:480px;background-size:cover;
  background-position:center;filter:grayscale(.12) contrast(1.03);}
.nr-band__label{position:absolute;left:0;bottom:0;padding:20px 32px;
  background:linear-gradient(90deg,rgba(10,10,10,.88) 40%,rgba(10,10,10,0));
  color:var(--fg-1);font-family:var(--font-jp-sans);font-weight:700;
  font-size:17px;letter-spacing:.04em;max-width:70%;}
.nr-band__label .en{display:block;font-family:var(--font-sub-en);
  font-size:12px;letter-spacing:.22em;color:var(--nj-gold);margin-bottom:6px;}

/* --- レスポンシブ --- */
@media (max-width:920px){
  .nr-feat{padding:72px 24px;}
  .nr-ico{top:20px;right:20px;width:34px;height:34px;}
  .nr-band{grid-template-columns:repeat(3,1fr);}
  .nr-band__cell{min-height:240px;}
  .nr-band__label{font-size:14px;padding:14px 20px;max-width:80%;}
}
@media (max-width:560px){
  .nr-band{grid-template-columns:1fr;}
  .nr-band__cell{min-height:300px;}
}

/* --- VOICE（左）＋ FAQ（右）を1ブロックに統合（濃色ベース） --- */
.nr-vf{background:var(--nj-ink);color:var(--fg-1);padding:120px 48px;
  display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.nr-vf .nr-sec__head{margin-bottom:36px;}
.nr-vf .section-title{font-size:clamp(28px,3vw,40px);}
.nr-vf .section-title .en{font-size:clamp(40px,4.5vw,64px);}
.nr-vf__cards{display:flex;flex-direction:column;gap:20px;}
/* FAQ アコーディオンを濃色文脈に合わせて反転 */
.nr-vf__faq .nr-faq__list{max-width:none;}
.nr-vf__faq .nr-faq__list details{background:var(--nj-charcoal);border:1px solid var(--border-1);}
.nr-vf__faq .nr-faq__list summary{color:var(--fg-1);}
.nr-vf__faq .nr-faq__list details p{color:var(--fg-2);}
@media (max-width:920px){
  .nr-vf{grid-template-columns:1fr;gap:48px;padding:72px 24px;}
}

/* =============================================================
   Gran nine（化粧品）専用ページ
   ============================================================= */
/* HERO ビジュアル（写真がないため金ロゴマークを中央に） */
.gn-hero{display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#1f1f1f,#0a0a0a);}
.gn-hero__mark{width:46%;max-width:260px;height:auto;opacity:.95;
  filter:drop-shadow(0 10px 32px rgba(0,0,0,.45));}

/* Beauty Triangle 3要素 */
.gn-tri{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.gn-tri__item{background:var(--nj-charcoal);border-top:2px solid var(--nj-gold);
  padding:36px 30px;color:var(--fg-1);}
.gn-tri__en{font-family:var(--font-sub-en);font-size:12px;letter-spacing:.24em;color:var(--nj-gold);}
.gn-tri__item b{display:block;font-family:var(--font-jp-sans);font-weight:900;
  font-size:24px;margin:10px 0 2px;}
.gn-tri__item small{font-family:var(--font-mincho);font-size:13px;color:var(--nj-ash);letter-spacing:.18em;}
.gn-tri__item p{font-size:15px;line-height:2;color:var(--fg-2);margin:16px 0 0;}

/* 商品カード（nr-tcard をベースに価格行を追加） */
.gn-pcard b{line-height:1.35;}
.gn-price{margin-top:18px;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;
  padding-top:14px;border-top:1px solid var(--border-1);}
.gn-price__num{font-family:var(--font-display);font-size:30px;color:var(--nj-gold);line-height:1;}
.gn-price__tax{font-family:var(--font-jp-sans);font-size:12px;color:var(--fg-2);}
.gn-price__vol{font-family:var(--font-jp-sans);font-size:13px;color:var(--fg-2);}
.gn-note{margin:28px 0 0;font-family:var(--font-body);font-size:13px;line-height:1.9;color:var(--fg-2);}

@media (max-width:920px){
  .gn-tri{grid-template-columns:1fr;}
  .gn-hero__mark{width:40%;}
}

/* Beauty Triangle イラスト */
.gn-tri-illust{display:flex;justify-content:center;margin-top:4px;}
.gn-tri-illust svg{width:100%;max-width:760px;height:auto;}

/* 商品ラインアップ（写真つき・全6種／3列） */
.gn-lineup{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.gn-prod{background:var(--nj-charcoal);border-top:2px solid var(--nj-gold);
  display:flex;flex-direction:column;overflow:hidden;}
.gn-prod__img{aspect-ratio:4/3;background-size:cover;background-position:center;}
.gn-prod__body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1;}
.gn-prod__cat{align-self:flex-start;font-family:var(--font-sub-en);font-size:11px;
  letter-spacing:.16em;color:var(--nj-ink);background:var(--nj-gold);
  padding:4px 12px;margin-bottom:14px;}
.gn-prod__en{font-family:var(--font-sub-en);font-size:11px;letter-spacing:.2em;color:var(--nj-gold);}
.gn-prod b{font-family:var(--font-jp-sans);font-weight:900;font-size:19px;
  color:var(--fg-1);margin:4px 0 0;line-height:1.4;}
.gn-prod p{font-family:var(--font-body);font-size:14px;line-height:1.95;
  color:var(--fg-2);margin:14px 0 0;}
.gn-prod .gn-price{margin-top:auto;padding-top:16px;}
@media (max-width:920px){
  .gn-lineup{grid-template-columns:1fr 1fr;}
  .gn-tri-illust svg{max-width:560px;}
}
@media (max-width:560px){
  .gn-lineup{grid-template-columns:1fr;}
}

/* Beauty Triangle 役割の吹き出し */
.gn-callouts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px;}
.gn-callout{position:relative;background:var(--nj-charcoal);border:1px solid var(--border-1);
  border-top:2px solid var(--nj-gold);padding:26px 26px 28px;}
.gn-callout::before{content:'';position:absolute;top:-9px;left:32px;width:16px;height:16px;
  background:var(--nj-charcoal);border-left:1px solid var(--border-1);
  border-top:2px solid var(--nj-gold);transform:rotate(45deg);}
.gn-callout__en{font-family:var(--font-sub-en);font-size:12px;letter-spacing:.24em;color:var(--nj-gold);}
.gn-callout b{display:block;font-family:var(--font-jp-sans);font-weight:900;font-size:20px;color:var(--fg-1);margin:6px 0 0;}
.gn-callout b small{font-family:var(--font-mincho);font-size:13px;color:var(--nj-ash);letter-spacing:.1em;font-weight:400;}
.gn-callout p{font-family:var(--font-body);font-size:14px;line-height:2;color:var(--fg-2);margin:14px 0 0;}
@media (max-width:920px){.gn-callouts{grid-template-columns:1fr;}}

/* =============================================================
   NINE CAMP（サロン運営支援・教育）専用ページ
   ============================================================= */
.nc-hero{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1f1f1f,#0a0a0a);}
.nc-hero__mark{width:44%;max-width:240px;height:auto;opacity:.95;filter:drop-shadow(0 10px 32px rgba(0,0,0,.45));}

/* 3つの力カードのアイコン */
.nr-tcard .nc-ico{position:absolute;top:26px;right:26px;width:40px;height:40px;color:var(--nj-gold);opacity:.9;pointer-events:none;}
.nr-tcard .nc-ico svg{width:100%;height:100%;display:block;}

/* ABOUT バッジ */
.nc-about{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.nc-badge{background:var(--nj-charcoal);border-top:2px solid var(--nj-gold);padding:30px 28px;color:var(--fg-1);}
.nc-badge__en{font-family:var(--font-sub-en);font-size:11px;letter-spacing:.22em;color:var(--nj-gold);}
.nc-badge b{display:block;font-family:var(--font-jp-sans);font-weight:900;font-size:22px;margin:8px 0 0;}
.nc-badge p{font-family:var(--font-body);font-size:14px;line-height:1.9;color:var(--fg-2);margin:12px 0 0;}

/* PROGRAM 2日間スケジュール */
.nc-program{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.nc-day{background:#fff;border:1px solid #E6DECF;}
.nc-day__label{font-family:var(--font-display);font-size:24px;letter-spacing:.12em;color:var(--fg-1);background:var(--nj-ink);padding:14px 28px;}
.nc-sched{list-style:none;margin:0;padding:0;}
.nc-sched li{display:flex;gap:18px;padding:18px 28px;border-bottom:1px solid #F0EBE0;}
.nc-sched li:last-child{border-bottom:none;}
.nc-time{flex:0 0 54px;font-family:var(--font-display);font-size:18px;color:var(--nj-gold-deep);line-height:1.5;}
.nc-sched b{display:block;font-family:var(--font-jp-sans);font-weight:700;font-size:16px;color:var(--nj-ink);line-height:1.5;}
.nc-sched small{display:block;font-family:var(--font-body);font-size:13px;line-height:1.85;color:#6b655c;margin-top:5px;}

/* CEO メッセージ */
.nc-message{background:var(--nj-ink);color:var(--fg-1);padding:120px 48px;}
.nc-message__inner{max-width:900px;}
.nc-quote{font-family:var(--font-mincho);font-size:clamp(15px,1.7vw,20px);line-height:1.95;letter-spacing:.06em;margin:22px 0 0;padding-left:28px;border-left:2px solid var(--nj-gold);}
.nc-quote em{font-style:normal;color:var(--nj-gold);}
.nc-message__by{margin-top:28px;}
.nc-message__by b{font-family:var(--font-jp-sans);font-weight:700;font-size:18px;}
.nc-message__by small{display:block;font-family:var(--font-sub-en);font-size:11px;letter-spacing:.2em;color:var(--nj-ash);margin-top:4px;}

/* Instagram 埋め込みセクション */
.nc-insta{background:var(--nj-paper);color:var(--nj-ink);padding:112px 48px;}
.nc-insta__embed{display:flex;justify-content:center;margin-top:16px;}

@media (max-width:920px){
  .nc-about{grid-template-columns:1fr;}
  .nc-program{grid-template-columns:1fr;}
  .nc-message,.nc-insta{padding:72px 24px;}
  .nr-tcard .nc-ico{top:20px;right:20px;width:34px;height:34px;}
}

/* NINE CAMP v0.8 追加分 ---------------------------------------- */
/* ABOUT ジャーニー・イラスト */
.nc-journey{margin:8px 0 56px;display:flex;justify-content:center;}
.nc-journey svg{width:100%;max-width:860px;height:auto;}

/* PROGRAM Day 写真 */
.nc-day__img{aspect-ratio:16/9;background-size:cover;background-position:center;}

/* STYLE カードの線画アイコン（ブロック表示） */
.nr-scard .nc-ico{display:block;width:40px;height:40px;color:var(--nj-gold);margin-bottom:16px;}
.nr-scard .nc-ico svg{width:100%;height:100%;display:block;}

/* 代表メッセージ：写真 ＋ テキストの2カラム */
.nc-message__inner{max-width:none;display:grid;grid-template-columns:minmax(340px,420px) 1fr;gap:72px;align-items:center;}
.nc-message__photo{aspect-ratio:3/4;background-size:cover;background-position:center top;
  border:1px solid var(--border-1);border-top:3px solid var(--nj-gold);}
.nc-message__text{min-width:0;}
.nc-quote{margin-top:18px;}

/* REELS：見出し＋リール2本ギャラリー */
.nc-reels{display:flex;gap:28px;justify-content:center;flex-wrap:wrap;margin-top:8px;}
.nc-reels .instagram-media{margin:0 !important;flex:0 1 360px;}
.nc-insta__follow{margin-top:40px;}
.nc-insta__lead{font-family:var(--font-body);font-size:15px;line-height:2;color:var(--fg-invert-2);max-width:760px;margin:14px 0 0;}

@media (max-width:920px){
  .nc-message__inner{grid-template-columns:1fr;gap:32px;}
  .nc-message__photo{max-width:320px;}
  .nc-reels{gap:18px;}
}

/* =============================================================
   Luxury Salon nine 専用ページ
   ============================================================= */
/* MENU 一覧 */
.ls-menu{border-top:1px solid #E6DECF;}
.ls-menu__row{display:grid;grid-template-columns:1fr auto auto;gap:32px;align-items:baseline;
  padding:26px 4px;border-bottom:1px solid #E6DECF;}
.ls-menu__name b{font-family:var(--font-jp-sans);font-weight:700;font-size:20px;color:var(--nj-ink);}
.ls-menu__name small{display:block;font-family:var(--font-body);font-size:13px;color:var(--fg-invert-3);margin-top:4px;}
.ls-menu__time{font-family:var(--font-sub-en);font-size:15px;letter-spacing:.08em;color:var(--fg-invert-2);}
.ls-menu__price{font-family:var(--font-display);font-size:30px;color:var(--nj-gold-deep);line-height:1;}
.ls-menu__price small{font-family:var(--font-body);font-size:12px;color:var(--fg-invert-3);margin-left:6px;letter-spacing:0;}

/* STORES（濃色セクション内） */
.ls-stores{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;}
.ls-store{background:var(--nj-charcoal);border-top:2px solid var(--nj-gold);padding:26px 22px;color:var(--fg-1);}
.ls-store .en{font-family:var(--font-sub-en);font-size:10px;letter-spacing:.18em;color:var(--nj-gold);}
.ls-store b{display:block;font-family:var(--font-jp-sans);font-weight:900;font-size:19px;margin:8px 0 6px;}
.ls-store small{font-family:var(--font-body);font-size:12px;color:var(--fg-2);}

@media (max-width:920px){
  .ls-stores{grid-template-columns:1fr 1fr;}
  .ls-menu__row{grid-template-columns:1fr auto;gap:8px 20px;}
  .ls-menu__time{grid-column:1;}
}
@media (max-width:560px){
  .ls-stores{grid-template-columns:1fr;}
}

/* Luxury Salon nine v0.10 追加分 --------------------------------- */
/* CONCEPT イラスト（インフィニティ） */
.ls-concept-illust{display:flex;justify-content:center;margin:8px 0 52px;}
.ls-concept-illust svg{width:100%;max-width:460px;height:auto;}

/* MENU コースカード（2×2） */
.ls-courses{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.ls-course{background:#fff;border:1px solid #E6DECF;border-top:2px solid var(--nj-gold);
  padding:30px 30px 26px;display:flex;flex-direction:column;position:relative;}
.ls-course--popular{border-color:var(--nj-gold);box-shadow:0 12px 40px rgba(200,166,100,.16);}
.ls-course__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.ls-course__en{font-family:var(--font-sub-en);font-size:11px;letter-spacing:.2em;color:var(--nj-gold-deep);}
.ls-course__badge{font-family:var(--font-jp-sans);font-weight:700;font-size:11px;letter-spacing:.06em;
  color:var(--fg-1);background:var(--nj-crimson);padding:4px 12px;border-radius:2px;}
.ls-course__badge--trial{background:var(--nj-ink);}
.ls-course h3{font-family:var(--font-jp-sans);font-weight:900;font-size:20px;line-height:1.45;color:var(--nj-ink);margin:0 0 10px;}
.ls-course p{font-family:var(--font-body);font-size:14px;line-height:1.95;color:var(--fg-invert-2);margin:0 0 18px;flex:1;}
.ls-course__foot{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding-top:16px;border-top:1px solid #EFE9DC;}
.ls-course__time{font-family:var(--font-sub-en);font-size:13px;letter-spacing:.08em;color:var(--fg-invert-3);}
.ls-course__price{font-family:var(--font-display);font-size:28px;color:var(--nj-gold-deep);line-height:1;}
.ls-course__price small{font-family:var(--font-body);font-size:12px;color:var(--fg-invert-3);margin-left:4px;letter-spacing:0;}

/* STORES 詳細カード（写真＋情報＋地図/電話/予約） */
.ls-stores{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.ls-store{background:var(--nj-charcoal);border-top:2px solid var(--nj-gold);display:flex;flex-direction:column;overflow:hidden;}
.ls-store__img{aspect-ratio:4/3;background-size:cover;background-position:center;}
.ls-store__body{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1;}
.ls-store__en{font-family:var(--font-sub-en);font-size:11px;letter-spacing:.2em;color:var(--nj-gold);}
.ls-store h3{font-family:var(--font-jp-sans);font-weight:900;font-size:22px;color:var(--fg-1);margin:4px 0 16px;}
.ls-store__info{margin:0;display:flex;flex-direction:column;gap:10px;flex:1;}
.ls-store__info > div{display:grid;grid-template-columns:54px 1fr;gap:10px;}
.ls-store__info dt{font-family:var(--font-sub-en);font-size:10px;letter-spacing:.14em;color:var(--nj-gold);padding-top:3px;}
.ls-store__info dd{margin:0;font-family:var(--font-body);font-size:13px;line-height:1.7;color:var(--fg-2);}
.ls-store__info dd a{color:var(--fg-1);text-decoration:none;border-bottom:1px solid var(--nj-gold);}
.ls-store__links{display:flex;gap:10px;margin-top:22px;}
.ls-store__links a{flex:1;text-align:center;font-family:var(--font-jp-sans);font-weight:700;font-size:13px;
  padding:12px 8px;border:1px solid var(--border-1);color:var(--fg-1);text-decoration:none;transition:.2s;}
.ls-store__links a:first-child{background:transparent;}
.ls-store__links a:last-child{background:var(--nj-gold);color:var(--nj-ink);border-color:var(--nj-gold);}
.ls-store__links a span{margin-left:4px;}

@media (max-width:920px){
  .ls-courses{grid-template-columns:1fr;}
  .ls-stores{grid-template-columns:1fr;}
}

/* NINE CAMP STYLE：3カードを横フル幅に */
.nr-support__grid--3{grid-template-columns:repeat(3,1fr);}
@media (max-width:920px){ .nr-support__grid--3{grid-template-columns:1fr;} }

/* MEDIA Featured：記事のときアイキャッチ画像を表示 */
.m-feat__img{aspect-ratio:16/9;display:block;background-size:cover;background-position:center;position:relative;}
.m-feat__imgbadge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:var(--font-sub-en);letter-spacing:.2em;font-size:13px;color:var(--fg-1);
  background:rgba(10,10,10,.45);padding:8px 16px;}

/* MEDIA：PRESS/VIDEOS「すべて見る」リンク */
.m-seeall{display:inline-block;font-family:var(--font-jp-sans);font-weight:700;font-size:14px;
  color:var(--nj-ink);text-decoration:none;border-bottom:1px solid var(--nj-gold);
  padding-bottom:2px;margin:-28px 0 36px;transition:color .2s;}
.m-seeall:hover{color:var(--nj-gold-deep);}

/* RECRUIT：ファーストビュー＆「働く理由」写真 */
.r-hero__photo--img{background-size:cover;background-position:center;}
.r-hero__photo--img::after{content:none;}
.r-why__img{aspect-ratio:4/3;background-size:cover;background-position:center;
  margin-bottom:28px;border-top:2px solid var(--nj-gold);}

/* =============================================================
   v0.27.0  スマホ表示の調整（PCの見た目は変更なし）
   ① スマホ専用の改行ヘルパー（.sp-br）
   ② ヒーロー見出しをスマホで確実に2行に（人の美しさには／無限の可能性がある）
   ③ 流れるテキスト（ticker）をスマホでさらに速く
   ④ 事業内容（SERVICE）にスマホでサムネイル画像を表示
   ⑤ 事業内容リード文の強制改行をスマホで解除（自然に流す）
   ============================================================= */

/* ① スマホ専用の改行（PCでは無視される） */
.sp-br { display: none; }
@media (max-width: 600px) { .sp-br { display: inline; } }

/* ② ヒーロー見出し：スマホで必ず2行（各行を1行に固定＝nowrap＋サイズ縮小）
   →「人の美しさには、」／「無限の可能性がある。」で確実に改行 */
@media (max-width: 600px) {
  .hero__title { font-size: clamp(24px, 6.6vw, 32px); }
  .hero__title .hl { display: block; white-space: nowrap; }
}

/* ③ 流れるテキスト（ticker）：スマホでさらに速く（PCは従来16sのまま） */
@media (max-width: 768px) {
  .ticker__track { animation-duration: 6s; }
}

/* ④ 事業内容（SERVICE）：サムネイル画像を表示（PC＝左に列／スマホ＝上に全幅） */
.service-row__thumb {
  display: block;
  background-size: cover;
  background-position: center;
  background-color: rgba(250,248,244,.04);
  border-radius: 4px;
}
/* Coming Soon（未確定・非リンク） */
.service-row--soon { cursor: default; }
.service-row--soon:hover { padding-left: 0; background: none; }
.service-row--soon .service-row__num,
.service-row--soon .service-row__title,
.service-row--soon .service-row__desc { opacity: .6; }
.service-row--soon .service-row__thumb { position: relative; }
.service-row__badge { position: absolute; top: 8px; left: 8px; font-family: var(--font-sub-en); font-size: 9px; font-weight: 700; letter-spacing: .16em; color: var(--nj-ink); background: var(--nj-gold); padding: 3px 8px; border-radius: 2px; }
.service-row__more--soon { color: var(--nj-gold); border-bottom-color: transparent; letter-spacing: .28em; }
/* PC（921px以上）：左にサムネイル列を追加 */
@media (min-width: 921px) {
  .service-row { grid-template-columns: 152px 60px 1.2fr 1.25fr 150px; column-gap: 36px; }
  .service-row__thumb { width: 152px; height: 98px; }
}
/* スマホ・タブレット（920px以下）：上に全幅サムネイル */
@media (max-width: 920px) {
  .service-row__thumb {
    grid-column: 1 / -1;
    width: 100%;
    height: 170px;
    margin-bottom: 10px;
  }
}

/* ⑤ 事業内容リード文：スマホでは強制改行せず自然に流す */
@media (max-width: 600px) {
  .svc-lead-br { display: none; }
}

/* =============================================================
   v0.28.0  サービス並び替え＆会社概要セクション
   ============================================================= */

/* nine-camp：STYLE（左）＋ MESSAGE（右）2カラム内の調整 */
.nc-style-msg .nr-support__grid--3 { grid-template-columns: 1fr; }

/* ===== NINE CAMP：STEP フロー ＆ 大メッセージ（追加） ===== */
.nc-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;margin:10px 0 56px;}
.nc-flow__step{background:var(--nj-charcoal);border-top:2px solid var(--nj-gold);padding:28px 24px;}
.nc-flow__step--goal{background:linear-gradient(180deg,rgba(200,166,100,.16),rgba(200,166,100,.03));}
.nc-flow__en{font-family:var(--font-sub-en);font-size:11px;letter-spacing:.22em;color:var(--nj-gold);}
.nc-flow__ttl{font-family:var(--font-jp-sans);font-weight:900;font-size:22px;color:var(--fg-1);margin:8px 0 12px;letter-spacing:.04em;}
.nc-flow__step--goal .nc-flow__ttl{color:var(--nj-gold);}
.nc-flow__desc{font-family:var(--font-body);font-size:13px;line-height:1.85;color:var(--fg-2);margin:0;}
.nc-flow__arrow{display:flex;align-items:center;justify-content:center;color:var(--nj-gold);font-size:20px;padding:0 12px;}
@media (max-width:900px){
  .nc-flow{grid-template-columns:1fr;gap:12px;}
  .nc-flow__arrow{transform:rotate(90deg);padding:2px 0;}
}
.nc-style-msg__big{margin-top:34px;padding:26px 28px;border-left:3px solid var(--nj-gold);background:rgba(200,166,100,.06);}
.nc-style-msg__big p{margin:0;font-family:var(--font-jp-sans);font-weight:700;font-size:16px;line-height:1.9;color:var(--fg-1);}
.nc-style-msg__big em{font-style:normal;color:var(--nj-gold);}
.nc-message__hook{font-family:var(--font-jp-sans);font-weight:900;font-size:clamp(17px,2vw,22px);line-height:1.7;color:var(--fg-1);margin:16px 0 0;}
.nc-message__hook em{font-style:normal;color:var(--nj-gold);}
.nc-bigmsg{background:linear-gradient(135deg,#CDAC6B 0%,#B5934F 55%,#9C7E40 100%);color:var(--nj-ink);padding:110px 48px;text-align:center;}
.nc-bigmsg__inner{max-width:840px;margin:0 auto;}
.nc-bigmsg__hook{font-family:var(--font-jp-sans);font-weight:900;font-size:clamp(24px,3.4vw,40px);line-height:1.6;color:var(--nj-ink);margin:0;}
.nc-bigmsg__body{font-family:var(--font-mincho);font-size:clamp(15px,1.6vw,18px);line-height:2;color:#2a2413;margin:28px 0 0;}
.nc-bigmsg__tag{font-family:var(--font-jp-sans);font-weight:900;font-size:clamp(20px,2.6vw,30px);color:var(--nj-ink);letter-spacing:.08em;margin:30px 0 0;}
@media (max-width:640px){ .nc-bigmsg{padding:72px 24px;} }

/* STEP 折れ線の下：各ステップ説明 */
.nc-journey__desc{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin:26px 0 56px;}
.nc-jd{border-top:1px solid rgba(200,166,100,.30);padding-top:16px;}
.nc-jd__en{font-family:var(--font-sub-en);font-size:11px;letter-spacing:.22em;color:var(--nj-gold);}
.nc-jd b{display:block;font-family:var(--font-jp-sans);font-weight:900;font-size:18px;color:var(--fg-1);margin:6px 0 8px;letter-spacing:.03em;}
.nc-jd--goal b{color:var(--nj-gold);}
.nc-jd p{font-family:var(--font-body);font-size:12.5px;line-height:1.8;color:var(--fg-2);margin:0;}
@media (max-width:760px){ .nc-journey__desc{grid-template-columns:1fr 1fr;} }
@media (max-width:480px){ .nc-journey__desc{grid-template-columns:1fr;} }

/* 「育てたいのは経営者」大バンド */
.nc-grow{padding:100px 48px;text-align:center;background:radial-gradient(120% 100% at 50% 0%,rgba(200,166,100,.12),transparent 60%),var(--nj-ink);border-top:1px solid rgba(200,166,100,.16);border-bottom:1px solid rgba(200,166,100,.16);}
.nc-grow__inner{max-width:960px;margin:0 auto;}
.nc-grow__text{font-family:var(--font-jp-sans);font-weight:700;font-size:clamp(19px,2.4vw,28px);line-height:1.6;color:var(--fg-1);margin:0;letter-spacing:.04em;}
.nc-grow__hl{font-family:var(--font-jp-sans);font-weight:900;font-size:clamp(26px,4vw,46px);line-height:1.5;color:var(--nj-gold);margin:20px 0 0;letter-spacing:.04em;}
@media (max-width:640px){ .nc-grow{padding:66px 24px;} }
.nc-style-msg .nc-message__inner { grid-template-columns: 1fr; gap: 28px; max-width: none; }
.nc-style-msg .nc-message__photo { max-width: 320px; }
.nc-style-msg .nr-sec__head { margin-bottom: 28px; }

/* About：会社概要（COMPANY） */
.a-company { background: var(--nj-ink); color: var(--fg-1); padding: 120px 48px; }
.a-company__head { margin-bottom: 56px; }
.a-company__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.a-company__table { margin: 0; }
.a-company__table > div { display: grid; grid-template-columns: 130px 1fr; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--border-1); }
.a-company__table dt { font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .14em; color: var(--nj-gold); margin: 0; padding-top: 2px; }
.a-company__table dd { margin: 0; font-family: var(--font-body); font-size: 15px; line-height: 1.85; color: var(--fg-1); }
.a-company__table dd a { color: var(--nj-gold); text-decoration: underline; }
.a-company__map { position: relative; min-height: 420px; border: 1px solid var(--border-1); overflow: hidden; }
.a-company__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.a-company__office { margin-top: 72px; }
.a-company__photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.a-company__ph { aspect-ratio: 4/3; border: 1px dashed rgba(200,166,100,.5); background: rgba(250,248,244,.03);
  display: flex; align-items: center; justify-content: center; }
.a-company__ph span { font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .24em; color: rgba(200,166,100,.7); }
.a-company__ph--img { border: 0; background-size: cover; background-position: center; }
.a-company__note { margin-top: 16px; font-family: var(--font-body); font-size: 13px; color: var(--fg-2); }

@media (max-width: 920px) {
  .a-company { padding: 80px 24px; }
  .a-company__grid { grid-template-columns: 1fr; gap: 40px; }
  .a-company__map { min-height: 320px; }
}
@media (max-width: 600px) {
  .a-company__photos { grid-template-columns: 1fr 1fr; gap: 12px; }
  .a-company__table > div { grid-template-columns: 96px 1fr; gap: 12px; }
}

/* =============================================================
   v0.30.0  サービス詳細：スマホでファーストビュー画像を上に＋下部に回遊ナビ
   ============================================================= */

/* スマホ：ファーストビュー画像（サムネ）を上に表示 */
@media (max-width: 920px) {
  .s-hero__inner { display: flex; flex-direction: column; }
  .s-hero__visual { order: -1; }
}

/* 下部：他事業への回遊ナビ（サムネ付き小リンク／PC・スマホ共通） */
.svc-nav { background: var(--nj-ink); padding: 72px 48px 100px; border-top: 1px solid rgba(250,248,244,.14); }
.svc-nav__head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 28px; }
.svc-nav__head .en { font-family: var(--font-sub-en); font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--nj-gold); }
.svc-nav__head .jp { font-family: var(--font-jp-sans); font-weight: 700; font-size: 15px; color: var(--fg-1); letter-spacing: .04em; }
.svc-nav__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.svc-nav__card { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid rgba(250,248,244,.16); border-radius: 6px; text-decoration: none; transition: background .3s var(--ease-out), border-color .3s var(--ease-out); }
.svc-nav__card:hover { background: rgba(250,248,244,.04); border-color: var(--nj-gold); }
.svc-nav__thumb { flex: 0 0 64px; width: 64px; height: 48px; background-size: cover; background-position: center; background-color: rgba(250,248,244,.05); border-radius: 4px; }
.svc-nav__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
.svc-nav__txt .en { font-family: var(--font-display); font-size: 14px; letter-spacing: .05em; color: var(--fg-1); }
.svc-nav__txt .jp { font-family: var(--font-body); font-size: 11px; color: var(--fg-2); letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.svc-nav__arrow { color: var(--nj-gold); font-size: 14px; flex: 0 0 auto; }
@media (max-width: 920px) {
  .svc-nav { padding: 56px 24px 72px; }
  .svc-nav__grid { grid-template-columns: 1fr; gap: 12px; }
}

/* ===== お問い合わせ：種別タブ × Snow Monkey Forms（プレビューデザイン完全準拠） ===== */
.c-form-panel { display: none; }
.c-form-panel.is-active { display: block; }
.c-form-note { padding: 48px 32px; text-align: center; color: var(--fg-invert-2); border: 1px dashed #DCD4C3; border-radius: 4px; line-height: 2; }

/* フォーム本体を2カラムグリッドに（お名前／フリガナ などを横並び） */
.c-form-panel .smf-form > form,
.c-form-panel .smf-form { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
/* 長い項目・選択肢・ボタン・メッセージは全幅 */
.c-form-panel .smf-item:has(textarea),
.c-form-panel .smf-item:has(.smf-radio-buttons-control),
.c-form-panel .smf-item:has(.smf-checkboxes-control),
.c-form-panel .smf-button-control,
.c-form-panel .smf-action,
.c-form-panel .smf-complete-message,
.c-form-panel .smf-form__confirmation-message { grid-column: 1 / -1; }

/* 各項目：ラベルを上、入力欄を下 */
.c-form-panel .smf-item { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; }
.c-form-panel .smf-item__col { padding: 0; }

/* ラベル */
.c-form-panel .smf-item__col--label,
.c-form-panel .smf-item .smf-label,
.c-form-panel .smf-item > label {
  font-family: var(--font-jp-sans); font-size: 13px; font-weight: 500; letter-spacing: .06em;
  color: var(--nj-ink); display: flex; gap: 8px; align-items: center;
}
/* 必須バッジ（赤） */
.c-form-panel .smf-item--required .smf-item__col--label::after,
.c-form-panel .smf-item--required > label::after {
  content: "必須"; font-family: var(--font-sub-en); font-size: 9px; font-weight: 700; letter-spacing: .2em;
  color: #FFF; background: var(--nj-crimson); padding: 3px 6px; border-radius: 2px;
}
/* 任意バッジ（グレー） */
.c-form-panel .smf-item:not(.smf-item--required) .smf-item__col--label::after {
  content: "任意"; font-family: var(--font-sub-en); font-size: 9px; font-weight: 700; letter-spacing: .2em;
  color: var(--nj-stone); background: var(--nj-mist); padding: 3px 6px; border-radius: 2px;
}
/* SMF標準の必須マーク(※)は隠す */
.c-form-panel .smf-item__require,
.c-form-panel .smf-required-mark { display: none; }

/* 入力欄（テキスト・メール・電話・URL・数値・日付・テキストエリア・セレクト） */
.c-form-panel input[type="text"],
.c-form-panel input[type="email"],
.c-form-panel input[type="tel"],
.c-form-panel input[type="url"],
.c-form-panel input[type="number"],
.c-form-panel input[type="date"],
.c-form-panel textarea,
.c-form-panel select {
  width: 100%; padding: 16px 18px; border: 1px solid #DCD4C3; background: #FFF;
  font-family: var(--font-body); font-size: 15px; color: var(--nj-ink);
  border-radius: 2px; outline: 0; transition: border-color .25s, box-shadow .25s;
}
.c-form-panel input:focus, .c-form-panel textarea:focus, .c-form-panel select:focus {
  border-color: var(--nj-ink); box-shadow: 0 0 0 3px rgba(200,166,100,.28);
}
.c-form-panel textarea { resize: vertical; min-height: 160px; line-height: 1.85; }
.c-form-panel select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230A0A0A' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 18px center; padding-right: 44px;
}

/* ラジオ・チェック：枠付きボタン風（選択中は黒背景＋金文字） */
.c-form-panel .smf-radio-buttons-control,
.c-form-panel .smf-checkboxes-control { display: flex; gap: 12px; flex-wrap: wrap; }
.c-form-panel .smf-radio-buttons-control__control,
.c-form-panel .smf-checkboxes-control__control {
  display: inline-flex; gap: 10px; align-items: center; cursor: pointer;
  padding: 14px 20px; border: 1px solid #DCD4C3; border-radius: 2px;
  font-family: var(--font-body); font-size: 14px; color: var(--nj-ink); background: #FFF;
  transition: border-color .25s, background .25s, color .25s;
}
.c-form-panel .smf-radio-buttons-control__control:has(input:checked),
.c-form-panel .smf-checkboxes-control__control:has(input:checked) {
  border-color: var(--nj-ink); background: var(--nj-ink); color: var(--fg-1);
}
.c-form-panel .smf-radio-buttons-control input,
.c-form-panel .smf-checkboxes-control input { accent-color: var(--nj-crimson); margin: 0; }

/* 送信・確認・戻るボタン（サイトの.btnと同じ） */
.c-form-panel .smf-button-control__control,
.c-form-panel button[type="submit"] {
  font-family: var(--font-sub-en); font-size: 13px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase;
  padding: 16px 40px; border: 1px solid var(--fg-1); background: var(--fg-1); color: var(--nj-ink);
  border-radius: 2px; cursor: pointer; transition: background .35s, color .35s, border-color .35s;
}
.c-form-panel .smf-button-control__control:hover,
.c-form-panel button[type="submit"]:hover { background: var(--nj-gold); border-color: var(--nj-gold); color: var(--nj-ink); }
.c-form-panel .smf-button-control--back .smf-button-control__control { background: transparent; color: var(--nj-ink); }
.c-form-panel .smf-button-control { display: flex; justify-content: flex-end; gap: 16px; margin-top: 8px; }

/* 完了メッセージ・エラー */
.c-form-panel .smf-complete-message { padding: 32px; border: 1px solid var(--nj-gold); border-radius: 4px; line-height: 2; }
.c-form-panel .smf-validation-error { color: var(--nj-crimson); font-size: 12px; margin-top: 6px; }

/* スマホは1カラム */
@media (max-width: 920px) {
  .c-form-panel .smf-form > form,
  .c-form-panel .smf-form { grid-template-columns: 1fr; }
}

/* お問い合わせ：エラー表示・完了画面 */
.c-field__err { color: var(--nj-crimson); font-size: 13px; font-weight: 700; margin-top: 4px; }
.c-field.is-error .c-input, .c-field.is-error .c-textarea, .c-field.is-error .c-select { border-color: var(--nj-crimson); box-shadow: 0 0 0 2px rgba(200,16,46,.15); }
.c-form-error { color: var(--nj-crimson); font-size: 13px; padding: 14px 18px; border: 1px solid var(--nj-crimson); border-radius: 2px; background: rgba(200,30,30,.05); margin-bottom: 8px; }
.c-complete { text-align: center; padding: 72px 32px; border: 1px solid var(--nj-gold); border-radius: 4px; background: #FFF; }
.c-complete__icon { width: 64px; height: 64px; line-height: 64px; margin: 0 auto 24px; border-radius: 50%; background: var(--nj-gold); color: #FFF; font-size: 30px; }
.c-complete__ti { font-family: var(--font-jp-sans); font-size: 24px; font-weight: 900; margin-bottom: 16px; color: var(--nj-ink); }
.c-complete__txt { font-family: var(--font-body); line-height: 2; color: var(--fg-invert-2); margin-bottom: 32px; }

/* ===== 表示フォント（セリフ/明朝）：太さ・字間の最適化 ===== */
.hero__en, .a-hero__title, .n-hero__title, .r-hero__title, .c-hero__title,
.m-hero__title, .s-hero__brand, .biz-hero__title, .ceo-hero__en {
  font-weight: 700; letter-spacing: .01em;
}
.metric__num, .service-row__num, .feature__num, .phil__card .num,
.r-why__num, .r-step__num, .spec__cell .val, .ceo-stat .num,
.c-side__row .v.big, .hist-item .year, .hero__meta-item .val,
.s-hero__visual .badge b { font-weight: 800; }
.ticker__track { font-weight: 700; }
/* 小さめの英字ラベル（アイブロウ等）は中太で上品に */
.hero__eyebrow, .s-hero__num, .a-hero__sub, .n-hero__sub, .service-row__title .en,
.feature__title .en, .grp__card .name .en, .cta-strip__title .en, .inq__title .en,
.r-cta__title .en { font-weight: 600; }
.hero__en { letter-spacing: .015em; }

/* ヘッダーのロゴ画像 */
.nj-nav__logo-img { height: 30px; width: auto; display: block; }
@media (max-width: 720px) { .nj-nav__logo-img { height: 26px; } }

/* ================================================================
   NEWS / MEDIA サムネイル：シネマフレーム（テキストは写真の外・下に表示）
   写真はカバー配置＋上部ゴールドライン＋ホバーズーム。
   ================================================================ */
/* --- NEWS グリッドカード --- */
.n-item{position:relative}
.n-item__photo,.n-item__photo.has-img{aspect-ratio:4/3;overflow:hidden;background:#111;background-size:cover;background-position:center}
.n-item__img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center;transition:transform .55s var(--ease-out)}
.n-item:hover .n-item__img{transform:scale(1.05)}
.n-item__photo::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--nj-gold);z-index:3}
.n-item__photo .ph-label{z-index:2}
/* --- MEDIA カード --- */
.m-card{position:relative}
.m-card__thumb,.m-card__thumb--ph{aspect-ratio:16/10;background-size:cover;background-position:center;overflow:hidden}
.m-card__thumb::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--nj-gold);z-index:3}
.m-card__thumb .m-badge{z-index:4}
.m-card__play{z-index:4}
/* --- 特集（Feature）：カバー＋ゴールドライン --- */
.n-feat__photo,.n-feat__photo.has-img{aspect-ratio:4/3;overflow:hidden;background:#111;position:relative}
.n-feat__img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center}
.n-feat__photo::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--nj-gold);z-index:2}
.m-feat__img::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--nj-gold);z-index:3}


/* ===== RECRUIT：募集職種カード（2職種）＋ 福利厚生 ===== */
.r-pos__lead { font-family: var(--font-body); font-size: 14px; color: var(--fg-2); margin: 14px 0 0; }
.r-pos-card { border: 1px solid rgba(250,248,244,.16); border-top: 3px solid var(--nj-gold); background: rgba(250,248,244,.02); padding: 38px 34px; display: flex; flex-direction: column; transition: background .35s var(--ease-out); }
.r-pos-card:hover { background: rgba(250,248,244,.05); }
.r-pos-card__head { display: flex; align-items: flex-start; gap: 18px; margin-bottom: 24px; padding-bottom: 22px; border-bottom: 1px solid rgba(250,248,244,.12); }
.r-pos-card__num { font-family: var(--font-display); font-size: 40px; line-height: 1; color: var(--nj-gold); }
.r-pos-card__en { display: block; font-family: var(--font-sub-en); font-size: 11px; font-weight: 600; letter-spacing: .26em; color: var(--nj-ash); }
.r-pos-card__ti { font-family: var(--font-jp-sans); font-weight: 700; font-size: 24px; letter-spacing: .05em; color: var(--fg-1); margin: 7px 0 0; }
.r-pos-card__mission { font-family: var(--font-jp-sans); font-weight: 700; font-size: 15px; letter-spacing: .04em; color: var(--nj-gold); margin: 0 0 12px; line-height: 1.6; }
.r-pos-card__want { font-family: var(--font-body); font-size: 13.5px; line-height: 1.8; color: var(--fg-2); margin: 0 0 22px; }
.r-pos-card__list { list-style: none; padding: 0; margin: 0 0 30px; display: flex; flex-direction: column; gap: 13px; }
.r-pos-card__list li { position: relative; padding-left: 22px; font-family: var(--font-body); font-size: 14px; line-height: 1.7; color: var(--fg-2); }
.r-pos-card__list li::before { content: ''; position: absolute; left: 0; top: 11px; width: 11px; height: 2px; background: var(--nj-gold); }
.r-pos-card__foot { margin-top: auto; }
.r-pos-card__tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 20px; }
.r-pos-card__tags span { font-family: var(--font-mono); font-size: 10px; padding: 4px 10px; border: 1px solid rgba(250,248,244,.30); color: var(--fg-2); }
.r-pos-card__btn { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-sub-en); font-size: 12px; font-weight: 600; letter-spacing: .2em; color: var(--nj-gold); border-bottom: 1px solid var(--nj-gold); padding-bottom: 4px; align-self: flex-start; transition: gap .3s var(--ease-out); }
.r-pos-card__btn:hover { gap: 16px; }

.r-benefits { background: var(--nj-paper); padding: 104px 48px; }
.r-benefits__head { margin-bottom: 48px; }
.r-benefits__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.r-benefit { border: 1px solid rgba(10,10,10,.10); border-top: 3px solid var(--nj-gold); background: #fff; padding: 30px 26px; }
.r-benefit__ico { display: inline-flex; width: 32px; height: 32px; color: var(--nj-gold-deep); margin-bottom: 16px; }
.r-benefit__ico svg { width: 100%; height: 100%; }
.r-benefit__ti { font-family: var(--font-jp-sans); font-weight: 700; font-size: 16px; letter-spacing: .04em; color: var(--nj-ink); margin: 0 0 8px; }
.r-benefit__tx { font-family: var(--font-body); font-size: 13px; line-height: 1.7; color: #55524c; margin: 0; }
@media (max-width:1024px){ .r-benefits__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width:920px){ .r-pos__list { grid-template-columns: 1fr; } }
@media (max-width:560px){ .r-benefits { padding: 64px 24px; } .r-benefits__grid { grid-template-columns: 1fr; } }
