/*
 * Innippon (innippon.news) — brand.css. Loaded after assets/css/core.css (core-layout.css is
 * not loaded for this brand). Trade-press look: black on white, one accent (the logo red
 * #b00020, 7.3:1 on white), one UD gothic in two weights, dense date-led lists, small photos.
 * Brand classes use the .in- prefix. Article-body component classes (contract §3) are restyled
 * here, never renamed; agent-written inline colours are mapped to the palette with !important.
 */

/* ---------- Tokens ---------- */
/* BIZ UDPGothic draws the en dash (¥29,000–¥43,000) very short; take that one glyph from a local Latin face. */
@font-face {
    font-family: 'in-dash';
    src: local('Arial'), local('Helvetica Neue'), local('Helvetica'), local('Roboto'), local('Liberation Sans'), local('Noto Sans');
    unicode-range: U+2013;
}

:root {
    --bg:        #ffffff;
    --bg-alt:    #f4f4f2;
    --paper:     #f4f4f2;
    --beige:     #f4f4f2;
    --kinari:    #e9e9e6;
    --text:      #111111;
    --text-mid:  #3f3f3f;   /* 10.6:1 */
    --text-low:  #666666;   /*  5.7:1 on white, 5.2:1 on --bg-alt */
    --ai:        #b00020;   /* accent = logo red */
    --ai-light:  #b00020;
    --line:      #d6d6d6;
    --line-soft: #e8e8e8;
    --ink:       #111111;
    --max:       1200px;
    --font-body: 'in-dash', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic UI', Meiryo, sans-serif;
    --font-display: 'in-dash', 'BIZ UDPGothic', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic UI', Meiryo, sans-serif;
}

html { -webkit-text-size-adjust: 100%; }
body {
    background: var(--bg); color: var(--text);
    font-family: var(--font-body); font-weight: 400;
    font-size: 15px; line-height: 1.75;
}
a:hover { color: var(--ai); }
:focus-visible { outline: 2px solid var(--ai); outline-offset: 2px; }
h1, h2, h3, h4 { font-weight: 700; }

.in-skip { position: absolute; left: -9999px; top: 0; }
.in-skip:focus { left: 16px; top: 8px; z-index: 2000; background: var(--ink); color: #fff; padding: 8px 12px; }

/* ---------- Layout ---------- */
.in-wrap, .container { max-width: var(--max); margin: 0 auto; padding: 0 16px; }
@media (min-width: 768px) { .in-wrap, .container { padding: 0 24px; } }

.in-cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; padding-bottom: 48px; }
@media (min-width: 1024px) {
    .in-cols { grid-template-columns: minmax(0, 1fr) 300px; gap: 44px; }
    .in-cols--article { grid-template-columns: minmax(0, 760px) 300px; justify-content: space-between; }
}
.in-main { min-width: 0; }
.in-page { max-width: 860px; padding-bottom: 48px; }

/* ---------- Masthead ---------- */
.in-masthead { background: var(--bg); }
.in-edition {
    display: flex; justify-content: space-between; align-items: center; gap: 4px 16px; flex-wrap: wrap;
    padding-top: 7px; padding-bottom: 7px; border-bottom: 1px solid var(--line-soft);
    font-size: 12px; line-height: 1.5; color: var(--text-mid);
}
.in-edition-upd { font-variant-numeric: tabular-nums; }
.in-edition-upd time { font-weight: 700; color: var(--text); }
.in-mast { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; padding-bottom: 12px; }
.in-logo { margin: 0; line-height: 0; font-size: 0; }
.in-logo a { display: inline-block; }
.in-logo img { height: 50px; width: auto; display: block; }

.in-search { display: flex; align-items: stretch; }
.in-search input {
    width: 260px; height: 38px; padding: 0 12px; border: 1px solid var(--ink); border-right: 0; border-radius: 0;
    font: inherit; font-size: 14px; color: var(--text); background: #fff; -webkit-appearance: none; appearance: none;
}
.in-search button {
    height: 38px; padding: 0 16px; border: 1px solid var(--ink); background: var(--ink); color: #fff;
    font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; border-radius: 0;
}
.in-search button:hover { background: var(--ai); border-color: var(--ai); }
.in-search--page { margin-top: 14px; max-width: 520px; }
.in-search--page input { flex: 1 1 auto; width: auto; min-width: 0; }

