/* ============================================================
   service.css  — サービスページ専用スタイル
   Innovation Partners Corporate Site
   ============================================================ */

/* ─── SERVICE OVERVIEW ────────────────────────────────────── */
.service-overview {
  padding: var(--section-y) var(--pad-x) 80px;
  text-align: center;
  background: var(--white);
  position: relative;
}.section-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: 72px;
  font-weight: 300;
  letter-spacing: 0.1em;
  color: rgba(10, 10, 10, 0.05);
  position: absolute;
  top: 56px;
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  user-select: none;
  pointer-events: none;
}.section-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 28px;
  font-weight: 400;
  color: var(--black);
  letter-spacing: 0.12em;
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
}.section-desc {
  font-size: 14px;
  line-height: 2;
  color: var(--gray-mid);
  letter-spacing: 0.06em;
  position: relative;
  z-index: 1;
  max-width: 560px;
  margin: 0 auto 64px;
}/* ─── SERVICE CARDS (TOP 3枚) ─────────────────────────────── */
.service-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--gray-light);
  margin: 0 var(--pad-x);
}.service-card {
  background: var(--white);
  overflow: hidden;
  cursor: pointer;
  text-decoration: none;
  display: block;
  position: relative;
  transition: background 0.4s;
}.service-card:hover { background: var(--black); }.card-img {
  height: 260px;
  overflow: hidden;
  position: relative;
}.card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease, filter 0.4s;
  filter: brightness(0.85);
}.service-card:hover .card-img img {
  transform: scale(1.05);
  filter: brightness(0.6);
}.card-num {
  position: absolute;
  top: 20px; left: 20px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--white);
  background: rgba(15, 28, 46, 0.7);
  padding: 4px 10px;
  z-index: 2;
}.card-body { padding: 32px 36px 36px; }.card-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--silver);
  margin-bottom: 12px;
  transition: color 0.4s;
}.service-card:hover .card-en { color: var(--silver-light); }.card-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 17px;
  font-weight: 400;
  color: var(--black);
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin-bottom: 16px;
  transition: color 0.4s;
}.service-card:hover .card-title { color: var(--white); }.card-desc {
  font-size: 12px;
  line-height: 2;
  color: var(--gray-mid);
  letter-spacing: 0.05em;
  transition: color 0.4s;
}.service-card:hover .card-desc { color: rgba(255,255,255,0.65); }.card-arrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--black);
  transition: color 0.4s, gap 0.3s;
}.service-card:hover .card-arrow { color: var(--silver-light); gap: 16px; }.card-arrow::after { content: '→'; font-size: 14px; }/* ─── DETAIL SECTION ──────────────────────────────────────── */
.detail-section { padding: 0 var(--pad-x) var(--section-y); }.detail-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 72px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--gray-light);
}.detail-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 120px;
  font-weight: 300;
  line-height: 1;
  color: rgba(10, 10, 10, 0.05);
  letter-spacing: -0.02em;
  margin-bottom: -20px;
}.detail-label {
  font-family: 'Cormorant Garamond', serif;
  font-size: 11px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gray-dark);
  font-weight: 400;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}.detail-label::before {
  content: '';
  display: block;
  width: 24px;
  height: 1px;
  background: var(--gray-dark);
}.detail-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 32px;
  font-weight: 400;
  color: var(--black);
  letter-spacing: 0.1em;
  line-height: 1.5;
  margin-bottom: 8px;
}.detail-title-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px;
  letter-spacing: 0.25em;
  color: var(--charcoal);
  font-weight: 400;
}.detail-lead {
  font-size: 14px;
  line-height: 2.2;
  color: #444;
  letter-spacing: 0.06em;
}/* ─── KPI ─────────────────────────────────────────────────── */
.kpi-section { margin-bottom: 72px; }.kpi-section-header {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 12px;
}.kpi-section-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 15px;
  font-weight: 400;
  color: var(--black);
  letter-spacing: 0.12em;
}.kpi-section-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--charcoal);
}.kpi-bar {
  display: flex;
  gap: 2px;
  background: var(--gray-light);
}.kpi-item {
  flex: 1;
  background: var(--black);
  padding: 28px 24px;
  text-align: center;
}.kpi-item:nth-child(even) { background: var(--black-mid); }.kpi-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 40px;
  font-weight: 300;
  color: var(--silver-light);
  letter-spacing: 0.04em;
  line-height: 1;
  margin-bottom: 8px;
}.kpi-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: 0.15em;
}/* ─── SERVICE ITEMS ───────────────────────────────────────── */
.service-items {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--gray-light);
  margin-bottom: 72px;
}.service-item {
  background: var(--white);
  padding: 48px;
  position: relative;
}.item-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 48px;
  font-weight: 300;
  color: rgba(15, 28, 46, 0.07);
  line-height: 1;
  margin-bottom: 4px;
}.item-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--charcoal);
  font-weight: 400;
  margin-bottom: 16px;
}.item-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 18px;
  font-weight: 400;
  color: var(--black);
  letter-spacing: 0.08em;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--gray-light);
}.item-text {
  font-size: 13px;
  line-height: 2.1;
  color: var(--black-mid);
  letter-spacing: 0.05em;
  margin-bottom: 24px;
}.item-tags { display: flex; flex-wrap: wrap; gap: 8px; }.item-tag {
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--black);
  border: 1px solid var(--gray-dark);
  padding: 4px 12px;
}/* ─── CASE STUDY ──────────────────────────────────────────── */
.case-study {
  background: var(--black);
  padding: 64px;
  position: relative;
  overflow: hidden;
}.case-study::before {
  content: 'CASE STUDY';
  position: absolute;
  top: 30px; right: 40px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 80px;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.04);
  letter-spacing: 0.1em;
  line-height: 1;
}.case-label {
  font-family: 'Cormorant Garamond', serif;
  font-size: 10px;
  letter-spacing: 0.35em;
  text-transform: uppercase;
  color: var(--silver-light);
  font-weight: 400;
  margin-bottom: 8px;
}.case-project {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 4px;
}.case-location {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.1em;
  margin-bottom: 40px;
}.case-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}.case-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: rgba(255, 255, 255, 0.05);
  margin-bottom: 32px;
}.stat-box {
  padding: 24px 20px;
  background: rgba(255, 255, 255, 0.04);
  text-align: center;
}.stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 44px;
  font-weight: 300;
  color: var(--silver-light);
  line-height: 1;
  margin-bottom: 8px;
}.stat-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.15em;
}.case-stats--single {
  grid-template-columns: 1fr;
  width: calc(50% - 1px);
  min-width: 280px;
  max-width: 100%;
  background: transparent;
}.stat-rank {
  display: inline-block;
  font-family: 'Noto Serif JP', serif;
  font-size: 44px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: .02em;
  color: var(--gold-light);
  font-variant-numeric: lining-nums;
}@media (max-width: 640px) {
  .case-stats--single { width: 100%; min-width: 0; }
}.case-points { list-style: none; }.case-points li {
  font-size: 13px;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.88);
  letter-spacing: 0.05em;
  padding-left: 20px;
  position: relative;
  margin-bottom: 12px;
}.case-points li::before {
  content: '';
  position: absolute;
  left: 0; top: 10px;
  width: 8px; height: 1px;
  background: var(--silver);
}.case-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }.case-tag {
  font-family: 'Cormorant Garamond', serif;
  font-size: 10px;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.25);
  padding: 5px 14px;
}/* ─── MUNICIPALITY ────────────────────────────────────────── */
.municipality-section { padding: 64px 0 0; }.muni-title {
  font-family: 'Noto Serif JP', serif;
  font-size: 16px;
  font-weight: 400;
  color: var(--black);
  letter-spacing: 0.12em;
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  gap: 16px;
}.muni-title::after { content: ''; flex: 1; height: 1px; background: var(--gray-light); }.muni-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--gray-light);
}.muni-block { background: var(--off-white); padding: 24px; }.muni-pref {
  font-family: 'Cormorant Garamond', serif;
  font-size: 10px;
  letter-spacing: 0.2em;
  color: var(--charcoal);
  font-weight: 400;
  margin-bottom: 10px;
}.muni-cities { font-size: 12px; line-height: 1.9; color: var(--black); letter-spacing: 0.06em; }/* ─── RESPONSIVE ──────────────────────────────────────────── */
@media (max-width: 1024px) {
  .service-cards       { grid-template-columns: 1fr; }
  .detail-section      { padding-left: var(--pad-x); padding-right: var(--pad-x); }
  .detail-header       { grid-template-columns: 1fr; gap: 32px; }
  .service-items       { grid-template-columns: 1fr; }
  .case-grid           { grid-template-columns: 1fr; }
  .muni-grid           { grid-template-columns: repeat(2,1fr); }
  .service-overview    { padding-left: var(--pad-x); padding-right: var(--pad-x); }
  .service-cards       { grid-template-columns: repeat(2,1fr); }
}/* ─── GLOBAL WIDTH CONTROL (service) ───────────────────── */
.detail-section > *,
.service-overview > * {
  max-width: var(--max-w);
  margin-left: auto;
  margin-right: auto;
}.detail-header,
.kpi-section,
.service-items,
.case-study,
.municipality-section {
  max-width: var(--max-w);
  margin-left: auto;
  margin-right: auto;
}/* service-cards は padding の外に出るのでそのまま */
.service-cards {
  max-width: var(--max-w);
  margin-left: auto;
  margin-right: auto;
}/* Lila blocks */
.lila-header,
.lila-services,
.lila-products,
.lila-relation {
  max-width: var(--max-w);
  margin-left: auto;
  margin-right: auto;
}/* ============================================================
   Service refinement overrides
   ============================================================ */
