/* ==========================================================================
   Pages — ページ固有のスタイル
   ========================================================================== */

/* ---------- Home: Hero ---------- */
.hero {
  position: relative;
  overflow: hidden;
  padding-block: var(--s-8) var(--s-9);
  border-bottom: var(--border);
}
.hero__inner { position: relative; z-index: 1; display: grid; gap: var(--s-8); align-items: end; }
.hero__copy { display: grid; gap: var(--s-5); }
.hero__title {
  font-size: var(--fs-3xl);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.01em;
}
.hero__lead { font-size: var(--fs-lg); color: var(--c-ink-2); max-width: 30em; }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-3); }
.hero__backdrop {
  position: absolute;
  right: -0.06em;
  bottom: -0.2em;
  z-index: 0;
  margin: 0;
  font-family: var(--f-display);
  font-size: var(--fs-display);
  font-weight: 700;
  line-height: 0.82;
  letter-spacing: -0.05em;
  text-align: right;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--c-line);
  pointer-events: none;
  user-select: none;
}

.hero-index {
  background: var(--c-surface);
  border: var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-hard);
  padding: var(--s-4) var(--s-5) var(--s-2);
}
.hero-index__label {
  font-family: var(--f-display);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-ink-3);
  padding-bottom: var(--s-2);
  border-bottom: var(--border);
}
.hero-index__item {
  display: grid;
  grid-template-columns: 2.2em 1fr auto 1.2em;
  align-items: center;
  gap: var(--s-3);
  padding: var(--s-3) 0;
  border-bottom: 1px solid var(--c-line);
  text-decoration: none;
  transition: padding var(--dur) var(--ease);
}
.hero-index li:last-child .hero-index__item { border-bottom: 0; }
.hero-index__no { font-family: var(--f-display); font-weight: 700; color: var(--accent-text); }
.hero-index__name { font-weight: 700; }
.hero-index__arrow { font-family: var(--f-display); color: var(--c-ink-3); transition: transform var(--dur) var(--ease), color var(--dur); }
.hero-index__item:hover { padding-left: var(--s-2); }
.hero-index__item:hover .hero-index__arrow { color: var(--accent-text); transform: translate(2px, -2px); }

@media (min-width: 900px) {
  .hero { padding-block: var(--s-9); min-height: min(86vh, 820px); display: flex; align-items: center; }
  .hero__inner { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}

/* ---------- Home: Business cards ---------- */
.biz-grid { display: grid; gap: var(--s-5); }
@media (min-width: 900px) { .biz-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.biz-card { height: 100%; }
.biz-card__link {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  height: 100%;
  padding: var(--s-5) var(--s-5) var(--s-6);
  background: var(--c-surface);
  border: var(--border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  overflow: hidden;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.biz-card__link::before {
  content: "";
  position: absolute;
  left: 0; top: 0; right: 0;
  height: 6px;
  background: var(--accent);
}
.biz-card__link:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--accent); }
.biz-card__top { display: flex; justify-content: space-between; align-items: center; padding-top: var(--s-2); }
.biz-card__no { font-family: var(--f-display); font-size: var(--fs-xl); font-weight: 700; color: var(--accent-text); line-height: 1; }
.biz-card__en { font-family: var(--f-display); font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-ink-3); margin-top: var(--s-4); }
.biz-card__title { font-size: var(--fs-xl); font-weight: 900; }
.biz-card__tagline { font-weight: 500; line-height: var(--lh-snug); }
.biz-card__points { display: grid; gap: var(--s-2); margin-top: var(--s-2); padding-top: var(--s-4); border-top: 1px dashed var(--c-line); font-size: var(--fs-sm); color: var(--c-ink-2); }
.biz-card__points li { position: relative; padding-left: 1.1em; line-height: var(--lh-snug); }
.biz-card__points li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 7px; height: 7px; background: var(--accent); transform: skewX(-20deg); }
.biz-card__more { margin-top: auto; padding-top: var(--s-4); font-weight: 700; color: var(--accent-text); }

