/* =========================================
   解体DX Base CSS  (テーマ共通の骨格のみ)
   色やフォントは /themes/<theme>/style.css で上書き
   ========================================= */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  line-height: 1.7;
  color: #222;
  background: #f5f3ee;
}
a { color: inherit; text-decoration: underline; }
a:hover { text-decoration: none; }
img { max-width: 100%; height: auto; }

.site-main { max-width: 1080px; margin: 0 auto; padding: 20px 16px 64px; }

/* ---- Header ---- */
.site-header { border-bottom: 3px solid currentColor; background: #fff; }
.site-header__inner { max-width: 1080px; margin: 0 auto; padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.site-header__brand { display: flex; flex-direction: column; gap: 2px; }
.site-header__logo { font-weight: 700; font-size: 22px; text-decoration: none; letter-spacing: 0.02em; }
.site-header__tagline { font-size: 12px; color: #666; }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; }
.site-nav a { font-size: 14px; text-decoration: none; }
.site-nav a:hover { text-decoration: underline; }

/* ---- Footer ---- */
.site-footer { margin-top: 64px; border-top: 4px double #bbb; background: #f0ece3; padding: 24px 16px 40px; }
.site-footer__inner { max-width: 1080px; margin: 0 auto; font-size: 13px; color: #555; }
.site-footer__attribution p { margin: 2px 0; }
.site-footer__links { list-style: none; padding: 0; margin: 14px 0; display: flex; gap: 18px; flex-wrap: wrap; }
.site-footer__copy { margin-top: 12px; font-size: 12px; color: #888; }

/* ---- Breadcrumb ---- */
.breadcrumb ol { list-style: none; padding: 0; margin: 0 0 18px; display: flex; gap: 6px; font-size: 13px; flex-wrap: wrap; }
.breadcrumb li + li::before { content: "›"; margin-right: 6px; color: #999; }

/* ---- Hero ---- */
.company-hero { padding: 20px 0; border-bottom: 2px solid #d6d0c2; margin-bottom: 28px; display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 18px; }
.company-hero__eyebrow { font-size: 13px; color: #666; margin: 0 0 6px; }
.company-hero__title { margin: 0 0 8px; font-size: 28px; font-weight: 700; letter-spacing: 0.02em; }
.company-hero__permit { margin: 0; font-size: 13px; color: #555; }

/* ---- Section common ---- */
.section { margin-bottom: 36px; }
.section__title { font-size: 18px; margin: 0 0 14px; padding: 6px 12px; font-weight: 700; border-left: 5px solid currentColor; }
.section__desc { margin: 0 0 14px; font-size: 13px; color: #555; }

/* ---- Info table ---- */
.info-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.info-table th, .info-table td { padding: 10px 12px; border: 1px solid #d8d2c2; text-align: left; vertical-align: top; }
.info-table th { background: #f3efe5; width: 140px; font-weight: 600; }
.info-table__zip { display: inline-block; margin-right: 8px; color: #666; }
.tag { display: inline-block; font-size: 11px; padding: 2px 7px; border-radius: 2px; margin-left: 6px; font-weight: 600; }
.tag--special { background: #e8d6b0; }
.tag--general { background: #d7e4ea; }

/* ---- Data table ---- */
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.data-table th, .data-table td { padding: 8px 10px; border-bottom: 1px dotted #c8c2b2; text-align: left; }
.data-table thead th { background: #ece7d8; border-bottom: 2px solid #b3a97e; font-weight: 700; }
.data-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.data-table tbody tr:nth-child(even) { background: #faf7ee; }

/* ---- Rank badge ---- */
.rank-badge { display: inline-flex; flex-direction: column; align-items: center; padding: 8px 14px; border: 2px solid currentColor; border-radius: 3px; line-height: 1.1; }
.rank-badge__label { font-size: 10px; letter-spacing: 0.08em; }
.rank-badge__value { font-size: 24px; font-weight: 700; }
.rank-badge--S { color: #8b0000; background: #fbecec; }
.rank-badge--A { color: #1a3b73; background: #e9eff8; }
.rank-badge--B { color: #3f5930; background: #eef3e6; }

/* ---- Services list (Claude生成ul) ---- */
.company-services ul { list-style: "■ "; padding-left: 28px; columns: 2; column-gap: 30px; font-size: 14px; }
.company-services li { margin-bottom: 4px; break-inside: avoid; }
@media (max-width: 600px) { .company-services ul { columns: 1; } }

/* ---- Description ---- */
.company-description p { margin: 0 0 14px; font-size: 15px; line-height: 1.85; }

/* ---- Cert list ---- */
.cert-list { list-style: none; padding: 0; margin: 0; }
.cert-list li { padding: 8px 0; border-bottom: 1px dotted #c8c2b2; font-size: 13px; display: flex; gap: 12px; flex-wrap: wrap; }
.cert-list__date { color: #666; width: 120px; flex-shrink: 0; }
.cert-list__dept { color: #888; }

/* ---- Region ---- */
.company-region p { margin: 0 0 12px; font-size: 14px; }

/* ---- Map ---- */
.gsi-map { width: 100%; height: 360px; border: 1px solid #ccc; background: #eae5d4; }
.gsi-map__credit { font-size: 11px; color: #888; margin-top: 6px; text-align: right; }

/* ---- Disclaimer ---- */
.disclaimer { margin-top: 48px; padding: 14px 18px; background: #f0ede3; border: 1px solid #d6d0c2; font-size: 12px; color: #666; line-height: 1.7; }

/* ---- Company card (リスト) ---- */
.company-card { border: 1px solid #d6d0c2; padding: 16px; margin-bottom: 12px; background: #fff; display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.company-card__head { flex: 1 1 60%; display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; }
.company-card__name { margin: 0 0 6px; font-size: 17px; }
.company-card__name a { text-decoration: none; }
.company-card__name a:hover { text-decoration: underline; }
.company-card__meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 6px 18px; font-size: 13px; margin: 0; width: 100%; }
.company-card__meta dt { color: #666; font-size: 11px; }
.company-card__meta dd { margin: 0 0 4px; }