.service-overview { background: rgba(255,255,255,0.78); }

.card-desc { line-height:1.9; }
.detail-section { padding-top: 80px; }.detail-lead { font-size:15px; line-height:2.05; }.detail-visual {
  max-width: var(--max-w);
  margin: -32px auto 72px;
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 1px;
  background: var(--gray-light);
}.detail-visual-img {
  min-height: 340px;
  background-size: cover;
  background-position: center;
  filter: grayscale(10%) brightness(.92);
}.detail-visual-note {
  background: var(--off-white);
  padding: 40px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}.detail-visual-note span {
  font-family:'Cormorant Garamond', serif;
  font-size:11px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--gray-mid);
  margin-bottom:12px;
}.detail-visual-note p { font-size:14px; line-height:1.9; color:var(--charcoal); }.lila-header { grid-template-columns: .95fr 1.05fr; }.lila-hero-image {
  min-height: 320px;
  background: url('https://images.unsplash.com/photo-1488646953014-85cb44e25828?w=1200&q=85') center/cover;
  filter: grayscale(10%) brightness(.86);
  margin-bottom: 28px;
}.lila-link-btn { border:1px solid var(--black); background:var(--black); color:var(--white); padding:14px 28px; display:inline-flex; align-items:center; }.pdf-download-banner { color: var(--white); }.pdf-download-inner { gap: 48px; }.pdf-download-left { align-items: center; }.pdf-preview { width: 220px; flex: 0 0 220px; box-shadow: 0 16px 40px rgba(0,0,0,.24); }
.pdf-download-desc { font-size:14px; line-height:2; }
@media (max-width: 900px) {.service-cards { grid-template-columns: 1fr 1fr; }.detail-visual { grid-template-columns:1fr; }.lila-header { grid-template-columns:1fr; }
}
@media (max-width: 640px) {.service-cards { grid-template-columns: 1fr; }.card-body { min-height: 0; }
}
.card-body { display:flex; flex-direction:column; flex:1; min-height:310px; }.card-desc { color:#333; font-size:13px; line-height:1.95; }.card-arrow { margin-top:auto; padding-top:24px; }.detail-lead,
.item-text,
.detail-visual-note p { color:#2d2d2b; }.detail-visual { box-shadow:0 20px 50px rgba(0,0,0,.05); }.detail-visual-note { background:#f4f3ef; }.detail-visual-note span { color:#4b4b47; }.case-study p,
.case-points li { color:rgba(255,255,255,.72) !important; }.lila-svc-text,
.lila-product-text,
.lila-relation-text { color:#333; }.lila-info-val { color:#111; }.pdf-download-banner { background:#111; }.pdf-download-left { position:relative; }.pdf-preview-stack {
  position:relative;
  width:360px;
  min-height:270px;
  flex:0 0 360px;
}.pdf-preview { background:rgba(255,255,255,.08); box-shadow:0 18px 42px rgba(0,0,0,.28); }.pdf-preview-spread {
  position:absolute;
  left:0;
  top:34px;
  width:310px;
  opacity:.78;
  transform:rotate(-2deg);
}.pdf-preview-cover {
  position:absolute;
  right:0;
  top:0;
  width:168px;
  transform:rotate(2deg);
  z-index:2;
}.pdf-preview img { width:100%; height:auto; }.pdf-download-title { color:#fff; }.pdf-download-desc { color:rgba(255,255,255,.72); }.pdf-download-desc strong { color:rgba(255,255,255,.92); }.pdf-file-size { color:rgba(255,255,255,.5); }
@media (max-width:900px){.pdf-download-left { flex-direction:column; align-items:flex-start; }.pdf-preview-stack { width:min(100%,360px); flex:0 0 auto; }
}/* ============================================================
   Revision 03 — PDF preview: equal,
straight panels
   ============================================================ */
.pdf-preview-stack {
  width:464px !important;
  min-height:188px !important;
  flex:0 0 464px !important;
  grid-template-columns:1fr 1fr;
  gap:16px;
  align-items:stretch;
}.pdf-preview {
  position:relative !important;
  inset:auto !important;
  width:auto !important;
  height:168px !important;
  flex:none !important;
  transform:none !important;
  opacity:1 !important;
  background:rgba(255,255,255,.085);
  padding:10px;
  box-shadow:0 18px 42px rgba(0,0,0,.24);
}.pdf-preview img {
  object-fit:cover;
  display:block;
}.pdf-preview-cover { z-index:1 !important; }
@media (max-width:900px){.pdf-preview-stack { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px){.pdf-preview-stack { grid-template-columns:1fr; }
}/* ============================================================
   Revision 04 — rebrand book preview / PDF size emphasis
   ============================================================ */
.pdf-download-banner {
  background:#101010 !important;
}.pdf-preview-stack {
  width:500px !important;
  min-height:196px !important;
  flex:0 0 500px !important;
}.pdf-preview-cover { order:1 !important; }.pdf-preview-spread { order:2 !important; }.pdf-preview {
  height:186px !important;
  padding:9px !important;
  box-shadow:0 18px 46px rgba(0,0,0,.26) !important;
}.pdf-preview img {
  object-fit:cover !important;
}.pdf-file-size {
  display:inline-flex !important;
  align-items:center;
  margin-top:18px !important;
  padding:8px 14px !important;
  border:1px solid rgba(255,255,255,.32) !important;
  color:rgba(255,255,255,.92) !important;
  background:rgba(255,255,255,.06) !important;
  font-family:'Cormorant Garamond',serif;
  font-size:12px !important;
  letter-spacing:.22em !important;
  text-transform:uppercase;
}
@media (max-width:900px){.pdf-preview-stack { width:100% !important; flex:0 0 auto !important; }
}/* Revision 09 — user supplied imagery */
.card-img img[src*="images/user/"] { filter:grayscale(8%) brightness(.88); }.service-card:hover .card-img img[src*="images/user/"] { filter:grayscale(0%) brightness(.68); }.detail-visual-img[style*="images/user/"] { filter:grayscale(6%) brightness(.94); }.lila-logo-img { display:block; width:116px; height:auto; margin:0 0 18px; }/* Revision 10 — content promotion imagery and Fukuju logo */
.fukuju-item-logo {background:#111;padding:16px 18px;}.service-item .fukuju-item-logo + .item-title {margin-top:0;}/* ============================================================
   Revision 12 — service layout / section rhythm / training pages
   ============================================================ */
.service-card { display:flex; flex-direction:column; height:100%; }.card-body {
  display:grid !important;
  grid-template-rows: 54px 72px 1fr auto;
  min-height: 340px !important;
  align-content:start;
}.card-en,
.card-title,
.card-desc,
.card-arrow { margin-top:0; }.card-en { min-height:0; display:flex; align-items:flex-start; justify-content:center; margin-bottom:0 !important; }.card-title { display:flex; align-items:flex-start; justify-content:center; margin-bottom:0 !important; }.card-desc { align-self:start; margin-bottom:0; }.card-arrow { align-self:flex-start; margin-top:0 !important; padding-top:28px !important; }.detail-section {
  padding-top: var(--section-y) !important;
  padding-bottom: var(--section-y) !important;
  border-top:1px solid rgba(10,10,10,.06);
}.detail-section#service-02,
.detail-section#service-04 { background:#f7f6f2; }.detail-section#service-01,
.detail-section#service-03 { background:#fff; }.divider { display:none; }.fukuju-item-logo {
  display:block;
  width:min(220px,70%);
  height:auto;
  background:transparent !important;
  padding:0 !important;
  margin:0 0 22px;
}.item-detail-link,
.training-link-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:26px;
  padding:14px 22px;
  border:1px solid rgba(10,10,10,.35);
  color:#111;
  background:transparent;
  text-decoration:none;
  font-family:'Cormorant Garamond','Noto Serif JP',serif;
  font-size:12px;
  letter-spacing:.18em;
  transition:background .35s,color .35s,border-color .35s;
}.item-detail-link::after,
.training-link-btn::after { content:'→'; margin-left:14px; }.item-detail-link:hover,
.training-link-btn:hover { background:#111; color:#fff; border-color:#111; }.pdf-download-inner {
  max-width:1180px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(250px,330px) !important;
  gap:clamp(32px,5vw,80px) !important;
  align-items:center !important;
}.pdf-download-left {
  min-width:0;
  grid-template-columns:minmax(280px,430px) 72px minmax(260px,1fr) !important;
  gap:clamp(24px,3vw,48px) !important;
}.pdf-preview-stack {
  width:100% !important;
  max-width:430px !important;
  min-height:172px !important;
  flex:0 1 auto !important;
}.pdf-preview { height:166px !important; }.pdf-download-text { min-width:0; }.pdf-download-desc { max-width:430px; }.pdf-download-btn { width:100%; max-width:330px; justify-self:end; }.training-page { background:#fff; }.training-main { padding:120px var(--pad-x); }.training-inner { max-width:var(--max-w); margin:0 auto; }.training-kicker { font-family:'Cormorant Garamond',serif; font-size:12px; letter-spacing:.32em; text-transform:uppercase; color:var(--gray-mid); margin-bottom:18px; }.training-title { font-family:'Noto Serif JP',serif; font-size:34px; font-weight:400; letter-spacing:.12em; line-height:1.55; margin-bottom:26px; color:#111; }.training-lead { max-width:760px; font-size:14px; line-height:2.2; letter-spacing:.06em; color:#333; margin-bottom:54px; }.training-nav { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:64px; }.training-nav a { border:1px solid rgba(10,10,10,.18); color:#111; text-decoration:none; padding:12px 18px; font-size:12px; letter-spacing:.1em; }.training-nav a:hover { background:#111; color:#fff; }.training-block { padding:54px 0; border-top:1px solid rgba(10,10,10,.10); }.training-block-title { font-family:'Noto Serif JP',serif; font-size:24px; font-weight:400; letter-spacing:.1em; line-height:1.6; margin-bottom:18px; }.training-block-lead { font-size:14px; line-height:2.1; color:#333; letter-spacing:.05em; max-width:820px; margin-bottom:32px; }.training-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:#e8e6df; }.training-card { background:#f9f8f5; padding:34px; }.training-card h3 { font-family:'Noto Serif JP',serif; font-size:18px; font-weight:400; letter-spacing:.08em; line-height:1.7; margin-bottom:18px; }.training-card h4 { font-family:'Cormorant Garamond','Noto Serif JP',serif; font-size:12px; letter-spacing:.18em; margin:24px 0 10px; color:#555; }.training-card p,
.training-card li { font-size:13px; line-height:2; color:#333; letter-spacing:.04em; }.training-card ul { margin:0; padding-left:18px; }.training-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#ddd9cf; margin:24px 0; }.training-meta div { background:#fff; padding:18px; }.training-meta span { display:block; font-family:'Cormorant Garamond',serif; font-size:11px; letter-spacing:.24em; color:#777; margin-bottom:8px; }.training-voice { background:#111; color:#fff; padding:34px; }.training-voice p { color:rgba(255,255,255,.75); font-size:13px; line-height:2.1; letter-spacing:.05em; }.training-voice small { display:block; margin-top:18px; color:rgba(255,255,255,.45); letter-spacing:.1em; }
@media (max-width:1100px){.pdf-download-inner { grid-template-columns:1fr !important; }.pdf-download-left { grid-template-columns:1fr !important; }.pdf-icon { display:none; }.pdf-download-btn { justify-self:start; }
}
@media (max-width:1024px){.card-body { grid-template-rows:auto auto 1fr auto; min-height:0 !important; }.card-en,
.card-title { justify-content:flex-start; }.training-grid,
.training-meta { grid-template-columns:1fr; }
}
.training-summary { margin-bottom:20px; }
.training-summary-label { margin-bottom:10px; }
.training-summary-list { list-style:none; font-size:12px; line-height:2; color:#555; letter-spacing:.04em; }
.training-summary-list li { padding-left:16px; position:relative; }
.training-summary-list li > span { position:absolute; left:0; }
.dx-program-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:2px; background:rgba(255,255,255,.05); margin-top:32px; }
.dx-program-card { background:rgba(255,255,255,.03); padding:28px 32px; }
.dx-program-label { margin-bottom:10px; font-size:10px; }
.dx-program-title { font-family:'Noto Serif JP',serif; font-size:16px; font-weight:400; color:var(--white); letter-spacing:.1em; margin-bottom:14px; }
.dx-program-outcome { color:var(--silver-light); }
.dx-voice-section { margin-top:40px; border-top:1px solid rgba(255,255,255,.08); padding-top:32px; }
.dx-voice-heading { margin-bottom:24px; }
.dx-voice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.dx-voice-card { background:rgba(255,255,255,.03); padding:24px; border-left:2px solid rgba(255,255,255,.12); }
.dx-voice-text { font-size:12px; line-height:2; color:rgba(255,255,255,.65); letter-spacing:.04em; margin-bottom:16px; }
.dx-voice-author { font-size:10px; color:rgba(255,255,255,.35); letter-spacing:.1em; }
@media (max-width:640px){.training-main { padding:84px var(--pad-x); }.training-title { font-size:26px; }.training-card { padding:26px; }
  .dx-program-grid { grid-template-columns:1fr !important; gap:1px !important; }
  .dx-program-card { padding:26px 24px !important; }
  .dx-voice-grid { grid-template-columns:1fr !important; gap:12px !important; }
  .dx-voice-card { padding:22px 20px !important; }
}/* ============================================================
   Revision 13 — training links / rebrand book layout refinement
   ============================================================ */
.pdf-download-banner {
  padding-left:var(--pad-x) !important;
  padding-right:var(--pad-x) !important;
}.pdf-download-inner {
  max-width:1280px !important;
  display:block !important;
}.pdf-download-left {
  display:grid !important;
  grid-template-columns:520px minmax(0, 1fr) !important;
  gap:clamp(44px, 6vw, 92px) !important;
  width:100% !important;
}.pdf-preview-stack {
  width:520px !important;
  max-width:520px !important;
  min-height:218px !important;
  flex:0 0 520px !important;
  gap:18px !important;
}.pdf-preview {
  height:218px !important;
}.pdf-preview img {
  background:#fff !important;
}.pdf-download-text {
  max-width:none !important;
  min-width:0 !important;
}.pdf-download-desc {
  max-width:620px !important;
}.pdf-download-actions {
  display:flex;
  flex-wrap:wrap;
  gap:18px 22px;
  align-items:center;
  margin-top:26px;
}.pdf-download-actions .pdf-file-size {
  margin-top:0 !important;
}.pdf-download-actions .pdf-download-btn {
  width:min(100%, 340px) !important;
  max-width:340px !important;
  justify-self:start !important;
}
@media (max-width:1180px){.pdf-download-left {
    grid-template-columns:460px minmax(0, 1fr) !important;
  }.pdf-preview-stack {
    width:460px !important;
    max-width:460px !important;
    min-height:196px !important;
  }.pdf-preview { height:196px !important; }
}
@media (max-width:980px){
.pdf-preview-stack {
    width:min(100%, 520px) !important;
    max-width:520px !important;
    flex:0 0 auto !important;
  }
}
@media (max-width:640px){.pdf-preview-stack {
    min-height:0 !important;
  }.pdf-preview { height:auto !important; }.pdf-preview img { height:auto !important; }
}.pdf-download-left {
  grid-template-columns:560px minmax(0, 1fr) !important;
  gap:clamp(48px, 6vw, 96px) !important;
  align-items:center !important;
}.pdf-preview-stack {
  min-height:191px !important;
}.pdf-preview {
  height:191px !important;
  padding:10px !important;
  background:rgba(255,255,255,.10) !important;
}
.pdf-download-text {
  width:100% !important;
  max-width:760px !important;
  justify-self:end !important;
}.pdf-download-desc {
  width:100% !important;
  max-width:none !important;
}.pdf-download-actions {
  align-items:center !important;
}.pdf-file-size {
  border:0 !important;
  color:rgba(255,255,255,.48) !important;
  opacity:.72 !important;
  letter-spacing:.22em !important;
}.pdf-download-actions .pdf-download-btn {
  min-width:282px !important;
  padding-left:42px !important;
  padding-right:42px !important;
  justify-self:auto !important;
  flex:0 0 auto !important;
}
@media (max-width:1180px){.pdf-download-left {
    grid-template-columns:500px minmax(0, 1fr) !important;
    gap:40px !important;
  }.pdf-preview-stack {
    min-height:170px !important;
  }.pdf-preview { height:170px !important; }.pdf-download-actions .pdf-download-btn { min-width:260px !important; padding-left:34px !important; padding-right:34px !important; }
}
@media (max-width:980px){.pdf-download-left {
    grid-template-columns:1fr !important;
  }.pdf-preview-stack {
    min-height:auto !important;
  }.pdf-preview { height:auto !important; aspect-ratio:1.414 / 1 !important; }.pdf-download-text { justify-self:start !important; max-width:760px !important; }.pdf-download-actions { justify-content:flex-start !important; }
}
@media (max-width:640px){
.pdf-download-actions { flex-direction:column !important; align-items:flex-start !important; }.pdf-download-actions .pdf-download-btn { min-width:0 !important; width:100% !important; justify-content:center !important; }
}/* Revision 15 — training nav hierarchy and rebrand book heading */
.training-nav { margin-bottom:56px; }.pdf-download-heading-row {
  display:flex;
  align-items:baseline;
  gap:24px;
  flex-wrap:wrap;
  margin-bottom:24px;
}.pdf-download-title { margin:0 !important; white-space:nowrap; }.pdf-download-subtitle {
  margin:0;
  font-family:'Noto Serif JP',serif;
  font-size:18px;
  line-height:1.7;
  letter-spacing:.08em;
  color:rgba(255,255,255,.86);
  font-weight:400;
}.pdf-download-desc { margin-top:0 !important; }
@media (max-width:640px){.pdf-download-heading-row { display:block; }.pdf-download-title { margin-bottom:12px !important; white-space:normal; }.pdf-download-subtitle { font-size:16px; }
}/* Revision 16 — service anchor stability / rebrand book precision */
.service-card { scroll-behavior:auto; }.detail-section { scroll-margin-top:calc(var(--header-h, 68px) + 8px); }.pdf-preview-stack {
  width:560px !important;
  max-width:560px !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:20px !important;
  min-height:0 !important;
}.pdf-preview {
  width:270px !important;
  height:auto !important;
  aspect-ratio:1786 / 1263 !important;
  padding:0 !important;
  background:transparent !important;
  box-shadow:0 18px 44px rgba(0,0,0,.28) !important;
  overflow:hidden !important;
}.pdf-preview img {
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  background:transparent !important;
}.pdf-download-subtitle {
  font-size:20px !important;
  line-height:1.7 !important;
  letter-spacing:.08em !important;
}.pdf-file-size {
  border:none !important;
  outline:none !important;
  background:transparent !important;
  padding:0 !important;
  min-width:0 !important;
}.pdf-download-actions .pdf-download-btn {
  min-width:0 !important;
  padding:22px 34px !important;
  gap:18px !important;
  text-align:center !important;
}.pdf-download-actions .pdf-download-btn svg {
  flex:0 0 18px !important;
}
@media (max-width:1180px){.pdf-preview-stack { width:500px !important; max-width:500px !important; gap:18px !important; }.pdf-preview { width:241px !important; }
}
@media (max-width:980px){.pdf-preview-stack { width:min(100%, 560px) !important; max-width:560px !important; }.pdf-preview { width:100% !important; }
}
@media (max-width:640px){.pdf-preview-stack { grid-template-columns:1fr !important; width:min(100%, 280px) !important; }.pdf-preview { width:100% !important; }
}/* Revision 18 — service anchor stability final / rebrand subtitle size */
.pdf-download-subtitle {
  font-size:16px !important;
}
@media (max-width:640px){.pdf-download-subtitle { font-size:15px !important; }
}/* Revision 20 — Fukuju Style magazine preview */
.fukuju-item-logo {background:transparent!important;padding:0!important;width:min(180px,68%)!important;margin:0 0 20px!important;}.fukuju-media-preview {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0 22px;max-width:520px;}.fukuju-media-preview figure {background:#f4f2ee;border:1px solid #e2ded6;padding:10px;box-shadow:0 10px 26px rgba(0,0,0,.045);}.fukuju-media-preview img {width:100%;height:130px;object-fit:contain;display:block;}
@media(max-width:640px){.fukuju-media-preview {grid-template-columns:1fr;max-width:100%;}.fukuju-media-preview img {height:auto;max-height:180px;}}/* Revision 23 — service item alignment and Fukuju layout */
.service-items {align-items:stretch!important;}.service-item {display:flex!important;flex-direction:column!important;}.item-title {border-bottom:1px dotted var(--gray-dark)!important;}.service-item .item-text {flex:1 1 auto!important;}.service-item .item-tags {margin-top:auto!important;}.fukuju-logo-media-row {display:flex;align-items:center;gap:22px;margin:0 0 20px;}.fukuju-logo-media-row .fukuju-item-logo {width:min(210px,48%)!important;flex:0 0 auto!important;margin:0!important;}.fukuju-logo-media-row .fukuju-media-preview {display:flex!important;gap:10px!important;margin:0!important;max-width:230px!important;flex:0 1 230px!important;}.fukuju-logo-media-row .fukuju-media-preview figure {padding:6px!important;background:#f4f2ee;border:1px solid #e2ded6;}.fukuju-logo-media-row .fukuju-media-preview img {height:76px!important;width:100%;object-fit:contain!important;}
@media(max-width:700px){.fukuju-logo-media-row {align-items:flex-start;flex-direction:column}
.fukuju-logo-media-row .fukuju-media-preview img {height:96px!important;}}/* ============================================================
   Revision 25 — service cards / item grid / PDF detail refinements
   ============================================================ */
.card-title,
.top-svc-title { line-height:1.55 !important; }

/* Dotted separators with wider spacing */
.item-title {
  border-bottom:0 !important;
  padding-bottom:20px !important;
  background-image:repeating-linear-gradient(to right, rgba(0,0,0,.32) 0 2px, transparent 2px 10px) !important;
  background-repeat:no-repeat !important;
  background-size:100% 1px !important;
  background-position:left bottom !important;
}/* KPI age label: keep all characters in the same face and size */
.kpi-num-age {
  font-family:'Noto Serif JP', serif !important;
  font-size:30px !important;
  line-height:1.1 !important;
  letter-spacing:.04em !important;
}/* Pair-by-pair alignment for four-cell service item blocks */
.service-items { align-items:stretch !important; }.service-item { min-height:0 !important; }.service-item .item-en { min-height:34px !important; }.service-item .item-title { min-height:88px !important; display:flex !important; align-items:flex-start !important; }.service-item .item-text { flex:0 0 auto !important; }/* Service 01: align 03 and 04 line/text positions */
#service-01 .service-item:nth-child(3) .item-title,
#service-01 .service-item:nth-child(4) .item-title { min-height:104px !important; }/* Service 03: keep row neighbors aligned,
accounting for Fukuju logo/media area */
#service-03 .service-item:nth-child(1) .fukuju-logo-media-row { min-height:96px !important; }#service-03 .service-item:nth-child(2)::before {
  content:'';
  display:block;
  height:96px;
  flex:0 0 96px;
}

/* Fukuju logo + paper image balance: keep logo left,
move images to the right */
.fukuju-logo-media-row {
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  margin:0 0 20px !important;
}.fukuju-logo-media-row .fukuju-item-logo {
  width:min(210px,46%) !important;
  flex:0 0 auto !important;
  margin:0 !important;
}.fukuju-logo-media-row .fukuju-media-preview {
  margin-left:auto !important;
  display:flex !important;
  justify-content:flex-end !important;
  gap:8px !important;
  max-width:210px !important;
  flex:0 0 210px !important;
}.fukuju-logo-media-row .fukuju-media-preview figure {
  width:96px !important;
  box-sizing:border-box !important;
}.fukuju-logo-media-row .fukuju-media-preview img {
  height:68px !important;
  width:100% !important;
  object-fit:contain !important;
}/* IP Rebrand Book: place file size under the button */
.pdf-download-actions {
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:10px !important;
  width:auto !important;
}.pdf-download-actions .pdf-download-btn {
  align-self:flex-start !important;
}.pdf-file-size {
  order:2 !important;
  color:rgba(255,255,255,.56) !important;
  font-size:12px !important;
  letter-spacing:.18em !important;
  line-height:1.5 !important;
  text-align:left !important;
  margin:0 !important;
}
@media(max-width:700px){#service-03 .service-item:nth-child(2)::before {display:none!important;}.fukuju-logo-media-row {flex-direction:column!important;align-items:flex-start!important;}.fukuju-logo-media-row .fukuju-media-preview {margin-left:0!important;max-width:100%!important;flex:0 1 auto!important;}.service-item .item-title {min-height:104px!important;margin-bottom:20px!important;padding-bottom:20px!important;}
}/* Descriptions left-aligned */
.card-body,
.top-svc-body { text-align:left !important; }.card-en,
.card-title,
.top-svc-en,
.top-svc-title {
  text-align:center !important;
  justify-content:center !important;
  align-items:flex-start !important;
  width:100% !important;
}.card-desc,
.top-svc-desc {
  text-align:left !important;
  align-self:stretch !important;
}/* Municipality city names slightly larger */
.muni-cities {
  font-size:14px !important;
  line-height:1.9 !important;
  letter-spacing:.06em !important;
}/* Area branding opening date: larger and clearer */
.kpi-open-date {
  font-family:'Cormorant Garamond','Noto Serif JP',serif !important;
  font-size:30px !important;
  line-height:1.25 !important;
  letter-spacing:.05em !important;
}.kpi-open-date span {
  font-family:'Noto Serif JP',serif !important;
  font-size:18px !important;
  letter-spacing:.14em !important;
}/* Media reach age label: return to one consistent original-style face */
.kpi-num-age {
  font-family:'Cormorant Garamond', serif !important;
  font-size:40px !important;
  font-weight:300 !important;
  line-height:1 !important;
  letter-spacing:.04em !important;
}/* Fukuju: remove gray boxes,
move logo upper-right,
place papers below it */
#service-03 .service-item:nth-child(1) {
  padding-top:0 !important;
}#service-03 .service-item:nth-child(1) .fukuju-logo-media-row {
  min-height:0 !important;
  display:grid !important;
  grid-template-columns:1fr auto !important;
  grid-template-areas:
    ". logo"
    ". media" !important;
  align-items:start !important;
  column-gap:18px !important;
  row-gap:12px !important;
  margin:0 0 12px !important;
}#service-03 .service-item:nth-child(1) .fukuju-item-logo {
  grid-area:logo !important;
  width:150px !important;
  max-width:38vw !important;
  justify-self:end !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview {
  grid-area:media !important;
  max-width:180px !important;
  flex:none !important;
  justify-self:end !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview figure {
  width:84px !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview img {
  max-height:72px !important;
  display:block !important;
}/* Service 03 row alignment: make 01/02 and 03/04 parts start at same heights */
#service-03 .service-item:nth-child(2)::before { display:none !important; content:none !important; }#service-03 .service-item:nth-child(1) .item-en,
#service-03 .service-item:nth-child(2) .item-en,
#service-03 .service-item:nth-child(3) .item-en,
#service-03 .service-item:nth-child(4) .item-en {
  min-height:34px !important;
}#service-03 .service-item:nth-child(1) .item-title,
#service-03 .service-item:nth-child(2) .item-title {
  min-height:116px !important;
}#service-03 .service-item:nth-child(3) .item-title,
#service-03 .service-item:nth-child(4) .item-title {
  min-height:104px !important;
}#service-03 .service-item:nth-child(1) .fukuju-logo-media-row,
#service-03 .service-item:nth-child(2) .fukuju-logo-media-row {
  min-height:0 !important;
}

@media(max-width:700px){.card-en,
.card-title,
.top-svc-en,
.top-svc-title { justify-content:flex-start !important; text-align:left !important; }#service-03 .service-item:nth-child(1) .fukuju-logo-media-row {
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
  }#service-03 .service-item:nth-child(1) .fukuju-item-logo,
#service-03 .service-item:nth-child(1) .fukuju-media-preview {
    justify-self:start !important;
    margin-left:0 !important;
  }#service-03 .service-item:nth-child(1) .item-title,
#service-03 .service-item:nth-child(2) .item-title,
#service-03 .service-item:nth-child(3) .item-title,
#service-03 .service-item:nth-child(4) .item-title {
    min-height:0 !important;
  }
}/* ============================================================
   Revision 07-02 final — service KPI / Fukuju / PDF alignment
   ============================================================ */