.biz-sub { display: grid; gap: var(--s-3); margin-top: var(--s-5); }
@media (min-width: 900px) { .biz-sub { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .biz-sub--wide { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.biz-sub__item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--s-4);
  padding: var(--s-4) var(--s-5);
  background: var(--c-paper);
  border: var(--border);
  border-radius: var(--radius);
  text-decoration: none;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.section:not(.section--tint) .biz-sub__item { background: var(--c-surface); }
.biz-sub__item:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--accent); }
.biz-sub__no { font-family: var(--f-display); font-weight: 700; color: var(--accent-text); font-size: var(--fs-lg); }
.biz-sub__body { display: grid; gap: 2px; min-width: 0; }
.biz-sub__title { font-weight: 700; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2); }
.biz-sub__text { font-size: var(--fs-sm); color: var(--c-ink-2); line-height: var(--lh-snug); }
.biz-sub__arrow { font-family: var(--f-display); color: var(--accent-text); }

/* ---------- Home: Values ---------- */
.values { display: grid; gap: var(--s-5); margin-top: var(--s-7); counter-reset: v; }
@media (min-width: 900px) { .values { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; } }
.values__item {
  position: relative;
  padding: var(--s-6) var(--s-5) var(--s-5);
  border-top: var(--border);
  counter-increment: v;
}
@media (min-width: 900px) {
  .values__item { padding: var(--s-6) var(--s-6) var(--s-5) 0; }
  .values__item + .values__item { padding-left: var(--s-6); border-left: 1px solid var(--c-line); }
}
.values__item::before {
  content: "0" counter(v);
  position: absolute;
  top: var(--s-4);
  right: var(--s-5);
  font-family: var(--f-display);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: transparent;
  -webkit-text-stroke: 1px var(--c-ink-3);
  line-height: 1;
}
.values__en { font-family: var(--f-display); font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-leap-ink); }
.values__title { font-size: var(--fs-xl); font-weight: 900; margin: var(--s-2) 0 var(--s-3); }
.values__text { color: var(--c-ink-2); font-size: var(--fs-sm); }

/* ---------- Home: Roadmap ---------- */
.roadmap { display: grid; position: relative; }
.roadmap__item {
  position: relative;
  display: grid;
  gap: var(--s-1);
  padding: 0 0 var(--s-6) var(--s-6);
  border-left: 2px solid var(--c-ink);
}
.roadmap__item:last-child { border-left-color: transparent; padding-bottom: 0; }
.roadmap__item::before {
  content: "";
  position: absolute;
  left: -9px;
  top: 4px;
  width: 16px;
  height: 16px;
  background: var(--c-paper-2);
  border: 2px solid var(--c-ink);
  border-radius: 50%;
}
.roadmap__item--now::before { background: var(--c-leap); }
.roadmap__item--later { border-left-style: dashed; }
.roadmap__state { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.06em; color: var(--c-ink-3); }
.roadmap__item--now .roadmap__state { color: var(--c-leap-ink); }
.roadmap__title { font-size: var(--fs-lg); font-weight: 700; }
.roadmap__text { color: var(--c-ink-2); font-size: var(--fs-sm); }

/* ---------- Business page ---------- */
.page-hero--business { position: relative; overflow: hidden; }
.page-hero--business::after {
  content: "";
  position: absolute;
  right: -40px;
  top: 0;
  bottom: 0;
  width: clamp(80px, 18vw, 260px);
  background: var(--accent);
  transform: skewX(-24deg);
  transform-origin: bottom;
}
.page-hero--business .container { position: relative; z-index: 1; }
.page-hero__meta { display: flex; align-items: center; gap: var(--s-3); margin-bottom: var(--s-4); }
.page-hero__no { font-family: var(--f-display); font-size: var(--fs-2xl); font-weight: 700; color: var(--accent-text); line-height: 1; }
.page-hero__en { font-family: var(--f-display); font-size: var(--fs-sm); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-ink-3); }
@media (max-width: 639px) {
  /* 狭い画面では斜めの帯をやめ、下端のアクセント線にする */
  .page-hero--business::after { display: none; }
  .page-hero--business { border-bottom: 6px solid var(--accent); }
}

