/* =========================================================
   Figma full-page alignment patch v7
   対象Figma: node-id=1:2
   ========================================================= */
:root {
  --figma-green: #1f3d2e;
  --figma-deep: #142b22;
  --figma-gold: #b58a3e;
  --figma-bg: #faf7f0;
  --figma-warm: #f2ecdb;
  --figma-warm-2: #f8f1de;
  --figma-border: #e5dfd0;
  --figma-dash: #d3ccb8;
  --figma-text: #1a2620;
  --figma-sub: #4a574f;
  --figma-muted: #7c8580;
  --figma-wrap: 1200px;
}

html { scroll-behavior: smooth; }
body {
  background: var(--figma-bg) !important;
  color: var(--figma-text) !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  letter-spacing: 0;
}
.container {
  max-width: var(--figma-wrap) !important;
  width: 100% !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Header */
.site-header {
  height: 60px !important;
  min-height: 60px !important;
  max-height: 60px !important;
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(6px) !important;
  border-bottom: 1px solid var(--figma-border) !important;
  box-shadow: none !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}

.site-header__pr {
  height: 45px;
  display: flex;
  align-items: center;
  padding: 0 32px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.8px;
  color: #2d5240;
  line-height: 14px;
}

.site-header__inner {
  height: 60px !important;
  min-height: 60px !important;
  max-height: 60px !important;
  max-width: none !important;
  padding: 0 32px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
.site-logo { gap: 12px !important; color: inherit !important; text-decoration: none !important; }
.site-logo__icon,
.footer-brand__icon {
  width: 44px !important;
  height: 44px !important;
  border-radius: 6px !important;
  background: var(--figma-green) !important;
  color: #fff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 24px !important;
  line-height: 1 !important;
}
.site-logo__text {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  color: var(--figma-text) !important;
  letter-spacing: .52px !important;
  line-height: 18.2px !important;
}
.site-logo__text small {
  display: block !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #2d5240 !important;
  letter-spacing: 1.8px !important;
  line-height: 14px !important;
}
.site-nav ul { gap: 28px !important; }
.site-nav a {
  color: var(--figma-sub) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: .78px !important;
  line-height: 24px !important;
}

/* Hero */
.hero {
  min-height: 885px !important;
  background: var(--figma-bg) !important;
  position: relative !important;
  overflow: hidden !important;
}
.hero__bg {
  background-position: center top !important;
  background-size: cover !important;
  opacity: 1 !important;
}
.hero__inner {
  min-height: 885px !important;
  max-width: none !important;
  padding: 139px 32px 110px 73px !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
}
.hero__content { max-width: 960px !important; margin: 0 !important; }
.hero__breadcrumb {
  width: max-content !important;
  max-width: 100% !important;
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 15px 8px 31px !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.10) !important;
  color: #42554e !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 2.42px !important;
  line-height: 20.35px !important;
  position: relative !important;
  margin: 0 0 28px !important;
}
.hero__breadcrumb::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 3px;
  background: var(--figma-gold);
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
}
.hero__eyebrow {
  color: #42554e !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  letter-spacing: 1.32px !important;
  line-height: 29.7px !important;
  margin: 0 0 8px !important;
}
.hero__title {
  color: #123c32 !important;
  font-size: 52px !important;
  font-weight: 900 !important;
  letter-spacing: -0.52px !important;
  line-height: 70.2px !important;
  margin: 0 0 28px !important;
  max-width: 920px !important;
}
.hero__title::first-line {
  background: linear-gradient(to bottom, rgba(181,138,62,0) 70%, rgba(181,138,62,.55) 70%);
}
.hero__lead {
  color: #42554e !important;
  font-size: 17px !important;
  line-height: 33.15px !important;
  margin: 0 0 28px !important;
}
.hero__box {
  width: 960px !important;
  max-width: 100% !important;
  min-height: 164px !important;
  background: rgba(255,255,255,.78) !important;
  border: 1px solid rgba(255,255,255,.70) !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 24px rgba(18,60,50,.08) !important;
  padding: 20px 35px 30px 41px !important;
  margin: 0 0 12px !important;
}
.hero__box-title {
  color: var(--figma-text) !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 35.2px !important;
  margin: 14px 0 15px !important;
}
.hero__box-text {
  color: var(--figma-sub) !important;
  font-size: 14px !important;
  line-height: 27.3px !important;
  margin: 0 !important;
}
.hero__btns { gap: 16px !important; padding: 16px 0 0 13px !important; }
.btn-hero-main,
.btn-hero-outline {
  height: 66px !important;
  border-radius: 4px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 1.4px !important;
  line-height: 25.9px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-shadow: 0 8px 9px rgba(0,0,0,.10) !important;
}
.btn-hero-main { width: 211px !important; background: #b8862b !important; border: 2px solid #b8862b !important; color:#fff !important; }
.btn-hero-outline { width: 237px !important; background:#fff !important; border: 2px solid rgba(18,60,50,.24) !important; color:#123c32 !important; }

/* General sections */
.section { padding: 100px 0 !important; }
.section--white { background: #fff !important; }
.section--warm { background: var(--figma-warm) !important; }
.section--dark { background: var(--figma-deep) !important; }
.section-label,
.section-label-sm,
.clist-label {
  color: var(--figma-gold) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 3.3px !important;
  text-align: center !important;
  line-height: 20.35px !important;
  margin: 0 auto 14px !important;
}
.section-label--light { color: #f2e6c8 !important; }
.section-title,
.worries-title {
  color: var(--figma-text) !important;
  font-size: 36px !important;
  font-weight: 900 !important;
  line-height: 50.4px !important;
  letter-spacing: -0.36px !important;
  text-align: center !important;
  margin: 0 auto 16px !important;
}
.section-title--light { color: #fff !important; }
.section-lead {
  max-width: 860px !important;
  color: var(--figma-sub) !important;
  font-size: 15px !important;
  line-height: 29.25px !important;
  text-align: center !important;
  margin: 0 auto 38px !important;
}
.section-lead--light { color: rgba(255,255,255,.75) !important; }
.title-bar { width: 48px !important; height: 3px !important; border-radius: 2px !important; background: var(--figma-gold) !important; margin: 0 auto 12px !important; }

/* TOC */
.toc-nav {
  background: var(--figma-bg) !important;
  padding: 0 !important;
}
.toc-nav .container {
  max-width: none !important;
  padding: 0 33px !important;
}
.toc-nav__inner,
.toc-nav__list {
  max-width: none !important;
}
.toc-nav__inner {
  background: #fff !important;
  border: 1px solid var(--figma-border) !important;
  border-bottom: 0 !important;
  border-radius: 8px 8px 0 0 !important;
  padding: 29px 0 20px !important;
  box-shadow: 0 1px 1px rgba(20,43,34,.05) !important;
}
.toc-nav__heading-wrap {
  border-bottom: 1px dashed var(--figma-dash) !important;
  padding: 0 0 17px !important;
  margin: 0 !important;
  width: 100% !important;
}
.toc-nav__icon {
  width: 36px !important;
  height: 36px !important;
  border-radius: 18px !important;
  background: #dce6dd !important;
  color: var(--figma-green) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.toc-nav__heading { font-size: 20px !important; font-weight: 700 !important; letter-spacing: 2.52px !important; color: var(--figma-text) !important; }
.toc-nav__right { color: var(--figma-muted) !important; font-size: 10px !important; letter-spacing: 2px !important; }
.toc-nav__list {
  background: #fff !important;
  border: 1px solid var(--figma-border) !important;
  border-top: 0 !important;
  border-radius: 0 0 8px 8px !important;
  box-shadow: 0 1px 1px rgba(20,43,34,.05) !important;
  padding: 0 0 29px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px 24px !important;
}
.toc-nav__list a { color: var(--figma-sub) !important; font-size: 16px !important; line-height: 24px !important; font-weight: 400 !important; }
.toc-num { color: var(--figma-gold) !important; font-family: 'Noto Serif JP', serif !important; font-weight: 700 !important; }

/* Worries */
.worries-section { background: var(--figma-bg) !important; padding: 29px 0 56px !important; }
.worries-section .container { max-width: 1560px !important; }
.worries-title { font-family: 'Noto Serif JP', serif !important; font-size: 30px !important; line-height: 45px !important; letter-spacing: .6px !important; margin-bottom: 56px !important; }
.worries-title__em { background: linear-gradient(to bottom, transparent 60%, #f2e6c8 60%) !important; padding: 0 8px !important; color: var(--figma-text) !important; }
.worries-layout { gap: 0 !important; justify-content: center !important; align-items: center !important; }
.worries-chars { width: 437px !important; max-width: 33vw !important; }
.worries-chars__img { width: 100% !important; }
.worry-balloon { border: 2px solid var(--figma-green) !important; border-radius: 16px !important; box-shadow: 0 6px 7px rgba(20,43,34,.08) !important; color: var(--figma-text) !important; }
.worry-balloon p { font-size: 24px !important; line-height: 35px !important; }
.worry-balloon strong { color: var(--figma-green) !important; font-size: 30px !important; line-height: 34px !important; background: linear-gradient(to bottom, transparent 65%, #f2e6c8 65%) !important; }

/* Points */
.points-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 20px !important; align-items: start !important; }
.point-card {
  min-height: 382px !important;
  background: #fff !important;
  border: 1px solid var(--figma-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 1px rgba(20,43,34,.05) !important;
  padding: 33px 29px !important;
  position: relative !important;
}
.point-card__icon { width: 56px !important; height: 56px !important; border-radius: 28px !important; background: #dce6dd !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; font-size: 24px !important; }
.point-card__num { position: absolute !important; right: 24px !important; top: 21px !important; color: #e8dfc8 !important; font-family: 'Noto Serif JP', serif !important; font-size: 36px !important; font-weight: 900 !important; line-height: 36px !important; }
.point-card__title { margin-top: 68px !important; color: var(--figma-text) !important; font-size: 17px !important; font-weight: 700 !important; line-height: 25.5px !important; }
.point-card__text { color: var(--figma-sub) !important; font-size: 13px !important; line-height: 24px !important; }

/* Comparison */
.comp-table-wrap { border: 1px solid var(--figma-border) !important; border-radius: 8px !important; box-shadow: 0 4px 12px rgba(20,43,34,.08) !important; overflow: hidden !important; background:#fff !important; }
.comp-table { min-width: 980px !important; border-collapse: collapse !important; }
.comp-table th, .comp-table td { border-color: #ede7d6 !important; }
.comp-table__label-col,
.comp-table__item-label { width: 200px !important; background: var(--figma-warm) !important; color: var(--figma-text) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: .52px !important; }
.comp-table__label-col::before { content: '比較項目'; color: #fff; }
.comp-table__label-col { background: var(--figma-green) !important; }
.comp-col--synergy { background: var(--figma-gold) !important; color: #fff !important; }
.comp-col--kachitas { background: var(--figma-deep) !important; color: #fff !important; }
.comp-company-name { font-size: 16px !important; font-weight: 700 !important; letter-spacing: 1.3px !important; line-height: 27.2px !important; }
.comp-company-copy { font-size: 10px !important; opacity: .85 !important; letter-spacing: 1.2px !important; }
.comp-table__cell { font-size: 13px !important; line-height: 22.1px !important; color: var(--figma-text) !important; }
.comp-table tr td:nth-child(2) { background: var(--figma-warm-2) !important; }
.comp-tag { border-radius: 999px !important; background: #dce6dd !important; color: var(--figma-green) !important; padding: 4px 10px !important; font-size: 11px !important; font-weight: 700 !important; }
.comp-hp-image img { max-height: 196px !important; object-fit: cover !important; }

/* Company details */
#company.section { background: linear-gradient(to bottom, var(--figma-bg), var(--figma-warm)) !important; }
.co-card {
  max-width: 1136px !important;
  margin: 0 auto 80px !important;
  border: 1px solid var(--figma-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 32px rgba(20,43,34,.10) !important;
  overflow: hidden !important;
  background: #fff !important;
}
.co-card__header { padding: 36px 48px !important; background: var(--figma-deep) !important; color: #fff !important; }
.co-card:nth-of-type(even) .co-card__header { background: var(--figma-warm-2) !important; color: var(--figma-text) !important; border-bottom: 1px solid #f2e6c8 !important; }
.co-card__name { font-size: 26px !important; font-weight: 900 !important; line-height: 36.4px !important; color: inherit !important; margin: 0 0 7px !important; }
.co-card__copy { font-size: 13px !important; font-weight: 700 !important; line-height: 24px !important; letter-spacing: 1.04px !important; color: inherit !important; opacity: .95 !important; }
.co-card__body { padding: 48px !important; display: flex !important; flex-direction: column !important; gap: 48px !important; }
.co-card__section { margin: 0 !important; padding: 0 !important; }
.co-card__section-title { border-bottom: 1px solid #ede7d6 !important; padding: 0 0 15px !important; margin: 0 0 20px !important; color: var(--figma-text) !important; font-size: 17px !important; font-weight: 900 !important; letter-spacing: 1.02px !important; line-height: 31.45px !important; display: flex !important; align-items: center !important; gap: 14px !important; }
.co-card__section-icon { width: 40px !important; height: 40px !important; border-radius: 20px !important; background: #dce6dd !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
.co-card__section-link,
.co-card__section-note { margin-left: auto !important; color: var(--figma-muted) !important; font-size: 10px !important; letter-spacing: 2.2px !important; }
.co-card__hp-img { background: linear-gradient(118deg, var(--figma-warm), #e8dfc8) !important; border: 1px solid var(--figma-dash) !important; border-radius: 4px !important; padding: 24px !important; margin: 0 0 20px !important; text-align: center !important; }
.co-card__hp-img img { max-height: 460px !important; width: auto !important; max-width: 100% !important; object-fit: contain !important; box-shadow: none !important; }
.co-feature-item,
.co-review { border: 1px solid var(--figma-border) !important; border-radius: 4px !important; background: #fff !important; color: var(--figma-sub) !important; }
.co-feature-item p,
.co-point-item,
.co-review__text { font-size: 13px !important; line-height: 24px !important; color: var(--figma-sub) !important; }
.co-card__btns { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; margin-top: 20px !important; }
.co-btn-dark,
.co-btn-outline { height: 66px !important; border-radius: 4px !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 14px !important; font-weight: 700 !important; letter-spacing: 1.4px !important; }
.co-btn-dark { background: var(--figma-green) !important; border: 2px solid var(--figma-green) !important; color:#fff !important; }
.co-btn-outline { background: #fff !important; border: 2px solid var(--figma-green) !important; color: var(--figma-green) !important; }
.co-info-grid { display: grid !important; grid-template-columns: 500px 1fr !important; gap: 24px !important; }
.co-info-table { border: 1px solid var(--figma-border) !important; border-radius: 4px !important; overflow: hidden !important; }
.co-info-row { min-height: 49px !important; display: grid !important; grid-template-columns: 110px 1fr !important; border-bottom: 1px solid #ede7d6 !important; }
.co-info-label { background: var(--figma-warm) !important; font-weight: 700 !important; color: var(--figma-text) !important; }
.co-info-row span { padding: 13px 18px !important; font-size: 12px !important; line-height: 20.4px !important; }

/* Steps */
.steps-flow { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: 16px !important; position: relative !important; }
.steps-flow::before { content:''; position:absolute; left:5%; right:5%; top:36px; height:2px; background:rgba(255,255,255,.15); }
.step-item { position: relative !important; text-align: center !important; padding: 20px 8px !important; background: transparent !important; box-shadow: none !important; }
.step-item__circle { width:72px !important; height:72px !important; border-radius:36px !important; background:#fff !important; border:4px solid var(--figma-deep) !important; box-shadow:0 0 0 2px var(--figma-gold) !important; margin:0 auto 6px !important; display:flex !important; align-items:center !important; justify-content:center !important; color:var(--figma-deep) !important; font-family:'Noto Serif JP',serif !important; font-size:28px !important; font-weight:900 !important; }
.step-item__icon { position:absolute !important; top:12px !important; right:28% !important; width:28px !important; height:28px !important; border-radius:14px !important; background:var(--figma-gold) !important; color:#fff !important; display:flex !important; align-items:center !important; justify-content:center !important; font-size:13px !important; }
.step-item__title { color:#fff !important; font-size:14px !important; font-weight:700 !important; line-height:25.9px !important; letter-spacing:.84px !important; }
.step-item__text { color:rgba(255,255,255,.65) !important; font-size:11px !important; line-height:18.7px !important; }

/* Market */
#market .section-title { font-size: 32px !important; }
.market-lead { max-width: 720px !important; margin: 0 auto 48px !important; text-align: center !important; color: var(--figma-sub) !important; font-size: 14px !important; line-height: 27.3px !important; }
/* market-grid → figma-full.css L1604 で管理 */
/* market-card → figma-full.css L1611 で管理 */
/* .market-card__side → figma-full.css で管理 */
/* .market-card__icon → figma-full.css で管理 */
/* .market-card__title → figma-full.css で管理 */
/* .market-card__main → figma-full.css で管理 */
/* .market-card__body → figma-full.css で管理 */
/* .market-card__impact → figma-full.css で管理 */
.market-card__impact span { display:block !important; color:var(--figma-sub) !important; font-size:12px !important; letter-spacing:1.1px !important; margin-bottom:4px !important; }
.market-card__impact p { margin:0 !important; color:var(--figma-sub) !important; font-size:12px !important; line-height:22.2px !important; }

/* FAQ */
#faq .container { max-width: 880px !important; }
.faq-list { display:grid !important; gap:16px !important; }
.faq-item { border:1px solid var(--figma-border) !important; border-radius:8px !important; box-shadow:0 1px 2px rgba(20,43,34,.05) !important; overflow:hidden !important; background:#fff !important; }
.faq-q { padding:22px 28px !important; gap:16px !important; }
.faq-a { display:flex; margin:0 28px 0 52px !important; padding:25px 0 25px 28px !important; border-top:1px dashed #ede7d6 !important; gap:16px !important; }
.faq-badge { width:36px !important; height:36px !important; border-radius:18px !important; font-family:'Noto Serif JP',serif !important; font-weight:900 !important; }
.faq-badge--q { background:var(--figma-green) !important; color:#fff !important; }
.faq-badge--a { background:var(--figma-gold) !important; color:#fff !important; }
.faq-q p { font-size:15px !important; font-weight:700 !important; line-height:24px !important; color:var(--figma-text) !important; }
.faq-a p { font-size:14px !important; line-height:27.3px !important; color:var(--figma-sub) !important; }
.faq-toggle { width:28px !important; height:28px !important; border-radius:14px !important; background:#f2e6c8 !important; color:var(--figma-green) !important; display:flex !important; align-items:center !important; justify-content:center !important; }

/* Company list / Articles */
.clist-header { align-items:flex-end !important; margin-bottom:32px !important; }
.clist-title { font-size:28px !important; line-height:51.8px !important; font-weight:900 !important; color:var(--figma-text) !important; }
.clist-count { color:var(--figma-gold) !important; }
.clist-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap:20px !important; }
.clist-card { min-height:0 !important; border:1px solid var(--figma-border) !important; border-radius:8px !important; background:#fff !important; padding:24px !important; display:flex !important; flex-direction:column !important; gap:0 !important; }
.clist-card__num { width:48px !important; height:48px !important; border-radius:6px !important; background:#e8dfc8 !important; color:var(--figma-muted) !important; font-weight:900 !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; }
.clist-card__name { font-size:15px !important; line-height:22.5px !important; }
.clist-card__copy { color:#2d5240 !important; font-size:10px !important; letter-spacing:1.5px !important; }
.clist-card__map { height:130px !important; background:linear-gradient(139deg, var(--figma-warm), #e8dfc8) !important; border:1px solid var(--figma-dash) !important; border-radius:4px !important; }
.clist-card__btn,
.clist-more-btn { height:50px !important; border-radius:4px !important; background:var(--figma-green) !important; color:#fff !important; font-size:12px !important; font-weight:700 !important; letter-spacing:1.2px !important; }
.clist-more-btn { background:#fff !important; color:var(--figma-green) !important; border:2px solid var(--figma-green) !important; height:70px !important; padding:0 50px !important; }
.articles-header { align-items:flex-end !important; margin-bottom:32px !important; }
.articles-header .section-title { text-align:left !important; margin:0 !important; font-size:28px !important; line-height:51.8px !important; }
.articles-more { color:var(--figma-green) !important; font-size:12px !important; font-weight:700 !important; letter-spacing:1.44px !important; }
.articles-grid { grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:20px !important; }
.article-card { border:1px solid var(--figma-border) !important; border-radius:8px !important; overflow:hidden !important; }
.article-card__img { height:160px !important; background:linear-gradient(135deg, var(--figma-warm), #e8dfc8) !important; }
.article-card__body { padding:20px 22px 24px !important; }
.article-card__title { font-size:15px !important; line-height:24px !important; }
.article-card__more { color:var(--figma-green) !important; font-size:11px !important; font-weight:700 !important; letter-spacing:1.98px !important; }

/* Footer */
.site-footer { background:var(--figma-deep) !important; color:#fff !important; padding:64px 0 42px !important; }
.footer-main { border-bottom:1px solid rgba(255,255,255,.08) !important; padding-bottom:33px !important; display:flex !important; justify-content:center !important; gap:73px !important; align-items:flex-start !important; }
.footer-brand { display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:16px !important; max-width:260px !important; }
.footer-brand__icon { background:#fff !important; color:var(--figma-deep) !important; }
.footer-brand__name { color:#fff !important; font-size:16px !important; font-weight:900 !important; letter-spacing:2.88px !important; line-height:22.4px !important; margin:0 !important; }
.footer-disclaimer { width:434px !important; color:#fff !important; font-size:12px !important; font-weight:900 !important; letter-spacing:2.88px !important; line-height:22.4px !important; text-align:center !important; }
.footer-disclaimer p { margin:0 !important; }
.footer-disclaimer__title { margin-bottom:22px !important; }
.footer-nav { margin-top:23px !important; display:flex !important; justify-content:center !important; gap:32px !important; }
.footer-nav a { color:rgba(255,255,255,.7) !important; font-size:12px !important; letter-spacing:1.44px !important; line-height:22.2px !important; }
.footer-copyright { margin:23px 0 0 !important; color:rgba(255,255,255,.4) !important; text-align:center !important; font-size:10px !important; letter-spacing:1.5px !important; line-height:18.5px !important; }

/* Responsive */
@media (max-width: 1024px) {
  .site-header { height: auto !important; }
  .site-header__pr { height: 34px; padding:0 20px; }
 .site-header__inner {
  height: 60px !important;
  min-height: 60px !important;
  max-height: 60px !important;
  padding: 0 20px !important;
}
  .site-nav { display:none !important; }
  .hero__inner { padding:80px 24px 64px !important; min-height:700px !important; }
  .hero__title { font-size:40px !important; line-height:1.35 !important; }
  .points-grid,.articles-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .toc-nav__list { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .market-grid,.clist-grid { grid-template-columns:1fr !important; }
  .co-info-grid,.co-card__btns { grid-template-columns:1fr !important; }
  .steps-flow { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}
@media (max-width: 767px) {
  .container { padding-left:20px !important; padding-right:20px !important; }
  .section { padding:64px 0 !important; }
  .hero__title { font-size:31px !important; }
  .hero__eyebrow { font-size:17px !important; }
  .hero__box { padding:20px !important; }
  .section-title,.worries-title { font-size:26px !important; line-height:1.55 !important; }
  .points-grid,.articles-grid,.toc-nav__list,.steps-flow { grid-template-columns:1fr !important; }
  .worries-layout { flex-direction:column !important; }
  .worries-chars { max-width:80vw !important; }
  .co-card__body,.co-card__header { padding:28px 20px !important; }
  .footer-main { flex-direction:column !important; gap:28px !important; align-items:center !important; }
  .footer-disclaimer { width:auto !important; }
}

/* =========================================================
   【最終上書き】Figma寄せ：会社詳細の見出し・カード背景
   ※このCSSファイルの一番下に追加
========================================================= */

/* 会社詳細セクションの背景 */
body #company.section,
body .company-section,
body .company-detail-section {
  background: #fff !important;
}

/* 会社カード全体 */
body .co-card {
  background: #fff !important;
  border: 1px solid #e5dfd0 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

/* 各セクションの区切り */
body .co-card__section {
  margin: 0 !important;
  padding: 36px 36px 44px !important;
  border-top: 1px solid #e5dfd0 !important;
  background: #fff !important;
}

body .co-card__section:first-child {
  border-top: none !important;
}

/* ==============================
   見出し：Figmaの丸番号＋英字＋日本語見出し
============================== */

body .co-card__section-title {
  display: grid !important;
  grid-template-columns: 38px 1fr !important;
  grid-template-rows: auto auto !important;
  column-gap: 14px !important;
  row-gap: 2px !important;
  align-items: center !important;

  margin: 0 0 28px !important;
  padding: 0 !important;
  border-bottom: none !important;

  color: #061525 !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}

/* 丸数字 */
body .co-card__section-icon {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;

  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  background: #061a44 !important;
  color: #fff !important;
  border-radius: 50% !important;

  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
}

/* 英字ラベル：FEATURE / REVIEWS など */
body .co-card__section-title small,
body .co-card__section-label,
body .co-card__section-title .label-en {
  grid-column: 2 !important;
  grid-row: 1 !important;

  display: block !important;
  margin: 0 0 2px !important;

  color: #6f7a87 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}

/* 日本語見出し：特徴・強み / 口コミ など */
body .co-card__section-title strong,
body .co-card__section-main,
body .co-card__section-title .title-ja {
  grid-column: 2 !important;
  grid-row: 2 !important;

  display: block !important;
  margin: 0 !important;

  color: #061525 !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}

/* 右側のNOTEやリンクがあれば非表示寄せ */
body .co-card__section-link,
body .co-card__section-note {
  display: none !important;
}

/* ==============================
   特徴カード：Figma寄せの薄い背景
============================== */

body .co-card__features,
body .co-feature-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin: 0 0 28px !important;
}

body .co-feature-item {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  gap: 16px !important;
  align-items: flex-start !important;

  min-height: 118px !important;
  padding: 20px 22px !important;

  background: #fbfaf6 !important;
  border: 1px solid #e5dfd0 !important;
  border-left: 4px solid #c8102e !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  color: #333 !important;
}

/* 特徴カードの番号 */
body .co-feature-item__num,
body .co-feature-item > span:first-child {
  width: 36px !important;
  min-width: 36px !important;

  color: #061a44 !important;
  font-size: 26px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
}

/* 特徴カードタイトル */
body .co-feature-item h4,
body .co-feature-item__title {
  margin: 0 0 8px !important;

  color: #061525 !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.55 !important;
}

/* 特徴カード本文 */
body .co-feature-item p,
body .co-feature-item__text {
  margin: 0 !important;

  color: #333 !important;
  font-size: 13px !important;
  line-height: 1.85 !important;
}

/* ==============================
   口コミカード：Figma寄せの薄い背景
============================== */

body .co-card__reviews,
body .co-review-list {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  margin: 0 0 28px !important;
}

body .co-review {
  position: relative !important;

  min-height: 132px !important;
  padding: 28px 22px 18px !important;

  background: #fbfaf6 !important;
  border: 1px solid #e5dfd0 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  color: #222 !important;
}

body .co-review::before {
  content: "“" !important;
  position: absolute !important;
  top: 4px !important;
  left: 18px !important;

  color: #e5dfd0 !important;
  font-size: 44px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

body .co-review__stars {
  display: none !important;
}

body .co-review__text {
  margin: 0 0 14px !important;

  color: #222 !important;
  font-size: 13px !important;
  line-height: 1.85 !important;
}

body .co-review__source {
  margin-top: 12px !important;
  padding-top: 10px !important;

  border-top: 1px solid #e5dfd0 !important;

  color: #8a8f98 !important;
  font-size: 11px !important;
  line-height: 1.6 !important;
  text-align: left !important;
  word-break: break-all !important;
}

body .co-review__source a {
  color: #8a8f98 !important;
  text-decoration: underline !important;
}

/* ==============================
   ボタンまわり
============================== */

body .co-card__btns {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  margin-top: 26px !important;
}

/* ==============================
   スマホ対応
============================== */

@media (max-width: 900px) {
  body .co-card__features,
  body .co-feature-list,
  body .co-card__reviews,
  body .co-review-list {
    grid-template-columns: 1fr !important;
  }

  body .co-card__section {
    padding: 32px 24px 38px !important;
  }
}

@media (max-width: 560px) {
  body .co-card__section-title {
    grid-template-columns: 36px 1fr !important;
  }

  body .co-card__section-title strong,
  body .co-card__section-main,
  body .co-card__section-title .title-ja {
    font-size: 23px !important;
  }

  body .co-feature-item {
    grid-template-columns: 36px 1fr !important;
    padding: 18px !important;
  }
}

/* =========================================================
   TOP page styles for front-page.php
   Paste at the very bottom of assets/css/figma-full.css
   ========================================================= */

:root {
  --top-main: #264a5c;
  --top-main-2: #3f7585;
  --top-accent: #e68d6f;
  --top-accent-dark: #c66e51;
  --top-accent-soft: #f4c9b8;
  --top-bg: #fbf7f0;
  --top-warm: #efe6d8;
  --top-card: #ffffff;
  --top-cream: #f5efe5;
  --top-blue-soft: #f4fbfc;
  --top-text: #3f525e;
  --top-muted: #7a8995;
  --top-border: rgba(38, 74, 92, .14);
}

html {
  scroll-behavior: smooth;
}

.top-page {
  background: var(--top-bg);
  color: var(--top-text);
  font-family: var(--font, "Zen Kaku Gothic New", "Noto Sans JP", sans-serif);
  overflow: hidden;
}

.top-page *,
.top-page *::before,
.top-page *::after {
  box-sizing: border-box;
}

.top-page img {
  max-width: 100%;
  height: auto;
  display: block;
}

.top-wrap {
  width: min(1200px, calc(100% - 64px));
  margin-inline: auto;
}

.top-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: .04em;
}

.top-kicker {
  background: #fff;
  border: 1px solid #b5d0d2;
  color: var(--top-main-2);
  padding: 9px 18px;
  font-size: 13px;
}

.top-section {
  padding: 110px 0;
}

.top-section-title {
  margin: 0 0 48px;
  text-align: center;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-weight: 800;
  font-size: clamp(24px, 3vw, 38px);
  line-height: 1.5;
  letter-spacing: .02em;
}

.top-section-title .mark {
  color: var(--top-main-2);
  font-size: 1.12em;
  background: linear-gradient(to bottom, transparent 58%, var(--top-accent-soft) 58%);
  padding-inline: .05em;
}

/* HERO */
.hero {
  position: relative;
  min-height: 724px;
  display: grid;
  place-items: start center;
  padding-top: 62px;
  overflow: hidden;
}

.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__inner {
  position: relative;
  width: min(1280px, 100%);
  min-height: 620px;
}

.hero__main {
  position: absolute;
  width: min(757px, 72vw);
  left: 50%;
  top: -42px;
  transform: translateX(-50%);
}

.hero__text {
  position: absolute;
  left: 50%;
  top: 272px;
  transform: translateX(-50%);
  width: min(778px, 86vw);
  background: #fff;
  padding: 10px 18px;
  color: var(--top-text);
  text-align: center;
  font-weight: 600;
  line-height: 2.1;
}

.hero__ribbon {
  position: absolute;
  left: 50%;
  top: 392px;
  transform: translateX(-50%);
  width: min(708px, 86vw);
}

/* INDEX */
.top-index {
  background: var(--top-main);
  padding: 15px 0;
}

.top-index__bar {
  width: min(1200px, calc(100% - 64px));
  min-height: 132px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 210px repeat(5, minmax(0, 1fr));
  gap: 14px;
  align-items: center;
  background: transparent;
  overflow: visible;
}

.top-index__label {
  align-self: stretch;
  min-height: 102px;
  display: grid;
  place-items: center;
  background: var(--top-main);
  color: #fff;
  font-size: 44px;
  font-weight: 900;
  letter-spacing: .02em;
}

.top-index__item {
  min-height: 82px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 999px;
  border: 1px solid #f1b7a8;
  background: #fff1ec;
  color: var(--top-main);
  text-decoration: none;
  font-weight: 900;
  font-size: 14px;
  line-height: 1.45;
  text-align: center;
  white-space: normal;
}

.top-index__item:nth-child(odd) {
  background: #f4fbfc;
  border-color: #b9dce1;
}

.top-index__num {
  flex: 0 0 auto;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--top-accent);
  box-shadow: inset 0 -6px 0 rgba(0, 0, 0, .08);
  font-size: 18px;
}

/* TOP 3 */
.top3 {
  padding: 46px 0 80px;
  background: var(--top-bg);
}

.top3__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.top-company-card {
  background: #fff;
  border: 1px solid var(--top-border);
  border-radius: 22px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 10px 30px -24px rgba(38, 74, 92, .35);
}

.top-company-card__head {
  min-height: 140px;
  padding: 26px 24px 18px;
  border-bottom: 1px solid var(--top-border);
}

.top-company-card__copy {
  margin: 0 0 8px;
  color: var(--top-main-2);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.7;
}

.top-company-card__name {
  margin: 0 0 4px;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-size: 27px;
  line-height: 1.2;
}

.top-company-card__sub {
  margin: 0;
  color: var(--top-muted);
  font-size: 12px;
}

.top-company-card__image {
  background: var(--top-cream);
  padding: 10px 14px 8px;
  border-bottom: 1px solid var(--top-border);
}

.top-company-card__image img {
  width: 100%;
  aspect-ratio: 332 / 171;
  object-fit: cover;
  border: 1px dashed rgba(38, 74, 92, .22);
  border-radius: 14px;
  background: #fff;
}

.top-company-card__cite {
  color: var(--top-main);
  font-size: 11px;
  font-weight: 800;
  text-align: right;
  margin-top: 6px;
}

.compare-table {
  width: calc(100% - 40px);
  border-collapse: collapse;
  margin: 22px 20px 16px;
  font-size: 13px;
}

.compare-table th,
.compare-table td {
  border-bottom: 1px dashed #e0e5e8;
  padding: 12px 8px;
  vertical-align: middle;
}

.compare-table th {
  width: 42%;
  background: var(--top-blue-soft);
  color: #5a6c77;
  text-align: left;
  font-weight: 700;
}

.compare-table td {
  text-align: center;
  color: var(--top-main-2);
  font-weight: 900;
  line-height: 1.35;
}

.top-btns {
  padding: 24px 22px 24px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: auto;
}

.top-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  border-radius: 999px;
  text-decoration: none;
  text-align: center;
  font-weight: 900;
  line-height: 1.5;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}

.top-btn:hover {
  transform: translateY(2px);
  opacity: .92;
}

.top-btn--primary {
  background: var(--top-accent);
  color: #fff;
  box-shadow: 0 4px 0 var(--top-accent-dark);
}

.top-btn--secondary {
  background: #fff;
  color: var(--top-main);
  border: 2px solid var(--top-main);
}

/* POINTS */
.points {
  background: var(--top-warm);
}

.points__lead {
  margin: 0 0 8px;
  text-align: center;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-size: clamp(30px, 4vw, 48px);
  font-weight: 900;
}

.point-list {
  display: grid;
  gap: 24px;
}

.point-card {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) 280px;
  gap: 48px;
  align-items: center;
  padding: 45px 49px;
  background: #fff;
  border: 1px solid var(--top-border);
  border-radius: 22px;
  box-shadow: 0 10px 30px -20px rgba(38, 74, 92, .2);
}

.point-no {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: var(--top-accent);
  box-shadow: 0 6px 0 var(--top-accent-dark);
  color: #fff;
  display: grid;
  place-items: center;
  position: relative;
  font-size: 42px;
  font-weight: 900;
}

.point-no::after {
  content: "POINT";
  position: absolute;
  bottom: -30px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--top-cream);
  color: var(--top-main);
  border-radius: 999px;
  padding: 3px 12px;
  font-size: 11px;
  letter-spacing: .04em;
}

.point-card h3 {
  margin: 0 0 14px;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-size: 22px;
  line-height: 1.65;
}

.point-card h3 span {
  color: var(--top-main-2);
  background: linear-gradient(to bottom, transparent 60%, var(--top-accent-soft) 60%);
}

.point-card p {
  margin: 0 0 12px;
  line-height: 2.1;
  font-size: 14px;
}

.point-card img {
  width: 100%;
  aspect-ratio: 14 / 9;
  object-fit: cover;
  border: 1px solid var(--top-border);
  border-radius: 16px;
}

/* COMPANY PROFILES */
.profiles {
  padding-top: 120px;
  background: var(--top-bg);
}

.profile-card {
  background: #fff;
  border: 1px solid var(--top-border);
  border-radius: 22px;
  overflow: hidden;
  margin-bottom: 48px;
}

.profile-head {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 28px;
  align-items: center;
  min-height: 145px;
  padding: 32px 40px;
  background: var(--top-cream);
  border-bottom: 1px solid var(--top-border);
}

.profile-no {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--top-main);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 28px;
  font-weight: 900;
  position: relative;
}

.profile-no::after {
  content: "/03";
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  color: var(--top-main);
  border: 1px solid var(--top-border);
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 10px;
}

.profile-head__label {
  display: inline-flex;
  width: fit-content;
  background: var(--top-accent);
  color: #fff;
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 800;
}

.profile-head h3 {
  margin: 10px 0 0;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-size: 26px;
  line-height: 1.4;
}

.profile-body {
  padding: 48px;
  display: grid;
  gap: 48px;
}

.profile-body > section:last-child .company-info {
  margin-bottom: 0;
}

.profile-body > section:last-child {
  padding-bottom: 0;
}

.profile-body > section:last-child .top-btns {
  padding-bottom: 0;
  margin-bottom: 0;
}

.block-title {
  display: flex;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid var(--top-border);
  padding-bottom: 15px;
  margin: 0 0 24px;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-size: 22px;
}

.block-title::before {
  content: "";
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--top-accent);
  flex: 0 0 auto;
}

.profile-feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}

.profile-feature__image img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: top center;
  border-radius: 16px;
  border: 1px dashed rgba(38, 74, 92, .2);
  background: var(--top-cream);
}

.feature-list {
  counter-reset: feature;
  display: grid;
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.feature-list li {
  position: relative;
  padding-left: 54px;
}

.feature-list li::before {
  content: counter(feature);
  counter-increment: feature;
  position: absolute;
  left: 0;
  top: 0;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--top-accent-soft);
  color: var(--top-accent);
  display: grid;
  place-items: center;
  font-weight: 900;
}

.feature-list h4 {
  margin: 0 0 6px;
  color: var(--top-main);
  font-size: 16px;
}

.feature-list p {
  margin: 0;
  line-height: 2;
  font-size: 13px;
}

.case-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.case-card {
  background: var(--top-bg);
  border: 1px solid var(--top-border);
  border-radius: 16px;
  overflow: hidden;
}

.case-card__body {
  background: #fff;
  border: 1px solid #e5ddd0;
  border-radius: 8px;
  padding: 24px 19px 18px;
}

.case-price {
  color: #c8102e;
  font-size: 24px;
  font-weight: 900;
}

.case-price span {
  color: #333;
  font-size: 13px;
  margin-left: 4px;
}

.case-card dl {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 4px 10px;
  margin: 12px 0 0;
  font-size: 12px;
}

.case-card dt {
  color: #6b6b6b;
  font-weight: 900;
}

.case-card dd {
  margin: 0;
  color: #1a1a1a;
  font-weight: 900;
}

.case-card__title {
  padding: 16px 22px;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-weight: 900;
  font-size: 15px;
}

.review-list {
  display: grid;
  gap: 14px;
}

.review-card {
  display: grid;
  grid-template-columns: 128px 1fr;
  gap: 32px;
  align-items: center;
  padding: 32px 36px;
  background: var(--top-bg);
  border: 1px solid var(--top-border);
  border-radius: 16px;
}

.review-card img {
  width: 128px;
  height: 128px;
  object-fit: cover;
  border-radius: 50%;
}

.review-card p {
  position: relative;
  margin: 0;
  line-height: 2.1;
  font-size: 14px;
}

.review-card p::before {
  content: "\201D";
  display: block;
  position: static;
  color: var(--top-accent-soft);
  font-family: "Zen Maru Gothic", serif;
  font-size: 48px;
  font-weight: 900;
  line-height: 1;
  margin-bottom: -16px;
}

.company-info {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 32px;
  margin-bottom: 0;
}

.company-info table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--top-border);
  border-radius: 16px;
  overflow: hidden;
  display: block;
}

.company-info tbody {
  display: block;
  width: 100%;
}

.company-info tr {
  display: grid;
  grid-template-columns: 130px 1fr;
  border-bottom: 1px solid var(--top-border);
}

.company-info tr:last-child {
  border-bottom: 0;
}

.company-info th,
.company-info td {
  padding: 18px 16px;
  font-size: 14px;
  text-align: left;
}

.company-info th {
  background: var(--top-cream);
  color: var(--top-main);
}

.company-info td {
  color: #1f3340;
}

.company-info a {
  color: var(--top-main-2);
  word-break: break-all;
}

.company-map,
.company-map iframe {
  width: 100%;
  height: 340px;
  border: 0;
  border-radius: 16px;
  overflow: hidden;
}

.company-map img {
  width: 100%;
  height: 340px;
  border-radius: 16px;
  object-fit: cover;
}

/* MARKET */
.market {
  background: var(--top-main);
  color: #fff;
  position: relative;
}

.market::before,
.market::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  background: rgba(230, 141, 111, .12);
}

.market::before {
  width: 300px;
  height: 300px;
  right: -100px;
  top: 80px;
  background: rgba(143, 180, 182, .1);
}

.market::after {
  width: 140px;
  height: 140px;
  left: 60px;
  bottom: 60px;
}

.market .top-section-title {
  color: #fff;
  position: relative;
}

.market .mark {
  color: #fff;
  background: linear-gradient(to bottom, transparent 58%, rgba(230, 141, 111, .5) 58%);
}

.market-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.market-card {
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(143, 180, 182, .25);
  border-radius: 16px;
  padding: 18px 20px;
}

.market-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 24px;
}

.market-row:last-child {
  margin-bottom: 0;
}

.market-label {
  background: rgba(230, 141, 111, .58);
  color: #fff;
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 800;
}

.market-num {
  color: #fff;
  font-size: 28px;
  line-height: 1;
  font-weight: 900;
  opacity: 1;
  white-space: nowrap;
}

.market-num span {
  font-size: 15px;
  color: rgba(245, 239, 229, .9);
  margin-left: 2px;
}

.market-note {
  position: relative;
  text-align: center;
  color: rgba(245, 239, 229, .78);
  font-size: 13px;
  margin: 38px 0 0;
  line-height: 1.8;
}

/* FAQ */
.faq-list {
  display: grid;
  gap: 12px;
}

.faq-item {
  background: #fff;
  border: 1px solid var(--top-border);
  border-radius: 16px;
  overflow: hidden;
}

.faq-item.is-open {
  border-color: var(--top-accent);
  box-shadow: 0 8px 24px -12px rgba(230, 141, 111, .3);
}

.faq-q {
  width: 100%;
  display: grid;
  grid-template-columns: 48px 1fr 34px;
  gap: 16px;
  align-items: center;
  background: transparent;
  border: 0;
  text-align: left;
  padding: 22px 28px;
  cursor: pointer;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-weight: 900;
  font-size: 16px;
}

.faq-q__mark {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--top-accent);
  color: #fff;
  display: grid;
  place-items: center;
  font-family: var(--font, sans-serif);
}

.faq-q__plus {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--top-cream);
  display: grid;
  place-items: center;
  font-size: 22px;
  transition: transform .2s ease;
}

.faq-item.is-open .faq-q__plus {
  transform: rotate(45deg);
  background: var(--top-accent);
  color: #fff;
}

.faq-a {
  display: none;
  margin: 0 28px 28px 92px;
  background: var(--top-bg);
  border-radius: 16px;
  padding: 18px 22px;
  line-height: 2;
  font-size: 14px;
}

.faq-item.is-open .faq-a {
  display: block;
}

/* COMPANY LIST */
.company-list {
  background: var(--top-warm);
}

.company-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.company-list-card {
  min-height: 507px;
  background: #fff;
  border: 1px solid var(--top-border);
  border-radius: 16px;
  padding: 24px;
  display: grid;
  gap: 15px;
}

.company-list-card h3 {
  margin: 0;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-size: 17px;
  line-height: 1.6;
}

.company-list-card p {
  margin: 0;
  color: #5a6c77;
  font-size: 13px;
  line-height: 1.9;
}

.company-list-card__meta {
  border-top: 1px dashed var(--top-border);
  padding-top: 14px;
  display: grid;
  gap: 8px;
  color: #5a6c77;
  font-size: 12px;
  line-height: 1.7;
}

.company-list-card__map {
  height: 120px;
  border-radius: 10px;
  overflow: hidden;
  background: linear-gradient(135deg, #c7dcde, #8fb4b6);
  position: relative;
}

.company-list-card__map iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.company-list-card__map::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 24px;
  height: 30px;
  transform: translate(-50%, -50%);
  background: var(--top-accent);
  clip-path: polygon(50% 100%, 10% 48%, 10% 20%, 25% 5%, 50% 0, 75% 5%, 90% 20%, 90% 48%);
  box-shadow: 0 2px 4px rgba(38, 74, 92, .3);
  pointer-events: none;
}

.company-list-card__more {
  border-top: 1px solid var(--top-border);
  padding-top: 14px;
  color: var(--top-accent);
  font-weight: 900;
  text-decoration: none;
  text-align: right;
}

/* POSTS */
.posts {
  background: var(--top-bg);
  padding-top: 76px;
}

.post-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

.post-card {
  background: #fff;
  border: 1px solid var(--top-border);
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}

.post-thumb {
  position: relative;
  height: 180px;
  background: var(--top-cream);
  display: grid;
  place-items: center;
  color: #9a8e7d;
  font-size: 12px;
  font-weight: 800;
  overflow: hidden;
}

.post-thumb::after {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1px dashed rgba(38, 74, 92, .15);
  border-radius: 12px;
}

.post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: relative;
  z-index: 1;
}

.post-label {
  position: absolute;
  left: 14px;
  top: 14px;
  z-index: 2;
  background: var(--top-accent);
  color: #fff;
  border-radius: 999px;
  padding: 3px 12px;
  font-size: 11px;
  font-weight: 800;
}

.post-body {
  padding: 18px 20px 22px;
}

.post-date {
  color: var(--top-main-2);
  font-size: 13px;
  font-weight: 800;
}

.post-card h3 {
  min-height: 54px;
  margin: 9px 0 14px;
  color: var(--top-main);
  font-family: "Zen Maru Gothic", var(--font, sans-serif);
  font-size: 16px;
  line-height: 1.7;
}

.post-more {
  color: var(--top-accent);
  font-size: 12px;
  font-weight: 900;
}

/* 768px */
@media (max-width: 768px) {
  .top-wrap {
    width: min(100% - 32px, 704px);
  }

  .top-section {
    padding: 76px 0;
  }

  .hero {
    min-height: 640px;
    padding-top: 40px;
  }

  .hero__main {
    width: 92vw;
    top: 5px;
  }

  .hero__text {
    top: 270px;
    line-height: 1.8;
    font-size: 14px;
  }

  .hero__ribbon {
    top: 430px;
  }

  .top-index {
    display: none !important;
  }

  .top-index__bar {
    min-height: 0;
    width: calc(100% - 32px);
    min-width: 0;
    padding: 0;
    grid-template-columns: 64px repeat(5, minmax(0, 1fr));
    gap: 6px;
  }

  .top-index__label {
    font-size: 18px;
    min-height: 60px;
  }

  .top-index__item {
    min-height: 60px;
    font-size: 10px;
    gap: 4px;
    padding: 8px 4px;
    line-height: 1.3;
    white-space: normal;
  }

  .top3__cards,
  .company-grid {
    grid-template-columns: 1fr;
  }

  .point-card {
    grid-template-columns: 82px 1fr;
    gap: 28px;
    padding: 32px 24px;
  }

  .point-card img {
    grid-column: 1 / -1;
  }

  .point-no {
    width: 76px;
    height: 76px;
    font-size: 32px;
  }

  .profile-head {
    grid-template-columns: 64px 1fr;
    padding: 28px 24px;
  }

  .profile-body {
    padding: 28px 24px;
  }

  .profile-feature,
  .company-info {
    grid-template-columns: 1fr;
  }

  .case-grid,
  .post-grid {
    grid-template-columns: 1fr 1fr;
  }

  .review-card {
    grid-template-columns: 88px 1fr;
    padding: 24px;
  }

  .review-card img {
    width: 88px;
    height: 88px;
  }

  .market-row {
    align-items: flex-start;
  }
}

/* 390px */
@media (max-width: 390px) {
  .top-wrap {
    width: min(100% - 24px, 366px);
  }

  .top-section {
    padding: 58px 0;
  }

  .top-section-title {
    font-size: 22px;
    margin-bottom: 28px;
  }

  .hero {
    min-height: 560px;
  }

  .hero__main {
    top: 0;
  }

  .hero__text {
    top: 220px;
    font-size: 13px;
    width: calc(100% - 24px);
  }

  .hero__ribbon {
    top: 410px;
  }

  .top-index__label {
    display: none;
  }

  .top-index__bar {
    min-width: 760px;
    grid-template-columns: repeat(5, 1fr);
  }

  .top-index__item {
    min-height: 70px;
    padding: 12px;
  }

  .top-index__num {
    width: 34px;
    height: 34px;
    font-size: 13px;
  }

  .top3__cards,
  .point-list,
  .case-grid,
  .review-list,
  .company-info,
  .company-grid,
  .post-grid {
    grid-template-columns: 1fr;
  }

  .top-company-card__name {
    font-size: 23px;
  }

  .compare-table {
    width: calc(100% - 28px);
    margin-inline: 14px;
  }

  .point-card {
    grid-template-columns: 1fr;
    padding: 28px 20px;
  }

  .point-no {
    margin: 0 auto 22px;
  }

  .profile-head {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .profile-no {
    margin: auto;
  }

  .profile-head__label {
    margin-inline: auto;
  }

  .profile-body {
    padding: 24px 18px;
  }

  .block-title {
    font-size: 19px;
  }

  .review-card {
    grid-template-columns: 1fr;
    text-align: left;
  }

  .review-card img {
    margin: auto;
  }

  .company-info tr {
    grid-template-columns: 1fr;
  }

  .company-info th,
  .company-info td {
    padding: 14px 12px;
    font-size: 12px;
  }

  .market-row {
    display: grid;
    gap: 10px;
  }

  .market-num {
    font-size: 32px;
  }

  .faq-q {
    grid-template-columns: 40px 1fr 30px;
    padding: 18px 16px;
    font-size: 14px;
  }

  .faq-a {
    margin: 0 16px 18px;
  }
}

/* ==============================
   TOP FV overlap fix
   hero text / CTA image
============================== */

.hero {
  min-height: 760px !important;
  padding-top: 54px !important;
  display: block !important;
}

.hero__inner {
  position: relative !important;
  width: min(1280px, 100%) !important;
  min-height: 700px !important;
  margin: 0 auto !important;
}

.hero__main {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: min(757px, 72vw) !important;
  margin: 0 auto 24px !important;
  z-index: 2 !important;
}

.hero__text {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: min(838px, calc(100% - 48px)) !important;
  margin: 0 auto 18px !important;
  padding: 18px 28px !important;
  z-index: 3 !important;
}

.hero__ribbon {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: min(708px, calc(100% - 48px)) !important;
  margin: 0 auto !important;
  z-index: 2 !important;
}

@media (max-width: 768px) {
  .hero {
    min-height: 680px !important;
    padding-top: 38px !important;
  }

  .hero__inner {
    min-height: 620px !important;
  }

  .hero__main {
    width: min(92vw, 680px) !important;
    margin-bottom: 20px !important;
  }

  .hero__text {
    width: calc(100% - 32px) !important;
    padding: 16px 18px !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
    margin-bottom: 16px !important;
  }

  .hero__ribbon {
    width: calc(100% - 32px) !important;
  }
}

@media (max-width: 390px) {
  .hero {
    min-height: 620px !important;
    padding-top: 28px !important;
  }

  .hero__inner {
    min-height: 570px !important;
  }

  .hero__main {
    width: 96vw !important;
    margin-bottom: 16px !important;
  }

  .hero__text {
    width: calc(100% - 24px) !important;
    padding: 14px 14px !important;
    font-size: 12px !important;
    line-height: 1.8 !important;
    margin-bottom: 14px !important;
  }

  .hero__ribbon {
    width: calc(100% - 24px) !important;
  }
}

/* ==============================
   FV emergency fix
   タイトル・説明文・CTAの重なり/横並び崩れ修正
============================== */

.top-page .hero {
  position: relative !important;
  display: block !important;
  min-height: 760px !important;
  padding: 56px 0 80px !important;
  overflow: hidden !important;
}

.top-page .hero__bg {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  z-index: 0 !important;
}

.top-page .hero__inner {
  position: relative !important;
  z-index: 1 !important;
  width: min(1280px, 100%) !important;
  min-height: auto !important;
  margin: 0 auto !important;
  padding: 0 24px !important;

  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 22px !important;

  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  text-align: center !important;
}

.top-page .hero__main,
.top-page .hero__text,
.top-page .hero__ribbon {
  position: static !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  float: none !important;
  clear: both !important;
}

.top-page .hero__main {
  order: 1 !important;
  display: block !important;
  width: min(757px, 78vw) !important;
  max-width: 757px !important;
  height: auto !important;
  margin: 0 auto !important;
  z-index: 2 !important;
}

.top-page .hero__text {
  order: 2 !important;
  display: block !important;
  width: min(838px, calc(100% - 48px)) !important;
  max-width: 838px !important;
  min-width: 0 !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 18px 32px !important;

  background: #fff !important;
  color: #264a5c !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 2 !important;
  letter-spacing: 0 !important;

  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  text-align: center !important;

  z-index: 3 !important;
}

.top-page .hero__ribbon {
  order: 3 !important;
  display: block !important;
  width: min(708px, calc(100% - 48px)) !important;
  max-width: 708px !important;
  height: auto !important;
  margin: 0 auto !important;
  z-index: 2 !important;
}

@media (max-width: 768px) {
  .top-page .hero {
    min-height: 680px !important;
    padding: 40px 0 64px !important;
  }

  .top-page .hero__inner {
    padding: 0 16px !important;
    gap: 18px !important;
  }

  .top-page .hero__main {
    width: min(680px, 94vw) !important;
  }

  .top-page .hero__text {
    width: 100% !important;
    max-width: 680px !important;
    padding: 16px 18px !important;
    font-size: 13px !important;
    line-height: 1.9 !important;
  }

  .top-page .hero__ribbon {
    width: 100% !important;
    max-width: 640px !important;
  }
}

@media (max-width: 390px) {
  .top-page .hero {
    min-height: 600px !important;
    padding: 32px 0 56px !important;
  }

  .top-page .hero__inner {
    gap: 16px !important;
  }

  .top-page .hero__main {
    width: 100% !important;
  }

  .top-page .hero__text {
    padding: 14px 14px !important;
    font-size: 12px !important;
    line-height: 1.8 !important;
  }

  .top-page .hero__ribbon {
    width: 100% !important;
  }
}

/* ==============================
   Company list layout fix
   業者一覧の折り返し・余白崩れ修正
============================== */

.top-page .company-list {
  background: #efe6d8 !important;
  padding-top: 96px !important;
  padding-bottom: 96px !important;
}

.top-page .company-list .top-wrap {
  width: min(1200px, calc(100% - 64px)) !important;
  margin-inline: auto !important;
}

.top-page .company-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 32px 40px !important;
  align-items: start !important;
  grid-auto-rows: auto !important;
}

.top-page .company-list-card {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;

  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;

  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.top-page .company-list-card h3 {
  margin: 0 !important;
  color: #07354a !important;
  font-size: 18px !important;
  line-height: 1.55 !important;
  font-weight: 800 !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

.top-page .company-list-card p {
  min-height: 0 !important;
  margin: 0 !important;
  color: #425765 !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
  white-space: normal !important;
}

.top-page .company-list-card__meta {
  display: grid !important;
  gap: 8px !important;
  margin-top: 6px !important;
  padding-top: 16px !important;
  border-top: 1px dashed rgba(38, 74, 92, .22) !important;
  color: #425765 !important;
  font-size: 12px !important;
  line-height: 1.7 !important;
}

.top-page .company-list-card__meta span {
  display: block !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

.top-page .company-list-card__map {
  width: 100% !important;
  height: 120px !important;
  min-height: 120px !important;
  margin: 0 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: linear-gradient(135deg, #c7dcde, #8fb4b6) !important;
  position: relative !important;
}

.top-page .company-list-card__map iframe {
  display: block !important;
  width: 100% !important;
  height: 120px !important;
  min-height: 120px !important;
  border: 0 !important;
}

.top-page .company-list-card__more {
  display: block !important;
  margin-top: 4px !important;
  padding-top: 14px !important;
  border-top: 1px solid rgba(38, 74, 92, .14) !important;
  color: #e68d6f !important;
  text-align: right !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

/* 768px */
@media (max-width: 768px) {
  .top-page .company-list .top-wrap {
    width: min(100% - 32px, 704px) !important;
  }

  .top-page .company-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px 24px !important;
  }
}

/* 390px */
@media (max-width: 390px) {
  .top-page .company-list {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }

  .top-page .company-list .top-wrap {
    width: min(100% - 24px, 366px) !important;
  }

  .top-page .company-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
}
/* ==============================
   Company list more button
============================== */

.top-page .company-list-card.is-hidden {
  display: none !important;
}

.top-page .company-more-area {
  display: flex !important;
  justify-content: center !important;
  margin-top: 56px !important;
}

.top-page .company-more-button {
  min-width: 260px !important;
  min-height: 64px !important;
  padding: 16px 40px !important;
  border: 2px solid #264a5c !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #264a5c !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
  cursor: pointer !important;
  box-shadow: 0 4px 0 rgba(38, 74, 92, .18) !important;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease !important;
}

.top-page .company-more-button:hover {
  transform: translateY(2px) !important;
  box-shadow: 0 2px 0 rgba(38, 74, 92, .18) !important;
  opacity: .9 !important;
}

@media (max-width: 390px) {
  .top-page .company-more-area {
    margin-top: 40px !important;
  }

  .top-page .company-more-button {
    width: 100% !important;
    min-width: 0 !important;
  }
}
/* ==============================
   Company list card final fix
   高さ揃え / 白カード / もっと見る対応 / 疑似ピン削除
============================== */

.top-page .company-list {
  background: #efe6d8 !important;
}

.top-page .company-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 32px 32px !important;
  align-items: stretch !important;
}

.top-page .company-list-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 430px !important;

  padding: 28px 28px 24px !important;
  background: #fff !important;
  border: 1px solid rgba(38, 74, 92, .12) !important;
  border-radius: 14px !important;
  box-shadow: 0 10px 24px -22px rgba(38, 74, 92, .45) !important;
}

.top-page .company-list-card.is-hidden {
  display: none !important;
}

.top-page .company-list-card h3 {
  min-height: 56px !important;
  margin: 0 0 14px !important;
  color: #07354a !important;
  font-size: 18px !important;
  line-height: 1.55 !important;
  font-weight: 800 !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

.top-page .company-list-card p {
  min-height: 52px !important;
  margin: 0 0 16px !important;
  color: #425765 !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
}

.top-page .company-list-card__meta {
  min-height: 76px !important;
  display: grid !important;
  align-content: start !important;
  gap: 8px !important;
  margin: 0 0 16px !important;
  padding-top: 16px !important;
  border-top: 1px dashed rgba(38, 74, 92, .22) !important;
  color: #425765 !important;
  font-size: 12px !important;
  line-height: 1.7 !important;
}

.top-page .company-list-card__meta span {
  display: block !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

.top-page .company-list-card__map {
  width: 100% !important;
  height: 120px !important;
  min-height: 120px !important;
  margin: auto 0 16px !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  background: #c7dcde !important;
  position: relative !important;
}

/* 擬似ピン削除 */
.top-page .company-list-card__map::after,
.top-page .company-list-card__map::before {
  content: none !important;
  display: none !important;
}

.top-page .company-list-card__map iframe {
  display: block !important;
  width: 100% !important;
  height: 120px !important;
  min-height: 120px !important;
  border: 0 !important;
}

.top-page .company-list-card__more {
  display: block !important;
  margin-top: auto !important;
  padding-top: 14px !important;
  border-top: 1px solid rgba(38, 74, 92, .14) !important;
  color: #e68d6f !important;
  text-align: right !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

.top-page .company-more-area {
  display: flex !important;
  justify-content: center !important;
  margin-top: 48px !important;
}

.top-page .company-more-button {
  min-width: 260px !important;
  min-height: 64px !important;
  padding: 16px 40px !important;
  border: 2px solid #264a5c !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #264a5c !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
  cursor: pointer !important;
  box-shadow: 0 4px 0 rgba(38, 74, 92, .18) !important;
}

.top-page .company-more-button:hover {
  opacity: .9 !important;
  transform: translateY(2px) !important;
}

@media (max-width: 768px) {
  .top-page .company-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px 24px !important;
  }

  .top-page .company-list-card {
    min-height: 420px !important;
  }
}

@media (max-width: 390px) {
  .top-page .company-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  .top-page .company-list-card {
    min-height: 0 !important;
  }

  .top-page .company-list-card h3,
  .top-page .company-list-card p,
  .top-page .company-list-card__meta {
    min-height: 0 !important;
  }

  .top-page .company-more-button {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* ==============================
   Company card link placeholder
   リンクなしでも詳しく見る位置を固定
============================== */

.top-page .company-list-card__more {
  display: block !important;
  min-height: 36px !important;
  margin-top: auto !important;
  padding-top: 14px !important;
  border-top: 1px solid rgba(38, 74, 92, .14) !important;
  color: #e68d6f !important;
  text-align: right !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 800 !important;
}

.top-page .company-list-card__more--empty {
  visibility: hidden !important;
  pointer-events: none !important;
}
/* mobile-menu INDEX */
.mobile-menu__index {
  padding: 16px 20px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.15);
  margin-bottom: 8px;
}

.mobile-menu__index-label {
  margin: 0 0 10px;
  color: rgba(255,255,255,0.6);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .1em;
}

.mobile-menu__index-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.mobile-menu__index-list li a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: rgba(255,255,255,0.08);
  border-radius: 8px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  line-height: 1.3;
}

.mobile-menu__index-list li a span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--top-accent);
  font-size: 11px;
  font-weight: 900;
  flex-shrink: 0;
}
/* ==========================================================
   2026-06-12 final adjustment
   Figmaはサイズ感・色味のみ参照。テキストは現行PHPを優先。
   ========================================================== */

/* FV：CTAボタンを説明テキストの下へ固定 */
.top-page .hero__inner {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

.top-page .hero__main {
  order: 1 !important;
}

.top-page .hero__text {
  order: 2 !important;
}

.top-page .hero__ribbon-link,
.top-page .hero__ribbon {
  order: 3 !important;
}

.top-page .hero__ribbon-link {
  display: block !important;
  width: min(708px, calc(100% - 48px)) !important;
  max-width: 708px !important;
  margin: 0 auto !important;
}

.top-page .hero__ribbon-link .hero__ribbon {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
}

/* モバイル版：TOP上のINDEXは非表示。INDEXはハンバーガーメニュー側のみ使用 */
@media (max-width: 768px) {
  .top-page .top-index {
    display: none !important;
  }
}

/* おすすめ3社カード内CTA：以前の通り2段（縦積み）に戻す */
.top-page .top3 .top-company-card .top-btns,
.top-page .top3 .top-company-card .top-company-card__buttons,
.top-page .top3 .top-company-card .top-btns--stack {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  padding: 20px 22px 24px !important;
  margin-top: 0 !important;
}

.top-page .top3 .top-company-card .top-btn {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 54px !important;
  padding: 12px 18px !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
  white-space: normal !important;
}

/* 個社紹介内CTA：上との隙間を確保 */
.top-page .profile-body > section > .top-btns {
  margin-top: 30px !important;
  padding-top: 0 !important;
}

.top-page .profile-feature + .top-btns,
.top-page .case-source-note + .top-btns,
.top-page .review-list + .top-btns,
.top-page .company-info + .top-btns {
  margin-top: 30px !important;
}

/* 会社概要表：表だけが地図の高さに引き伸ばされて下部余白が出るのを防ぐ */
.top-page .company-info {
  align-items: start !important;
}

.top-page .company-info table {
  align-self: start !important;
  height: auto !important;
  min-height: 0 !important;
}

.top-page .company-info tbody {
  height: auto !important;
  min-height: 0 !important;
}

.top-page .company-info tr {
  min-height: 0 !important;
}

.top-page .company-info th,
.top-page .company-info td {
  height: auto !important;
}

/* 不動産価格相場：Figma寄せ。白カード化している過去CSSを上書き */
.top-page .market {
  position: relative !important;
  overflow: hidden !important;
  padding: 92px 20px 86px !important;
  background: #244f5d !important;
  color: #fff !important;
}

.top-page .market::before,
.top-page .market::after {
  content: "" !important;
  position: absolute !important;
  z-index: 0 !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, .08) !important;
  pointer-events: none !important;
}

.top-page .market::before {
  width: 230px !important;
  height: 230px !important;
  right: -64px !important;
  top: 74px !important;
}

.top-page .market::after {
  width: 112px !important;
  height: 112px !important;
  left: 72px !important;
  bottom: 54px !important;
}

.top-page .market .top-wrap {
  position: relative !important;
  z-index: 1 !important;
  width: min(100% - 40px, 980px) !important;
  margin: 0 auto !important;
}

.top-page .market .top-section-title {
  margin: 0 0 48px !important;
  color: #fff !important;
  font-size: clamp(26px, 3vw, 34px) !important;
  font-weight: 900 !important;
  line-height: 1.45 !important;
  text-align: center !important;
  letter-spacing: .06em !important;
}

.top-page .market .top-section-title .mark,
.top-page .market .mark {
  display: inline !important;
  padding: 0 8px 2px !important;
  background: linear-gradient(transparent 58%, rgba(219, 145, 128, .78) 58%) !important;
  color: #fff !important;
}

.top-page .market-grid {
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 18px !important;
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto !important;
}

.top-page .market-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  margin-bottom: 18px !important;
}

.top-page .market-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  max-width: 574px !important;
}

.top-page .market-card {
  display: grid !important;
  grid-template-rows: repeat(2, auto) !important;
  gap: 14px !important;
  min-height: 106px !important;
  padding: 22px 20px !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 10px !important;
  background: rgba(255, 255, 255, .055) !important;
  box-shadow: none !important;
}

.top-page .market-row {
  display: grid !important;
  grid-template-columns: max-content 1fr !important;
  align-items: center !important;
  column-gap: 16px !important;
  min-height: 32px !important;
  margin: 0 !important;
}

.top-page .market-label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 140px !important;
  min-height: 22px !important;
  padding: 4px 10px !important;
  border-radius: 999px !important;
  background: #c99a91 !important;
  color: #fff !important;
  font-size: 7px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: .01em !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.top-page .market-num {
  display: inline-flex !important;
  align-items: baseline !important;
  justify-content: flex-end !important;
  gap: 4px !important;
  color: #d8e5eb !important;
  font-size: 28px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: .04em !important;
  white-space: nowrap !important;
  text-align: right !important;
  opacity: 1 !important;
}

.top-page .market-num span {
  color: #d8e5eb !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  margin-left: 0 !important;
}

.top-page .market-note {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: 860px !important;
  margin: 28px auto 0 !important;
  color: rgba(255, 255, 255, .72) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  line-height: 1.9 !important;
  text-align: right !important;
  letter-spacing: .02em !important;
}

.top-page .market-note__links {
  display: block !important;
  margin-top: 4px !important;
}

.top-page .market-note a {
  color: rgba(255, 255, 255, .6) !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
  transition: color .2s !important;
}

.top-page .market-note a:hover {
  color: #fff !important;
  opacity: 1 !important;
}

@media (max-width: 980px) {
  .top-page .market-grid {
    max-width: 720px !important;
    grid-template-columns: 1fr !important;
  }

  .top-page .market-grid--2 {
    max-width: 720px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .top-page .market-card {
    max-width: 420px !important;
    width: 100% !important;
    margin: 0 auto !important;
  }
}

@media (max-width: 768px) {
  .top-page .hero__ribbon-link {
    width: min(640px, calc(100% - 32px)) !important;
  }

  .top-page .market {
    padding: 72px 20px 76px !important;
  }

  .top-page .market .top-section-title {
    margin-bottom: 36px !important;
    font-size: 25px !important;
    line-height: 1.5 !important;
  }

  .top-page .market-card {
    padding: 22px 20px !important;
  }

  .top-page .market-row {
    grid-template-columns: max-content 1fr !important;
    column-gap: 14px !important;
  }

  .top-page .market-note {
    max-width: 420px !important;
    text-align: left !important;
    font-size: 10px !important;
  }
}

@media (max-width: 390px) {
  .top-page .hero__ribbon-link {
    width: min(100% - 24px, 366px) !important;
  }

  .top-page .market {
    padding: 60px 16px 66px !important;
  }

  .top-page .market .top-section-title {
    font-size: 22px !important;
  }

  .top-page .market-card {
    padding: 20px 16px !important;
  }

  .top-page .market-row {
    grid-template-columns: max-content 1fr !important;
    column-gap: 10px !important;
  }

  .top-page .market-label {
    min-width: 0 !important;
    max-width: 120px !important;
    padding: 4px 8px !important;
    font-size: 6px !important;
  }

  .top-page .market-num {
    font-size: 24px !important;
  }

  .top-page .market-num span {
    font-size: 10px !important;
  }
}