/* Area branding date: keep numerals prominent,
年/月/開業 quiet */
.kpi-open-date {
  font-family:'Cormorant Garamond', serif !important;
  font-size:40px !important;
  line-height:1.05 !important;
  letter-spacing:.045em !important;
  white-space:nowrap !important;
}.kpi-open-date .kpi-open-main {
  font-family:'Cormorant Garamond', serif !important;
  font-size:40px !important;
  font-weight:300 !important;
  line-height:1 !important;
}.kpi-open-date .kpi-open-sub {
  font-family:'Noto Serif JP', serif !important;
  font-size:18px !important;
  font-weight:400 !important;
  letter-spacing:.12em !important;
  line-height:1.45 !important;
}/* Age KPI: numerals remain large; symbols match the smaller Japanese KPI text */
.kpi-num-age {
  font-family:'Cormorant Garamond', serif !important;
  font-size:40px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}.kpi-num-age .age-main {
  font-family:'Cormorant Garamond', serif !important;
  font-size:40px !important;
  font-weight:300 !important;
  line-height:1 !important;
}.kpi-num-age .age-sub {
  font-family:'Noto Serif JP', serif !important;
  font-size:22px !important;
  font-weight:400 !important;
  line-height:1 !important;
  vertical-align:.08em !important;
}/* Fukuju first service item: align text parts with item 02,
keep logo/media small on title height */
#service-03 .service-items {
  align-items:stretch !important;
}#service-03 .service-item:nth-child(1),
#service-03 .service-item:nth-child(2) {
  position:relative !important;
  padding-top:48px !important;
}