/* ---------- Legal ---------- */
.legal h2 { font-size: var(--fs-lg); font-weight: 700; padding-top: var(--s-5); border-top: 1px solid var(--c-line); }
.legal ul { display: grid; gap: var(--s-2); }
.legal ul li { position: relative; padding-left: 1.2em; }
.legal ul li::before { content: "・"; position: absolute; left: 0; }
.legal__date { color: var(--c-ink-3); font-size: var(--fs-sm); text-align: right; }

/* ---------- Error page ---------- */
.error-page { padding-block: var(--s-9); text-align: center; }
.error-page .narrow { display: grid; gap: var(--s-5); justify-items: center; }
.error-page__code {
  font-family: var(--f-display);
  font-size: clamp(6rem, 3rem + 14vw, 12rem);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.05em;
  color: transparent;
  -webkit-text-stroke: 2px var(--c-ink);
  position: relative;
}
.error-page__code::after {
  content: "";
  position: absolute;
  left: 8%; right: 8%; top: 52%;
  height: 0.12em;
  background: var(--c-leap);
  transform: skewY(-8deg);
}
.error-page__title { font-size: var(--fs-2xl); font-weight: 900; }
.error-page__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); justify-content: center; }
.error-page__links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-2) var(--s-5); font-size: var(--fs-sm); }