/* Section bar — sticky, scrolls sideways on phones (never the page). */
.in-nav {
    position: sticky; top: 0; z-index: 1100; background: var(--bg);
    border-top: 3px solid var(--ink); border-bottom: 1px solid var(--ink);
}
.in-nav ul {
    display: flex; list-style: none; margin: 0; padding: 0;
    overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.in-nav ul::-webkit-scrollbar { display: none; }
.in-nav li { flex: 0 0 auto; }
.in-nav a {
    display: block; position: relative; padding: 10px 18px 9px;
    font-size: 15px; font-weight: 700; line-height: 1.5; color: var(--text); white-space: nowrap;
}
.in-nav li:first-child a { padding-left: 0; }
.in-nav a::after {
    content: ''; position: absolute; left: 18px; right: 18px; bottom: -1px; height: 3px; background: transparent;
}
.in-nav li:first-child a::after { left: 0; }
.in-nav a:hover { color: var(--ai); }
.in-nav a.is-active::after, .in-nav a:hover::after { background: var(--ai); }
.in-nav a.is-active { color: var(--ai); }
.in-nav-search { margin-left: auto; }
@media (min-width: 768px) { .in-nav-search { display: none; } }

@media (max-width: 767px) {
    .in-edition-tag { display: none; }
    .in-mast { padding-top: 10px; padding-bottom: 8px; }
    .in-logo img { height: 36px; }
    .in-mast .in-search { display: none; }
    .in-nav a { padding: 9px 13px 8px; font-size: 14px; }
    .in-nav ul { -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
    .in-nav a::after { left: 13px; right: 13px; }
    .in-nav li:first-child a::after { left: 0; }
}

/* ---------- Shared heads ---------- */
.breadcrumb { margin: 14px 0 6px; font-size: 12px; color: var(--text-low); }
.breadcrumb a { color: var(--text-mid); }
.breadcrumb li[aria-current] { color: var(--text-low); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.in-article .breadcrumb li[aria-current] { display: none; }   /* the headline follows right below */

.in-page-head { padding: 14px 0 14px; border-bottom: 3px solid var(--ink); margin-bottom: 4px; }
.in-kicker { display: inline-block; margin: 0 0 4px; font-size: 13px; font-weight: 700; color: var(--ai); letter-spacing: .04em; }
a.in-kicker:hover { text-decoration: underline; }
.in-page-title { font-size: 28px; line-height: 1.3; letter-spacing: .01em; margin: 0; }
.in-page-title span { font-size: 15px; font-weight: 400; color: var(--text-low); }
.in-page-count { margin: 6px 0 0; font-size: 13px; color: var(--text-low); font-variant-numeric: tabular-nums; }
.in-page-desc, .in-page-head .archive-desc { margin-top: 8px; font-size: 14px; line-height: 1.8; color: var(--text-mid); max-width: 46em; }
.in-page-desc p { margin: 0; }
@media (max-width: 640px) { .in-page-title { font-size: 23px; } }

.in-block { margin-top: 28px; }
.in-block-head {
    display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
    border-top: 3px solid var(--ink); padding-top: 8px; margin: 0 0 2px;
}
.in-block-head h2 { margin: 0; font-size: 19px; line-height: 1.4; }
.in-block-head a { font-size: 13px; color: var(--text-mid); white-space: nowrap; }
.in-block-head a::after, .in-box-more::after { content: ' →'; }

.in-tabs ul {
    display: flex; list-style: none; margin: 14px 0 0; padding: 0; border-bottom: 1px solid var(--ink);
    overflow-x: auto; scrollbar-width: none;
}
.in-tabs ul::-webkit-scrollbar { display: none; }
.in-tabs li { flex: 0 0 auto; }
.in-tabs a {
    display: block; padding: 7px 14px 6px; margin-bottom: -1px; white-space: nowrap;
    font-size: 14px; font-weight: 700; color: var(--text-mid);
    border: 1px solid transparent; border-bottom: 0; border-top-width: 3px;
}
.in-tabs a:hover { color: var(--ai); }
.in-tabs a.is-active { color: var(--text); background: var(--bg); border-color: var(--ink); border-top-color: var(--ai); border-bottom: 1px solid var(--bg); }

.in-empty { padding: 32px 0; color: var(--text-mid); font-size: 15px; }
.in-list-end { margin: 18px 0 0; font-size: 13px; color: var(--text-mid); }
.in-list-end a, .in-empty a { color: var(--ai); text-decoration: underline; }

/* ---------- News rows ---------- */
.in-item {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto 1fr; column-gap: 16px;
    padding: 13px 0; border-bottom: 1px solid var(--line);
}
.in-item:not(.has-thumb) { grid-template-columns: minmax(0, 1fr); }
.in-item-meta, .in-item-title, .in-item-sum { grid-column: 1; align-self: start; }
.in-item-img { grid-column: 2; grid-row: 1 / span 3; align-self: start; line-height: 0; }
.in-thumb { width: 128px; height: 85px; object-fit: cover; display: block; background: var(--bg-alt); }
.in-item-meta {
    display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; margin-bottom: 3px;
    font-size: 12px; line-height: 1.5; color: var(--text-low);
}
.in-item-time { font-weight: 700; color: var(--text-mid); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.in-sec { font-weight: 700; color: var(--ai); }
.in-new { font-size: 10px; font-weight: 700; line-height: 1; padding: 3px 5px 2px; color: #fff; background: var(--ai); letter-spacing: .06em; }
.in-item-title { margin: 0; font-size: 17px; line-height: 1.45; letter-spacing: .01em; }
.in-item-title a:hover { color: var(--ai); text-decoration: underline; text-underline-offset: 3px; }
.in-item-sum {
    margin: 4px 0 0; font-size: 13px; line-height: 1.6; color: var(--text-mid);
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden;
}
@media (max-width: 640px) {
    .in-item { column-gap: 12px; padding: 12px 0; }
    .in-thumb { width: 88px; height: 64px; }
    .in-item-title { font-size: 15.5px; }
    .in-item-sum { -webkit-line-clamp: 2; }
}

/* Timeline: one band per publish day */
.in-day-head {
    margin: 18px 0 0; padding: 5px 10px 4px; background: var(--bg-alt); border-left: 4px solid var(--ai);
    font-size: 14px; line-height: 1.5; font-variant-numeric: tabular-nums;
}
.in-day-head a { color: var(--text); }
.in-day-head a:hover { color: var(--ai); }
.in-timeline > .in-day:first-child .in-day-head { margin-top: 10px; }

.in-more {
    display: block; margin: 16px 0 0; padding: 11px; text-align: center;
    border: 1px solid var(--ink); font-weight: 700; font-size: 14px;
}
.in-more:hover { background: var(--ink); color: #fff; }

/* ---------- Home ---------- */
.in-lead { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 18px 0 22px; border-bottom: 1px solid var(--ink); }
.in-lead .in-item-meta { font-size: 13px; }
.in-lead-title { margin: 6px 0 0; font-size: 30px; line-height: 1.35; letter-spacing: .01em; }
.in-lead-title a:hover { color: var(--ai); }
.in-lead-deck { margin: 8px 0 0; font-size: 16px; font-weight: 700; line-height: 1.6; color: var(--text-mid); }
.in-lead-sum { margin: 10px 0 0; font-size: 14px; line-height: 1.8; color: var(--text-mid); }
.in-lead-img { line-height: 0; }
.in-lead-img img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; background: var(--bg-alt); }
@media (min-width: 640px) { .in-lead.has-img { grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; } }
@media (max-width: 639px) {
    .in-lead { padding-top: 14px; }
    .in-lead-img { order: -1; }
    .in-lead-title { font-size: 23px; }
    .in-lead-deck { font-size: 15px; }
}

.in-secgrid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px 36px; margin-top: 14px; }
@media (min-width: 768px) { .in-secgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.in-secbox-head {
    display: flex; justify-content: space-between; align-items: baseline; gap: 8px;
    margin: 0; padding-bottom: 6px; border-bottom: 2px solid var(--ink); font-size: 17px;
}
.in-secbox-head span { font-size: 12px; font-weight: 400; color: var(--text-low); }
.in-secbox .in-item { padding: 10px 0; }
.in-secbox .in-item-title { font-size: 15px; }
.in-secbox .in-thumb { width: 104px; height: 70px; }

/* ---------- Side column ---------- */
.in-rail { display: flex; flex-direction: column; gap: 30px; min-width: 0; padding-top: 18px; }
.in-box-head { margin: 0 0 6px; padding-top: 8px; border-top: 3px solid var(--ink); font-size: 16px; line-height: 1.4; }
.in-box-head a:hover { color: var(--ai); }
.in-box--week .in-box-head { border-top-color: var(--ai); }
.in-box-note { margin: 0 0 4px; font-size: 12px; color: var(--text-low); }
.in-mini { list-style: none; margin: 0; padding: 0; }
.in-mini li { padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.5; }
.in-mini time { display: block; font-size: 12px; color: var(--text-low); font-variant-numeric: tabular-nums; }
.in-mini a { font-weight: 700; }
.in-mini a:hover { color: var(--ai); text-decoration: underline; }
.in-box-more { display: inline-block; margin-top: 8px; font-size: 13px; color: var(--text-mid); }
.in-box-more:hover { color: var(--ai); }

.in-months { display: flex; gap: 6px 10px; align-items: baseline; flex-wrap: wrap; margin: 8px 0 0; }
.in-months-year { font-weight: 700; font-size: 14px; min-width: 3.4em; }
.in-months ul { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.in-months li a {
    display: inline-flex; align-items: baseline; gap: 4px; padding: 3px 9px;
    border: 1px solid var(--line); font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.in-months li a span { font-size: 11px; font-weight: 400; color: var(--text-low); }
.in-months li a:hover { border-color: var(--ink); color: var(--text); background: var(--bg-alt); }

.in-secs { list-style: none; margin: 0; padding: 0; }
.in-secs a { display: flex; justify-content: space-between; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--line); font-weight: 700; font-size: 14px; }
.in-secs a span { font-size: 12px; font-weight: 400; color: var(--text-low); font-variant-numeric: tabular-nums; }
.in-chips { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 4px 0 0; padding: 0; }
.in-chips a { display: inline-block; padding: 3px 10px; border: 1px solid var(--line); font-size: 13px; }
.in-chips a:hover { border-color: var(--ink); color: var(--text); background: var(--bg-alt); }

/* ---------- Date archives ---------- */
.in-datenav { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 12px 0 4px; font-size: 14px; font-weight: 700; }
.in-datenav a { padding: 6px 0; }
.in-datenav a:hover { color: var(--ai); }
.in-datenav-up { font-weight: 400; color: var(--text-mid); }

.in-cal { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 6px 0 14px; font-size: 13px; }
.in-cal caption { text-align: left; font-size: 12px; color: var(--text-low); padding: 4px 0; caption-side: top; }
.in-cal th { padding: 5px 0; border-bottom: 2px solid var(--ink); font-size: 12px; text-align: center; }
.in-cal th:first-child { color: var(--ai); }
.in-cal td { height: 50px; padding: 0; border: 1px solid var(--line-soft); vertical-align: top; }
.in-cal .d { display: block; padding: 3px 6px 0; color: var(--text-low); font-variant-numeric: tabular-nums; }
.in-cal td.has a { display: block; height: 100%; background: var(--bg-alt); }
.in-cal td.has .d { color: var(--text); font-weight: 700; }
.in-cal .n { display: block; padding: 0 6px; font-size: 11px; font-weight: 700; color: var(--ai); }
.in-cal td.has a:hover { background: var(--ink); }
.in-cal td.has a:hover .d, .in-cal td.has a:hover .n { color: #fff; }
@media (max-width: 640px) { .in-cal td { height: 44px; } .in-cal .d { padding: 2px 4px 0; } .in-cal .n { padding: 0 4px; font-size: 10px; } }

.in-yeargrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 14px 0 20px; }
@media (min-width: 640px) { .in-yeargrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .in-yeargrid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.in-yeargrid > a, .in-yeargrid > span { display: flex; flex-direction: column; padding: 10px 12px; border: 1px solid var(--line); }
.in-yeargrid .m { font-size: 17px; font-weight: 700; }
.in-yeargrid .n { font-size: 12px; font-weight: 700; color: var(--ai); }
.in-yeargrid > a:hover { border-color: var(--ink); background: var(--bg-alt); color: var(--text); }
.in-yeargrid .is-empty { background: var(--bg-alt); color: var(--text-low); }
.in-yeargrid .is-empty .n { color: var(--text-low); font-weight: 400; }

/* ---------- Pager ---------- */
.in-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 28px 0 8px; }
.in-pager .page-numbers {
    display: inline-block; min-width: 40px; padding: 7px 12px; text-align: center;
    border: 1px solid var(--line); font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.in-pager a.page-numbers:hover { border-color: var(--ink); color: var(--text); background: var(--bg-alt); }
.in-pager .current { background: var(--ink); border-color: var(--ink); color: #fff; }
.in-pager .dots { border-color: transparent; min-width: 0; padding: 7px 2px; }

/* ---------- Article ---------- */
.in-article-head { padding-bottom: 4px; }
.in-article-title { margin: 4px 0 14px; font-size: 31px; line-height: 1.38; letter-spacing: .01em; }
.in-article-deck { display: block; margin-top: 10px; font-size: 18px; line-height: 1.6; color: var(--text-mid); }
.in-dateline {
    display: flex; flex-wrap: wrap; gap: 6px 20px; align-items: baseline;
    padding: 10px 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line);
    font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.in-dl-label {
    display: inline-block; margin-right: 7px; padding: 2px 6px 1px; vertical-align: 1px;
    font-size: 11px; line-height: 1.4; letter-spacing: .08em; color: #fff; background: var(--ink);
}
.in-dl-mod .in-dl-label { background: var(--ai); }
.in-byline { display: flex; flex-wrap: wrap; gap: 4px 16px; padding: 8px 0 0; font-size: 12px; color: var(--text-mid); }
.in-byline .meta-editor { font-size: 12px; color: var(--text-mid); letter-spacing: 0; }
.in-article-lead {
    margin: 18px 0 0; padding-left: 14px; border-left: 4px solid var(--ink);
    font-size: 16px; line-height: 1.85; font-weight: 700; color: #222;
}
.in-article-photo { margin: 22px 0 0; line-height: 0; }
.in-article-photo img { width: 100%; height: auto; display: block; }
@media (max-width: 640px) {
    .in-article-title { font-size: 23px; }
    .in-article-deck { font-size: 15.5px; }
    .in-dateline { font-size: 14px; gap: 4px 14px; }
    .in-article-lead { font-size: 15px; }
}

/* Body: the news column (no breakout; wide tables wrap or scroll inside the column). */
.in-article .article-body {
    max-width: none; margin: 0; padding: 22px 0 28px;
    font-size: 16px; line-height: 1.9; overflow-x: auto; overflow-wrap: break-word;
}
.article-body p { margin-bottom: 1.3em; }
.article-body h2 {
    font-family: var(--font-body); font-size: 21px; font-weight: 700; line-height: 1.45; letter-spacing: .01em;
    margin: 2.1em 0 .8em; padding: 10px 0 0; border-top: 3px solid var(--ink);
}
.article-body h3 {
    font-family: var(--font-body); font-size: 17px; font-weight: 700; line-height: 1.5;
    margin: 1.7em 0 .6em; padding-left: 10px; border-left: 4px solid var(--ai);
}
.article-body a { color: var(--ai); text-decoration: underline; text-underline-offset: 2px; }
.article-body ul, .article-body ol { padding-left: 1.4em; margin: 0 0 1.3em; }
.article-body li { margin-bottom: .3em; }
.article-body strong, .article-body b { font-weight: 700; }
.article-body [id] { scroll-margin-top: 64px; }
.article-body img { max-width: 100%; height: auto; }
.article-body figure { max-width: 100%; }
.article-body blockquote { margin: 1.4em 0; padding: 4px 0 4px 16px; border-left: 3px solid var(--line); color: var(--text-mid); }

/* Comparison tables: inside the column, cells wrap, neutral head. */
.article-body .hp-compare {
    position: static; left: auto; transform: none; width: 100% !important;
    border-top: 2px solid var(--ink) !important; border-bottom: 1px solid var(--ink) !important;
    font-size: 13px !important; line-height: 1.6;
}
.article-body .hp-compare th, .article-body .hp-compare td { white-space: normal; border-bottom: 1px solid var(--line-soft); font-variant-numeric: tabular-nums; }
.article-body .hp-compare td:last-child, .article-body .hp-compare th:last-child { min-width: 0; max-width: none; }
.article-body .hp-compare thead tr, .article-body .hp-compare thead th { background: var(--bg-alt) !important; color: var(--text) !important; }
.article-body .hp-compare th { font-weight: 700 !important; font-size: 12px; }
.article-body table:not(.hp-compare) { border-collapse: collapse; width: 100%; font-size: 13px; }
.article-body table:not(.hp-compare) th, .article-body table:not(.hp-compare) td { padding: 6px 8px; border-bottom: 1px solid var(--line-soft); }

/* Agent-written components: map the shared editorial palette (indigo / beige / #999) to this one. */
.article-body .hp-takeaways {
    background: var(--bg-alt) !important; border-left: 0 !important; border-top: 3px solid var(--ink) !important;
    padding: 14px 20px 6px !important;
}
.article-body .hp-takeaways > p:first-child { font-size: 13px !important; font-weight: 700; letter-spacing: .1em !important; color: var(--text) !important; }
.article-body .hp-takeaways li { font-size: 15px !important; }
.article-body .hp-lead { color: var(--text) !important; font-weight: 700 !important; }
.article-body .hp-price { color: var(--text) !important; }
.article-body .hp-updated, .article-body .hp-updated time { color: var(--text-low) !important; }
.article-body [style*="color:#999"], .article-body [style*="color: #999"] { color: var(--text-low) !important; }
.article-body [style*="color:#25405a"], .article-body [style*="color: #25405a"] { color: var(--ai) !important; }
.article-body [style*="color:#1a2f44"] { color: var(--text) !important; }
.article-body [style*="background:#f4ecdf"], .article-body [style*="background:#faf8f4"], .article-body [style*="background: #faf8f4"] { background: var(--bg-alt) !important; }
.article-body [style*="border-left:2px solid #25405a"], .article-body [style*="border-left:3px solid #25405a"] { border-left-color: var(--ink) !important; }
.article-body [style*="#d4cebf"], .article-body [style*="#f0e8d8"], .article-body [style*="#e0d6c2"] { border-color: var(--line) !important; }
.article-body section.hp-hotel { margin-top: 2.4em; }
.article-body figure.hotel-photo figcaption, .article-body figure.hotel-hero figcaption { color: var(--text-low) !important; }
.article-body .hp-map { border-color: var(--line) !important; border-radius: 0 !important; }

/* ファクト — the fact sheet (.mp-box--facts, contract §3): black band, two-column rows. */
.article-body .mp-box { border-radius: 0; background: var(--bg); border: 1px solid var(--line); }
.article-body .mp-box--facts { margin: 22px 0 30px; padding: 0; border: 2px solid var(--ink); font-size: 14px; line-height: 1.6; }
.article-body .mp-box--facts .mp-box__title {
    display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
    margin: 0; padding: 7px 14px 6px; background: var(--ink); color: #fff;
    font-size: 14px; font-weight: 700; letter-spacing: .14em;
}
.article-body .mp-box--facts .mp-box__title::after { content: 'FACT SHEET'; content: 'FACT SHEET' / ''; font-size: 10px; letter-spacing: .22em; color: #bdbdbd; }
.article-body .mp-box--facts .mp-box__list { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); gap: 0; margin: 0; }
.article-body .mp-box--facts .mp-box__list dt,
.article-body .mp-box--facts .mp-box__list dd { margin: 0; padding: 9px 14px; border-top: 1px solid var(--line); }
.article-body .mp-box--facts .mp-box__list dt:first-of-type,
.article-body .mp-box--facts .mp-box__list dd:first-of-type { border-top: 0; }
.article-body .mp-box--facts .mp-box__list dt { background: var(--bg-alt); color: var(--text-mid); font-size: 13px; font-weight: 700; word-break: keep-all; overflow-wrap: anywhere; }
.article-body .mp-box--facts .mp-box__list dd { color: var(--text); font-weight: 700; font-variant-numeric: tabular-nums; }
@media (max-width: 640px) {
    .article-body .mp-box--facts .mp-box__list { grid-template-columns: 6.8em minmax(0, 1fr); }
    .article-body .mp-box--facts .mp-box__list dt,
    .article-body .mp-box--facts .mp-box__list dd { padding: 8px 10px; margin: 0; }
}

/* Charts and method notes (mp-charts.php adds its own base CSS). */
.article-body .mp-chart { border-top: 3px solid var(--ink); padding-top: 10px; }
.article-body .mp-chart-cap { font-weight: 700; color: var(--text-mid); }
.article-body .mp-method { margin: 2em 0; padding: 14px 18px; background: var(--bg-alt); font-size: 13px; line-height: 1.8; color: var(--text-mid); }

/* Article footer */
.in-article-foot { padding-bottom: 8px; }
.in-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 18px; }
.in-tags-label { font-size: 12px; font-weight: 700; color: var(--text-mid); margin-right: 4px; }
.tag-chip { display: inline-block; padding: 3px 10px; border: 1px solid var(--line); font-size: 13px; color: var(--text); }
.tag-chip:hover { border-color: var(--ink); background: var(--bg-alt); color: var(--text); }
.in-share { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.in-share-label { font-size: 12px; font-weight: 700; color: var(--text-mid); margin-right: 6px; }
.in-share-btn {
    display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border: 1px solid var(--ink); background: var(--bg);
    font: inherit; font-size: 13px; font-weight: 700; color: var(--text); cursor: pointer; border-radius: 0;
}
.in-share-btn:hover { background: var(--ink); color: #fff; }
.author-card { border-radius: 0; background: var(--bg-alt); border: 0; border-top: 3px solid var(--ink); margin: 22px 0 8px; }
.author-name { font-family: var(--font-body); font-weight: 700; }
.editor-card .avatar-initial { background: var(--ink) !important; color: #fff !important; font-family: var(--font-body) !important; }
.author-role { color: var(--text-low); letter-spacing: .1em; }
.author-bio { color: var(--text-mid); }
.in-related .in-item-title { font-size: 15.5px; }

/* ---------- Static pages / core templates still used (page-areas.php) ---------- */
.in-page .article-body { max-width: none; padding-top: 18px; }
.archive-header { padding: 14px 0; border-bottom: 3px solid var(--ink); margin-bottom: 12px; }
.archive-label { font-size: 13px; font-weight: 700; color: var(--ai); letter-spacing: .04em; }
.archive-title { font-size: 28px; line-height: 1.3; margin: 2px 0 0; }
.archive-desc { margin-top: 8px; font-size: 14px; color: var(--text-mid); max-width: 46em; }
.empty-hint { padding: 32px 0; color: var(--text-mid); }
.areas-list { padding-bottom: 48px; }
.areas-region { margin: 26px 0 0; }
.areas-region-title { margin: 0 0 12px; padding-top: 8px; border-top: 3px solid var(--ink); font-size: 19px; }
.areas-region:first-child { margin-top: 14px; }
.areas-region:first-child .areas-region-title { border-top: 0; padding-top: 0; }
.areas-pref-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 10px; }
@media (min-width: 768px) { .areas-pref-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); } }
.areas-pref-block { padding: 10px 12px; border: 1px solid var(--line); }
.areas-pref-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; }
.areas-pref-name { font-size: 16px; font-weight: 700; }
.areas-pref-name-static { color: var(--text-mid); }
.areas-pref-count { font-size: 12px; color: var(--text-low); font-variant-numeric: tabular-nums; }
.areas-sub-tags, .hub-grid { display: flex; flex-wrap: wrap; gap: 6px; }
.hub-chip { display: inline-flex; align-items: baseline; gap: 6px; padding: 2px 8px; border: 1px solid var(--line-soft); font-size: 13px; }
.hub-chip:hover { border-color: var(--ink); color: var(--text); background: var(--bg-alt); }
.hub-chip-count { font-size: 11px; color: var(--text-low); }

/* ---------- Footer ---------- */
.in-footer { margin-top: 24px; padding: 40px 0 0; background: var(--ink); color: #d9d9d9; font-size: 13px; line-height: 1.8; }
.in-footer a { color: #fff; }
.in-footer a:hover { color: #fff; text-decoration: underline; }
.in-footer-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 26px; }
@media (min-width: 768px) { .in-footer-grid { grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 32px; } }
.in-footer-name { font-size: 24px; font-weight: 700; color: #fff; letter-spacing: .02em; line-height: 1.3; margin-bottom: 8px; }
.in-footer-brand p { margin: 0 0 8px; }
.in-footer-editor a { text-decoration: underline; text-underline-offset: 2px; }
.in-footer-col h2 { margin: 0 0 6px; padding-bottom: 6px; border-bottom: 1px solid #444; font-size: 13px; color: #fff; letter-spacing: .06em; }
.in-footer-col ul { list-style: none; margin: 0; padding: 0; }
.in-footer-col a { display: inline-block; padding: 3px 0; }
.in-footer-bottom {
    display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px;
    margin-top: 32px; padding-top: 16px; padding-bottom: 28px; border-top: 1px solid #333;
    font-size: 12px; color: #bdbdbd; text-align: left;
}

/* Web font only where it carries the brand (page title, section headings): body copy in the system
   face keeps Japanese font downloads to a few subsets instead of 50-80 (Lighthouse 2026-10-16). */
h1, h2 { font-family: var(--font-display); }