#service-03 .service-item:nth-child(1) .item-title,
#service-03 .service-item:nth-child(2) .item-title {
  display:flex !important;
  align-items:flex-start !important;
}#service-03 .service-item:nth-child(1) .item-title {
  max-width:calc(100% - 250px) !important;
}#service-03 .service-item:nth-child(1) .fukuju-logo-media-row {
  top:136px !important;
  width:220px !important;
  min-height:104px !important;
  gap:12px !important;
}#service-03 .service-item:nth-child(1) .fukuju-item-logo {
  width:142px !important;
  max-width:142px !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview {
  width:178px !important;
  max-width:178px !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview figure {
  width:85px !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview img {
  max-height:70px !important;
}
@media(max-width:980px){#service-03 .service-item:nth-child(1) .item-title {max-width:100% !important;}#service-03 .service-item:nth-child(1) .fukuju-logo-media-row {
    min-height:0 !important;
    margin:-8px 0 20px !important;
  }
}/* PDF: put button back to the right; file size sits left of button and bottom-aligned */
.pdf-download-actions {
  display:flex !important;
  flex-direction:row !important;
  justify-content:flex-end !important;
  align-items:flex-end !important;
  gap:24px !important;
  width:100% !important;
  margin-top:26px !important;
}.pdf-download-actions .pdf-file-size {
  order:1 !important;
  margin:0 0 2px !important;
  padding:0 !important;
  color:rgba(255,255,255,.68) !important;
  border:0 !important;
  background:transparent !important;
  min-width:auto !important;
}.pdf-download-actions .pdf-download-btn {
  order:2 !important;
  width:auto !important;
  min-width:260px !important;
  max-width:none !important;
  justify-content:center !important;
  margin:0 !important;
}
@media(max-width:720px){.pdf-download-actions {
    justify-content:flex-start !important;
    align-items:flex-start !important;
    flex-direction:column !important;
  }.pdf-download-actions .pdf-download-btn {width:100% !important; min-width:0 !important;}
}/* ============================================================
   Revision 07-02-2 — service KPI balance / Fukuju overlap fix
   ============================================================ */
/* Top/service cards: title centered,
body remains left-aligned */
.card-title,
.card-en,
.top-svc-title,
.top-svc-en {
  text-align:center !important;
  justify-content:center !important;
}.card-desc,
.top-svc-text {
  text-align:left !important;
}/* KPI boxes: keep value and caption baselines visually unified */
.kpi-item {
  min-height:158px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  box-sizing:border-box !important;
}.kpi-num {
  min-height:60px !important;
  margin-bottom:12px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  text-align:center !important;
}.kpi-num br {display:block !important;}.kpi-num span {line-height:1.05 !important;}.kpi-label {
  min-height:22px !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  text-align:center !important;
  line-height:1.6 !important;
}.kpi-item .kpi-num[style*="line-height"] {
  line-height:1.05 !important;
}/* Area branding date — numerals same scale as other large KPI numerals,
units quieter */
.kpi-open-date {font-size:40px !important;line-height:1.05 !important;}.kpi-open-date .kpi-open-main {font-size:40px !important;line-height:1 !important;}.kpi-open-date .kpi-open-sub {font-size:18px !important;line-height:1.25 !important;}/* Age KPI — symbols/units align with the small Japanese label scale */
.kpi-num-age .age-main {font-size:40px !important;}.kpi-num-age .age-sub {font-size:18px !important;line-height:1 !important;vertical-align:.06em !important;}/* Fukuju item: keep logo/media in a right rail from the 01 height and prevent text overlap */
#service-03 .service-item:nth-child(1) {
  padding-right:clamp(300px,30vw,360px) !important;
  min-height:520px !important;
}#service-03 .service-item:nth-child(1) .item-num,
#service-03 .service-item:nth-child(1) .item-en,
#service-03 .service-item:nth-child(1) .item-title,
#service-03 .service-item:nth-child(1) .item-text,
#service-03 .service-item:nth-child(1) .item-tags {
  max-width:100% !important;
}#service-03 .service-item:nth-child(1) .item-title {
  min-height:104px !important;
  max-width:100% !important;
}#service-03 .service-item:nth-child(1) .fukuju-logo-media-row {
  width:230px !important;
  min-height:0 !important;
}#service-03 .service-item:nth-child(1) .fukuju-item-logo {
  padding:0 !important;
  background:transparent !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview {
  width:210px !important;
  max-width:210px !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview figure {
  width:100px !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview img {
  max-height:82px !important;
}#service-03 .service-item:nth-child(2) {padding-top:48px !important;}#service-03 .service-item:nth-child(1) .item-num,
#service-03 .service-item:nth-child(2) .item-num {margin-bottom:4px !important;}#service-03 .service-item:nth-child(1) .item-en,
#service-03 .service-item:nth-child(2) .item-en {min-height:34px !important;margin-bottom:16px !important;}#service-03 .service-item:nth-child(1) .item-title,
#service-03 .service-item:nth-child(2) .item-title {min-height:104px !important;margin-bottom:20px !important;padding-bottom:20px !important;}
@media(max-width:980px){#service-03 .service-item:nth-child(1) {padding-right:48px !important;min-height:0 !important;}


}
@media(max-width:700px){.kpi-bar {flex-direction:column !important;}.kpi-item {min-height:136px !important;}
}/* ============================================================
   Revision 07-02-3 — service KPI and Fukuju layout final polish
   ============================================================ */
/* Fukuju style item: keep body/dotted rule at normal width; reserve only title zone for media */
#service-03 .service-item:nth-child(1) {
  position:relative !important;
  padding-right:48px !important;
  min-height:0 !important;
}#service-03 .service-item:nth-child(1) .item-num,
#service-03 .service-item:nth-child(1) .item-en,
#service-03 .service-item:nth-child(1) .item-title,
#service-03 .service-item:nth-child(1) .item-text,
#service-03 .service-item:nth-child(1) .item-tags {
  max-width:none !important;
  width:100% !important;
}#service-03 .service-item:nth-child(1) .item-title {
  width:100% !important;
  max-width:none !important;
  min-height:238px !important;
  padding-right:300px !important;
  box-sizing:border-box !important;
  margin-bottom:20px !important;
  padding-bottom:20px !important;
}#service-03 .service-item:nth-child(1) .fukuju-logo-media-row {
  position:absolute !important;
  top:48px !important;
  right:48px !important;
  width:250px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-end !important;
  justify-content:flex-start !important;
  gap:14px !important;
  margin:0 !important;
  background:transparent !important;
  pointer-events:none !important;
  z-index:2 !important;
}#service-03 .service-item:nth-child(1) .fukuju-item-logo {
  width:155px !important;
  max-width:155px !important;
  height:auto !important;
  margin:0 !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview {
  width:222px !important;
  max-width:222px !important;
  display:flex !important;
  justify-content:flex-end !important;
  gap:8px !important;
  margin:0 !important;
  background:transparent !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview figure {
  width:106px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}#service-03 .service-item:nth-child(1) .fukuju-media-preview img {
  width:100% !important;
  height:auto !important;
  max-height:86px !important;
  object-fit:contain !important;
}#service-03 .service-item:nth-child(1) .item-text {
  clear:both !important;
}
@media(max-width:980px){#service-03 .service-item:nth-child(1) .item-title {
    min-height:0 !important;
    padding-right:0 !important;
  }#service-03 .service-item:nth-child(1) .fukuju-logo-media-row {
    position:static !important;
    width:auto !important;
    align-items:flex-start !important;
    pointer-events:auto !important;
    margin:-6px 0 22px !important;
  }#service-03 .service-item:nth-child(1) .fukuju-media-preview {
    justify-content:flex-start !important;
  }
}