/* ---------- Style guide ---------- */
.sg .container { display: grid; gap: var(--s-5); }
.sg__h { font-size: var(--fs-xl); font-weight: 900; padding-top: var(--s-6); border-top: var(--border); margin-top: var(--s-5); }
.sg__label { font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink-3); }
.sg-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--s-4); }
.sg-swatch { display: grid; gap: var(--s-1); font-size: var(--fs-sm); }
.sg-swatch__chip { height: 64px; border-radius: var(--radius); border: 1px solid var(--c-line); }
.sg-chip-paper { background: var(--c-paper); } .sg-chip-paper-2 { background: var(--c-paper-2); } .sg-chip-surface { background: var(--c-surface); }
.sg-chip-ink { background: var(--c-ink); } .sg-chip-ink-2 { background: var(--c-ink-2); } .sg-chip-ink-3 { background: var(--c-ink-3); }
.sg-chip-line { background: var(--c-line); } .sg-chip-leap { background: var(--c-leap); }
.sg-chip-real-estate { background: var(--c-real-estate); } .sg-chip-akiya { background: var(--c-akiya); } .sg-chip-web { background: var(--c-web); }
.sg-chip-platform { background: var(--c-platform); } .sg-chip-me { background: var(--c-me); }
.sg-chip-success { background: var(--c-success); } .sg-chip-error { background: var(--c-error); } .sg-chip-warning { background: var(--c-warning); } .sg-chip-info { background: var(--c-info); }
.sg-type--display { font-family: var(--f-display); font-size: clamp(3rem, 2rem + 5vw, 6rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1; }
.sg-type--3xl { font-size: var(--fs-3xl); font-weight: 900; line-height: var(--lh-tight); }
.sg-type--2xl { font-size: var(--fs-2xl); font-weight: 900; line-height: var(--lh-tight); }
.sg-type--xl { font-size: var(--fs-xl); font-weight: 700; line-height: var(--lh-tight); }
.sg-type--lg { font-size: var(--fs-lg); font-weight: 500; }
.sg-row { display: flex; flex-wrap: wrap; gap: var(--s-3); align-items: center; }
.sg-stack { display: grid; gap: var(--s-3); max-width: 640px; }
.sg-form { max-width: 520px; }

/* ==========================================================================
   Business sub pages（Phase 2）
   ========================================================================== */

/* ---------- Hero の親ページ表示 ---------- */
.page-hero__parent { font-size: var(--fs-sm); font-weight: 700; margin-bottom: var(--s-1); }
.page-hero__parent a { color: var(--accent-text); text-decoration: none; }
.page-hero__parent a:hover { text-decoration: underline; }

/* ---------- 事業内ナビ（横スクロール可能なタブ） ---------- */
.biz-nav {
  position: sticky;
  top: var(--header-h);
  z-index: 40;
  background: var(--c-paper);
  border-bottom: 1px solid var(--c-line);
}
.biz-nav__list {
  display: flex;
  gap: var(--s-1);
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding-block: var(--s-2);
}
.biz-nav__list::-webkit-scrollbar { display: none; }
.biz-nav__link {
  display: block;
  padding: var(--s-2) var(--s-4);
  border-radius: 999px;
  font-size: var(--fs-sm);
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none;
  color: var(--c-ink-2);
  transition: background var(--dur), color var(--dur);
}
.biz-nav__link:hover { background: var(--c-paper-2); color: var(--c-ink); }
.biz-nav__link[aria-current="page"] { background: var(--accent); color: var(--on-accent); }
.biz-nav__link--cta { border: 1.5px solid var(--c-ink); color: var(--c-ink); margin-left: auto; }
@media (max-width: 899px) { .biz-nav { top: var(--header-h); } }

/* ---------- 数値のハイライト ---------- */
.stat-row { display: grid; gap: var(--s-3); }
@media (min-width: 640px) { .stat-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.stat {
  display: grid;
  gap: var(--s-1);
  padding: var(--s-4) var(--s-5);
  background: var(--c-surface);
  border: var(--border);
  border-radius: var(--radius);
  border-top: 5px solid var(--accent);
}
.stat__label { font-size: var(--fs-xs); font-weight: 700; color: var(--c-ink-3); letter-spacing: 0.06em; }
.stat__value { font-weight: 700; font-size: var(--fs-md); line-height: 1.3; }
.stat__value--text { font-size: var(--fs-lg); }

/* ---------- 金額 ---------- */
.price { font-weight: 700; white-space: nowrap; }
.price__num { font-family: var(--f-display); font-size: 1.6em; letter-spacing: -0.02em; margin: 0 0.05em; }
.price__tax { font-size: var(--fs-xs); font-weight: 500; color: var(--c-ink-3); margin-left: 0.2em; }

/* ---------- タイル ---------- */
.tile-grid { display: grid; gap: var(--s-4); }
@media (min-width: 640px) { .tile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .tile-grid:not(.tile-grid--two) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tile-grid--compact { gap: var(--s-3); }
@media (min-width: 900px) { .tile-grid--compact { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; } }
.tile {
  padding: var(--s-5);
  background: var(--c-surface);
  border: var(--border);
  border-radius: var(--radius);
  display: grid;
  gap: var(--s-2);
  align-content: start;
}
.tile-grid--compact .tile { padding: var(--s-4); }
.tile__title { font-size: var(--fs-md); font-weight: 700; display: flex; gap: var(--s-2); align-items: baseline; }
.tile__title::before { content: ""; flex: none; width: 10px; height: 10px; background: var(--accent); transform: skewX(-20deg); }
.tile-grid--compact .tile__title { font-size: var(--fs-sm); }
.tile__text { font-size: var(--fs-sm); color: var(--c-ink-2); line-height: 1.8; }

/* ---------- プラン ---------- */
.plan-grid { display: grid; gap: var(--s-5); }
@media (min-width: 900px) {
  .plan-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
  .plan-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.plan {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  padding: var(--s-6) var(--s-5);
  background: var(--c-surface);
  border: var(--border);
  border-radius: var(--radius-lg);
}
.plan--featured { box-shadow: 6px 6px 0 var(--accent); }
.plan--featured::before {
  content: "おすすめ";
  position: absolute;
  top: -12px;
  left: var(--s-5);
  padding: 0 var(--s-3);
  background: var(--accent);
  color: var(--on-accent);
  border-radius: 999px;
  font-size: var(--fs-xs);
  font-weight: 700;
  line-height: 24px;
}
.plan__name { font-size: var(--fs-lg); font-weight: 900; }
.plan__price { font-size: var(--fs-md); padding-bottom: var(--s-3); border-bottom: 1px dashed var(--c-line); }
.plan__for { font-size: var(--fs-sm); color: var(--c-ink-2); }
.plan__items { display: grid; gap: var(--s-2); font-size: var(--fs-sm); }
.plan__items li { position: relative; padding-left: 1.5em; line-height: 1.6; }
.plan__items li::before {
  content: "";
  position: absolute;
  left: 0.2em;
  top: 0.35em;
  width: 0.5em;
  height: 0.8em;
  border-right: 2.5px solid var(--accent);
  border-bottom: 2.5px solid var(--accent);
  transform: rotate(40deg);
}
.plan--wide { max-width: 560px; }
.plan-note { margin-top: var(--s-5); font-size: var(--fs-sm); color: var(--c-ink-2); }
.plan-note-list { margin-top: var(--s-5); display: grid; gap: var(--s-1); font-size: var(--fs-sm); color: var(--c-ink-2); }
.plan-note-list li { padding-left: 1.2em; position: relative; }
.plan-note-list li::before { content: "※"; position: absolute; left: 0; }

/* ---------- 流れ ---------- */
.flow { display: grid; gap: 0; counter-reset: none; }
.flow__step {
  position: relative;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: var(--s-4);
  padding-bottom: var(--s-6);
}
.flow__step::before {
  content: "";
  position: absolute;
  left: 27px;
  top: 56px;
  bottom: 0;
  width: 2px;
  background: var(--c-ink);
}
.flow__step:last-child { padding-bottom: 0; }
.flow__step:last-child::before { display: none; }
.flow__no {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border: var(--border);
  border-radius: 50%;
  background: var(--c-surface);
  font-family: var(--f-display);
  font-weight: 700;
  color: var(--accent-text);
}
.flow__step:first-child .flow__no { background: var(--accent); color: var(--on-accent); border-color: var(--accent); }
.flow__body { padding-top: var(--s-3); }
.flow__title { font-size: var(--fs-md); font-weight: 700; }
.flow__text { margin-top: var(--s-1); font-size: var(--fs-sm); color: var(--c-ink-2); line-height: 1.8; }
.narrow > .alert { margin-top: var(--s-7); }

/* ---------- よくある質問 ---------- */
.faq { display: grid; gap: var(--s-3); }
.faq__item { background: var(--c-surface); border: var(--border); border-radius: var(--radius); }
.faq__q {
  display: flex;
  align-items: flex-start;
  gap: var(--s-3);
  padding: var(--s-4) var(--s-7) var(--s-4) var(--s-4);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  position: relative;
  line-height: 1.6;
}
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after {
  content: "+";
  position: absolute;
  right: var(--s-5);
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--f-display);
  font-size: 1.4rem;
  transition: transform var(--dur) var(--ease);
}
.faq__item[open] .faq__q::after { transform: translateY(-50%) rotate(45deg); }
.faq__mark {
  flex: none;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--on-accent);
  font-family: var(--f-display);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: 1;
}
.faq__mark--a { background: var(--c-ink); color: var(--c-paper); }
.faq__a { display: flex; gap: var(--s-3); padding: 0 var(--s-5) var(--s-5) var(--s-4); font-size: var(--fs-sm); color: var(--c-ink-2); line-height: 1.9; }

/* ---------- 番号付きリスト ---------- */
.feature-list { display: grid; }
.feature-list__item {
  display: grid;
  grid-template-columns: 3em 1fr;
  gap: var(--s-3);
  padding: var(--s-5) 0;
  border-bottom: 1px solid var(--c-line);
}
.feature-list__item:first-child { border-top: var(--border); }
.feature-list__no { font-family: var(--f-display); font-weight: 700; color: var(--accent-text); font-size: var(--fs-lg); line-height: 1.3; }
.feature-list__title { font-size: var(--fs-md); font-weight: 700; margin-bottom: var(--s-1); }
.feature-list__item p { font-size: var(--fs-sm); color: var(--c-ink-2); }

/* ---------- 制作実績 ---------- */
.works-grid { display: grid; gap: var(--s-5); }
.work {
  display: grid;
  background: var(--c-surface);
  border: var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
@media (min-width: 900px) { .work { grid-template-columns: 5fr 7fr; } }
.work__thumb {
  min-height: 220px;
  display: grid;
  place-items: center;
  background: var(--c-ink);
  position: relative;
  overflow: hidden;
}
.work__thumb::after {
  content: "";
  position: absolute;
  right: -30px; top: -20px; bottom: -20px;
  width: 120px;
  background: var(--c-leap);
  transform: skewX(-24deg);
}
.work__thumb span {
  position: relative;
  z-index: 1;
  font-family: var(--f-display);
  font-size: var(--fs-2xl);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: -0.04em;
  color: var(--c-paper);
}
.work__body { display: grid; gap: var(--s-3); padding: var(--s-6) var(--s-5); align-content: start; }
.work__title { font-size: var(--fs-xl); font-weight: 900; }
.work__summary { font-size: var(--fs-sm); color: var(--c-ink-2); }
.work__meta { display: grid; gap: var(--s-1); font-size: var(--fs-sm); }
.work__meta div { display: flex; gap: var(--s-3); }
.work__meta dt { color: var(--c-ink-3); min-width: 5em; }

/* ---------- 関連ページ ---------- */
.next-links { display: grid; gap: var(--s-3); }
@media (min-width: 640px) { .next-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.next-links__item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--s-5);
  background: var(--c-surface);
  border: var(--border);
  border-radius: var(--radius);
  font-weight: 700;
  text-decoration: none;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.next-links__item:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--accent); }
.next-links__item span:last-child { font-family: var(--f-display); color: var(--accent-text); }

/* ---------- お知らせ ---------- */
.news-list { border-top: var(--border); }
.news-list__item {
  display: grid;
  gap: var(--s-1);
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--c-line);
}
@media (min-width: 640px) { .news-list__item { grid-template-columns: 7em 1fr; gap: var(--s-5); } }
.news-list__date { font-family: var(--f-display); font-weight: 700; font-size: var(--fs-sm); color: var(--c-ink-3); }
.news-list__title { font-weight: 700; }
.news-list__body { margin-top: var(--s-1); font-size: var(--fs-sm); color: var(--c-ink-2); }

