/* ============================================================
   pages.css  —  Phase B CSS consolidation (2026-08-07)
   Per-template <style> blocks moved out of templates into this file.
   Enqueued AFTER color-refresh.css so cascade/priority is preserved
   (inline <style> previously loaded last; this file now loads last).
   FLAT sections = moved verbatim (page-unique class prefixes).
   SCOPED sections = every selector prefixed with the page body id so
   class names shared across pages (.ngt-*, .directlink, .dispatch-*,
   .group_com) do NOT bleed onto other pages. Behaviour is identical
   to the previous inline blocks.
   ============================================================ */


/* ============================================================
   FLAT — TOP (page-index.php)  .wkm-*
   ============================================================ */

/* 施工実績: 写真モザイク・グリッド (工事区分廃止 / images/works を自動表示) */
    .wkm-section { padding: 90px 0 100px; background: #fff; }
    .wkm-desc { max-width: 760px; margin: 18px 0 0; color: #666; font-size: 1.5rem; line-height: 1.9; }
    .wkm-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 180px; grid-auto-flow: dense; gap: 14px; margin-top: 40px; }
    .wkm-cell { position: relative; overflow: hidden; border-radius: 8px; display: block; }
    .wkm-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
    .wkm-cell:hover img { transform: scale(1.08); }
    .wkm-cell::after { content: ''; position: absolute; inset: 0; background: rgba(233,72,41,0); transition: background .3s ease; pointer-events: none; }
    .wkm-cell:hover::after { background: rgba(233,72,41,.18); }
    /* 表示時のスタッガー・リビール (data-delay は main.js が反映) — アクティブ版 */
    .wkm-cell.anim {
        opacity: 0;
        filter: blur(8px);
        transition: opacity .55s ease,
                    transform .8s cubic-bezier(.34, 1.56, .64, 1),
                    filter .55s ease;
        will-change: transform, opacity, filter;
    }
    /* 左右交互＋下から、軽い回転で勢いよく飛び込む */
    .wkm-grid .wkm-cell.anim:nth-child(odd)  { transform: translate(-64px, 56px) scale(.78) rotate(-3deg); }
    .wkm-grid .wkm-cell.anim:nth-child(even) { transform: translate( 64px, 56px) scale(.78) rotate( 3deg); }
    .wkm-grid .wkm-cell.anim.is-visible { opacity: 1; transform: translate(0, 0) scale(1) rotate(0); filter: blur(0); }
    /* 見出し説明文も少し大きめに */
    .wkm-desc.anim { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .7s cubic-bezier(.34,1.56,.64,1); }
    .wkm-desc.anim.is-visible { opacity: 1; transform: none; }
    /* 「21+」セルは表示後にほんのり脈動して目を引く */
    .wkm-more.is-visible { animation: wkmPulse 2.4s ease-in-out 1s infinite; }
    @keyframes wkmPulse {
        0%, 100% { box-shadow: 0 0 0 0 rgba(233,72,41,.0); }
        50%      { box-shadow: 0 10px 30px 0 rgba(233,72,41,.45); }
    }
    @media (prefers-reduced-motion: reduce) {
        .wkm-cell.anim, .wkm-desc.anim { opacity: 1 !important; transform: none !important; filter: none !important; transition: none; }
        .wkm-more.is-visible { animation: none; }
    }
    .wkm-cell.big  { grid-column: span 2; grid-row: span 2; }
    .wkm-cell.wide { grid-column: span 2; }
    .wkm-more { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; background: #e94829; color: #fff; text-align: center; transition: background .25s ease; }
    .wkm-more:hover { background: #d23a1e; }
    .wkm-more:hover::after { background: transparent; }
    .wkm-more-n { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 2.6rem; line-height: 1; }
    .wkm-more-l { font-size: 1.2rem; }
    @media (max-width: 768px) {
        .wkm-section { padding: 60px 0 70px; }
        .wkm-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 140px; gap: 10px; }
        .wkm-desc { font-size: 1.35rem; }
        .wkm-cell.big { grid-row: span 2; }
    }

/* ============================================================
   FLAT — WORK (page-work.php)  .wk-*
   ============================================================ */

/* === 施工実績カード (CPT work / 完成写真1枚=静止・2枚以上=スライドショー + タグ3つ) === */
.wk-works {
	padding: 6rem 0 8rem;
	background: #fff;
}
.wk-works-inner {
	max-width: 1160px;
	margin: 0 auto;
	padding: 0 24px;
}
.wk-card-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	align-items: start;
	gap: 3rem 2.4rem;
}
.wk-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	border-radius: 4px;
	overflow: hidden;
	transition: transform .3s ease, box-shadow .3s ease;
}
.wk-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.14);
}
/* 写真枠: 1〜複数枚で高さを揃えるため 4:3 に固定し cover */
.wk-card-photo {
	position: relative;
	background: #eee;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.wk-card-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.wk-card-photo--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #b0b0b0;
	font-size: 1.3rem;
	letter-spacing: .08em;
}
/* --- スライドショー --- */
.wk-slider .wk-slides {
	position: absolute;
	inset: 0;
}
.wk-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity .8s ease;
	pointer-events: none;
}
.wk-slide.is-active {
	opacity: 1;
	pointer-events: auto;
}
/* JS無効時のフォールバック（先頭スライドだけでも見える） */
.no-js .wk-slide:first-child,
.wk-slides .wk-slide.is-active { opacity: 1; }
/* キャプション（全画像共通・写真下部にオーバーレイ） */
.wk-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	padding: 2.4em 1.2em .9em;
	color: #fff;
	font-size: 1.2rem;
	line-height: 1.5;
	background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.62));
}
/* ドット（右上） */
.wk-dots {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 4;
	display: flex;
	gap: 6px;
}
.wk-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	box-shadow: 0 0 3px rgba(0, 0, 0, .3);
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}
.wk-dot:hover { transform: scale(1.2); }
.wk-dot.is-active { background: #fff; }
/* --- カード下部（タグ） --- */
.wk-card-body {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.3rem 1.6rem;
}
.wk-card-left {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	min-width: 0;
	flex: 1 1 auto;
}
.wk-tag {
	display: inline-flex;
	align-items: center;
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1;
	padding: 0.5em 1em;
	border-radius: 999px;
	white-space: nowrap;
}
.wk-tag--field {
	background: #e94829;
	color: #fff;
	flex: 0 0 auto;
}
.wk-tag--pref {
	background: #f2f2f2;
	color: #555;
	flex: 0 0 auto;
}
.wk-tag--pref::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #e94829;
	margin-right: 0.5em;
}
.wk-card-road {
	font-size: 1.3rem;
	font-weight: 700;
	color: #1a1a1a;
	line-height: 1.4;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.wk-empty {
	text-align: center;
	color: #888;
	padding: 4rem 0;
	font-size: 1.4rem;
}
@media (prefers-reduced-motion: reduce) {
	.wk-slide { transition: none; }
}
@media (max-width: 768px) {
	.wk-works { padding: 4rem 0 5rem; }
	.wk-card-grid {
		grid-template-columns: 1fr;
		gap: 2.4rem;
	}
	.wk-card-body { padding: 1.1rem 1.3rem; gap: 0.7rem; }
	.wk-card-left { gap: 0.7rem; }
	.wk-card-road { font-size: 1.2rem; }
	.wk-tag { font-size: 1rem; padding: 0.45em 0.85em; }
}

/* ============================================================
   FLAT — Photo gallery (page-photogallery.php)  .gl-*
   ============================================================ */

/* =========================================
   フォトギャラリー｜採用情報
========================================= */
.gl-wrap * { box-sizing: border-box; }
.gl-wrap { font-family: 'Noto Sans JP', sans-serif; color: #1a1a1a; line-height: 1.8; -webkit-font-smoothing: antialiased; }
.gl-wrap img { display: block; max-width: 100%; height: auto; }

/* ヒーロー */
.gl-hero {
  position: relative;
  padding: 110px 40px 80px;
  background: #faf7f4;
  overflow: hidden;
  border-bottom: 1px solid #ececec;
}
.gl-hero::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 4px;
  background: linear-gradient(90deg, #e94829 0%, #e94829 30%, transparent 30%);
}
.gl-hero::after {
  content: 'PHOTO';
  position: absolute;
  right: -20px; bottom: -40px;
  font-family: 'Montserrat', sans-serif;
  font-size: 22rem;
  font-weight: 800;
  color: #1a1a1a;
  opacity: 0.03;
  line-height: 1;
  letter-spacing: -0.02em;
  pointer-events: none;
}
.gl-hero-inner { position: relative; z-index: 1; max-width: 1240px; margin: 0 auto; }
.gl-hero-tag {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.35em;
  color: #e94829;
  margin-bottom: 24px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-transform: uppercase;
}
.gl-hero-tag::before { content: ''; width: 36px; height: 1px; background: #e94829; }
.gl-hero-title {
  font-size: clamp(3.8rem, 5.5vw, 6rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.04em;
  margin-bottom: 22px;
  color: #1a1a1a;
}
.gl-hero-title em {
  font-style: normal;
  background: linear-gradient(transparent 62%, rgba(233,72,41,0.22) 62%);
  padding: 0 4px;
}
.gl-hero-sub {
  font-size: 1.6rem;
  font-weight: 700;
  color: #555;
  letter-spacing: 0.14em;
  display: flex;
  align-items: center;
  gap: 10px;
}
.gl-hero-sub::before { content: '—'; color: #e94829; }

/* 絞り込みバー */
.gl-filter {
  position: sticky; top: 0; z-index: 10;
  background: rgba(255,255,255,0.96);
  backdrop-filter: saturate(180%) blur(10px);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  border-bottom: 1px solid #ececec;
  padding: 14px 40px;
}
.gl-filter-inner {
  max-width: 1240px; margin: 0 auto;
  display: flex; align-items: center;
  gap: 20px; flex-wrap: wrap;
}
.gl-filter-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: #999;
  margin-right: 4px;
}
.gl-filter-cats { display: flex; gap: 6px; flex-wrap: wrap; }
.gl-cat {
  font-size: 1.3rem; font-weight: 500;
  letter-spacing: 0.08em; color: #555;
  padding: 9px 18px;
  border-radius: 999px; border: 1px solid #e0e0e0;
  background: #fff; cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}
.gl-cat:hover { color: #1a1a1a; border-color: #1a1a1a; }
.gl-cat.on { color: #fff; background: #1a1a1a; border-color: #1a1a1a; }
.gl-cat .count {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.1rem; margin-left: 6px; opacity: 0.65;
}
.gl-result-count {
  margin-left: auto;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem; color: #888;
  letter-spacing: 0.15em;
}
.gl-result-count b {
  font-size: 1.8rem; font-weight: 800; color: #1a1a1a;
  margin-right: 4px; letter-spacing: 0;
}

/* Mosaic グリッド */
.gl-section { padding: 40px 40px 120px; }
.gl-section-inner { max-width: 1240px; margin: 0 auto; }
.gl-mosaic {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-auto-rows: 140px;
  grid-auto-flow: dense;
  gap: 12px;
}
.gl-tile {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  background: #eee;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
  transition: transform 0.4s cubic-bezier(.2,.8,.2,1), box-shadow 0.4s ease;
}
.gl-tile:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(0,0,0,0.12); }
.gl-tile img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s cubic-bezier(.2,.8,.2,1), filter 0.4s ease;
}
.gl-tile:hover img { transform: scale(1.04); }
.gl-tile.hidden { display: none; }
.gl-empty { grid-column: 1 / -1; text-align: center; color: #888; padding: 60px 0; font-size: 1.4rem; }

.gl-tile.size-s { grid-column: span 1; grid-row: span 2; }
.gl-tile.size-m { grid-column: span 2; grid-row: span 3; }
.gl-tile.size-l { grid-column: span 3; grid-row: span 4; }

.gl-tile.mono img { filter: grayscale(1) contrast(1.02); }
.gl-tile.mono:hover img { filter: grayscale(1) contrast(1.05); }

.gl-tile-caption {
  position: absolute;
  left: 12px; right: 12px; bottom: 12px;
  padding: 12px 14px 13px;
  background: rgba(255,255,255,0.94);
  backdrop-filter: saturate(160%) blur(8px);
  -webkit-backdrop-filter: saturate(160%) blur(8px);
  border-radius: 7px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  border-left: 3px solid #e94829;
  z-index: 2;
}
.gl-tile-cat {
  display: inline-block;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.95rem; font-weight: 700;
  letter-spacing: 0.2em; color: #888;
  margin-bottom: 2px;
}
.gl-tile-comment {
  font-size: 1.3rem; font-weight: 500;
  line-height: 1.6; color: #1a1a1a;
  letter-spacing: 0.04em;
  margin: 0;
}

.gl-tile[data-cat="work"]   .gl-tile-caption { border-left-color: #e94829; }
.gl-tile[data-cat="people"] .gl-tile-caption { border-left-color: #1bb8ce; }
.gl-tile[data-cat="daily"]  .gl-tile-caption { border-left-color: #6a994e; }
.gl-tile[data-cat="event"]  .gl-tile-caption { border-left-color: #d9a400; }

.gl-tile.size-l .gl-tile-caption {
  left: 20px; right: 20px; bottom: 20px;
  padding: 16px 20px 18px;
}
.gl-tile.size-l .gl-tile-comment { font-size: 1.55rem; line-height: 1.65; }
.gl-tile.size-l .gl-tile-cat { font-size: 1.1rem; }

.gl-tile-pill {
  position: absolute;
  top: 12px; left: 12px;
  padding: 4px 10px;
  background: rgba(0,0,0,0.55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  border-radius: 3px;
  opacity: 0;
  transform: translateY(-4px);
  transition: all 0.25s ease;
  z-index: 2;
}
.gl-tile:hover .gl-tile-pill { opacity: 1; transform: translateY(0); }

@media (max-width: 1024px) {
  .gl-mosaic { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 120px; }
  .gl-tile.size-s { grid-column: span 1; grid-row: span 2; }
  .gl-tile.size-m { grid-column: span 2; grid-row: span 3; }
  .gl-tile.size-l { grid-column: span 2; grid-row: span 4; }
}
@media (max-width: 640px) {
  .gl-hero { padding: 80px 20px 56px; }
  .gl-filter { padding: 10px 20px; }
  .gl-filter-label { display: none; }
  .gl-result-count { margin-left: 0; }
  .gl-section { padding: 28px 20px 80px; }
  .gl-mosaic { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 90px; gap: 8px; }
  .gl-tile.size-s { grid-column: span 1; grid-row: span 2; }
  .gl-tile.size-m { grid-column: span 1; grid-row: span 3; }
  .gl-tile.size-l { grid-column: span 2; grid-row: span 4; }
  .gl-tile-caption { left: 8px; right: 8px; bottom: 8px; padding: 9px 12px; }
  .gl-tile-comment { font-size: 1.15rem; }
  .gl-tile.size-l .gl-tile-caption { left: 10px; right: 10px; bottom: 10px; padding: 12px 14px; }
  .gl-tile.size-l .gl-tile-comment { font-size: 1.3rem; }
}

/* ============================================================
   FLAT — Numbers (page-numbers.php)  .nx-*
   ============================================================ */

/* ============ 数字でみる戸田道路 (テスト v3) ============ */
.nx-wrap{ --accent:var(--tdr-test-mint,#2ec4b6); --ink:var(--tdr-test-ink,#20343a); font-family:'Noto Sans JP',sans-serif; color:var(--ink); line-height:1.8; -webkit-font-smoothing:antialiased; }
.nx-wrap *{ box-sizing:border-box; }

/* リード文 (ヒーローは他ページ共通の .page-hero を使用) */
.nx-intro{ max-width:1180px; margin:0 auto; padding:48px 40px 0; text-align:center; }
.nx-intro-lead{ color:var(--tdr-test-muted,#64747a); font-size:1.5rem; }

.nx-section{ padding:72px 40px 96px; }
.nx-section--soft{ background:linear-gradient(160deg,var(--tdr-test-lagoon,#e9fbf6) 0%,#ffffff 58%,var(--tdr-test-soft,#f3fbf8) 100%); }
.nx-section-inner{ max-width:1180px; margin:0 auto; }
.nx-section-head{ text-align:center; margin-bottom:48px; }
.nx-section-en{ display:block; font-family:'Montserrat',sans-serif; font-weight:700; letter-spacing:.25em; color:var(--accent); font-size:1.1rem; text-transform:uppercase; }
.nx-section-ja{ font-size:2.4rem; font-weight:800; margin-top:6px; }
.nx-section-ja::after{ content:''; display:block; width:42px; height:3px; background:var(--accent); margin:14px auto 0; border-radius:2px; }

/* グリッド */
.nx-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:22px; }
.nx-col-4{ grid-column:span 4; } .nx-col-6{ grid-column:span 6; } .nx-col-8{ grid-column:span 8; }
.nx-card{ display:flex; flex-direction:column; background:#fff; border:1px solid #eceef1; border-radius:14px; padding:24px 24px 22px; box-shadow:0 2px 10px rgba(0,0,0,.04); border-top:3px solid var(--c); opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }
.nx-card.nx-in{ opacity:1; transform:none; }
.nx-card-top{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.nx-card-icon{ flex:0 0 auto; width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--c); color:#fff; box-shadow:0 4px 10px color-mix(in srgb,var(--c) 35%,transparent); }
.nx-card-icon svg{ width:26px; height:26px; }
.nx-card-icon .material-symbols-outlined{ font-size:26px; }
.nx-card-label{ font-size:1.45rem; font-weight:700; }
.nx-card-body{ flex:1 1 auto; display:flex; flex-direction:column; justify-content:center; }

/* 数字 */
.nx-num{ display:flex; align-items:baseline; gap:5px; color:var(--c); }
.nx-num-val{ font-family:'Montserrat',sans-serif; font-weight:800; line-height:1; font-size:3.4rem; }
.nx-num-unit{ font-size:1.5rem; font-weight:700; }
.nx-num--big .nx-num-val{ font-size:5.4rem; }
.nx-num--big .nx-num-unit{ font-size:1.9rem; }
.nx-num--year .nx-num-val{ font-size:4rem; letter-spacing:.02em; }

/* ドーナツ (SVG) */
.nx-donut-wrap{ display:flex; align-items:center; gap:20px; }
.nx-donut{ width:118px; height:118px; flex:0 0 auto; transform:rotate(0deg); }
.nx-donut-seg{ transition:stroke-dasharray 1.1s cubic-bezier(.3,.9,.3,1); }
.nx-in .nx-donut-seg{ stroke-dasharray:var(--dash); }
.nx-legend{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.nx-legend li{ display:flex; align-items:center; gap:8px; font-size:1.2rem; }
.nx-dot{ width:11px; height:11px; border-radius:3px; flex:0 0 auto; }
.nx-leg-label{ color:#666; font-weight:600; }
.nx-leg-val{ font-family:'Montserrat',sans-serif; font-weight:800; color:var(--ink); }

/* 横スタックバー */
.nx-stack{ display:flex; height:54px; border-radius:10px; overflow:hidden; background:#eef1f4; }
.nx-stack-seg{ display:flex; flex-direction:column; align-items:center; justify-content:center; color:#fff; min-width:0; overflow:hidden; width:0; transition:width 1.1s cubic-bezier(.3,.9,.3,1); }
.nx-in .nx-stack-seg{ width:var(--w); }
.nx-stack-seg b{ font-family:'Montserrat',sans-serif; font-size:1.7rem; line-height:1; }
.nx-stack-seg i{ font-style:normal; font-size:1.05rem; opacity:.92; }

/* 縦棒 */
.nx-vbars{ display:flex; align-items:flex-end; gap:14px; height:150px; padding-top:8px; }
.nx-vbar{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:6px; }
.nx-vbar-val{ font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.25rem; color:var(--c); }
.nx-vbar-col{ width:60%; max-width:46px; background:linear-gradient(180deg,var(--c),var(--c2)); border-radius:6px 6px 0 0; min-height:4px; height:0; transition:height 1s cubic-bezier(.3,.9,.3,1); }
.nx-in .nx-vbar-col{ height:var(--h); }
.nx-vbar-label{ font-size:1.05rem; color:#777; }

/* リングゲージ */
.nx-ring-wrap{ position:relative; width:128px; height:128px; margin:0 auto; }
.nx-ring{ width:100%; height:100%; }
.nx-ring-prog{ stroke-dashoffset:var(--circ); transition:stroke-dashoffset 1.2s cubic-bezier(.3,.9,.3,1); }
.nx-in .nx-ring-prog{ stroke-dashoffset:var(--off); }
.nx-ring-num{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--c); }
.nx-ring-num b{ font-family:'Montserrat',sans-serif; font-size:2.6rem; line-height:1; }
.nx-ring-num i{ font-style:normal; font-size:1.15rem; font-weight:700; }

/* 複数値 */
.nx-split{ display:flex; flex-wrap:wrap; gap:10px 28px; }
.nx-split-item{ display:flex; align-items:baseline; gap:8px; }
.nx-split-label{ font-size:1.2rem; color:#777; font-weight:600; }
.nx-split-val{ font-family:'Montserrat',sans-serif; font-size:2.2rem; font-weight:800; color:var(--c); }

.nx-note{ margin-top:12px; font-size:1.1rem; color:#999; }
.nx-comment{ margin-top:14px; font-size:1.25rem; line-height:1.85; color:#555; }

/* 福利厚生 */
.nx-bgroup{ margin-bottom:52px; }
.nx-bgroup:last-child{ margin-bottom:0; }
.nx-bgroup-title{ display:flex; align-items:center; justify-content:center; gap:12px; font-size:1.85rem; font-weight:800; color:var(--c); margin-bottom:28px; }
.nx-bgroup-title::before,.nx-bgroup-title::after{ content:''; width:30px; height:2px; background:var(--c); }
.nx-bgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.nx-benefit{ background:#fff; border:1px solid #eceef1; border-radius:14px; padding:30px 22px 26px; text-align:center; box-shadow:0 2px 10px rgba(0,0,0,.04); transition:transform .3s ease,box-shadow .3s ease; }
.nx-benefit:hover{ transform:translateY(-5px); box-shadow:0 14px 28px rgba(0,0,0,.12); }
.nx-benefit-icon{ width:78px; height:78px; margin:0 auto 16px; display:grid; place-items:center; border-radius:50%; color:#fff; box-shadow:0 6px 16px rgba(0,0,0,.12); }
.nx-benefit-icon svg{ width:40px; height:40px; }
.nx-benefit-icon .material-symbols-outlined{ font-size:40px; }
.nx-benefit-title{ font-size:1.5rem; font-weight:700; line-height:1.5; margin-bottom:10px; }
.nx-benefit-desc{ font-size:1.2rem; line-height:1.8; color:#666; text-align:left; }

/* 後半2グループをPCで横並び */
.nx-brow{ display:flex; gap:28px; }
.nx-brow .nx-bgroup{ flex:1; margin-bottom:0; }
.nx-brow .nx-bgrid{ grid-template-columns:repeat(2,1fr); }

@media (max-width:900px){
	.nx-col-4,.nx-col-6,.nx-col-8{ grid-column:span 6; }
	.nx-bgrid{ grid-template-columns:repeat(2,1fr); }
	.nx-brow{ flex-direction:column; gap:52px; }
}
@media (max-width:560px){
	.nx-intro{ padding:32px 20px 0; } .nx-section{ padding:52px 20px 64px; }
	.nx-grid{ gap:16px; } .nx-col-4,.nx-col-6,.nx-col-8{ grid-column:span 12; }
	.nx-bgrid{ grid-template-columns:1fr; } .nx-brow .nx-bgrid{ grid-template-columns:1fr; }
	.nx-num--big .nx-num-val{ font-size:4.4rem; }
}
@media (prefers-reduced-motion:reduce){
	.nx-card,.nx-donut-seg,.nx-stack-seg,.nx-vbar-col,.nx-ring-prog{ transition:none !important; }
}

/* ============================================================
   FLAT — News archive (archive-news.php)  .news-archive-* / .news-hero-*
   ============================================================ */

/* ============================================================
   お知らせ一覧 — archive-news.php
   ============================================================ */

/* ---- ヒーロー (single-news.php と共有) — シンプル版 ---- */
.news-hero {
    position: relative;
    padding: 130px 40px 40px;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    overflow: hidden;
}
.news-hero::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 40px;
    width: 60px;
    height: 3px;
    background: #e94829;
}
.news-hero-inner {
    max-width: 1240px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.news-hero-en {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: 0.3em;
    color: #e94829;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.news-hero-ja {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 3.4rem;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.2;
    margin: 0;
}

/* ---- 一覧コンテナ ---- */
.news-archive {
    padding: 80px 40px 120px;
    background: #fff;
}
.news-archive-container {
    max-width: 960px;
    margin: 0 auto;
}

/* ---- リスト ---- */
.news-archive-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* ---- 各アイテム ---- */
.news-archive-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 28px 20px;
    border-bottom: 1px solid #eee;
    transition: background 0.2s;
}
.news-archive-item:first-child {
    border-top: 1px solid #eee;
}
.news-archive-item:hover {
    background: #fafafa;
}

/* ---- 日付 ---- */
.news-archive-date {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    color: #888;
    letter-spacing: 0.05em;
    white-space: nowrap;
    min-width: 90px;
    padding-top: 2px;
}

/* ---- カテゴリーバッジ ---- */
.news-archive-cat {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}
.news-archive-cat span {
    display: inline-block;
    width: 100px;
    padding: 4px 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: #fff;
    background: #1a1a1a;
    border-radius: 3px;
    letter-spacing: 0.05em;
    text-align: center;
    white-space: nowrap;
}
/* カテゴリー別の色 */
.news-archive-cat span[data-cat="news"]       { background: var(--tdr-test-mint); }
.news-archive-cat span[data-cat="employment"] { background: var(--tdr-test-sky); }
.news-archive-cat span[data-cat="topics"]     { background: var(--tdr-test-leaf); }
.news-archive-cat span[data-cat="ir"]         { background: var(--tdr-test-amber); color: var(--tdr-test-ink); }

/* ---- タイトル ---- */
.news-archive-title {
    flex: 1;
}
.news-archive-title a {
    display: inline;
    font-size: 1.5rem;
    font-weight: 500;
    color: #333;
    line-height: 1.6;
    transition: color 0.2s;
}
.news-archive-title a:hover {
    color: #e94829;
}

/* ---- 新着バッジ ---- */
.news-archive-new {
    display: inline-block;
    margin-left: 10px;
    padding: 2px 8px;
    font-family: 'Montserrat', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    background: #e94829;
    border-radius: 3px;
    letter-spacing: 0.1em;
    vertical-align: 2px;
}

/* ---- 矢印アイコン ---- */
.news-archive-arrow {
    margin-left: 8px;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.3rem;
    color: #ccc;
    transition: color 0.2s;
}
.news-archive-title a:hover .news-archive-arrow {
    color: #e94829;
}
.news-archive-icon {
    margin-left: 6px;
    font-size: 1.2rem;
    color: #888;
}

/* ---- 空メッセージ ---- */
.news-archive-empty {
    text-align: center;
    padding: 80px 0;
    font-size: 1.6rem;
    color: #888;
}

/* ---- レスポンシブ ---- */
@media (max-width: 768px) {
    .news-hero { padding: 110px 20px 30px; }
    .news-hero::before { left: 20px; }
    .news-hero-ja { font-size: 2.6rem; }
    .news-archive { padding: 48px 20px 80px; }
    .news-archive-item {
        flex-direction: column;
        gap: 8px;
        padding: 22px 0;
    }
    .news-archive-date { min-width: auto; }
    .news-archive-title a { font-size: 1.4rem; }
}

/* ============================================================
   FLAT — News single (single-news.php)  .news-detail-* / .news-hero-*
   ============================================================ */

/* ============================================================
   お知らせ詳細 — single-news.php
   ============================================================ */

/* ---- ヒーロー — シンプル版 ---- */
.news-hero {
    position: relative;
    padding: 130px 40px 40px;
    background: #fff;
    border-bottom: 1px solid #e5e5e5;
    overflow: hidden;
}
.news-hero::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 40px;
    width: 60px;
    height: 3px;
    background: #e94829;
}
.news-hero-inner {
    max-width: 1240px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}
.news-hero-en {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.3rem;
    font-weight: 600;
    letter-spacing: 0.3em;
    color: #e94829;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.news-hero-ja {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 3.4rem;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.08em;
    line-height: 1.2;
    margin: 0;
}

/* ---- 記事本体コンテナ ---- */
.news-detail {
    padding: 80px 40px 120px;
    background: #fff;
}
.news-detail-container {
    max-width: 860px;
    margin: 0 auto;
}

/* ---- メタ情報 ---- */
.news-detail-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.news-detail-date {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.4rem;
    font-weight: 500;
    color: #888;
    letter-spacing: 0.05em;
}
.news-detail-cat {
    display: inline-block;
    padding: 4px 14px;
    font-size: 1.2rem;
    font-weight: 600;
    color: #fff;
    background: #1a1a1a;
    border-radius: 3px;
    letter-spacing: 0.05em;
}
.news-detail-new {
    display: inline-block;
    padding: 3px 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    background: #e94829;
    border-radius: 3px;
    letter-spacing: 0.1em;
}

/* ---- タイトル ---- */
.news-detail-title {
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 1.5;
    color: #1a1a1a;
    padding-bottom: 28px;
    margin-bottom: 40px;
    border-bottom: 3px solid #e94829;
}

/* ---- 本文 ---- */
.news-detail-body {
    font-size: 1.6rem;
    line-height: 2;
    color: #333;
    margin-bottom: 48px;
}
.news-detail-body p { margin-bottom: 1.5em; }
.news-detail-body img { max-width: 100%; height: auto; border-radius: 4px; }
.news-detail-text {
    margin-top: 24px;
    font-size: 1.6rem;
    line-height: 2;
    color: #333;
}

/* ---- 画像ギャラリー ---- */
.news-detail-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    list-style: none;
    margin: 0 0 48px;
    padding: 0;
}
.news-detail-gallery.has-4 {
    grid-template-columns: repeat(4, 1fr);
}
.news-detail-gallery-item img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}
.news-detail-caption {
    margin-top: 8px;
    font-size: 1.2rem;
    color: #888;
    line-height: 1.5;
    text-align: center;
}

/* ---- 外部リンク ---- */
.news-detail-link {
    border-bottom: 1px solid #e8e8e8;
}
.news-detail-link a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 22px 0;
    font-size: 1.5rem;
    font-weight: 500;
    color: #e94829;
    transition: opacity 0.3s;
}
.news-detail-link a:hover { opacity: 0.7; }
.news-detail-link-icon {
    font-family: 'Material Symbols Outlined', sans-serif;
    font-size: 2rem;
    color: #e94829;
}
.news-detail-link-arrow {
    margin-left: auto;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.4rem;
}

/* ---- ファイルDL ---- */
.news-detail-file {
    border-bottom: 1px solid #e8e8e8;
}
.news-detail-file a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 22px 0;
    font-size: 1.5rem;
    font-weight: 500;
    color: #1a1a1a;
    transition: opacity 0.3s;
}
.news-detail-file a:hover { opacity: 0.7; }
.news-detail-file-icon {
    font-family: 'Material Symbols Outlined', sans-serif;
    font-size: 2rem;
    color: #888;
}
.news-detail-file-arrow {
    margin-left: auto;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    color: #e94829;
}

/* ---- 一覧に戻る ---- */
.news-detail-back {
    margin-top: 60px;
    text-align: center;
}
.news-detail-back a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: 'Montserrat', sans-serif;
    font-size: 1.5rem;
    font-weight: 500;
    color: #1a1a1a;
    padding: 16px 40px;
    border: 2px solid #1a1a1a;
    border-radius: 50px;
    transition: all 0.3s ease;
}
.news-detail-back a:hover {
    background: #1a1a1a;
    color: #fff;
}

/* ---- レスポンシブ ---- */
@media (max-width: 768px) {
    .news-hero { padding: 110px 20px 30px; }
    .news-hero::before { left: 20px; }
    .news-hero-ja { font-size: 2.6rem; }
    .news-detail { padding: 48px 20px 80px; }
    .news-detail-title { font-size: 2.2rem; }
    .news-detail-body { font-size: 1.5rem; }
    .news-detail-gallery {
        grid-template-columns: repeat(2, 1fr);
    }
    .news-detail-gallery.has-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================================
   SCOPED (body.page-id-699) — Company info / aboutus (page-cominfo.php)  .directlink/.group_com shared -> scoped
   ============================================================ */

body.page-id-699 #table1 { display: table; width: 100%; }
body.page-id-699 .caption { display: table-caption; }
body.page-id-699 .thead { display:table-header-group; }
body.page-id-699 .tbody { display:table-row-group; }
body.page-id-699 .tr { display:table-row; }
body.page-id-699 #table1 .th, body.page-id-699 .td { display:table-cell; font-size: 16px; padding: 15px 0; border-top: 1px solid #ccc; }
body.page-id-699 #table1 .td:nth-child(1) { width: 20%; font-weight:bold; }
body.page-id-699 #table1 .td:nth-child(2) { width: 79%; line-height: 1.8; }
body.page-id-699 #table2 { display: table; width: 100%; }
body.page-id-699 #table2 .th, body.page-id-699 #table2 .td { display:table-cell; font-size: 16px; padding: 15px 0; border-top: 1px solid #ccc; }
body.page-id-699 #table2 .td:nth-child(1) { width: 20%; font-weight:bold; }
body.page-id-699 #table2 .td:nth-child(2) { width: 29%; line-height: 1.8; }
body.page-id-699 #table2 .td:nth-child(3) { width: 50%; line-height: 1.8; }
body.page-id-699 .group_flx { display:flex; justify-content: space-between; }
body.page-id-699 .group_com li { font-size:13px; text-align: left; list-style-type: none; margin: 10px 0 5px 0; line-height: 1.6; }
body.page-id-699 .access-ico { position: relative; padding-left: 1.2em; line-height: 1.4; }
body.page-id-699 .access-ico:before { font-family: "Font Awesome 5 Free"; content: "\f239"; font-weight: 900; position: absolute; font-size: 1em; left: 0; top: 0; color: #5ab9ff; font-weight: 900; }
body.page-id-699 li.kessan_flx { display: flex; justify-content: space-between; border-bottom: 1px solid #bfbfbf; padding: 20px 0; font-size: 14px; }
body.page-id-699 a.directlink { color: #cb421d; }
body.page-id-699 a.directlink::after { font-family: 'Material Symbols Outlined'; content: "\e89e"; font-weight: normal; padding-left: 5px; font-size: 1.05em; vertical-align: -0.15em; }
body.page-id-699 .license-flexbox { display: flex; justify-content: space-between; }
body.page-id-699 .license-box_l, body.page-id-699 .license-box_r { width:48%; }
body.page-id-699 #table3, body.page-id-699 #table4 { width: 100%; border-collapse: collapse; }
body.page-id-699 #table3 td:nth-child(1) { width: 79%; font-weight:bold; border-bottom: 1px solid #ccc; font-size: 14px; padding: 15px; }
body.page-id-699 #table3 td:nth-child(2) { width: 20%; line-height: 1.8; border-bottom: 1px solid #ccc; text-align: right; font-size: 14px; padding: 15px; }
body.page-id-699 #table4 td:nth-child(1) { width: 79%; font-weight:bold; border-bottom: 1px solid #ccc; font-size: 14px; padding: 15px; }
body.page-id-699 #table4 td:nth-child(2) { width: 20%; line-height: 1.8; border-bottom: 1px solid #ccc; text-align: right; font-size: 14px; padding: 15px; }
@media only screen and (max-width:660px) {
  body.page-id-699 .tr { display: block; border-top: 1px solid #ccc; }
  body.page-id-699 .th, body.page-id-699 .td { display: block; padding: 5px 0 0 0; border-top: none; }
  body.page-id-699 .td:nth-child(1), body.page-id-699 .td:nth-child(2) { width: 100%; }
  body.page-id-699 .license-flexbox { display: block; }
  body.page-id-699 .license-flexbox { display: block; }
  body.page-id-699 .license-box_l, body.page-id-699 .license-box_r { width:100%; }
  body.page-id-699 #table3 td:nth-child(1) { width: 70%; border-bottom: 1px solid #ccc; display:table-cell; }
  body.page-id-699 #table3 td:nth-child(2) { width: 30%; line-height: 1.8; border-bottom: 1px solid #ccc; display:table-cell; }
  body.page-id-699 #table4 td:nth-child(1) { width: 70%; border-bottom: 1px solid #ccc; display:table-cell; }
  body.page-id-699 #table4 td:nth-child(2) { width: 30%; line-height: 1.8; border-bottom: 1px solid #ccc; display:table-cell; }
}
body.page-id-699 .c04, body.page-id-699 .c07, body.page-id-699 .c010, body.page-id-699 .c013, body.page-id-699 .c016, body.page-id-699 .c019, body.page-id-699 .c022 { border-top: 0 !important; }
body.page-id-699 .a08 { border-bottom: 1px solid #ccc; }
body.page-id-699 .c022, body.page-id-699 .c023, body.page-id-699 .c024 { border-bottom: 1px solid #ccc !important; }

/* ============================================================
   SCOPED (body.page-id-701) — Temporary/dispatch (page-temporary.php)  .dispatch-* shared with profile -> scoped
   ============================================================ */

body.page-id-701 .dispatch-subsection { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid #e3e3e3; }
body.page-id-701 .dispatch-subsection:first-of-type { margin-top: 2.5rem; }
body.page-id-701 .dispatch-subtitle { display: flex; align-items: center; gap: 0.6em; font-size: 1.35rem; font-weight: 700; color: #1a1a1a; margin-bottom: 1.4rem; line-height: 1.4; }
body.page-id-701 .dispatch-subtitle::before { content: ""; flex: 0 0 auto; width: 6px; height: 1.1em; background: #d7000f; border-radius: 2px; }
@media (max-width: 768px) {
  body.page-id-701 .dispatch-subtitle { font-size: 1.15rem; }
}

/* ============================================================
   SCOPED (body.page-id-838) — Career (page-career.php)
   .ngt-* and .rec-banner-* diverge vs new_graduate -> scoped
   ============================================================ */

body.page-id-838 .ngt { --o1:#ff7a30; --o2:#ffb14d; --red:#e94829; --blue:#16a3bd; --green:#5a9e4e; --cream:#f3f6f9; --ink:#2a2320; font-family:'Noto Sans JP',sans-serif; color:var(--ink); line-height:1.85; -webkit-font-smoothing:antialiased; }
body.page-id-838 .ngt * { box-sizing:border-box; }
body.page-id-838 .ngt-wrap { max-width:1080px; margin:0 auto; padding:0 28px; }
body.page-id-838 .ngt-btn { display:inline-flex; align-items:center; gap:12px; padding:16px 30px; border-radius:999px; font-weight:800; font-size:1.45rem; text-decoration:none; background:linear-gradient(100deg,var(--red),#ff6a4d); color:#fff; box-shadow:0 10px 24px rgba(233,72,41,.36); transition:transform .25s ease, box-shadow .25s ease; }
body.page-id-838 .ngt-btn svg { width:22px; height:22px; }
body.page-id-838 .ngt-btn:hover { transform:translateY(-3px); box-shadow:0 16px 32px rgba(233,72,41,.46); opacity:1; }
body.page-id-838 .ngt-btn--lg { font-size:1.7rem; padding:20px 44px; }
body.page-id-838 .ngt-btn--white { background:#fff; color:var(--red); box-shadow:0 10px 24px rgba(0,0,0,.18); }
body.page-id-838 .ngt-btn--white:hover { box-shadow:0 16px 34px rgba(0,0,0,.26); }
body.page-id-838 .ngt-hero { position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden; }
body.page-id-838 .ngt-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center 30%; }
body.page-id-838 .ngt-hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(100deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 38%, rgba(255,255,255,.12) 70%, transparent 100%); }
body.page-id-838 .ngt-hero-inner { position:relative; z-index:1; width:100%; max-width:1080px; margin:0 auto; padding:64px 28px; }
body.page-id-838 .ngt-hero-card { max-width:580px; }
body.page-id-838 .ngt-hero-en { font-family:'Montserrat',sans-serif; font-weight:700; letter-spacing:.18em; color:var(--red); font-size:1.2rem; text-transform:uppercase; margin-bottom:14px; }
body.page-id-838 .ngt-hero-catch { font-size:clamp(3.2rem,5.2vw,4.8rem); font-weight:900; line-height:1.18; letter-spacing:.02em; }
body.page-id-838 .ngt-hero-catch em { font-style:normal; background:linear-gradient(transparent 58%, rgba(22,163,189,.32) 58%); padding:0 .08em; }
body.page-id-838 .ngt-hero-lead { margin:20px 0 0; font-size:1.55rem; color:#5a4f48; font-weight:500; }
body.page-id-838 .ngt-highlights { background:var(--cream); padding:0; }
body.page-id-838 .ngt-hl-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; transform:translateY(-44px); }
body.page-id-838 .ngt-hl { background:#fff; border-radius:18px; padding:26px 18px 24px; text-align:center; box-shadow:0 12px 30px rgba(60,80,100,.10); border:1px solid #eaeef2; border-top:3px solid var(--hc,var(--red)); }
body.page-id-838 .ngt-hl-icon { width:62px; height:62px; margin:0 auto 12px; display:grid; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--hc,var(--red)),var(--hc2,var(--o2))); box-shadow:0 8px 18px rgba(0,0,0,.14); }
body.page-id-838 .ngt-hl-icon svg { width:32px; height:32px; }
body.page-id-838 .ngt-hl-label { font-size:1.12rem; color:#9a8c80; font-weight:700; letter-spacing:.04em; }
body.page-id-838 .ngt-hl-main { font-size:2.05rem; font-weight:900; color:var(--hc,var(--red)); line-height:1.2; margin:2px 0 4px; }
body.page-id-838 .ngt-hl-sub { font-size:1.1rem; color:#8a7f76; }
body.page-id-838 .ngt-head { text-align:center; margin-bottom:38px; }
body.page-id-838 .ngt-head-en { display:block; font-family:'Montserrat',sans-serif; font-weight:700; letter-spacing:.22em; color:var(--blue); font-size:1.1rem; text-transform:uppercase; }
body.page-id-838 .ngt-head-ja { font-size:2.4rem; font-weight:900; margin-top:4px; }
body.page-id-838 .ngt-head-ja::after { content:''; display:block; width:64px; height:4px; border-radius:3px; margin:14px auto 0; background:linear-gradient(90deg,var(--red) 0%,var(--o1) 35%,var(--blue) 70%,var(--green) 100%); }
body.page-id-838 .ngt-head-lead { margin-top:14px; font-size:1.4rem; color:#6a5f57; }
body.page-id-838 .ngt-head-lead strong { color:var(--red); }
body.page-id-838 .ngt-entry { background:var(--cream); padding:30px 0 76px; }
body.page-id-838 .ngt-entry-single { text-align:center; }
body.page-id-838 .ngt-req { background:#fff; padding:80px 0; }
body.page-id-838 .ngt-table { width:100%; border-collapse:separate; border-spacing:0; border-radius:16px; overflow:hidden; box-shadow:0 8px 26px rgba(60,80,100,.10); }
body.page-id-838 .ngt-table th, body.page-id-838 .ngt-table td { padding:18px 22px; text-align:left; font-size:1.3rem; vertical-align:top; border-bottom:1px solid #eef2f5; line-height:1.9; }
body.page-id-838 .ngt-table tr:last-child th, body.page-id-838 .ngt-table tr:last-child td { border-bottom:0; }
body.page-id-838 .ngt-table th { width:160px; background:linear-gradient(180deg,#f1f5f8,#e9eef2); color:#3f4b54; font-weight:800; white-space:nowrap; }
body.page-id-838 .ngt-table td { background:#fff; color:#4a423c; }
body.page-id-838 .ngt-table tr:nth-child(even) td { background:#f7f9fb; }
body.page-id-838 .ngt-table strong { color:var(--red); }
body.page-id-838 .ngt-table .tfe-red { color:var(--red); font-weight:700; }
body.page-id-838 .ngt-link { color:var(--blue); font-weight:700; text-underline-offset:3px; }
body.page-id-838 .ngt-link:hover { color:var(--red); }
body.page-id-838 .ngt-sub { display:block; font-size:1.32rem; font-weight:800; color:#2a3540; margin:14px 0 6px; padding-left:12px; border-left:4px solid var(--blue); }
body.page-id-838 .ngt-sub--red { border-left-color:var(--red); color:var(--red); }
body.page-id-838 .ngt-tag { display:inline-block; background:var(--red); color:#fff; font-weight:800; font-size:1.15rem; padding:4px 14px; border-radius:6px; margin:4px 0; }
body.page-id-838 .ngt-tag--blue { background:var(--blue); }
body.page-id-838 .ngt-emph { display:inline-block; background:#fdecea; color:var(--red); font-weight:800; padding:8px 14px; border-radius:8px; border-left:3px solid var(--red); }
body.page-id-838 .ngt-salary { list-style:none; margin:8px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
body.page-id-838 .ngt-salary li { display:flex; align-items:center; flex-wrap:wrap; gap:10px 16px; background:#f7f9fb; border-left:4px solid var(--green); border-radius:0 8px 8px 0; padding:12px 16px; }
body.page-id-838 .ngt-salary-age { font-weight:800; color:#2a3540; min-width:48px; }
body.page-id-838 .ngt-salary-amt { font-family:'Montserrat',sans-serif; font-size:1.7rem; font-weight:900; color:var(--green); }
body.page-id-838 .ngt-salary-note { font-size:1.1rem; color:#8a8278; }
body.page-id-838 .ngt-salary-foot { margin-top:10px; font-size:1.05rem; color:#9a9088; }
body.page-id-838 .ngt-flow { list-style:none; margin:0; padding:0; counter-reset:flow; display:flex; flex-direction:column; gap:10px; }
body.page-id-838 .ngt-flow li { position:relative; counter-increment:flow; padding:12px 16px 12px 56px; background:#f7f9fb; border-radius:10px; font-weight:700; color:#3a4751; }
body.page-id-838 .ngt-flow li small { font-weight:500; color:#8a8278; }
body.page-id-838 .ngt-flow li::before { content:counter(flow); position:absolute; left:14px; top:50%; transform:translateY(-50%); width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg,var(--blue),#5fd6c4); color:#fff; font-family:'Montserrat',sans-serif; font-weight:800; font-size:1.2rem; }
body.page-id-838 .rec-banner { padding:8px 28px 56px; }
body.page-id-838 .rec-banner-inner { max-width:760px; margin:0 auto; }
body.page-id-838 .rec-banner-link { display:inline-block; max-width:560px; width:100%; }
body.page-id-838 .rec-banner-img { width:100%; height:auto; display:block; border-radius:6px; box-shadow:0 8px 28px rgba(0,0,0,.12); transition:transform .25s, box-shadow .25s; }
body.page-id-838 .rec-banner-link:hover .rec-banner-img { transform:translateY(-3px); box-shadow:0 14px 36px rgba(0,0,0,.18); }
body.page-id-838 .rec-banner-text { font-size:1.35rem; line-height:1.9; color:#333; margin-top:22px; }
body.page-id-838 .rec-banner-text--strong { font-weight:700; margin-top:10px; }
@media (max-width:600px) {
  body.page-id-838 .rec-banner { padding:4px 20px 44px; }
  body.page-id-838 .rec-banner-text { font-size:1.25rem; }
}
body.page-id-838 .ngt-cta { background-size:cover; background-position:center; padding:84px 28px; text-align:center; }
body.page-id-838 .ngt-cta-inner { max-width:760px; margin:0 auto; color:#fff; }
body.page-id-838 .ngt-cta-catch { font-size:clamp(2.6rem,4vw,3.4rem); font-weight:900; text-shadow:0 2px 14px rgba(0,0,0,.3); }
body.page-id-838 .ngt-cta-sub { font-size:1.45rem; margin:12px 0 28px; text-shadow:0 1px 10px rgba(0,0,0,.35); }
@media (max-width:860px) {
  body.page-id-838 .ngt-hl-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px) {
  body.page-id-838 .ngt-hero { min-height:460px; }
  body.page-id-838 .ngt-hero-bg::after { background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.66) 58%, rgba(255,255,255,.42) 100%); }
  body.page-id-838 .ngt-hl-grid { grid-template-columns:1fr; transform:translateY(-30px); }
  body.page-id-838 .ngt-req { padding:56px 0; }
  body.page-id-838 .ngt-table th { width:108px; }
  body.page-id-838 .ngt-table th, body.page-id-838 .ngt-table td { padding:13px 13px; font-size:1.2rem; }
  body.page-id-838 .ngt-salary-amt { font-size:1.5rem; }
}

/* ============================================================
   SCOPED (body.page-id-836) — New graduate (page-new_graduate.php)
   .ngt-* and .rec-banner-* diverge vs career -> scoped
   ============================================================ */

body.page-id-836 .ngt { --o1:#ff7a30; --o2:#ffb14d; --red:#e94829; --blue:#16a3bd; --green:#5a9e4e; --cream:#f3f6f9; --ink:#2a2320; font-family:'Noto Sans JP',sans-serif; color:var(--ink); line-height:1.85; -webkit-font-smoothing:antialiased; }
body.page-id-836 .ngt * { box-sizing:border-box; }
body.page-id-836 .ngt-wrap { max-width:1080px; margin:0 auto; padding:0 28px; }
body.page-id-836 .ngt-btn { display:inline-flex; align-items:center; gap:12px; padding:16px 30px; border-radius:999px; font-weight:800; font-size:1.45rem; text-decoration:none; background:linear-gradient(100deg,var(--o1),var(--o2)); color:#fff; box-shadow:0 10px 24px rgba(255,122,48,.4); transition:transform .25s ease, box-shadow .25s ease; }
body.page-id-836 .ngt-btn svg { width:22px; height:22px; }
body.page-id-836 .ngt-btn:hover { transform:translateY(-3px); box-shadow:0 16px 32px rgba(255,122,48,.5); opacity:1; }
body.page-id-836 .ngt-btn--lg { font-size:1.7rem; padding:20px 40px; }
body.page-id-836 .ngt-btn--white { background:#fff; color:var(--red); box-shadow:0 10px 24px rgba(0,0,0,.18); }
body.page-id-836 .ngt-btn--white:hover { box-shadow:0 16px 34px rgba(0,0,0,.26); }
body.page-id-836 .ngt-hero { position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden; }
body.page-id-836 .ngt-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center 70%; }
body.page-id-836 .ngt-hero-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(100deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.82) 38%, rgba(255,255,255,.12) 70%, transparent 100%); }
body.page-id-836 .ngt-hero-inner { position:relative; z-index:1; width:100%; max-width:1080px; margin:0 auto; padding:64px 28px; }
body.page-id-836 .ngt-hero-card { max-width:560px; }
body.page-id-836 .ngt-hero-en { font-family:'Montserrat',sans-serif; font-weight:700; letter-spacing:.18em; color:var(--red); font-size:1.2rem; text-transform:uppercase; margin-bottom:14px; }
body.page-id-836 .ngt-hero-catch { font-size:clamp(3.4rem,5.6vw,5.2rem); font-weight:900; line-height:1.18; letter-spacing:.02em; }
body.page-id-836 .ngt-hero-catch em { font-style:normal; background:linear-gradient(transparent 58%, rgba(22,163,189,.32) 58%); padding:0 .08em; }
body.page-id-836 .ngt-hero-lead { margin:20px 0 30px; font-size:1.55rem; color:#5a4f48; font-weight:500; }
body.page-id-836 .ngt-highlights { background:var(--cream); padding:0; }
body.page-id-836 .ngt-hl-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; transform:translateY(-44px); }
body.page-id-836 .ngt-hl { background:#fff; border-radius:18px; padding:26px 18px 24px; text-align:center; box-shadow:0 12px 30px rgba(60,80,100,.10); border:1px solid #eaeef2; border-top:3px solid var(--hc,var(--o1)); }
body.page-id-836 .ngt-hl-icon { width:62px; height:62px; margin:0 auto 12px; display:grid; place-items:center; border-radius:50%; color:#fff; background:linear-gradient(135deg,var(--hc,var(--o1)),var(--hc2,var(--o2))); box-shadow:0 8px 18px rgba(0,0,0,.14); }
body.page-id-836 .ngt-hl-icon svg { width:32px; height:32px; }
body.page-id-836 .ngt-hl-label { font-size:1.12rem; color:#9a8c80; font-weight:700; letter-spacing:.04em; }
body.page-id-836 .ngt-hl-main { font-size:2.05rem; font-weight:900; color:var(--hc,var(--red)); line-height:1.2; margin:2px 0 4px; }
body.page-id-836 .ngt-hl-sub { font-size:1.1rem; color:#8a7f76; }
body.page-id-836 .ngt-head { text-align:center; margin-bottom:38px; }
body.page-id-836 .ngt-head-en { display:block; font-family:'Montserrat',sans-serif; font-weight:700; letter-spacing:.22em; color:var(--blue); font-size:1.1rem; text-transform:uppercase; }
body.page-id-836 .ngt-head-ja { font-size:2.4rem; font-weight:900; margin-top:4px; }
body.page-id-836 .ngt-head-ja::after { content:''; display:block; width:64px; height:4px; border-radius:3px; margin:14px auto 0; background:linear-gradient(90deg,var(--red) 0%,var(--o1) 35%,var(--blue) 70%,var(--green) 100%); }
body.page-id-836 .ngt-head-lead { margin-top:14px; font-size:1.4rem; color:#6a5f57; }
body.page-id-836 .ngt-head-lead strong { color:var(--red); }
body.page-id-836 .ngt-entry { background:var(--cream); padding:30px 0 76px; }
body.page-id-836 .ngt-entry-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
body.page-id-836 .ngt-entry-card { display:flex; flex-direction:column; align-items:center; gap:14px; padding:30px 28px; border-radius:18px; text-decoration:none; color:var(--ink); background:#fff; border:1px solid #f0e2d4; box-shadow:0 12px 28px rgba(120,90,60,.12); transition:transform .25s ease, box-shadow .25s ease; }
body.page-id-836 .ngt-entry-card:hover { transform:translateY(-4px); box-shadow:0 20px 38px rgba(120,90,60,.2); opacity:1; }
body.page-id-836 .ngt-entry-logo img { display:block; max-width:240px; width:100%; height:auto; border-radius:8px; }
body.page-id-836 .ngt-entry-title { font-size:1.6rem; font-weight:900; }
body.page-id-836 .ngt-entry-go { font-size:1.3rem; font-weight:800; color:var(--o1); }
body.page-id-836 .ngt-entry-go i { font-style:normal; transition:margin .25s ease; }
body.page-id-836 .ngt-entry-card:hover .ngt-entry-go i { margin-left:6px; }
body.page-id-836 .ngt-entry-card--blue { border-color:#d6eef3; }
body.page-id-836 .ngt-entry-card--blue .ngt-entry-go { color:#16a3bd; }
body.page-id-836 .ngt-req { background:#fff; padding:80px 0; }
body.page-id-836 .ngt-table { width:100%; border-collapse:separate; border-spacing:0; border-radius:16px; overflow:hidden; box-shadow:0 8px 26px rgba(120,90,60,.10); }
body.page-id-836 .ngt-table th, body.page-id-836 .ngt-table td { padding:18px 22px; text-align:left; font-size:1.3rem; vertical-align:top; border-bottom:1px solid #f1e7df; }
body.page-id-836 .ngt-table tr:last-child th, body.page-id-836 .ngt-table tr:last-child td { border-bottom:0; }
body.page-id-836 .ngt-table th { width:170px; background:linear-gradient(180deg,#f1f5f8,#e9eef2); color:#3f4b54; font-weight:800; white-space:nowrap; }
body.page-id-836 .ngt-table td { background:#fff; color:#4a423c; }
body.page-id-836 .ngt-table tr:nth-child(even) td { background:#f7f9fb; }
body.page-id-836 .ngt-table strong { color:var(--red); }
body.page-id-836 .ngt-table .tfe-red { color:var(--red); font-weight:700; }
body.page-id-836 .ngt-mark { display:inline-block; background:#fdecea; color:var(--red); font-weight:800; padding:2px 10px; border-radius:6px; }
body.page-id-836 .ngt-link { color:var(--blue); font-weight:700; text-underline-offset:3px; }
body.page-id-836 .ngt-link:hover { color:var(--red); }
body.page-id-836 .rec-banner { padding:8px 28px 56px; }
body.page-id-836 .rec-banner-inner { max-width:760px; margin:0 auto; }
body.page-id-836 .rec-banner-link { display:inline-block; max-width:560px; width:100%; }
body.page-id-836 .rec-banner-img { width:100%; height:auto; display:block; border-radius:6px; box-shadow:0 8px 28px rgba(0,0,0,.12); transition:transform .25s, box-shadow .25s; }
body.page-id-836 .rec-banner-link:hover .rec-banner-img { transform:translateY(-3px); box-shadow:0 14px 36px rgba(0,0,0,.18); }
body.page-id-836 .rec-banner-text { font-size:1.35rem; line-height:1.9; color:#333; margin-top:22px; }
body.page-id-836 .rec-banner-text--strong { font-weight:700; margin-top:10px; }
@media (max-width:600px) {
  body.page-id-836 .rec-banner { padding:4px 20px 44px; }
  body.page-id-836 .rec-banner-text { font-size:1.25rem; }
}
body.page-id-836 .ngt-cta { background-size:cover; background-position:center bottom; padding:84px 28px; text-align:center; }
body.page-id-836 .ngt-cta-inner { max-width:760px; margin:0 auto; color:#fff; }
body.page-id-836 .ngt-cta-catch { font-size:clamp(2.6rem,4vw,3.4rem); font-weight:900; text-shadow:0 2px 14px rgba(0,0,0,.25); }
body.page-id-836 .ngt-cta-sub { font-size:1.45rem; margin:12px 0 28px; text-shadow:0 1px 10px rgba(0,0,0,.3); }
@media (max-width:860px) {
  body.page-id-836 .ngt-hl-grid { grid-template-columns:repeat(2,1fr); }
  body.page-id-836 .ngt-entry-grid { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  body.page-id-836 .ngt-hero { min-height:480px; }
  body.page-id-836 .ngt-hero-bg::after { background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.66) 58%, rgba(255,255,255,.42) 100%); }
  body.page-id-836 .ngt-hl-grid { grid-template-columns:1fr; transform:translateY(-30px); }
  body.page-id-836 .ngt-req { padding:56px 0; }
  body.page-id-836 .ngt-table th { width:120px; }
  body.page-id-836 .ngt-table th, body.page-id-836 .ngt-table td { padding:14px 14px; font-size:1.2rem; }
}


/* ============================================================
   DB CONTENT BLOCKS (Phase B 2026-08-07)
   These were inline <style> inside page/post CONTENT (client-editable).
   Moved here and scoped by body id so their generic selectors
   (#container, #textarea, .flx, .about_box ...) cannot bleed to other pages.
   ============================================================ */

/* --- News post 1073 (現場紹介) — .flx/.brdr generic → scoped --- */
body.postid-1073 .flx { display: flex; flex-wrap: wrap; }
body.postid-1073 .flx_box1 { width: 70%; margin-right:10px; }
body.postid-1073 .flx_box2 { width: 15%; }
body.postid-1073 .brdr { border:1px solid #eee }
body.postid-1073 ur.imptnt-ur li { list-style: none; }
@media only screen and (max-width:768px) {
  body.postid-1073 .flx { display: block; }
  body.postid-1073 .flx_box1, body.postid-1073 .flx_box2 { width: 100%; margin-bottom:20px; text-align: center; }
}

/* --- Awards list page 711 (/profile/awards/) — #container/.hyosyo_* generic → scoped --- */
body.page-id-711 #container { width: 1180px; margin: 0 auto; font-size: 14px; height: 100%; background-color: #FFF; }
@media only screen and (max-width:660px) {
  body.page-id-711 #container { width:100%; height: auto; background: #fff; }
}
body.page-id-711 .hyosyo_img-size { width: 240px; }
@media only screen and (max-width:660px) {
  body.page-id-711 .hyosyo_img-size { width: 60%; }
}
body.page-id-711 .hyosyo_flex:first-child { border-top: 1px solid #ddd; }
body.page-id-711 .hyosyo_flex { display: flex; justify-content: flex-start; border-top: 1px solid #ddd; padding: 15px 0; }
body.page-id-711 .hyosyo_flex:first-child { border-top:1px solid #ddd; }
@media only screen and (max-width:660px) {
  body.page-id-711 .hyosyo_flex { display: block; }
}
body.page-id-711 .hyosyo_txt-no_img { width:75%; }
body.page-id-711 .hyosyo_date { width:400px; }
@media only screen and (max-width:660px) {
  body.page-id-711 .hyosyo_date { width:100%; }
}
body.page-id-711 .hyosyo_txt-no_img { width:960px; }
@media only screen and (max-width:660px) {
  body.page-id-711 .hyosyo_txt-no_img { width:100%; }
}
body.page-id-711 .hyosyo_txt { width:600px; }
@media only screen and (max-width:660px) {
  body.page-id-711 .hyosyo_txt { width:100%; }
}
body.page-id-711 .hyosyo_date-subtitle { font-size: 16px; line-height: 1.1; }
body.page-id-711 .hyosyo_date-title { font-size: 20px; font-weight: 700; line-height: 1.1; }
body.page-id-711 .hyosyo_bdytxt { font-size: 16px; line-height: 1.7; margin:0; }
body.page-id-711 .hyosyo_img-size { width:240px; }
@media only screen and (max-width:660px) {
  body.page-id-711 .hyosyo_img-size { width:60%; }
}
body.page-id-711 figcaption.hyosyo_img_cap { font-size: 12px; text-align: center; }
body.page-id-711 .hyosyosya { font-size: 18px; font-weight: 700; }
body.page-id-711 .hyosyo_color { background: #168ab7; font-size: 1em; color: #fff; padding: 10px; margin: 10px; display: inline-block; transition: .3s; -webkit-transform: scale(1); transform: scale(1); }
body.page-id-711 .syojo_color { background: #ee4c5a; font-size: 1em; color: #fff; padding: 10px; margin: 10px; display: inline-block; transition: .3s; -webkit-transform: scale(1); transform: scale(1); }
body.page-id-711 .kansyajo_color { background: #009900; font-size: 1em; color: #fff; padding: 10px; margin: 10px; display: inline-block; transition: .3s; -webkit-transform: scale(1); transform: scale(1); }

/* --- Recruit page 833 (/employment/) — .about_* generic → scoped --- */
body.page-id-833 .about_box { width: 900px; margin:0 auto; }
body.page-id-833 .about_pl-li { float:left; width:400px; line-height:2.5; font-size: 18px; }
body.page-id-833 .about_space { margin:50px 0; }
@media only screen and (max-width:660px) {
  body.page-id-833 .about_box { width: 100%; padding:0 15px; }
  body.page-id-833 .about_pl-li { float:none; width: 100%; line-height:2.5; font-size: 14px; }
}

/* --- Contact page 1089 (/contact/) — #textarea generic → scoped --- */
body.page-id-1089 #textarea { width: 100%; border: 1px solid #97adba; padding: 8px 8px; border-radius: 5px; font-size: 1em; }

/* --- Entry form page 1752 (/entryform/) — #textarea generic → scoped --- */
body.page-id-1752 #textarea { width: 100%; border: 1px solid #97adba; padding: 8px 8px; border-radius: 5px; font-size: 1em; }