/* Service overview cards: keep Japanese title breaks semantic and stable. */
.service-cards .card-title {
  display:flex !important;
  flex-wrap:wrap !important;
  align-content:center !important;
  align-items:baseline !important;
  justify-content:center !important;
  column-gap:0 !important;
  width:100% !important;
  height:72px !important;
  min-height:0 !important;
  margin:0 !important;
  align-self:stretch !important;
  font-size:clamp(13px,1.15vw,17px) !important;
  line-height:1.55 !important;
  text-align:center !important;
  position:relative !important;
  top:-12px !important;
}
.service-cards .card-title-part {
  display:inline-block !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
.service-cards .card-desc {
  white-space:normal !important;
}

/* KPI bars: one typographic system for numerals and Japanese titles. */
.kpi-bar .kpi-num {
  display:flex !important;
  flex-wrap:wrap !important;
  align-content:center !important;
  align-items:baseline !important;
  justify-content:center !important;
  column-gap:.22em !important;
  row-gap:0 !important;
  min-height:60px !important;
  margin:0 0 12px !important;
  padding:0 !important;
  font-family:'Noto Serif JP',serif !important;
  font-size:clamp(20px,1.45vw,24px) !important;
  font-weight:400 !important;
  letter-spacing:.08em !important;
  line-height:1.5 !important;
  text-align:center !important;
}
.kpi-bar .kpi-title-part {
  display:inline-block !important;
  flex:0 0 auto !important;
  padding:0 !important;
  font:inherit !important;
  letter-spacing:inherit !important;
  line-height:inherit !important;
  white-space:nowrap !important;
}
#service-02 .kpi-bar .kpi-num,
#service-03 .kpi-bar .kpi-num,
#service-04 .kpi-bar .kpi-num {
  font-size:22px !important;
}
#service-02 .kpi-bar .kpi-num .kpi-title-part,
#service-03 .kpi-bar .kpi-num .kpi-title-part,
#service-04 .kpi-bar .kpi-num .kpi-title-part {
  font-size:inherit !important;
  line-height:inherit !important;
}