/* ---------- フォーム（追加入力欄） ---------- */
.fieldset {
  display: grid;
  gap: var(--s-4);
  margin: 0;
  padding: var(--s-5);
  border: 1.5px dashed var(--c-akiya);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--c-akiya) 5%, var(--c-paper));
}
.fieldset[hidden] { display: none; }
.fieldset__legend { padding: 0 var(--s-2); font-size: var(--fs-sm); font-weight: 700; color: var(--c-akiya); }
.input--short { max-width: 14em; }
/* 事業内ナビがあるページでは、追従する見出しとアンカー位置をナビの高さ分ずらす */
@media (min-width: 900px) {
  .biz-nav ~ .section .split > .section-head { top: calc(var(--header-h) + 56px + var(--s-6)); }
}
html:has(.biz-nav) { scroll-padding-top: calc(var(--header-h) + 56px + var(--s-4)); }

/* ---------- 不動産の公開ページ ---------- */
.profile-card { display: grid; grid-template-columns: 96px 1fr; gap: var(--s-5); align-items: center; padding: var(--s-5); background: var(--c-surface); border: var(--border); border-radius: var(--radius-lg); }
.profile-card__photo { width: 96px; height: 96px; border-radius: 50%; background: var(--c-paper-2); border: 1.5px dashed var(--c-line); display: grid; place-items: center; font-family: var(--f-display); font-size: var(--fs-xs); color: var(--c-ink-3); }
.profile-card__role { font-size: var(--fs-xs); font-weight: 700; color: var(--accent-text); letter-spacing: 0.06em; }
.profile-card__text { color: var(--c-ink-2); }
.login-band { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-4); padding: var(--s-5) var(--s-6); background: var(--c-surface); border: var(--border); border-left: 6px solid var(--accent); border-radius: var(--radius); }
.login-band__title { font-weight: 900; font-size: var(--fs-md); }
.login-band__text { font-size: var(--fs-sm); color: var(--c-ink-2); }
.empty-public { display: grid; gap: var(--s-4); justify-items: start; padding: var(--s-7) var(--s-6); background: var(--c-surface); border: var(--border); border-radius: var(--radius-lg); }
.re-public-grid { display: grid; gap: var(--s-5); }
@media (min-width: 640px) { .re-public-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 960px) { .re-public-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gallery--public { margin-bottom: var(--s-7); }