/* Service detail tags: one row where space permits, never split a tag. */
.service-items .item-tags {
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:clamp(4px,.55vw,8px) !important;
  width:100% !important;
}
.service-items .item-tag {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 1 auto !important;
  min-width:0 !important;
  padding:4px clamp(6px,.7vw,12px) !important;
  font-size:clamp(8px,.68vw,10px) !important;
  line-height:1.5 !important;
  white-space:nowrap !important;
}
.service-items .item-title--semantic {
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:baseline !important;
  column-gap:.25em !important;
}
.service-items .item-title-part {
  display:inline-block !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
@media(max-width:900px){
  .service-items .item-tags{flex-wrap:wrap !important;}
}

/* Service 03: align the title, separator and body rhythm across paired cards. */
.service-items .service-item .item-title {
  width:100% !important;
  max-width:none !important;
  padding-right:0 !important;
  box-sizing:border-box !important;
}
@media(min-width:701px){
  #service-03 .service-item:nth-child(1) .item-title {
    width:100% !important;
    max-width:none !important;
    min-height:104px !important;
    padding-right:0 !important;
    margin-bottom:20px !important;
    padding-bottom:20px !important;
    box-sizing:border-box !important;
  }
}
#service-03 .service-item:nth-child(4) .item-tags + .item-detail-link {
  align-self:flex-end !important;
  margin-top:26px !important;
  margin-bottom:0 !important;
}
@media(min-width:1025px){
  #service-03 .service-item:nth-child(3)::after {
    content:'';
    display:block;
    flex:0 0 74px;
    height:74px;
  }
}
@media(max-width:700px){
  .service-items .service-item .item-title,
  #service-03 .service-items .service-item .item-title {
    min-height:104px !important;
    margin-bottom:20px !important;
    padding-bottom:20px !important;
    box-sizing:border-box !important;
  }
}

/* User-supplied regional activity photos. */
.card-img img[src="images/user/regional-workshop.jpg"] { object-position: 50% 35% !important; }
#service-01 .detail-visual-img { background-position: 50% 35%; }
.hero-bg[style*="kashima-tara-community.webp"] { background-position: 50% 68%; }
@media (max-width: 768px) {
  .hero-bg[style*="kashima-tara-community.webp"] { background-position: 48% 65%; }
}

/* Photo attribution stays inside the image area at every viewport size. */
.hero .hero-photo-credit {
  position: absolute;
  right: 16px;
  bottom: 12px;
  z-index: 4;
  color: #fff;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .04em;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .85);
  pointer-events: none;
}
