/* =========================================================
   site.css — ビルド（article-format.mjs / build.mjs）が出すクラスの見た目と、トップページの3案
   main.css の後に読む。部品の基本は main.css、ここは「出力に合わせた当て込み」と「ページ固有」
   ========================================================= */

/* ---------- 共通の小物 ---------- */

.page-hero .goldline { margin: 1.2rem 0 1.1rem; }
.content { padding-block: var(--space-section); }
.content > .movie-grid, .content > .style-grid { width: min(100% - 2.5rem, 1160px); margin-inline: auto; }
.section-note { max-width: 42em; color: var(--color-ink-soft); margin: -0.6rem 0 1.8rem; line-height: 1.9; }

.sample-notice .mark, .notice .mark { line-height: 1.8; }

/* ---------- 記事カード（a.article-card > .card-visual|.type-cover|.video-cover + .article-copy） ---------- */
.article-card > .card-visual, .article-card > .video-cover { position: relative; overflow: hidden; min-height: 220px; background: var(--color-brown); display: block; }
.article-card .card-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 24%; transition: transform .6s var(--ease-out); }
.article-card:hover .card-photo { transform: scale(1.03); }
.article-card .video-cover { background: var(--gradient-dark); color: var(--color-on-dark); }
.card-badge { position: absolute; left: 14px; bottom: 14px; z-index: 1; font-family: var(--font-latin); font-size: var(--fs-label); letter-spacing: var(--tr-label); text-transform: uppercase; line-height: 1; padding: .5em .85em .42em; color: var(--color-gold-on-dark); background: var(--color-brown-deep); border: 1px solid var(--color-line-on-dark); border-radius: var(--radius-pill); }
.video-cover > span {
  position: absolute; left: 18px; top: 18px;
  font-family: var(--font-latin); font-size: var(--fs-label); letter-spacing: var(--tr-label); text-transform: uppercase; line-height: 1.35;
  color: var(--color-gold-on-dark);
}
.video-cover > b {
  position: absolute; left: 10px; bottom: -14px;
  font-family: var(--font-latin); font-weight: 400; font-size: clamp(110px, 12vw, 160px); line-height: 1;
  color: rgb(255 255 255 / .08); font-variant-numeric: oldstyle-nums;
}
.video-cover::after {
  content: ""; position: absolute; right: -40%; bottom: -40%; width: 110%; aspect-ratio: 1; background: var(--color-gold-light);
  -webkit-mask: var(--orn-rings) center / contain no-repeat; mask: var(--orn-rings) center / contain no-repeat; opacity: .07; pointer-events: none;
}
.article-copy { padding: 1.6rem 1.6rem 1.7rem; display: flex; flex-direction: column; }
.article-copy > small { font-family: var(--font-sans); font-size: .72rem; letter-spacing: .14em; color: var(--color-gold-ink); font-weight: 700; }
.article-copy > h3 { font-size: 1.22rem; line-height: 1.55; margin-top: .8rem; letter-spacing: .04em; }
.article-copy > p { margin-top: .8rem; font-size: var(--fs-meta); color: var(--color-ink-soft); flex: 1; line-height: 1.9; }
.article-copy .name { margin-top: 1.1rem; padding-top: .9rem; border-top: 1px solid var(--color-line-soft); font-family: var(--font-mincho); font-size: .92rem; letter-spacing: .04em; color: var(--color-ink); }

/* ---------- 最新号の大きな枠（FEATURE_LATEST） ---------- */
.feature { display: grid; grid-template-columns: 1.02fr .98fr; background: var(--color-paper); border: 1px solid var(--color-line-soft); box-shadow: var(--shadow-soft); min-height: 440px; }
.feature .article-copy, .feature-copy { padding: clamp(2rem, 4vw, 3.8rem) clamp(1.5rem, 4vw, 3.8rem); justify-content: center; }
.feature h2, .feature h3 { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.25rem); line-height: var(--lh-hero); letter-spacing: .045em; margin-top: 1rem; }
.feature > .card-visual, .feature > .video-cover { position: relative; overflow: hidden; min-height: 360px; background: var(--color-brown); }
.feature .card-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }

/* ---------- 動画カード ---------- */
.movie-card-visual { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--gradient-dark); }
.movie-card-visual .video-cover { position: absolute; inset: 0; }
.movie-card-visual .video-cover > b { font-size: 120px; }
.movie-card-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 64px; height: 64px; border-radius: 50%; border: 1px solid var(--color-gold-light);
  background: rgb(31 23 19 / .55); color: var(--color-gold-light);
  display: grid; place-items: center; font-size: 1rem; transition: background .25s, transform .25s;
}
.movie-card:hover .movie-card-play { background: rgb(31 23 19 / .8); transform: translate(-50%, -50%) scale(1.05); }
.movie-card-badge { position: absolute; left: 16px; bottom: 14px; font-size: .74rem; letter-spacing: .14em; color: var(--color-on-dark-muted); border: 1px solid var(--color-line-on-dark); padding: .2em .7em; }
.movie-card-copy { padding: 1.3rem 1.4rem 1.5rem; }
.movie-card-copy > small { font-family: var(--font-latin); font-size: var(--fs-label); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--color-gold-ink); font-weight: 500; }
.movie-card-copy h3 { font-size: 1.1rem; line-height: 1.55; margin-top: .6rem; }
.movie-card-copy .name { margin-top: .7rem; font-size: var(--fs-meta); color: var(--color-muted); }

.movie-more { display: flex; flex-wrap: wrap; gap: .8rem 2rem; padding: .9rem 1.4rem 1.1rem; font-size: var(--fs-meta); color: var(--color-on-dark-muted); }
.movie-more a { color: var(--color-gold-on-dark); border-bottom: 1px solid var(--color-line-on-dark); padding-bottom: 1px; }
.movie-more a:hover { color: var(--color-on-dark); }
#film .movie-wrap { padding-inline: 0; }
#film .movie-wrap::before { display: none; }
.feature-title a:hover { color: var(--color-gold-ink); }
.feature-title em { color: var(--color-gold-ink); }
.feature .identity { margin-top: 1.4rem; display: flex; align-items: baseline; gap: .9rem; flex-wrap: wrap; }
.feature .identity strong { font-family: var(--font-mincho); font-size: 1.15rem; font-weight: 500; letter-spacing: .08em; }
.feature .identity span { font-size: .78rem; color: var(--color-muted); }
.feature .dek { color: var(--color-ink-soft); font-family: var(--font-mincho); line-height: 1.85; max-width: 32em; }
.feature .goldline { margin: 1.2rem 0; }
.feature-cta { margin-top: 1.8rem; }
.feature .portrait--mono { min-height: 360px; }

/* ---------- ことば集カード（a.style-card > .style-words + .style-person + .style-no） ---------- */
.style-card { padding-top: 2.6rem; }
.style-words { font-family: var(--font-mincho); font-size: 1.2rem; line-height: 1.85; letter-spacing: .04em; flex: 1; }
.style-words em { color: var(--color-gold-ink); }
.style-person { display: flex; flex-direction: column; gap: .15rem; border-top: 1px solid var(--color-line-soft); padding-top: 1rem; font-size: var(--fs-meta); }
.style-person strong { font-family: var(--font-mincho); font-weight: 500; letter-spacing: .06em; }
.style-person span { color: var(--color-muted); font-size: .78rem; }
.style-no { font-family: var(--font-sans); font-size: .7rem; letter-spacing: .12em; color: var(--color-gold-ink); font-weight: 700; }

/* ---------- 先生を探す（filter-group / advisor-card） ---------- */
.finder-filters { display: grid; gap: 1.2rem; padding: 1.6rem 0 1.8rem; border-top: 1px solid var(--color-line-gold); border-bottom: 1px solid var(--color-line-gold); margin-bottom: 1.6rem; }
.filter-group { display: grid; grid-template-columns: 6.5em 1fr; gap: .6rem 1rem; align-items: start; }
.filter-label { font-size: var(--fs-meta); font-weight: 700; letter-spacing: .1em; padding-top: .45em; color: var(--color-ink-soft); margin: 0; }
.filter-options { display: flex; flex-wrap: wrap; gap: .5rem; }
.filter-btn {
  display: inline-flex; align-items: center; gap: .45em;
  min-height: 40px; padding: .3em .95em;
  font-size: var(--fs-meta); letter-spacing: .04em;
  border: 1px solid var(--color-line); border-radius: var(--radius);
  background: var(--color-paper); color: var(--color-ink);
  transition: border-color .2s, background .2s, color .2s;
}
.filter-btn:hover { border-color: var(--color-gold); }
.filter-btn[aria-pressed="true"] { background: var(--color-brown); color: var(--color-on-dark); border-color: var(--color-brown); }
.filter-count { font-family: var(--font-latin); font-size: .82em; color: var(--color-muted); font-variant-numeric: oldstyle-nums; }
.filter-btn[aria-pressed="true"] .filter-count { color: var(--color-gold-on-dark); }
.finder-count { font-family: var(--font-mincho); font-size: 1rem; letter-spacing: .06em; color: var(--color-ink-soft); margin-bottom: 1.4rem; }
.finder-count .advisor-count-num { font-family: var(--font-latin); font-size: 1.7em; color: var(--color-gold-strong); margin-right: .15em; font-variant-numeric: oldstyle-nums; }
.advisor-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); }
.advisor-card { display: grid; grid-template-columns: 88px 1fr; gap: 1.3rem; background: var(--color-paper); border: 1px solid var(--color-line-soft); padding: 1.6rem; box-shadow: var(--shadow-soft); transition: box-shadow .35s var(--ease-out), transform .35s var(--ease-out); }
.advisor-card:hover { box-shadow: var(--shadow-card); transform: translateY(-2px); }
.advisor-visual { position: relative; width: 88px; height: 88px; border-radius: 50%; overflow: hidden; background: var(--gradient-dark); border: 1px solid var(--color-line-gold); display: grid; place-items: center; }
.advisor-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.advisor-mono { font-family: var(--font-latin); font-size: 2rem; color: var(--color-gold-light); }
.advisor-visual--mono::after { content: ""; position: absolute; inset: -30% -30% auto auto; width: 120%; aspect-ratio: 1; background: var(--color-gold-light); -webkit-mask: var(--orn-rings) center / contain no-repeat; mask: var(--orn-rings) center / contain no-repeat; opacity: .14; }
.advisor-office { font-size: .8rem; color: var(--color-muted); margin: 0; }
.advisor-title { margin-left: .5em; }
.advisor-name { font-size: 1.3rem; letter-spacing: .06em; margin-top: .2rem; }
.advisor-name a:hover { color: var(--color-gold-ink); }
.advisor-suffix { font-family: var(--font-sans); font-size: .75rem; color: var(--color-muted); margin-left: .4em; letter-spacing: .04em; }
.advisor-region { display: inline-block; font-size: .74rem; letter-spacing: .06em; color: var(--color-ink-soft); margin: .7rem .4rem 0 0; }
.advisor-fields { display: inline-flex; flex-wrap: wrap; gap: .35rem; list-style: none; padding: 0; margin: .6rem 0 0; }
.advisor-fields li { font-size: .74rem; letter-spacing: .06em; color: var(--color-gold-ink); border: 1px solid var(--color-line-gold); border-radius: var(--radius); padding: .12em .65em; }
.advisor-desc { margin-top: .9rem; font-family: var(--font-mincho); font-size: .98rem; line-height: 1.8; color: var(--color-ink-soft); }
.advisor-desc em { color: var(--color-gold-ink); }
.advisor-articles { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: .4rem; font-size: var(--fs-meta); }
.advisor-articles a { display: inline-block; color: var(--color-ink); border-bottom: 1px solid var(--color-line-gold); padding-bottom: 1px; line-height: 1.6; }
.advisor-articles a:hover { color: var(--color-gold-ink); border-color: var(--color-gold); }
.advisor-article-no { font-family: var(--font-latin); font-style: italic; color: var(--color-gold-ink); margin-right: .5em; }
/* 2026-10-16 梅村「右下のテキストの位置はすべて揃えたい」: 記事の号と事務所サイトの行をカードの下端に寄せ、同じ段で高さをそろえる */
.advisor-body { display: flex; flex-direction: column; min-width: 0; }
.advisor-articles { margin-top: auto; padding-top: 1rem; }
.advisor-site a { white-space: nowrap; }
.finder-empty { padding: 2rem 0; color: var(--color-ink-soft); font-family: var(--font-mincho); }
.field-links { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.field-links a { display: inline-flex; align-items: center; gap: .5em; min-height: 44px; padding: .4em 1.1em; border: 1px solid var(--color-line); background: var(--color-paper); font-size: var(--fs-meta); letter-spacing: .04em; transition: border-color .2s, background .2s, color .2s; }
.field-links a:hover { border-color: var(--color-gold); color: var(--color-gold-ink); }
.field-links .count { font-family: var(--font-latin); font-size: .82em; color: var(--color-muted); font-variant-numeric: oldstyle-nums; }

/* ---------- 記事ページ：ビルド出力のクラス ---------- */
.edition { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1rem; }
.edition-kind { font-family: var(--font-latin); font-size: var(--fs-label); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--color-gold-ink); font-weight: 500; }
.edition-series { font-family: var(--font-sans); font-size: .72rem; letter-spacing: .14em; color: var(--color-ink-soft); font-weight: 700; }
.edition-series .number { font-family: var(--font-latin); font-style: italic; font-weight: 400; font-size: 1.15em; letter-spacing: .06em; color: var(--color-gold-ink); margin-left: .3em; font-variant-numeric: oldstyle-nums; }
.hero--type .edition-kind { color: var(--color-gold-on-dark); }
.hero--type .edition-series { color: var(--color-on-dark-muted); }
.hero--type .edition-series .number { color: var(--color-gold-on-dark); }
.portrait--mono { position: relative; }
.portrait--mono .monogram { font-family: var(--font-latin); font-weight: 400; font-size: clamp(140px, 20vw, 300px); line-height: 1; color: rgb(255 255 255 / .09); letter-spacing: -.06em; }
.portrait--mono small { position: absolute; left: 2.5rem; bottom: 2.4rem; border-left: 2px solid var(--color-gold); padding-left: 1rem; font-family: var(--font-latin); font-size: .68rem; letter-spacing: .18em; color: var(--color-on-dark-muted); text-transform: uppercase; }
.portrait--art img.portrait-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.toc-title { font-family: var(--font-latin); color: var(--color-gold-ink); font-size: .8rem; letter-spacing: .15em; margin-bottom: .9rem; font-weight: 500; }
.toc ol { list-style: none; padding: 0; }
.toc-no { font-family: var(--font-latin); font-variant-numeric: oldstyle-nums; color: var(--color-gold-ink); margin-right: .7em; font-size: .9em; }
.toc-text { letter-spacing: .04em; }
.chapter-body { min-width: 0; }
.interlude-inner { position: relative; }
.interlude small { display: inline-block; position: relative; font-family: var(--font-latin); font-size: .68rem; letter-spacing: .25em; text-transform: uppercase; color: var(--color-gold-on-dark); font-weight: 500; }
.interlude small::before, .interlude small::after { content: ""; position: absolute; top: calc(50% - 5.5px); width: 160px; height: 11px; background: var(--color-gold-light); -webkit-mask: var(--orn-beam) 0 0 / 100% 100% no-repeat; mask: var(--orn-beam) 0 0 / 100% 100% no-repeat; }
.interlude small::before { right: calc(100% + 18px); }
.interlude small::after { left: calc(100% + 18px); transform: scaleX(-1); }
@media (prefers-reduced-motion: no-preference) {
  .interlude small::before, .interlude small::after { transition: clip-path 1.2s var(--ease-out); }
  .reveal-ready .interlude:not(.is-visible) small::before, .reveal-ready .interlude:not(.is-visible) small::after { clip-path: inset(0 0 0 100%); }
}
.closing-inner { position: relative; }
.closing .label { font-family: var(--font-latin); color: var(--color-gold-ink); font-size: var(--fs-label); letter-spacing: .28em; text-transform: uppercase; font-weight: 500; }
.profile-card .mini { display: block; }
.next-nav { align-items: start; }
.next-nav-prev, .next-nav-next { display: grid; gap: .3rem; }
.next-nav-next { text-align: right; justify-items: end; }
.next-nav-prev small, .next-nav-next small { font-family: var(--font-latin); font-size: var(--fs-label); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--color-gold-ink); font-weight: 500; }


.next-nav-back { justify-self: center; align-self: center; font-size: var(--fs-meta); letter-spacing: .06em; border: 1px solid var(--color-brown); padding: .7rem 1.3rem; transition: background .25s, color .25s; white-space: nowrap; }
.next-nav-back:hover { background: var(--color-brown); color: var(--color-on-dark); }
.next-nav .is-empty { visibility: hidden; }
.movie-head b { font-weight: 500; }
.movie-stage--soon > div { position: relative; z-index: 1; display: grid; justify-items: center; gap: .9rem; text-align: center; color: var(--color-on-dark-muted); font-size: var(--fs-meta); letter-spacing: .14em; }
.movie-stage--soon > div > b { font-family: var(--font-latin); font-weight: 500; font-size: var(--fs-label); letter-spacing: var(--tr-label); color: var(--color-gold-on-dark); }
.movie-stage .play { width: 64px; height: 64px; border-radius: 50%; border: 1px solid var(--color-gold-light); background: rgb(31 23 19 / .55); color: var(--color-gold-light); display: grid; place-items: center; font-size: 1rem; }
.movie-facade { cursor: pointer; }
.movie-thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.movie-play { position: relative; z-index: 1; }
.movie-link { color: var(--color-gold-on-dark); border-bottom: 1px solid var(--color-line-on-dark); }
.article-credit .credit-writer { margin-left: .6em; }
.story-figure figcaption { font-size: .74rem; }

/* ---------- トップ：about抜粋・編集長の小さな紹介・運営 ---------- */
.about-excerpt-inner { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.about-excerpt-copy h2 { font-size: var(--fs-h2); margin-top: .4rem; }
.about-excerpt-copy > p { margin-top: 1.4rem; color: var(--color-ink-soft); line-height: 1.95; max-width: 40em; }
.about-excerpt-copy .questions { margin-left: 0; margin-right: 0; }
.about-excerpt-more { margin-top: 2rem; }






.publisher h2 { font-size: var(--fs-h2); margin-top: .5rem; }
.publisher p { margin-top: 1.4rem; }
.about .about-grid:first-child { border-top: 0; }
.about-note { font-size: var(--fs-meta); color: var(--color-muted); margin-top: 1rem; }
.faq h2 { font-size: var(--fs-h2); margin-top: .4rem; }
.faq-list { margin-top: 1.6rem; }
.faq-list dt { font-family: var(--font-mincho); font-weight: 500; font-size: 1.05rem; letter-spacing: .04em; padding: 1.1rem 0 .4rem; border-top: 1px solid var(--color-line-soft); }
.faq-list dt::before { content: "Q."; font-family: var(--font-latin); color: var(--color-gold-ink); margin-right: .6em; }
.faq-list dd { margin: 0 0 1.2rem; color: var(--color-ink-soft); line-height: 1.9; }
.notfound h1 { font-size: var(--fs-h2); }
.notfound-body { color: var(--color-ink-soft); max-width: 32em; }

@media (max-width: 900px) {
  .about-excerpt-inner { grid-template-columns: 1fr; }
  .feature { grid-template-columns: 1fr; }
  .feature > .card-visual { min-height: 300px; order: -1; }
}
@media (max-width: 760px) {
  .filter-group { grid-template-columns: 1fr; }
  .advisor-card { grid-template-columns: 1fr; }
  .next-nav-next { text-align: left; justify-items: start; }
  .interlude small::before, .interlude small::after { display: none; }
  .portrait--mono small { left: 1.5rem; bottom: 1.4rem; }
}

/* ---------- トップ：最初の画面＝最新の記事（2026-10-15 他メディア調査に基づく） ---------- */


.home-tagline { font-family: var(--font-mincho); font-weight: 500; font-size: clamp(1.3rem, 1rem + 1.2vw, 1.9rem); line-height: 1.75; letter-spacing: .04em; margin-top: .7rem; }
.home-tagline em { display: block; font-style: normal; font-family: var(--font-sans); font-weight: 400; font-size: var(--fs-meta); color: var(--color-ink-soft); margin-top: .9rem; letter-spacing: .03em; line-height: 1.9; }



.feature--text { grid-template-columns: 1fr; min-height: 0; }
/* 写真のない記事のカード＝文字の札（画像は置かない） */
.article-card--text { grid-template-columns: 1fr; }
.article-card--text .article-copy { border-top: 3px solid var(--color-gold); min-height: 220px; }
.article-card--text .article-copy > h3 { font-size: 1.35rem; }
/* 先生を探す: 写真のない先生は名字の札 */
.advisor-mono--name { font-family: var(--font-mincho); font-size: 1.1rem; letter-spacing: .08em; color: var(--color-on-dark); }
/* 記事の末尾: ほかの先生の記事 */
.others { max-width: 980px; margin: clamp(3rem, 6vw, 4.5rem) auto 0; padding: 0 6vw; }
.others h2 { font-size: var(--fs-h2); margin-top: .35rem; margin-bottom: 1.4rem; }
.others-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.other-card { display: grid; grid-template-rows: auto 1fr; background: var(--color-paper); border: 1px solid var(--color-line-soft); transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out); }
.other-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-2px); }

.other-body { display: grid; gap: .4rem; padding: 1rem 1.1rem 1.2rem; align-content: start; }
.other-body small { font-family: var(--font-sans); font-size: .72rem; letter-spacing: .14em; color: var(--color-gold-ink); font-weight: 700; }
.other-body strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1rem; line-height: 1.6; }
.other-person { font-size: .78rem; color: var(--color-muted); }
.about-excerpt-inner { grid-template-columns: 1fr; max-width: 760px; }
@media (max-width: 760px) {
  .others-grid { grid-template-columns: 1fr; }
  
}

/* ---------- トップ：先生の顔が並ぶ列＋地域・分野の入口（ドクターズ・ファイルの型。2026-10-16） ---------- */

.advisor-strip { list-style: none; margin: .7rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .8rem; }
.strip-card { display: grid; grid-template-columns: 76px 1fr; gap: .9rem; align-items: center; min-height: 92px; padding: .55rem .9rem .55rem .55rem; background: var(--color-paper); border: 1px solid var(--color-line-soft); border-left: 3px solid var(--color-gold); transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out); }
.strip-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.strip-photo { display: block; width: 76px; height: 76px; overflow: hidden; background: var(--gradient-dark); }
.strip-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }
.strip-photo--name { display: grid; place-items: center; font-family: var(--font-mincho); font-size: 1.05rem; letter-spacing: .08em; color: var(--color-on-dark); }
.strip-body { display: grid; gap: .15rem; min-width: 0; }
.strip-body strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1.02rem; letter-spacing: .06em; line-height: 1.35; }
.strip-body strong small { font-family: var(--font-sans); font-size: .72rem; color: var(--color-muted); margin-left: .3em; font-weight: 400; }
.strip-office, .strip-region { font-size: .76rem; color: var(--color-ink-soft); line-height: 1.5; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strip-region { color: var(--color-muted); }





/* 記事の写真に重ねる札（氏名・事務所） */
.portrait .caption .caption-name { display: block; font-size: 1.3rem; font-weight: 500; letter-spacing: .08em; margin-top: .2rem; }
.portrait .caption .caption-office { display: block; font-size: .8rem; color: rgb(240 232 223); letter-spacing: .04em; margin-top: .25rem; }
.portrait .caption .caption-note { display: block; font-style: normal; font-size: .9rem; color: var(--color-gold-em); margin-top: .55rem; letter-spacing: .04em; }
@media (max-width: 760px) {
  .advisor-strip { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; -webkit-overflow-scrolling: touch; }
  .advisor-strip > li { flex: 0 0 82%; scroll-snap-align: start; }
  
}

/* ---------- 写真のあしらい（池口さんのデッキの金の二重枠＋角飾り。2026-10-16） ---------- */
.portrait--photo, .feature > .card-visual { position: relative; }
.portrait--photo::before, .feature > .card-visual::before {
  content: ""; position: absolute; inset: 14px; border: 1px solid rgb(196 163 90 / .85); pointer-events: none; z-index: 2;
  box-shadow: inset 0 0 0 5px transparent, inset 0 0 0 6px rgb(211 183 104 / .45);
}
.photo-corners { position: absolute; inset: 8px; pointer-events: none; z-index: 3; }
.photo-corners i { position: absolute; width: 34px; height: 34px; background: var(--color-gold-light); -webkit-mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; }
.photo-corners i:nth-child(1) { left: 0; top: 0; }
.photo-corners i:nth-child(2) { right: 0; top: 0; transform: scaleX(-1); }
.photo-corners i:nth-child(3) { left: 0; bottom: 0; transform: scaleY(-1); }
.photo-corners i:nth-child(4) { right: 0; bottom: 0; transform: scale(-1); }
/* 先生の列・ほかの先生の記事・一覧の写真: 細い金の縁 */
.strip-photo, .article-card .card-visual--photo { outline: 1px solid rgb(196 163 90 / .7); outline-offset: -1px; }
/* 写真の無い記事のサムネ＝ヒーロー絵（AIで制作）。画像の右上に「イメージ（AIで制作）」の印（2026-10-16） */

.other-card { position: relative; }

/* ======================================================================
   トップ 案C（誌面風・飾り強め。2026-10-16 梅村「3がいいかなー」）
   ====================================================================== */
/* 中央寄せの見出し: 左右に金の線、下に◆ */
.section-head--center { flex-direction: column; align-items: center; text-align: center; border-bottom: 0; padding-bottom: 0; gap: .1rem; margin-bottom: var(--space-block); }
.section-head--center::after { left: 50%; bottom: -16px; transform: translateX(-50%); }
.section-head--center h2 { display: flex; align-items: center; gap: 1.1rem; margin-top: .3rem; }
.section-head--center h2::before, .section-head--center h2::after { content: ""; flex: 0 0 auto; width: clamp(40px, 9vw, 140px); height: 1px; background: linear-gradient(90deg, transparent, var(--color-gold)); }
.section-head--center h2::after { background: linear-gradient(90deg, var(--color-gold), transparent); }
.section-note--center { text-align: center; margin: -1.2rem auto 1.6rem; max-width: 42em; }
.section-more { margin-top: clamp(1.4rem, 3vw, 2rem); text-align: center; }

/* 汎用カルーセル（JS が無ければ横スクロール。JS があれば矢印・点・自動送り） */
[data-carousel] { position: relative; }
.carousel-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.carousel-track::-webkit-scrollbar { display: none; }
.carousel-track:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 4px; }
.carousel-nav { display: flex; align-items: center; justify-content: center; gap: .8rem; margin-top: 1rem; }
.carousel-btn { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--color-gold); background: var(--color-paper); color: var(--color-brown); font-family: var(--font-latin); font-size: 1.5rem; line-height: 1; display: grid; place-items: center; cursor: pointer; padding: 0 0 .15em; transition: background .25s, color .25s; }
.carousel-btn:hover { background: var(--color-brown); color: var(--color-on-dark); }
.carousel-dots { display: flex; gap: .55rem; }
.carousel-dots:empty { display: none; }
.carousel-dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgb(196 163 90 / .4); cursor: pointer; transition: transform .25s, background .25s; }
.carousel-dots button[aria-current="true"] { background: var(--color-gold); transform: scale(1.35); }
[data-carousel]:not(.is-ready) .carousel-nav { display: none; }
@media (prefers-reduced-motion: reduce) { .carousel-track { scroll-behavior: auto; } }

/* 注目の税理士: 金の二重枠の中に、写真・氏名・事務所・地域のカード */
.home-spot { padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.spot-frame { position: relative; padding: clamp(1rem, 2.5vw, 1.8rem) clamp(1rem, 3vw, 2.4rem); border: 1px solid var(--color-gold); box-shadow: inset 0 0 0 4px var(--color-ivory), inset 0 0 0 5px rgb(196 163 90 / .55); background: var(--color-ivory); }
.spot-frame .card-corners { inset: 7px; }
.spot-track { list-style: none; margin: 0; padding: .3rem .1rem; gap: 1rem; }
.spot-item { flex: 0 0 calc((100% - 3rem) / 4); scroll-snap-align: start; }
.spot-card { display: grid; gap: .25rem; justify-items: center; text-align: center; height: 100%; padding: 1rem .8rem 1.1rem; background: var(--color-paper); border: 1px solid var(--color-line-soft); transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out); }
.spot-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.spot-photo { display: block; width: 100%; max-width: 200px; aspect-ratio: 4 / 5; overflow: hidden; background: var(--gradient-dark); outline: 1px solid rgb(196 163 90 / .7); outline-offset: -1px; margin-bottom: .6rem; }
.spot-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }
.spot-photo--name { display: grid; place-items: center; font-family: var(--font-mincho); font-size: 1.4rem; letter-spacing: .1em; color: var(--color-on-dark); }
.spot-name { font-family: var(--font-mincho); font-weight: 500; font-size: 1.1rem; letter-spacing: .06em; line-height: 1.4; }
.spot-name small { font-family: var(--font-sans); font-size: .72rem; color: var(--color-muted); margin-left: .35em; font-weight: 400; }
.spot-office, .spot-region { font-size: .78rem; color: var(--color-ink-soft); line-height: 1.5; }
.spot-region { display: inline-flex; align-items: center; gap: .3em; color: var(--color-muted); }
.spot-region .pin { color: var(--color-gold-ink); }
.advisor-carousel .carousel-nav { margin-top: .9rem; }
@media (min-width: 761px) {
  .advisor-carousel .carousel-btn { position: absolute; top: 42%; z-index: 2; }
  .advisor-carousel .carousel-btn--prev { left: -30px; }
  .advisor-carousel .carousel-btn--next { right: -30px; }
  .advisor-carousel .carousel-nav { margin: 0; }
}
@media (max-width: 1000px) { .spot-item { flex-basis: calc((100% - 2rem) / 3); } }
@media (max-width: 760px) { .spot-item { flex-basis: 72%; } .spot-frame { padding: .9rem; } }

/* 税理士を探す: 左に見出し、右に地域・分野の札と「すべて」。年輪の透かし */
.find-band { position: relative; overflow: hidden; background: var(--color-paper); padding-block: clamp(2.4rem, 4.5vw, 3.6rem); }
.find-band::before { content: ""; position: absolute; left: -140px; top: -90px; width: 400px; height: 400px; background: var(--color-gold-light); -webkit-mask: var(--orn-rings) center / contain no-repeat; mask: var(--orn-rings) center / contain no-repeat; opacity: .22; pointer-events: none; }
.find-inner { position: relative; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.65fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.find-copy h2 { font-size: var(--fs-h2); margin-top: .3rem; }
.find-copy p { margin-top: .8rem; color: var(--color-ink-soft); line-height: 1.9; }
.find-rows { display: grid; gap: 1rem; }
.find-row { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .7rem; }
.find-row .field-links { display: contents; }
.find-label { font-family: var(--font-sans); font-size: var(--fs-meta); font-weight: 700; letter-spacing: .1em; color: var(--color-ink-soft); min-width: 3.2em; display: inline-flex; align-items: center; gap: .5em; }
.find-label::before { content: ""; width: 6px; height: 6px; background: var(--color-gold); -webkit-mask: var(--orn-diamond) center / contain no-repeat; mask: var(--orn-diamond) center / contain no-repeat; }
.find-row .btn--sm { min-height: 44px; padding-block: .4em; }
@media (max-width: 900px) { .find-inner { grid-template-columns: 1fr; } }

/* 特集スライダー: 濃茶の帯。左に金枠の写真、右に見出し・一文・氏名 */
.feature-band { position: relative; overflow: hidden; background: var(--color-brown-deep); color: var(--color-on-dark); padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.feature-band::before { content: ""; position: absolute; inset: 0; background: var(--gradient-dark); pointer-events: none; }
.feature-band::after { content: ""; position: absolute; right: -110px; top: 50%; width: 440px; height: 440px; transform: translateY(-50%); background: var(--color-gold-light); -webkit-mask: var(--orn-rings) center / contain no-repeat; mask: var(--orn-rings) center / contain no-repeat; opacity: .26; pointer-events: none; }
.feature-band .container { position: relative; }
.feature-slide { flex: 0 0 100%; scroll-snap-align: start; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; padding: .5rem .5rem .5rem .6rem; }
.feature-slide-media { position: relative; display: block; aspect-ratio: 4 / 5; width: 100%; max-width: 400px; overflow: hidden; background: var(--color-brown); box-shadow: 0 0 0 1px var(--color-gold), 0 0 0 6px var(--color-brown-deep), 0 0 0 7px rgb(211 183 104 / .5), var(--shadow-film); }
.feature-slide-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.feature-slide-media .photo-corners { inset: 10px; }
.feature-slide-label { color: var(--color-gold-on-dark); display: inline-flex; align-items: center; gap: .7em; }
.feature-slide-label::before { content: ""; width: 48px; height: 1px; background: var(--color-gold-light); }
.feature-slide-title { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.4rem); line-height: 1.45; letter-spacing: .045em; margin-top: 1rem; color: var(--color-on-dark); font-weight: 500; }
.feature-slide-title a { color: inherit; }
.feature-slide-title a:hover { color: var(--color-gold-em); }
.feature-slide-title em { color: var(--color-gold-em); font-style: normal; }
.feature-slide-dek { margin-top: 1.1rem; color: var(--color-on-dark-muted); font-family: var(--font-mincho); line-height: 1.9; max-width: 30em; }
.feature-slide-person { margin-top: 1.4rem; display: flex; align-items: baseline; gap: .9rem; flex-wrap: wrap; color: var(--color-on-dark); }
.feature-slide-person strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1.15rem; letter-spacing: .08em; }
.feature-slide-person strong small { font-family: var(--font-sans); font-size: .72rem; margin-left: .3em; color: var(--color-on-dark-muted); font-weight: 400; }
.feature-slide-person span { font-size: .78rem; color: var(--color-on-dark-muted); }
.feature-slide-more { margin-top: 1.6rem; }
.more--on-dark { color: var(--color-gold-on-dark); border-color: var(--color-line-on-dark); }
.more--on-dark:hover { color: var(--color-on-dark); border-color: var(--color-gold-light); }
.feature-band .carousel-nav { margin-top: 1.4rem; }
.feature-band .carousel-btn { background: transparent; color: var(--color-gold-on-dark); border-color: var(--color-line-on-dark); }
.feature-band .carousel-btn:hover { background: var(--color-gold-light); color: var(--color-brown-deep); }
.feature-band .carousel-dots button { background: rgb(211 183 104 / .35); }
.feature-band .carousel-dots button[aria-current="true"] { background: var(--color-gold-light); }
@media (max-width: 760px) {
  .feature-slide { grid-template-columns: 1fr; gap: 1.2rem; }
  .feature-slide-media { max-width: 260px; margin: 0 auto; }
  .feature-slide-copy { text-align: center; }
  .feature-slide-dek { margin-inline: auto; }
  .feature-slide-person { justify-content: center; }
}

/* 新着記事: 2列の横並びカード（写真・号数・見出し・氏名・分野） */
.row-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.6rem; }
.row-card { position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 1.1rem; align-items: center; background: var(--color-paper); border: 1px solid var(--color-line-soft); padding: .7rem; transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out); }
.row-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.row-card::after { content: ""; position: absolute; right: 5px; bottom: 5px; width: 16px; height: 16px; background: var(--color-gold); -webkit-mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; transform: scale(-1); pointer-events: none; }
.row-thumb { position: relative; display: block; width: 150px; height: 150px; overflow: hidden; background: var(--gradient-dark); outline: 1px solid rgb(196 163 90 / .7); outline-offset: -1px; }
.row-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center 24%; display: block; }
.row-thumb--name { display: grid; place-items: center; font-family: var(--font-mincho); color: var(--color-on-dark); font-size: 1.2rem; letter-spacing: .1em; }

.row-body { display: grid; gap: .35rem; min-width: 0; padding-right: .8rem; }
.row-no { font-family: var(--font-sans); font-size: .7rem; letter-spacing: .12em; color: var(--color-gold-ink); font-weight: 700; }
.row-title { font-family: var(--font-mincho); font-weight: 500; font-size: 1.08rem; line-height: 1.6; letter-spacing: .03em; }
.row-title em { color: var(--color-gold-ink); font-style: normal; }
.row-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; }
.row-person { font-size: .76rem; color: var(--color-muted); }
.row-tag { font-size: .68rem; letter-spacing: .06em; color: var(--color-gold-ink); border: 1px solid rgb(196 163 90 / .6); padding: .15em .6em; }
@media (max-width: 900px) { .row-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .row-card { grid-template-columns: 104px minmax(0, 1fr); gap: .8rem; } .row-thumb { width: 104px; height: 104px; } .row-title { font-size: 1rem; } }

/* 動画のサムネ（トップ） */
.movie-thumb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(1.2rem, 2.5vw, 2rem); }
.movie-thumb-card { position: relative; display: block; background: var(--color-paper); border: 1px solid var(--color-line-soft); transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out); }
.movie-thumb-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.movie-thumb-visual { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--gradient-dark); }
.movie-thumb-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; display: block; }
.movie-thumb-card.is-soon .movie-thumb-visual img { filter: saturate(.85); opacity: .92; }
/* 「公開準備中」の札は明るい写真の上でも読めるように（濃茶の下地） */
.movie-thumb-card .movie-card-badge, .movie-card .movie-card-badge { color: var(--color-on-dark); background: rgb(31 23 19 / .66); border-color: transparent; padding: .3em .8em; }
.movie-thumb-card:hover .movie-card-play { background: rgb(31 23 19 / .8); transform: translate(-50%, -50%) scale(1.05); }
.movie-thumb-body { display: grid; gap: .2rem; padding: .9rem 1.1rem 1.1rem; }
.movie-thumb-body > small { font-family: var(--font-latin); font-size: var(--fs-label); letter-spacing: var(--tr-label); text-transform: uppercase; color: var(--color-gold-ink); font-weight: 500; }
.movie-thumb-body strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1.05rem; letter-spacing: .06em; }
.movie-thumb-body strong small { font-family: var(--font-sans); font-size: .72rem; color: var(--color-muted); margin-left: .3em; font-weight: 400; }
.movie-thumb-body > span { font-size: .76rem; color: var(--color-muted); }
.movie-card-thumb--photo { object-position: center 15%; }

/* 私の流儀のカードに先生の小さな写真（右上） */
.style-photo { position: absolute; top: 1.1rem; right: 1.1rem; width: 60px; height: 60px; overflow: hidden; outline: 1px solid rgb(196 163 90 / .7); outline-offset: -1px; background: var(--gradient-dark); }
.style-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }
.style-card--photo .style-words { padding-right: 4.6rem; }

/* 顧問の流儀とは: 左に見出し、中に文、右にボタン（案C） */
.about-excerpt-inner { max-width: none; }
.about-excerpt-copy { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.6fr) auto; grid-template-areas: "label text more" "title text more" "title q more"; column-gap: clamp(1.5rem, 4vw, 4rem); row-gap: .3rem; align-items: start; }
.about-excerpt-copy .label-en { grid-area: label; }
.about-excerpt-copy h2 { grid-area: title; margin-top: .1rem; }
.about-excerpt-copy > p:not(.about-excerpt-more):not(.label-en) { grid-area: text; margin-top: 0; }
.about-excerpt-copy .questions { grid-area: q; margin-top: .6rem; }
.about-excerpt-copy .about-excerpt-more { grid-area: more; align-self: center; margin-top: 0; }
@media (max-width: 900px) { .about-excerpt-copy { grid-template-columns: 1fr; grid-template-areas: "label" "title" "text" "q" "more"; } .about-excerpt-copy .about-excerpt-more { margin-top: 1.4rem; } }

/* 取材を受けたい: 左に年輪のしるし */
.cta-band--mark .container { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.cta-mark { display: block; width: 150px; height: 150px; background: var(--color-gold-light); -webkit-mask: var(--orn-rings) center / contain no-repeat; mask: var(--orn-rings) center / contain no-repeat; opacity: .7; }
@media (max-width: 760px) { .cta-band--mark .container { grid-template-columns: 1fr; } .cta-mark { display: none; } }

/* ---------- 動画ページ（/movie/<slug>） ---------- */
.movie-page .page-hero h1 .h1-suffix { font-size: .6em; margin-left: .15em; color: var(--color-muted); }
.movie-page-film { padding-block: 0 clamp(2rem, 4vw, 3rem); }
.movie-page-film .movie-wrap::before { display: none; }
.movie-page-person { padding-top: 0; }
.movie-page-person-inner { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.movie-article-card { position: relative; display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 1.2rem; align-items: center; background: var(--color-paper); border: 1px solid var(--color-line-soft); padding: .8rem; transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out); }
.movie-article-card:hover { box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.movie-article-photo { display: block; width: 170px; aspect-ratio: 4 / 5; overflow: hidden; outline: 1px solid rgb(196 163 90 / .7); outline-offset: -1px; background: var(--gradient-dark); }
.movie-article-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }
.movie-article-body { display: grid; gap: .5rem; min-width: 0; }
.movie-article-body small { font-family: var(--font-sans); font-size: .7rem; letter-spacing: .12em; color: var(--color-gold-ink); font-weight: 700; }
.movie-article-body strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1.15rem; line-height: 1.6; }
.movie-article-body .name { font-size: .78rem; color: var(--color-muted); }
.movie-article-body .more { justify-self: start; }
.movie-style { margin: 0; padding: 1.6rem 1.8rem; background: var(--color-paper); border-left: 3px solid var(--color-gold); }
.movie-style-words { font-family: var(--font-mincho); font-size: 1.25rem; line-height: 1.85; letter-spacing: .04em; margin-top: .6rem; }
.movie-style-words em { color: var(--color-gold-ink); font-style: normal; }
.movie-style footer { margin-top: .9rem; font-size: var(--fs-meta); color: var(--color-muted); }



/* 動画の箱の中のリンク（YouTubeで見る／記事を読む）は余白をとって端にくっつけない */
.movie-shell > .movie-link { display: block; padding: .9rem 1.4rem 1.1rem; border-bottom: 0; font-size: var(--fs-meta); }
.movie-shell > .movie-link a { color: var(--color-gold-on-dark); border-bottom: 1px solid var(--color-line-on-dark); padding-bottom: 1px; }
.movie-shell > .movie-link a:hover { color: var(--color-on-dark); }
@media (max-width: 760px) {
  .movie-page-person-inner { grid-template-columns: 1fr; }
  .movie-article-card { grid-template-columns: 110px minmax(0, 1fr); }
  .movie-article-photo { width: 110px; }
}

/* ======================================================================
   案Cの詰め（designer レビュー 2026-10-16・梅村「画像、デザイン、あしらいはGPTとGPUで高画質調整、レイアウト調整」）
   ====================================================================== */
/* 1. 中央寄せの見出し: 全幅の罫と左端の◆を消す（同じ詳細度で後ろの .section-head に負けていた） */
.section-head.section-head--center { border-bottom: 0; padding-bottom: 0; }
.section-head.section-head--center::after { left: 50%; bottom: -20px; }
.section-head--center h2 { width: min(100%, 880px); }
.section-head--center h2::before, .section-head--center h2::after { flex: 1 1 0; width: auto; min-width: 24px; max-width: 360px; }
.section-note--center { margin: 0 auto 1.6rem; }
/* 2. トップの区画の余白（他ページは変えない） */
.home-spot, #stories, #movies, #my-style, .about-excerpt, .cta-band--mark, .publisher { --space-section: clamp(2.75rem, 2.2rem + 2.2vw, 4.25rem); --space-block: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); }
.find-band { padding-block: clamp(1.75rem, 3.4vw, 2.75rem); }
.feature-band { padding-block: clamp(2rem, 4vw, 3.25rem); }
/* 3. 注目の税理士: PCは5人を1列。全員収まるときは矢印を消す（JSが .is-static を付ける）。枠は角が欠けた二重線＋大きな角飾り */
@media (min-width: 1001px) { .spot-item { flex-basis: calc((100% - 4rem) / 5); } }
.advisor-carousel.is-static .carousel-nav { display: none; }
.spot-frame { --k: 40px; --i: 6px; color: var(--color-gold); border: 0; box-shadow: none; padding: clamp(1.4rem, 3vw, 2.4rem) clamp(1.25rem, 3.4vw, 2.8rem); }
.spot-frame .advisor-carousel { color: var(--color-ink); }
.spot-frame::before, .spot-frame::after { content: ""; position: absolute; pointer-events: none;
  background: linear-gradient(currentColor, currentColor) top / calc(100% - 2 * var(--e)) 1px no-repeat,
              linear-gradient(currentColor, currentColor) bottom / calc(100% - 2 * var(--e)) 1px no-repeat,
              linear-gradient(currentColor, currentColor) left / 1px calc(100% - 2 * var(--e)) no-repeat,
              linear-gradient(currentColor, currentColor) right / 1px calc(100% - 2 * var(--e)) no-repeat; }
.spot-frame::before { inset: 0; --e: var(--k); }
.spot-frame::after { inset: var(--i); --e: calc(var(--k) - var(--i)); }
.spot-frame .card-corners { inset: 0; }
.spot-frame .card-corners i { width: var(--k); height: var(--k); }
@media (max-width: 760px) { .spot-frame { --k: 26px; --i: 4px; padding: 1.1rem .9rem; } }
/* 4. 動画: 2列を中央に。表紙（濃茶の背景の右に先生）があるときは再生ボタンを左寄りに */
.movie-thumb-grid { grid-template-columns: repeat(2, minmax(0, 380px)); justify-content: center; }
.movie-thumb-card.has-cover .movie-card-play, .movie-card.has-cover .movie-card-play { left: 50%; top: 38%; }
.movie-thumb-card.has-cover .movie-thumb-visual img, .movie-card-thumb--cover { object-position: center; }
.movie-thumb-card.has-cover.is-soon .movie-thumb-visual img { filter: none; opacity: 1; }
/* 表紙に肩書・氏名を焼き込んでいるので、「公開準備中」の札は右上へ */
.movie-thumb-card.has-cover .movie-card-badge, .movie-card.has-cover .movie-card-badge { left: 14px; bottom: auto; right: auto; top: 14px; }
.movie-thumb-card.has-cover .movie-thumb-visual::before, .movie-thumb-card.has-cover .movie-thumb-visual::after { display: none; }
@media (max-width: 760px) { .movie-thumb-grid { grid-template-columns: 1fr; } }
/* 5. 特集帯: 墨木ブラウン基調にそろえ、写真を小さく、右の列に年輪、送りは右下。隅に金の粒 */
.feature-band { background: var(--color-brown); }
.feature-band::before { background:
  url("/assets/orn/dust-corner.v1.webp") left top / min(44%, 560px) auto no-repeat,
  url("/assets/orn/dust-corner-r.v1.webp") right top / min(44%, 560px) auto no-repeat,
  radial-gradient(circle at 82% 20%, rgb(196 163 90 / .16), transparent 34%),
  linear-gradient(140deg, var(--color-brown), var(--color-brown-deep)); }
.feature-band::after { display: none; }
.feature-slide-media { box-shadow: 0 0 0 1px var(--color-gold), 0 0 0 6px var(--color-brown), 0 0 0 7px rgb(211 183 104 / .5), var(--shadow-film); }
.feature-band .carousel-nav { position: absolute; right: 0; bottom: 0; margin: 0; }
@media (min-width: 761px) {
  .feature-slide { grid-template-columns: minmax(0, 280px) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); padding-bottom: 3.2rem; }
  .feature-slide-media { max-width: 280px; }
}
@media (min-width: 1101px) {
  .feature-slide { grid-template-columns: 280px minmax(0, 1fr) 240px; }
  .feature-slide::after { content: ""; grid-column: 3; grid-row: 1; justify-self: end; align-self: center; width: 240px; height: 240px; background: var(--gradient-gold); -webkit-mask: var(--orn-rings) center / contain no-repeat; mask: var(--orn-rings) center / contain no-repeat; opacity: .5; }
}
@media (max-width: 760px) { .feature-band .carousel-nav { position: static; margin-top: 1.2rem; } }
/* 6. 新着記事: トップは偶数枚だけ出す（build.mjs の evenSlice）。一覧で奇数のときは最後の1枚を左に置いたまま（中央に浮かせない） */
/* 7. 税理士を探す: 札と「すべて」を同じ行に。札は少し小さく */
.find-row { display: grid; grid-template-columns: 3.6em minmax(0, 1fr); align-items: start; gap: .5rem 1rem; }
.find-label { padding-top: .7em; }
.find-chips { display: flex; flex-wrap: wrap; gap: .5rem .6rem; }
.find-chips .field-links { display: contents; }
.find-chips .field-links a, .find-chips .btn--sm { min-height: 40px; padding: .3em 1em; font-size: .8125rem; }
@media (max-width: 900px) { .find-chips .field-links a, .find-chips .btn--sm { min-height: 44px; } }
@media (max-width: 760px) { .find-row { grid-template-columns: 1fr; } .find-label { padding-top: 0; } }
.find-band::before { top: 50%; transform: translateY(-50%); left: -110px; width: 360px; height: 360px; opacity: .26; }
/* 8. MV: 高さは中身で決め、注記は枠の内側に */
@media (min-width: 761px) {
  .home-mv { min-height: 0; }
  .home-mv-inner { padding: clamp(2.5rem, 5vw, 4.25rem) 0; }
  .home-mv .home-tagline { letter-spacing: .07em; }
}


/* 9. 私の流儀: 引用を全幅に、写真は署名の横。閉じ引用符 */
.style-card--photo { display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-areas: "words words" "photo person" "no no"; column-gap: .9rem; row-gap: 1rem; align-items: center; padding: 2.6rem 1.6rem 1.2rem; }
.style-card--photo .style-words { grid-area: words; align-self: start; padding: 0 0 1rem; border-bottom: 1px solid var(--color-line-soft); font-size: 1.125rem; }
.style-card--photo .style-photo { grid-area: photo; position: static; width: 56px; height: 56px; }
.style-card--photo .style-person { grid-area: person; border-top: 0; padding-top: 0; }
.style-card--photo .style-no { grid-area: no; }
.style-words::after { content: "”"; font-family: var(--font-latin); color: var(--color-gold); font-size: 1.6em; line-height: 0; vertical-align: -.2em; margin-left: .15em; }
/* 10. 顧問の流儀とは: 右に年輪の透かし、問いは箱をやめて◆の箇条に */
.about-excerpt { position: relative; overflow: hidden; }
.about-excerpt::after { content: ""; position: absolute; right: -90px; bottom: -120px; width: 340px; height: 340px; background: var(--color-gold-light); -webkit-mask: var(--orn-rings) center / contain no-repeat; mask: var(--orn-rings) center / contain no-repeat; opacity: .2; pointer-events: none; }
.about-excerpt .questions { gap: .5rem; margin: .8rem 0 0; max-width: none; }
.about-excerpt .questions li { background: none; border: 0; padding: 0 0 0 1.4em; font-size: 1rem; line-height: 1.8; box-shadow: none; }
.about-excerpt .questions li::before { left: 0; top: .72em; bottom: auto; width: 8px; height: 8px; background: var(--color-gold); -webkit-mask: var(--orn-diamond) center / contain no-repeat; mask: var(--orn-diamond) center / contain no-repeat; }
/* 11. 取材を受けたい: ロゴのマーク、要点は右に縦積み、右上に金の粒 */
.cta-mark { width: 110px; height: 110px; background: url("/assets/brand/mark-reverse.v2.svg") center / contain no-repeat; -webkit-mask: none; mask: none; opacity: 1; }
.cta-band--mark::before { left: auto; right: 0; top: 0; transform: none; width: min(40vw, 460px); height: auto; aspect-ratio: 1600 / 1008; background: url("/assets/orn/dust-corner-r.v1.webp") right top / 100% auto no-repeat; opacity: .8; }
@media (min-width: 901px) {
  .cta-band--mark .container { grid-template-columns: 110px minmax(0, 1fr); }
  .cta-band--mark .cta-inner { max-width: none; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); grid-template-areas: "label points" "title points" "lead points" "btn points"; column-gap: clamp(2rem, 5vw, 4.5rem); row-gap: .8rem; align-items: start; }
  .cta-band--mark .cta-inner > .label-en { grid-area: label; }
  .cta-band--mark .cta-inner > h2 { grid-area: title; }
  .cta-band--mark .cta-inner > p:not(.label-en) { grid-area: lead; }
  .cta-band--mark .cta-inner > .points { grid-area: points; grid-template-columns: 1fr; gap: .9rem; margin-top: 0; }
  .cta-band--mark .cta-inner > div { grid-area: btn; margin-top: .6rem; }
}
/* 12. スマホ: 矢印は44px、小さな点は表示だけ */
.carousel-btn { width: 44px; height: 44px; }
@media (max-width: 760px) { .carousel-dots button { pointer-events: none; } }
/* ---------- あしらいの追加（2026-10-16 梅村「あしらいは？」）: 見出しの上の光の粒、写真の二重枠、サムネの角飾り、探すの見出しの罫 ---------- */
/* 中央寄せの見出し: ラベルの上に光の粒 */
.section-head.section-head--center { position: relative; padding-top: 1.1rem; }
.section-head.section-head--center::before { content: ""; position: absolute; left: 50%; top: 0; width: 220px; height: 18px; transform: translateX(-50%); background: var(--color-gold-light); -webkit-mask: var(--orn-dust) center / contain no-repeat; mask: var(--orn-dust) center / contain no-repeat; opacity: .75; pointer-events: none; }
/* 注目の税理士・新着記事・私の流儀の写真: 金の二重枠（特集の写真と同じ作り） */
.spot-photo, .row-thumb, .style-photo, .movie-article-photo, .style-card--photo .style-photo { position: relative; outline: 0; }
.spot-photo::after, .row-thumb::after, .style-photo::after, .movie-article-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; box-shadow: inset 0 0 0 1px var(--color-gold), inset 0 0 0 4px var(--color-paper), inset 0 0 0 5px rgb(196 163 90 / .55); }
/* 動画のサムネ: 左上と右下に角飾り */
.movie-thumb-visual::before, .movie-thumb-visual::after { content: ""; position: absolute; width: 22px; height: 22px; background: var(--color-gold-light); -webkit-mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; pointer-events: none; z-index: 2; opacity: .9; }
.movie-thumb-visual::before { left: 8px; top: 8px; }
.movie-thumb-visual::after { right: 8px; bottom: 8px; transform: scale(-1); }
/* 税理士を探す: 見出しの下に金の罫と◆ */
.find-copy h2 { position: relative; padding-bottom: .8rem; }
.find-copy h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 160px; height: 9px; background: var(--color-gold); -webkit-mask: var(--orn-divider) left center / contain no-repeat; mask: var(--orn-divider) left center / contain no-repeat; }
/* 特集帯・取材帯の上辺に細い金の罫 */
.feature-band, .cta-band--mark { border-top: 1px solid rgb(211 183 104 / .45); }
/* ---------- 顧問の現場から（顧問先の社長の語り。2026-10-16） ---------- */
/* 記事の冒頭: 先生の名前の行 */
.advisor-line { margin-top: .9rem; font-size: var(--fs-meta); color: var(--color-ink-soft); display: flex; align-items: baseline; gap: .6rem; }
.advisor-line small { font-family: var(--font-sans); font-size: .72rem; letter-spacing: .12em; color: var(--color-gold-ink); font-weight: 700; }
.advisor-line a { color: var(--color-ink); border-bottom: 1px solid var(--color-gold); padding-bottom: 1px; }
.advisor-line-office { color: var(--color-muted); font-size: .9em; }
/* 先生のカード（冒頭と末尾） */
.genba-advisor-wrap { width: min(100% - 2.5rem, 980px); margin: clamp(1.6rem, 3vw, 2.4rem) auto 0; }
.genba-advisor-wrap--end { margin-top: clamp(2rem, 4vw, 3rem); }
.genba-advisor { position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 1.2rem; align-items: center; padding: 1rem 1.2rem; background: var(--color-paper); border: 1px solid var(--color-line-soft); border-left: 3px solid var(--color-gold); transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out); }
.genba-advisor:hover { box-shadow: var(--shadow-soft); transform: translateY(-2px); }
.genba-advisor-photo { position: relative; display: block; width: 112px; aspect-ratio: 4 / 5; overflow: hidden; background: var(--gradient-dark); }
.genba-advisor-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 0 1px var(--color-gold), inset 0 0 0 4px var(--color-paper), inset 0 0 0 5px rgb(196 163 90 / .55); }
.genba-advisor-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; display: block; }
.genba-advisor-photo--name { display: grid; place-items: center; font-family: var(--font-mincho); color: var(--color-on-dark); font-size: 1.2rem; letter-spacing: .1em; }
.genba-advisor-body { display: grid; gap: .25rem; min-width: 0; }
.genba-advisor-body > small { font-family: var(--font-sans); font-size: .72rem; letter-spacing: .12em; color: var(--color-gold-ink); font-weight: 700; }
.genba-advisor-body strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1.25rem; letter-spacing: .06em; }
.genba-advisor-body strong small { font-family: var(--font-sans); font-size: .72rem; color: var(--color-muted); margin-left: .3em; font-weight: 400; }
.genba-advisor-office { font-size: .8rem; color: var(--color-ink-soft); }
.genba-advisor-title { font-size: .82rem; color: var(--color-muted); font-family: var(--font-mincho); }
.genba-advisor-body .more { justify-self: start; margin-top: .3rem; }
/* 先生の記事の末尾「顧問の現場から」 */
.genba-block { width: min(100% - 2.5rem, 980px); margin: clamp(3rem, 6vw, 4.5rem) auto 0; }
.genba-block h2 { font-size: var(--fs-h2); margin-top: .35rem; display: flex; align-items: baseline; gap: .8rem; flex-wrap: wrap; }
.genba-block h2 small { font-family: var(--font-sans); font-size: .82rem; color: var(--color-muted); font-weight: 400; letter-spacing: .04em; }
.genba-note { color: var(--color-ink-soft); margin: .6rem 0 1.4rem; line-height: 1.9; }
.row-grid--genba .row-tag--advisor { color: var(--color-brown); border-color: rgb(73 54 45 / .35); }
.genba-empty { color: var(--color-ink-soft); font-family: var(--font-mincho); line-height: 1.9; }
.genba .profile-card small { letter-spacing: .18em; }
@media (max-width: 760px) {
  .genba-advisor { grid-template-columns: 84px minmax(0, 1fr); gap: .9rem; padding: .8rem .9rem; }
  .genba-advisor-photo { width: 84px; }
}

/* 素材A: 生成り地の隅にも金の粒（注目の税理士の左上） */
.home-spot { position: relative; overflow: hidden; }
.home-spot > .container { position: relative; z-index: 1; }
.home-spot::before { content: ""; position: absolute; left: -40px; top: -10px; width: min(36vw, 420px); aspect-ratio: 1600 / 1008; background: url("/assets/orn/dust-corner.v1.webp") left top / 100% auto no-repeat; opacity: .55; pointer-events: none; }
.strip-photo img { box-shadow: inset 0 0 0 1px rgb(245 239 230 / .6); }
/* 地域×分野の入口の罫の端 */





/* ---------- MV（トップの写真の面。GPTで作った握手の写真＋金の枠と角飾り。2026-10-16） ---------- */
.home-mv { position: relative; isolation: isolate; min-height: min(72vh, 720px); display: grid; align-items: center; color: var(--color-on-dark); overflow: hidden; background: var(--color-brown-deep); }
.home-mv-media { position: absolute; inset: 0; z-index: -1; }
.home-mv-media img { width: 100%; height: 100%; object-fit: cover; object-position: 68% 50%; }
.home-mv-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(31 23 19 / .88) 0%, rgb(31 23 19 / .66) 40%, rgb(31 23 19 / .22) 68%, rgb(31 23 19 / .12) 100%); }
.home-mv-media::before { content: ""; position: absolute; inset: 22px; border: 1px solid rgb(211 183 104 / .55); z-index: 2; pointer-events: none; }
.home-mv-media .photo-corners { inset: 16px; z-index: 3; }
.home-mv-inner { position: relative; padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.home-mv .home-tagline { color: var(--color-on-dark); max-width: 21em; font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.4rem); text-shadow: 0 2px 18px rgb(31 23 19 / .55); }
.home-mv .home-tagline em { color: rgb(245 239 230 / .9); text-shadow: 0 1px 10px rgb(31 23 19 / .6); }
.home-mv-label { color: var(--color-gold-on-dark); display: flex; align-items: center; gap: .9rem; }
.home-mv-label .dust { display: inline-block; width: 120px; height: 18px; background: var(--color-gold-light); -webkit-mask: var(--orn-dust) left center / contain no-repeat; mask: var(--orn-dust) left center / contain no-repeat; }
.home-mv .cta { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2rem; }
.home-mv .btn--on-dark { border-color: rgb(245 239 230 / .6); color: var(--color-on-dark); }
.home-mv .btn--on-dark:hover { background: var(--color-on-dark); color: var(--color-brown); }


@media (max-width: 760px) {
  .home-mv { min-height: 0; }
  .home-mv-media img { object-position: 62% 50%; }
  .home-mv-media::after { background: linear-gradient(180deg, rgb(31 23 19 / .6) 0%, rgb(31 23 19 / .84) 100%); }
  .home-mv-inner { padding: 3rem 0 3.4rem; }
  .home-mv-media::before { inset: 12px; }
  .home-mv-media .photo-corners { inset: 8px; }
}

/* ---------- あしらい増量（2026-10-16 梅村「あしらいが無さすぎる」）: 金の線と◆・角飾り・年輪・光の粒 ---------- */
.section-head { position: relative; border-bottom: 1px solid var(--color-line-gold); padding-bottom: 1rem; }
.section-head::after { content: ""; position: absolute; left: 0; bottom: -4px; width: 8px; height: 8px; background: var(--color-gold); -webkit-mask: var(--orn-diamond) center / contain no-repeat; mask: var(--orn-diamond) center / contain no-repeat; }
.section-head .label-en { display: inline-flex; align-items: center; gap: .55em; }
.section-head .label-en::before { content: ""; width: 7px; height: 7px; background: var(--color-gold); -webkit-mask: var(--orn-diamond) center / contain no-repeat; mask: var(--orn-diamond) center / contain no-repeat; }


.feature { position: relative; }
.feature-copy { position: relative; overflow: hidden; }
.feature-copy::after { content: ""; position: absolute; right: -50px; top: -50px; width: 200px; height: 200px; background: var(--color-gold-light); -webkit-mask: var(--orn-rings-arc) center / contain no-repeat; mask: var(--orn-rings-arc) center / contain no-repeat; opacity: .38; transform: rotate(180deg); pointer-events: none; }
.card-corners { position: absolute; inset: 6px; pointer-events: none; z-index: 2; }
.card-corners i { position: absolute; width: 22px; height: 22px; background: var(--color-gold); -webkit-mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; }
.card-corners i:nth-child(1) { left: 0; top: 0; }
.card-corners i:nth-child(2) { right: 0; top: 0; transform: scaleX(-1); }
.card-corners i:nth-child(3) { left: 0; bottom: 0; transform: scaleY(-1); }
.card-corners i:nth-child(4) { right: 0; bottom: 0; transform: scale(-1); }
.article-card { position: relative; }
.article-card::before, .article-card::after { content: ""; position: absolute; width: 18px; height: 18px; background: var(--color-gold); -webkit-mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; pointer-events: none; z-index: 2; }
.article-card::before { left: 5px; top: 5px; }
.article-card::after { right: 5px; bottom: 5px; transform: scale(-1); }
.other-card, .style-card { position: relative; }
.other-card::after, .style-card::after { content: ""; position: absolute; right: 5px; bottom: 5px; width: 16px; height: 16px; background: var(--color-gold); -webkit-mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; mask: var(--orn-corner) 0 0 / 100% 100% no-repeat; transform: scale(-1); pointer-events: none; }
.strip-card { box-shadow: inset 0 0 0 1px var(--color-paper), inset 0 0 0 2px rgb(196 163 90 / .35); }
.strip-card:hover { box-shadow: var(--shadow-soft), inset 0 0 0 1px var(--color-paper), inset 0 0 0 2px rgb(196 163 90 / .6); }
.page-hero { position: relative; overflow: hidden; }
.page-hero::after { content: ""; position: absolute; right: -70px; bottom: -90px; width: 340px; height: 340px; background: var(--color-gold-light); -webkit-mask: var(--orn-rings) center / contain no-repeat; mask: var(--orn-rings) center / contain no-repeat; opacity: .24; pointer-events: none; }
.page-hero .container { position: relative; }
.page-hero .goldline { position: relative; }
.page-hero .goldline::after { content: ""; position: absolute; left: 100%; top: -3px; width: 20px; height: 8px; background: var(--color-gold-light); -webkit-mask: var(--orn-rule-cap) 0 0 / 100% 100% no-repeat; mask: var(--orn-rule-cap) 0 0 / 100% 100% no-repeat; }
.chapter h2 { position: relative; padding-bottom: 1.1rem; }
.chapter h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 240px; height: 9px; background: var(--color-gold); -webkit-mask: var(--orn-divider) left center / contain no-repeat; mask: var(--orn-divider) left center / contain no-repeat; }
.site-footer { border-top: 1px solid var(--color-gold); }
.site-footer::after { content: ""; position: absolute; left: 50%; top: 12px; width: 240px; height: 37px; transform: translateX(-50%); background: var(--color-gold-light); -webkit-mask: var(--orn-dust) center / contain no-repeat; mask: var(--orn-dust) center / contain no-repeat; opacity: .6; pointer-events: none; }



/* ---------- 先生から、ひと言（顧問の現場からの末尾。advisor_message があるときだけ。無ければ先生のカードだけ＝冒頭と同じ） ---------- */
.genba-advisor-panel { position: relative; background: var(--color-paper); border: 1px solid var(--color-line-soft); border-left: 3px solid var(--color-gold); }
.genba-advisor-panel .genba-advisor { border: 0; border-top: 1px solid var(--color-line-soft); background: transparent; }
.genba-advisor-panel .genba-advisor:hover { transform: none; box-shadow: none; background: rgb(196 163 90 / .08); }
.advisor-message { position: relative; padding: 1.5rem 1.6rem 1.45rem 3.2rem; }
.advisor-message::before { content: ""; position: absolute; left: 1.2rem; top: 1.6rem; width: 13px; height: 27px; background: var(--color-gold-strong); -webkit-mask: var(--orn-hook) 0 0 / 100% 100% no-repeat; mask: var(--orn-hook) 0 0 / 100% 100% no-repeat; }
.advisor-message-label { margin: 0; font-family: var(--font-sans); font-size: .72rem; letter-spacing: .12em; color: var(--color-gold-ink); font-weight: 700; display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem .8rem; }
.advisor-message-label span { font-family: var(--font-en); font-weight: 400; font-size: .74rem; letter-spacing: .24em; }
.advisor-message-text { margin: .6rem 0 0; max-width: 40em; font-family: var(--font-mincho); font-size: 1.02rem; line-height: 1.95; letter-spacing: .03em; color: var(--color-brown); }
.advisor-message-text em { font-style: normal; color: var(--color-gold-strong); }
@media (max-width: 640px) {
  .advisor-message { padding: 1.2rem 1rem 1.1rem 2.5rem; }
  .advisor-message::before { left: .85rem; top: 1.3rem; }
  .advisor-message-text { font-size: .98rem; line-height: 1.9; }
}

/* ---------- ほかの先生の記事（2026-10-16 梅村「顔が見切れてる。スマホ版は小さくして、左右どちらかスペースを空けた画像で」） ----------
   PC: 横長の写真（photo_wide＝人物を左・右を空けた版）を切らずに置く。スマホ: 小さい縦の写真を左、文字を右 */
.others-grid { gap: 1.1rem; }
.other-visual { position: relative; display: block; overflow: hidden; background: #e8e2d9; outline: 1px solid rgb(196 163 90 / .7); outline-offset: -1px; }
.other-visual picture, .other-visual img { display: block; width: 100%; height: auto; }
.other-visual img { aspect-ratio: 3 / 2; object-fit: cover; object-position: left center; }
.other-visual--portrait img { object-fit: contain; object-position: left bottom; } /* 横長の版が無い記事: 縦の写真を左に寄せる（右は地色） */
.other-visual--art img { object-position: center; }

.other-body { padding: 1rem 1.15rem 1.25rem; gap: .5rem; }
.other-body small { font-size: .7rem; letter-spacing: .16em; }
.other-body strong { font-size: 1.02rem; line-height: 1.65; letter-spacing: .03em; font-feature-settings: "palt"; }
.other-person { font-size: .78rem; line-height: 1.7; color: var(--color-muted); letter-spacing: .02em; }
.other-person .nw { display: inline-block; } /* 名前・事務所名の途中で折り返さない（折り返すなら「｜」の所で） */
.other-person .sep { margin: 0 .15em; color: var(--color-line-strong, var(--color-muted)); }
@media (max-width: 640px) {
  .others-grid { gap: .8rem; }
  .other-card { grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: none; align-items: start; }
  .other-visual { width: 96px; height: 100%; }
  .other-visual picture, .other-visual img { height: 100%; }
  .other-visual img, .other-visual--art img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
  .other-visual--portrait img { object-fit: cover; object-position: center top; }
  
  .other-body { padding: .8rem .9rem .9rem; gap: .35rem; }
  .other-body small { font-size: .66rem; }
  .other-body strong { font-size: .95rem; line-height: 1.6; }
  .other-person { font-size: .74rem; }
}

/* ---------- 事務所（顧問先の会社）のサイトと概要（プロフィールの下。公式サイトで確認した事実と、トップページの画面） ---------- */
.office { background: var(--color-paper); padding: 0 6vw clamp(3.5rem, 6vw, 5rem); }
.office-inner { max-width: 980px; margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(2rem, 5vw, 4rem); align-items: start; padding-top: clamp(2.5rem, 4vw, 3.5rem); border-top: 1px solid var(--color-line-soft); }
.office h2 { font-size: 1.35rem; margin: .3rem 0 1.1rem; letter-spacing: .06em; line-height: 1.5; }
.office-rows { display: grid; grid-template-columns: 100px minmax(0, 1fr); margin: 0; font-size: .875rem; }
.office-rows dt, .office-rows dd { padding: .5rem 0; border-bottom: 1px solid var(--color-line-soft); margin: 0; }
.office-rows dt { color: var(--color-muted); letter-spacing: .04em; }
.office-rows dd { line-height: 1.7; overflow-wrap: anywhere; }
.office .official { margin-top: 1.5rem; }
.office-shot { display: block; color: inherit; text-decoration: none; }
.office-shot-frame { position: relative; display: block; padding: 6px; background: #fff; border: 1px solid var(--color-line-soft); box-shadow: var(--shadow-soft); transition: box-shadow .3s var(--ease-out), transform .3s var(--ease-out); }
.office-shot-frame::before { content: ""; display: block; height: 12px; margin: -6px -6px 6px; background: linear-gradient(180deg, #ece6dd, #e1dace); border-bottom: 1px solid var(--color-line-soft); } /* ブラウザの上の帯 */
.office-shot-frame img { display: block; width: 100%; height: auto; aspect-ratio: 8 / 5; object-fit: cover; object-position: top; }
.office-shot-cap { display: block; margin-top: .6rem; font-family: var(--font-sans); font-size: .74rem; color: var(--color-muted); letter-spacing: .04em; }
a.office-shot:hover .office-shot-frame { transform: translateY(-2px); box-shadow: 0 10px 28px rgb(73 54 45 / .16); }
@media (max-width: 760px) {
  .office-inner { grid-template-columns: 1fr; gap: 1.6rem; }
  .office-shot { order: 2; }
  .office h2 { font-size: 1.2rem; }
}
@media (max-width: 640px) {
  /* card_title is 13 chars at most per line in the current articles: keep the title column wide enough that no line breaks one char early */
  .other-card { grid-template-columns: 88px minmax(0, 1fr); }
  .other-visual { width: 88px; }
  .other-body { padding: .75rem .8rem .85rem; }
  .other-body strong { font-size: .92rem; letter-spacing: .01em; line-height: 1.62; }
}

/* 見出しの最後の行に1〜2字だけ残る折り返し（例: 「…に導」／「く。」）を避ける。対応していないブラウザでは今まで通り */
.row-title, .other-body strong, .feature-slide h2, .feature-slide h3, .spot-name, .genba-advisor-title, .hero h1, .chapter h2, .section-head h2, .lead p, .advisor-message-text { text-wrap: pretty; }

/* ---------- 文節で改行（lib/phrase.mjs が文節の切れ目にゼロ幅スペースを入れた所。切れ目でだけ折り返す。長い英数字だけは途中でも折る） ---------- */
.phr { word-break: keep-all; overflow-wrap: anywhere; }

/* ---------- 私の流儀（2026-10-16 梅村「文字組みが良くない」） ----------
   言葉: 明朝の字詰め（palt）で字間を整え、行間を少し詰める。署名: 写真の右に名前・事務所・号を1つのまとまりで（写真が左下へずれていたのを直す） */
.style-words { font-feature-settings: "palt"; letter-spacing: .06em; line-height: 1.8; }
.style-card--photo { grid-template-areas: "words words" "photo person" "photo no"; grid-template-rows: auto auto auto; row-gap: 0; column-gap: .9rem; align-items: start; }
.style-card--photo .style-words { margin-bottom: 1.1rem; }
.style-card--photo .style-photo { inset: auto; align-self: center; margin: 0; }
.style-card--photo .style-person { align-self: end; gap: .1rem; }
.style-card--photo .style-no { align-self: start; margin-top: .35rem; }
/* 2026-10-16 梅村「写真位置やテキストがずれてる」: 言葉の区画が余りを取り、罫線・写真・署名は同じ段のカード全部で同じ高さに並ぶ */
.style-card--photo { grid-template-rows: minmax(0, 1fr) auto auto; }
.style-card--photo .style-words { align-self: stretch; }
.style-person strong { letter-spacing: .04em; }
.motto h2 { font-feature-settings: "palt"; letter-spacing: .08em; }
@media (max-width: 640px) {
  .style-words { font-size: 1.05rem; letter-spacing: .04em; }
  .motto h2 { font-size: clamp(1.3rem, 5.6vw, 1.5rem); line-height: 1.7; letter-spacing: .05em; }
}
/* 中央寄せの私の流儀（記事の濃い帯）は行の長さをそろえる（Safari は pretty が効かないので balance） */
.motto h2 { text-wrap: balance; }

/* ---------- 先生を探す v2（2026-10-16 梅村「全国の先生が対象なので、増えたらぐちゃぐちゃになる」「複数選択可に」） ----------
   キーワード → 地域（地方 → その地方の都道府県）→ 分野（多い順に8つ・残りは「ほかの分野」）→ 選んだ条件の札。スマホは「条件で絞り込む」で開く */
.finder .finder-filters { padding: 1.5rem 0 1.3rem; }
.advisor-filters { display: grid; gap: 1.15rem; }
.finder-search { display: grid; grid-template-columns: 6.5em minmax(0, 560px); align-items: center; gap: .6rem 1rem; }
.finder-search .filter-label { padding-top: 0; }
.finder-search input, .find-search input {
  width: 100%; min-height: 46px; padding: 0 1em 0 2.6em; font-size: 1rem; color: var(--color-ink);
  border: 1px solid var(--color-line); border-radius: var(--radius); background: var(--color-paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A793A' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E") .85em center / 18px no-repeat;
}
.finder-search input:focus, .find-search input:focus { outline: 2px solid var(--color-gold); outline-offset: 1px; border-color: var(--color-gold); }
.finder-toggle, .finder-panel-foot { display: none; }
.finder-panel { display: grid; gap: 1.15rem; }
fieldset.filter-group { display: block; border: 0; margin: 0; padding: 0; min-width: 0; }
fieldset.filter-group > legend.filter-label { float: left; width: 6.5em; padding: .55em 0 0; }
.filter-body { margin-left: 7.5em; min-width: 0; }
.filter-hint { margin: .5em 0 .55rem; font-size: .76rem; color: var(--color-muted); letter-spacing: .03em; }
.filter-btn:disabled { opacity: .42; cursor: default; border-style: dashed; }
.filter-btn:disabled:hover { border-color: var(--color-line); }
.filter-btn--sm { min-height: 36px; padding: .2em .85em; }
.filter-sub { margin-top: .75rem; padding: .8rem 1rem .9rem; background: rgb(196 163 90 / .07); border-left: 2px solid var(--color-gold); }
.filter-sub-label { margin: 0 0 .55rem; font-size: .8rem; font-weight: 700; letter-spacing: .06em; color: var(--color-ink-soft); }
.filter-sub-label small { margin-left: .8em; font-weight: 400; color: var(--color-muted); letter-spacing: .02em; }
.filter-btn.is-extra { display: none; }
.finder.is-fields-open .filter-btn.is-extra { display: inline-flex; }
.filter-more { min-height: 40px; padding: .3em .5em; border: 0; background: none; cursor: pointer; font-size: var(--fs-meta); color: var(--color-gold-ink); text-decoration: underline; text-underline-offset: 3px; }
.finder-chosen { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding-top: 1rem; border-top: 1px dashed var(--color-line); }
.finder-chosen-label { margin-right: .4rem; font-size: .76rem; font-weight: 700; letter-spacing: .1em; color: var(--color-ink-soft); }
.chosen-chip { display: inline-flex; align-items: center; gap: .55em; min-height: 34px; padding: .2em .75em .2em .95em; border: 0; border-radius: 999px; background: var(--color-brown); color: var(--color-on-dark); font-size: .84rem; letter-spacing: .03em; cursor: pointer; }
.chosen-chip span { color: var(--color-gold-on-dark); font-size: 1.05em; line-height: 1; }
.chosen-chip:hover { background: var(--color-brown-deep); }
.finder-clear { min-height: 34px; padding: .2em .4em; border: 0; background: none; cursor: pointer; font-size: .8rem; color: var(--color-ink-soft); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) {
  .finder-search { grid-template-columns: 1fr; gap: .4rem; }
  .finder-toggle {
    display: flex; align-items: center; gap: .6rem; width: 100%; min-height: 50px; padding: 0 1rem;
    border: 1px solid var(--color-brown); border-radius: var(--radius); background: var(--color-paper); color: var(--color-ink);
    font-size: .95rem; font-weight: 700; letter-spacing: .06em; cursor: pointer;
  }
  .finder-toggle::after { content: ""; margin-left: auto; width: 9px; height: 9px; border-right: 2px solid var(--color-gold-strong); border-bottom: 2px solid var(--color-gold-strong); transform: rotate(45deg) translateY(-3px); transition: transform .2s; }
  .finder-toggle[aria-expanded="true"]::after { transform: rotate(-135deg) translateY(-2px); }
  .finder-toggle-n { display: inline-grid; place-items: center; min-width: 1.6em; height: 1.6em; padding: 0 .4em; border-radius: 999px; background: var(--color-gold-strong); color: #fff; font-size: .78rem; }
  .finder-panel { display: none; padding: 1.1rem 1rem 0; border: 1px solid var(--color-line-soft); border-top: 0; background: var(--color-paper); margin-top: -1.15rem; }
  .finder.is-panel-open .finder-panel { display: grid; }
  fieldset.filter-group > legend.filter-label { float: none; width: auto; padding: 0 0 .4rem; }
  .filter-body { margin-left: 0; }
  .finder-panel-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; position: sticky; bottom: 0; margin: 0 -1rem; padding: .8rem 1rem; background: var(--color-paper); border-top: 1px solid var(--color-line-soft); }
}

/* トップの「税理士を探す」: キーワードの欄 */
.find-search { display: grid; gap: .5rem; margin-bottom: .4rem; }
.find-search-box { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }
.find-search-box .btn { min-height: 46px; }

/* パンくずは1行に固定（2026-10-16: 号が4桁になり、スマホで「…No. 0004 堀井 優先生」が書体の読み込み前後で1行⇄2行に変わり、
   記事の見出しが約30px上下に動いていた＝CLS 0.11〜0.22）。収まらない分は最後の項目を「…」で切る */
.breadcrumb ol { flex-wrap: nowrap; min-width: 0; }
.breadcrumb li { flex: none; white-space: nowrap; }
.breadcrumb li:last-child { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }

/* ---------- 記事の動画枠（2026-10-16 梅村「TOPページのサムネに合わせて。余白というか隙間がなくて気持ち悪い」）
   トップの動画サムネと同じカードを、見出しの下に余白をとって真ん中に置く（前の作りは見出しの帯に重ねていて隙間が無かった） */
.article-film { padding: clamp(3rem, 6vw, 4.5rem) clamp(1rem, 5vw, 3rem) 0; }
.article-film-inner { max-width: 560px; margin: 0 auto; display: grid; gap: .9rem; }
.article-film-label { text-align: center; }
.article-film .movie-thumb-card { box-shadow: var(--shadow-soft); }
.article-film .movie-thumb-body { padding: 1rem 1.25rem 1.2rem; }
.article-film + .motto { margin-top: clamp(3rem, 6vw, 4.5rem); }
@media (max-width: 640px) { .article-film-inner { max-width: none; } }

/* 動画ページの再生枠: 公開前は表紙を敷き、その上に「公開準備中」 */
.movie-stage--soon.has-cover .movie-cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.movie-stage--soon.has-cover::after { content: ""; position: absolute; inset: 0; background: rgb(20 15 12 / .45); }
.movie-stage--soon.has-cover > div { z-index: 2; }

/* ---------- タブレット（761〜1180px）: ナビはメニューボタンに。記事の見出しは列の幅に合わせて小さく ----------
   2026-10-16: 768・1024px でナビの文字が「記事一／覧」「動／画」と割れ、記事の見出しは列に6字しか入らず「中／小零細企業の」になっていた */
/* 1181px 以上: ナビは1行に収める。文字の途中で折らず、1400px までは英字のタグラインを畳む（2026-10-16: 1547px でも「記事一／覧」と2行になっていた） */
@media (min-width: 1181px) {
  .header-inner { gap: 1rem; }
  .global-nav ul { flex-wrap: nowrap; gap: clamp(.9rem, 1.6vw, 1.6rem); }
  .global-nav a { white-space: nowrap; }
}
@media (min-width: 1181px) and (max-width: 1400px) { .brand-en { display: none; } }
@media (max-width: 1180px) {
  .nav-toggle { display: flex; }
  .global-nav { display: none; position: fixed; inset: 0; top: 61px; background: var(--color-ivory); padding: 2rem 1.5rem; z-index: 40; overflow-y: auto; }
  .global-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .global-nav li { border-bottom: 1px solid var(--color-line-soft); }
  .global-nav a:not(.btn) { display: block; padding-block: 1.1rem; font-size: 1.05rem; }
  .global-nav .nav-cta { border: none; margin-top: 1.5rem; }
  .global-nav .btn { width: 100%; }
  body.nav-locked { overflow: hidden; }
}
@media (min-width: 761px) and (max-width: 1180px) {
  .interview .hero h1 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); }
}

/* 先生を探すのカード: 特化している業種（あるときだけ。2026-10-16） */
.advisor-industries { margin: .55rem 0 0; font-size: .8rem; color: var(--color-ink); letter-spacing: .03em; }
.advisor-industries span { display: inline-block; margin-right: .5em; padding: .05em .55em; font-size: .7rem; font-weight: 700; letter-spacing: .08em; color: #fff; background: var(--color-gold-ink); } /* 白×濃い金 約5.7:1（明るい金だと文字が読みにくいと QA が検出） */
/* 絞り込みのボタンは端末の書体で（Web フォントの読み込み後に幅が変わってボタンが次の行へ移り、一覧がずれていた＝タブレット CLS 0.03〜0.07） */
.finder .filter-btn, .finder .filter-more, .finder .chosen-chip, .finder .finder-clear, .finder .finder-toggle { font-family: system-ui, -apple-system, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Meiryo", sans-serif; }

/* ---------- 文字の割れの直し（2026-10-16 ヘルスチェック・梅村承認） ---------- */
@media (min-width: 761px) {
  fieldset.filter-group > legend.filter-label { width: 9.5em; white-space: nowrap; }
  .filter-body { margin-left: 10.5em; }
  .finder-search { grid-template-columns: 9.5em minmax(0, 560px); }
}
/* 名前・会社名（事務所名）は途中で折り返さない（「院／長」「代／表取締役」） */
.row-person .nw, .advisor-office .nw { display: inline-block; }

/* ---------- 記事の機能（2026-10-16 梅村「記事コンテンツがこのサイトの命」）: 掲載時期・シェア・事務所の写真・目次・編集長のひと言 ---------- */
/* 掲載時期（見出しの下。取材・公開・更新） */
.article-dates { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; margin: 1rem 0 0; font-size: .78rem; color: var(--color-muted); letter-spacing: .04em; }
.article-dates > div { display: flex; gap: .45em; }
.article-dates dt { color: var(--color-gold-ink); font-weight: 700; }
.article-dates dd { margin: 0; }

/* シェア（記事の上と下） */
.share { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .6rem 1rem; width: min(100% - 2.5rem, 980px); margin: clamp(1.4rem, 3vw, 2rem) auto 0; }
.share--bottom { margin: clamp(2.5rem, 5vw, 3.5rem) auto 0; padding: 1.4rem 0; border-top: 1px solid var(--color-line-soft); border-bottom: 1px solid var(--color-line-soft); }
.share-label { font-size: .76rem; font-weight: 700; letter-spacing: .12em; color: var(--color-ink-soft); }
.share-btns { display: flex; flex-wrap: wrap; gap: .5rem; }
.share-btn { display: inline-flex; align-items: center; justify-content: center; gap: .45em; min-width: 44px; height: 44px; padding: 0 .7rem; border: 1px solid var(--color-line); border-radius: 999px; background: var(--color-paper); color: var(--color-brown); cursor: pointer; font-size: .8rem; font-weight: 700; transition: background .2s, color .2s, border-color .2s; }
.share-btn svg { width: 18px; height: 18px; fill: currentColor; }
.share-btn:hover, .share-btn:focus-visible { background: var(--color-brown); border-color: var(--color-brown); color: var(--color-on-dark); }
.share-btn--copy { padding: 0 1rem 0 .8rem; }
.share-toast { position: fixed; left: 50%; bottom: 1.5rem; transform: translate(-50%, 1rem); z-index: 90; margin: 0; padding: .7em 1.2em; border-radius: 999px; background: var(--color-brown-deep); color: var(--color-on-dark); font-size: .85rem; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.share-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
/* シェアの見え方の窓 */
.share-dialog { width: min(92vw, 520px); padding: 0; border: 0; border-radius: 6px; background: var(--color-paper); color: var(--color-ink); box-shadow: 0 20px 60px rgb(31 23 19 / .35); }
.share-dialog::backdrop { background: rgb(31 23 19 / .55); }
.share-dialog-inner { display: grid; gap: 1rem; padding: 1.2rem 1.2rem 1.4rem; }
.share-dialog-head { display: flex; align-items: center; justify-content: space-between; margin: 0; }
.share-dialog-head strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1.1rem; letter-spacing: .06em; }
.share-dialog-close { width: 40px; height: 40px; border: 0; background: none; font-size: 1.4rem; color: var(--color-muted); cursor: pointer; }
.share-card { overflow: hidden; border: 1px solid var(--color-line); border-radius: 8px; background: #fff; }
.share-card-img { display: block; width: 100%; height: auto; aspect-ratio: 1200 / 630; object-fit: cover; background: var(--color-ivory); }
.share-card-body { display: grid; gap: .25rem; padding: .7rem .9rem .85rem; }
.share-card-site { font-size: .72rem; color: var(--color-muted); }
.share-card-title { font-size: .92rem; line-height: 1.5; }
.share-card-desc { font-size: .78rem; line-height: 1.6; color: var(--color-ink-soft); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.share-dialog-note { margin: 0; font-size: .8rem; color: var(--color-ink-soft); line-height: 1.7; }
.share-dialog-btns { display: flex; flex-wrap: wrap; gap: .6rem; }
.share-dialog-btns .btn { flex: 1 1 auto; justify-content: center; }

/* 事務所の写真（大きな1枚＋小さな写真の列） */
.office-photos { max-width: 980px; margin: 0 auto; padding-top: clamp(2.5rem, 4vw, 3.5rem); }
.office-gallery-main { margin: 0; }
.office-gallery-main img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; background: var(--color-ivory); outline: 1px solid rgb(196 163 90 / .6); outline-offset: -1px; }
.office-gallery-main figcaption { margin-top: .5rem; font-size: .76rem; color: var(--color-muted); }
.office-gallery-thumbs { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); gap: .5rem; margin: .8rem 0 0; padding: 0; }
.office-gallery-thumbs a { display: block; opacity: .62; transition: opacity .2s; outline: 1px solid transparent; outline-offset: 2px; }
.office-gallery-thumbs a[aria-current="true"], .office-gallery-thumbs a:hover { opacity: 1; outline-color: var(--color-gold); }
.office-gallery-thumbs img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }

/* 目次: 日本語の見出し・目次ボタン */
.toc-title { display: flex; align-items: baseline; gap: .8rem; }
.toc-title span { font-family: var(--font-latin); font-size: .72rem; letter-spacing: .2em; color: var(--color-gold-ink); }
.toc-title { font-family: var(--font-mincho); font-size: 1.05rem; color: var(--color-ink); letter-spacing: .1em; }
.toc-float { position: fixed; right: 1rem; bottom: 1rem; z-index: 60; min-width: 64px; height: 44px; padding: 0 1rem; border: 1px solid var(--color-gold); border-radius: 999px; background: rgb(255 250 242 / .96); color: var(--color-brown); font-family: var(--font-mincho); font-size: .9rem; letter-spacing: .12em; cursor: pointer; box-shadow: 0 6px 18px rgb(31 23 19 / .16); }
.toc-float:hover { background: var(--color-brown); color: var(--color-on-dark); }

/* 編集長のひと言（記事の本文のあと。アイコン＋署名） */
.editor-comment { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 1.2rem; align-items: start; width: min(100% - 2.5rem, 860px); margin: clamp(3rem, 6vw, 4.5rem) auto 0; padding: 1.5rem 1.6rem; background: var(--color-paper); border: 1px solid var(--color-line-soft); border-left: 3px solid var(--color-gold); }
.editor-comment-icon { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--color-brown); color: var(--color-gold-on-dark); font-family: var(--font-latin); font-size: 1.4rem; letter-spacing: .06em; box-shadow: 0 0 0 1px var(--color-gold), 0 0 0 4px var(--color-paper), 0 0 0 5px rgb(196 163 90 / .55); }
.editor-comment-icon img { width: 100%; height: 100%; object-fit: cover; }
.editor-comment-label { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .3rem .8rem; font-size: .76rem; font-weight: 700; letter-spacing: .12em; color: var(--color-gold-ink); }
.editor-comment-label span { font-family: var(--font-latin); font-weight: 400; letter-spacing: .22em; }
.editor-comment-text { margin: .6rem 0 0; font-family: var(--font-mincho); font-size: 1.02rem; line-height: 1.95; letter-spacing: .03em; color: var(--color-brown); text-wrap: pretty; }
.editor-comment-sign { margin: .7rem 0 0; font-size: .76rem; color: var(--color-muted); letter-spacing: .06em; }
/* 記事のいちばん下に置いたとき（既定）は、下の余白も上と同じに（シェアの罫との間が詰まっていた。2026-11-07 designer レビュー） */
.office + .editor-comment, .profile + .editor-comment, .genba-advisor-wrap--end + .editor-comment { margin-bottom: clamp(3rem, 6vw, 4.5rem); }
@media (max-width: 640px) {
  .editor-comment { grid-template-columns: 56px minmax(0, 1fr); gap: .5rem .9rem; padding: 1.2rem 1rem; }
  .editor-comment-icon { width: 56px; height: 56px; font-size: 1rem; }
  /* スマホは、見出しだけアイコンの右に置き、ひと言と署名は幅いっぱいに（文の列が約230pxしかなく、変な所で折れていた） */
  .editor-comment-body { display: contents; }
  .editor-comment-label { grid-column: 2; align-self: center; }
  .editor-comment-text, .editor-comment-sign { grid-column: 1 / -1; }
  .share-label { width: 100%; text-align: center; }
}
/* 直し: シェアの窓を画面の真ん中に（土台の margin:0 で真ん中寄せが消えていた）・事務所の写真は幅を絞る・スマホのシェアは1行に */
.share-dialog { margin: auto; max-height: calc(100dvh - 2rem); overflow: auto; }
.office-photos { max-width: 760px; }
@media (max-width: 640px) {
  .share-btn--copy span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .share-btn--copy { padding: 0 .7rem; }
  .share-btns { gap: .4rem; }
}

/* ---------- トップのメインビジュアルの先生のロール（2段・逆向き。触れると止まる） ---------- */
.home-mv { grid-template-rows: 1fr auto; }
.mv-roll { position: relative; display: grid; gap: .6rem; padding: 0 0 clamp(1.4rem, 3vw, 2.2rem); }
.mv-roll-row { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.mv-roll-row.is-static { overflow-x: auto; scrollbar-width: none; }
.mv-roll-track { list-style: none; display: flex; gap: .75rem; margin: 0; padding: 0 .75rem; width: max-content; }
.mv-roll-row.is-rolling .mv-roll-track { animation: mv-roll var(--roll-dur, 40s) linear infinite; }
.mv-roll-row[data-roll-dir="right"].is-rolling .mv-roll-track { animation-direction: reverse; }
.mv-roll-row:hover .mv-roll-track, .mv-roll-row:focus-within .mv-roll-track { animation-play-state: paused; }
@keyframes mv-roll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.roll-card { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: .75rem; align-items: center; width: 300px; padding: .7rem .9rem; background: rgb(255 250 242 / .94); color: var(--color-ink); border: 1px solid rgb(211 183 104 / .6); text-decoration: none; transition: background .2s, transform .2s; }
.roll-card:hover { background: #fff; transform: translateY(-2px); }
.roll-icon { width: 52px; height: 52px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 1px var(--color-gold), 0 0 0 3px #fff; background: var(--color-brown); display: grid; place-items: center; color: var(--color-gold-on-dark); font-family: var(--font-mincho); }
.roll-icon img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.roll-body { display: grid; gap: .1rem; min-width: 0; }
.roll-body strong { font-family: var(--font-mincho); font-weight: 500; font-size: .98rem; letter-spacing: .05em; }
.roll-body strong small { font-family: var(--font-sans); font-size: .68rem; color: var(--color-muted); margin-left: .3em; font-weight: 400; }
.roll-office { font-size: .7rem; color: var(--color-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.roll-words { font-family: var(--font-mincho); font-size: .78rem; line-height: 1.55; color: var(--color-brown); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 640px) {
  .roll-card { width: 250px; grid-template-columns: 44px minmax(0, 1fr); padding: .6rem .7rem; }
  .roll-icon { width: 44px; height: 44px; }
  .mv-roll-row[data-roll-dir="right"] { display: none; } /* スマホは1段 */
}

/* ---------- 前後の記事（小さな丸い写真＋題＋名前。2026-10-16 作り直し） ---------- */
/* main.css の `.next-nav a { display:block }` に負けないよう、a.nn-card で指定する */
.next-nav { align-items: center; gap: clamp(1rem, 2.4vw, 2rem); }
.next-nav a.nn-card { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 1rem; align-items: center; padding: 1rem 1.1rem; background: var(--color-paper); border: 1px solid var(--color-line); text-align: left; transition: border-color .25s, transform .25s, box-shadow .25s; }
.next-nav a.nn-card:hover { border-color: var(--color-gold); transform: translateY(-2px); box-shadow: 0 10px 24px -18px rgb(52 37 31 / .45); }
.next-nav a.next-nav-next { grid-template-columns: minmax(0, 1fr) 56px; text-align: right; }
.next-nav-next .nn-icon { order: 2; }
.nn-icon { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 1px var(--color-gold), 0 0 0 4px var(--color-paper), 0 0 0 5px rgb(196 163 90 / .4); background: var(--color-brown); display: grid; place-items: center; }
.nn-icon img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.nn-icon--mono { color: var(--color-gold-on-dark); font-family: var(--font-mincho); font-size: 1.05rem; letter-spacing: .04em; }
.nn-body { display: grid; gap: .3rem; min-width: 0; }
.nn-dir { font-size: .72rem; letter-spacing: .12em; color: var(--color-gold-ink); font-weight: 700; }
.nn-title { font-family: var(--font-mincho); font-size: 1rem; line-height: 1.65; letter-spacing: .03em; color: var(--color-ink); font-feature-settings: "palt"; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nn-person { display: flex; flex-wrap: wrap; gap: .1rem .8em; font-size: .78rem; color: var(--color-muted); letter-spacing: .04em; }
.next-nav-next .nn-person { justify-content: flex-end; }
.nn-no { font-family: var(--font-latin); letter-spacing: .06em; }
.next-nav-back { font-size: .85rem; }
@media (max-width: 900px) {
  .next-nav { grid-template-columns: 1fr; }
  .next-nav a.next-nav-next { grid-template-columns: 56px minmax(0, 1fr); text-align: left; }
  .next-nav-next .nn-icon { order: 0; }
  .next-nav-next .nn-person { justify-content: flex-start; }
  .next-nav .next-nav-back { order: 3; justify-self: center; }
  .next-nav .is-empty { display: none; }
}

/* 顧問の現場からのカード: 名前の下に会社名（文節で折り返す） */
.row-person--stack { display: grid; gap: .15rem; }
.row-office { line-height: 1.6; }
/* 前後の記事の上の余白 */
.genba-block + .next-nav, .article-credit + .next-nav { margin-top: clamp(2.5rem, 5vw, 4rem); }

/* ---------- 下層ページの充実（2026-10-16） ---------- */
/* 冒頭の写真（about・お問い合わせ） */
.page-hero--photo .container { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.page-hero-photo { position: relative; margin: 0; padding: 12px; }
.page-hero-photo::before { content: ""; position: absolute; inset: 0; border: 1px solid var(--color-gold); pointer-events: none; }
.page-hero-photo::after { content: ""; position: absolute; inset: 5px; border: 1px solid var(--color-line-gold); pointer-events: none; }
.page-hero-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width: 860px) {
  .page-hero--photo .container { grid-template-columns: 1fr; }
  .page-hero-photo img { aspect-ratio: 16 / 9; }
}
/* 編集長のアイコン */
.editor--icon { grid-template-columns: 132px minmax(0, 1fr); gap: clamp(1.4rem, 3vw, 2.4rem); }
.editor-badge { width: 132px; height: 132px; border-radius: 50%; overflow: hidden; background: var(--color-paper); box-shadow: 0 0 0 1px var(--color-gold), 0 0 0 6px var(--color-ivory), 0 0 0 7px rgb(196 163 90 / .45); }
.editor-badge img { width: 100%; height: 100%; object-fit: cover; }
.editor-hint { font-size: var(--fs-meta); color: var(--color-muted); margin-top: 1rem; }
@media (max-width: 640px) { .editor--icon { grid-template-columns: 1fr; } .editor-badge { width: 104px; height: 104px; } }
/* 取材と記事づくりの決まり: 4枚のカード */
.policy-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.6rem; }
.policy-card { position: relative; padding: 1.4rem 1.4rem 1.2rem; background: var(--color-paper); border: 1px solid var(--color-line); }
.policy-card::after { content: ""; position: absolute; right: 7px; bottom: 7px; width: 14px; height: 14px; border-right: 1px solid var(--color-gold); border-bottom: 1px solid var(--color-gold); }
.policy-icon { display: block; width: 34px; height: 34px; color: var(--color-gold-strong); margin-bottom: .6rem; }
.policy-icon svg { width: 100%; height: 100%; }
.about-grid .policy-card h3 { font-family: var(--font-mincho); font-weight: 500; font-size: 1.08rem; letter-spacing: .06em; margin: 0 0 .6rem; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .7rem; }
.about-grid .policy-card p { font-size: .9rem; line-height: 1.85; margin-bottom: .6em; }
.policy-free { font-family: var(--font-sans); font-size: .7rem; font-weight: 700; letter-spacing: .08em; color: var(--color-brown); background: linear-gradient(90deg, var(--color-gold), var(--color-gold-light)); padding: .2em .7em; }
.policy-link { margin: 0; }
@media (max-width: 760px) { .policy-cards { grid-template-columns: 1fr; } }
/* 運営会社のロゴ */
.publisher-brand { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin-bottom: 1.4rem; }
.publisher-brand img { height: 40px; width: auto; }
.publisher-brand span { font-family: var(--font-mincho); font-size: .95rem; color: var(--color-ink-soft); letter-spacing: .04em; }
.publisher .publisher-logo { margin: 1.6rem auto 0; }
.publisher .publisher-logo img { height: 44px; width: auto; margin-inline: auto; }
.footer-publisher { display: flex; align-items: center; gap: .9rem; }
.footer-publisher img { height: 24px; width: auto; }
/* 取材の流れ */
.flow { margin-bottom: 3rem; }
.flow h2 { font-size: var(--fs-chapter); margin-top: .4rem; }
.flow-list { list-style: none; padding: 0; margin: 1.6rem 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; counter-reset: none; }
.flow-list li { position: relative; display: grid; align-content: start; gap: .45rem; padding: 1.2rem 1rem 1.1rem; background: var(--color-paper); border: 1px solid var(--color-line); border-top: 2px solid var(--color-gold); }
.flow-list li + li::before { content: ""; position: absolute; left: -.8rem; top: 1.9rem; width: .8rem; height: 1px; background: var(--color-gold); }
.flow-no { font-family: var(--font-latin); font-size: 1.6rem; line-height: 1; color: var(--color-gold-strong); font-variant-numeric: oldstyle-nums; }
.flow-list strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1rem; letter-spacing: .04em; line-height: 1.5; }
.flow-body { font-size: .82rem; line-height: 1.75; color: var(--color-ink-soft); }
.flow-free { margin-top: 1rem; text-align: center; }
.flow-free span { display: inline-block; font-size: .85rem; letter-spacing: .06em; color: var(--color-brown); border-bottom: 1px solid var(--color-gold); padding-bottom: .2rem; }
@media (max-width: 760px) {
  .flow-list { grid-template-columns: 1fr 1fr; }
  .flow-list li + li::before { display: none; }
}
@media (max-width: 420px) { .flow-list { grid-template-columns: 1fr; } }
/* 404: 最近の記事 */
.notfound-more { border-top: 1px solid var(--color-line-soft); }
.notfound-more h2 { font-size: var(--fs-chapter); margin: .4rem 0 1.6rem; }

/* 取材の流れ: 狭い枠では2列（番号を左に） */
.flow-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.flow-list li { grid-template-columns: auto minmax(0, 1fr); column-gap: 1rem; row-gap: .35rem; }
.flow-list li .flow-no { grid-row: span 2; }
.flow-list li + li::before { display: none; }
@media (max-width: 520px) { .flow-list { grid-template-columns: 1fr; } }

/* ---------- 先生を探す: 日本地図（2026-10-16） ---------- */
.finder-map { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; margin-bottom: clamp(2.5rem, 5vw, 4rem); padding: clamp(1.4rem, 3vw, 2.4rem); background: var(--color-paper); border: 1px solid var(--color-line); position: relative; }
.finder-map::before { content: ""; position: absolute; inset: 6px; border: 1px solid var(--color-line-gold); pointer-events: none; }
.finder-map-title { font-size: var(--fs-chapter); margin: .4rem 0 .8rem; }
.finder-map-note { font-size: .9rem; line-height: 1.85; color: var(--color-ink-soft); }
.finder-map-legend { display: flex; align-items: center; gap: .6rem; margin-top: 1.2rem; font-size: .82rem; color: var(--color-muted); }
.finder-map-legend strong { font-family: var(--font-latin); font-size: 1.5rem; font-weight: 500; color: var(--color-gold-strong); margin-left: .2rem; }

.finder-map-stage { position: relative; width: 100%; max-width: 640px; justify-self: center; }
.map-svg { display: block; width: 100%; height: auto; overflow: visible; }
.map-svg path { fill: #ece3d3; stroke: #fffaf2; stroke-width: 1.4; stroke-linejoin: round; transition: fill .3s; }
.map-svg path.has-advisor { fill: #e6d3a3; cursor: pointer; }
.map-svg path.has-advisor:hover { fill: #dcc17f; }
.map-svg path.is-selected { fill: var(--color-gold); }
.map-frame { fill: none; stroke: var(--color-line); stroke-width: 1.2; stroke-dasharray: 4 4; }
/* 印 */
.map-pin-wrap { position: absolute; left: var(--x); top: var(--y); width: 0; height: 0; z-index: 2; }
.map-pin-wrap.is-open { z-index: 5; }
.map-pin { position: absolute; left: 0; bottom: 0; transform: translate(-50%, 0); display: grid; justify-items: center; gap: 3px; padding: 0; border: 0; background: none; cursor: pointer; opacity: 0; translate: 0 -14px; scale: .6; transition: opacity .5s ease, translate .6s cubic-bezier(.2, 1.4, .4, 1), scale .6s cubic-bezier(.2, 1.4, .4, 1); transition-delay: calc(var(--i) * 140ms + 200ms); }
.finder-map.is-shown .map-pin { opacity: 1; translate: 0 0; scale: 1; }
.map-faces { position: relative; display: flex; padding: 3px; background: #fffaf2; border-radius: 999px; box-shadow: 0 0 0 1px var(--color-gold), 0 6px 14px -6px rgb(52 37 31 / .55); }
.map-faces::after { content: ""; position: absolute; left: 50%; bottom: -7px; width: 10px; height: 10px; background: #fffaf2; border-right: 1px solid var(--color-gold); border-bottom: 1px solid var(--color-gold); transform: translateX(-50%) rotate(45deg); }
.map-face { position: relative; z-index: 1; width: 34px; height: 34px; border-radius: 50%; overflow: hidden; background: var(--color-brown); display: grid; place-items: center; }
.map-face + .map-face { margin-left: -12px; box-shadow: -2px 0 0 #fffaf2; }
.map-face img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.map-face-name { color: var(--color-gold-on-dark); font-family: var(--font-mincho); font-size: .7rem; }
.map-count { position: absolute; top: -8px; right: -10px; z-index: 2; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--color-brown); color: #fff; font-family: var(--font-latin); font-size: .78rem; line-height: 20px; text-align: center; box-shadow: 0 0 0 2px #fffaf2; }
.map-pin-name { margin-top: 6px; font-size: .68rem; font-weight: 700; letter-spacing: .06em; color: var(--color-brown); background: rgb(255 250 242 / .92); padding: 1px 6px; white-space: nowrap; }
.map-pin:hover .map-faces, .map-pin:focus-visible .map-faces, .map-pin[aria-expanded="true"] .map-faces { box-shadow: 0 0 0 2px var(--color-gold), 0 8px 18px -6px rgb(52 37 31 / .6); }
/* 金の波紋（ときどき） */
.map-pin-wrap::before { content: ""; position: absolute; left: 0; top: 0; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; border: 1.5px solid var(--color-gold); opacity: 0; pointer-events: none; }
.finder-map.is-shown .map-pin-wrap::before { animation: map-ripple 3.6s ease-out infinite; animation-delay: calc(var(--i) * 140ms + 1.2s); }
@keyframes map-ripple { 0% { transform: scale(.4); opacity: .9; } 60%, 100% { transform: scale(3.2); opacity: 0; } }
.map-pin-wrap.is-dim .map-pin { opacity: .35; filter: grayscale(.8); }
.map-pin-wrap.is-dim::before { display: none; }
/* 小さな一覧 */
.map-pop { position: absolute; left: 0; top: 14px; transform: translateX(-50%); width: min(280px, 80vw); background: #fffaf2; border: 1px solid var(--color-gold); box-shadow: 0 18px 40px -18px rgb(52 37 31 / .55); padding: .9rem; z-index: 6; }
.map-pop-head { font-family: var(--font-mincho); font-size: .95rem; display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .5rem; }
.map-pop-head span { font-family: var(--font-sans); font-size: .75rem; color: var(--color-muted); }
.map-pop ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.map-pop li a { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: .6rem; align-items: center; padding: .45rem .3rem; text-decoration: none; color: var(--color-ink); border-top: 1px solid var(--color-line-soft); }
.map-pop li:first-child a { border-top: 0; }
.map-pop li a:hover { background: var(--color-ivory); }
.map-pop-face { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; background: var(--color-brown); display: grid; place-items: center; }
.map-pop-face img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.map-pop-body { display: grid; min-width: 0; }
.map-pop-body strong { font-family: var(--font-mincho); font-weight: 500; font-size: .95rem; }
.map-pop-body strong small { font-size: .7rem; color: var(--color-muted); margin-left: .25em; font-family: var(--font-sans); }
.map-pop-body span { font-size: .72rem; color: var(--color-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.map-pop-arrow { color: var(--color-gold-strong); }
.map-pop-filter { margin-top: .6rem; width: 100%; padding: .6rem; font-size: .8rem; font-weight: 700; letter-spacing: .04em; color: var(--color-on-dark); background: var(--color-brown); border: 0; cursor: pointer; }
.map-pop-filter:hover { background: var(--color-brown-deep); }
@media (max-width: 860px) {
  .finder-map { grid-template-columns: 1fr; }
  .finder-map-stage { max-width: 520px; }
}
@media (max-width: 520px) {
  .map-face { width: 28px; height: 28px; }
  .map-face + .map-face { margin-left: -10px; }
  .map-pin-name { font-size: .62rem; }
}
@media (prefers-reduced-motion: reduce) {
  .map-pin { transition: none; }
  .finder-map.is-shown .map-pin-wrap::before { animation: none; }
}

/* 地図の印: 写真1枚＋人数、近い印は線でつなぐ（作り直し） */



.map-faces { display: grid; padding: 3px; }
.map-face, .map-face + .map-face { grid-area: 1 / 1; margin-left: 0; box-shadow: none; opacity: 0; transition: opacity .7s ease; }
.map-face.is-front { opacity: 1; }
.map-pin-name { position: absolute; left: 50%; bottom: calc(100% + 6px); transform: translateX(-50%); margin: 0; opacity: 0; pointer-events: none; transition: opacity .2s; box-shadow: 0 0 0 1px var(--color-line); }
.map-pin:hover .map-pin-name, .map-pin:focus-visible .map-pin-name, .map-pin[aria-expanded="true"] .map-pin-name { opacity: 1; }
.map-pin-wrap::before { top: 0; }
.finder-map-legend { margin-top: 1.2rem; }
.map-chips { list-style: none; margin: .7rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.map-chip { display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .75rem; font-size: .82rem; color: var(--color-ink); background: #fffaf2; border: 1px solid var(--color-line); cursor: pointer; transition: border-color .2s, background .2s; }
.map-chip span { font-family: var(--font-latin); font-size: .9rem; color: var(--color-gold-strong); }
.map-chip:hover { border-color: var(--color-gold); }
.map-chip[aria-pressed="true"] { background: var(--color-brown); color: var(--color-on-dark); border-color: var(--color-brown); }
.map-chip[aria-pressed="true"] span { color: var(--color-gold-on-dark); }
@media (max-width: 520px) {
  .map-face { width: 26px; height: 26px; }
  .map-faces { padding: 2px; }
  .map-count { min-width: 17px; height: 17px; line-height: 17px; font-size: .68rem; top: -7px; right: -8px; }
  .map-pop { position: fixed; left: 50%; top: auto; bottom: 16px; transform: translateX(-50%); width: calc(100vw - 32px); }
}

/* 地図の印を、しずく形のピン（頭の丸に先生の写真）に（2026-10-16 梅村「ピンに先生の写真を入れてほしい」） */
.map-faces { width: 46px; height: 46px; padding: 3px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: linear-gradient(135deg, var(--color-gold-light), var(--color-gold) 55%, var(--color-gold-strong)); box-shadow: 0 6px 12px -5px rgb(52 37 31 / .6); margin-bottom: 10px; }
.map-faces::after { display: none; }
.map-face, .map-face + .map-face { width: 40px; height: 40px; border: 2px solid #fffaf2; transform: rotate(45deg); }
.map-pin:hover .map-faces, .map-pin:focus-visible .map-faces, .map-pin[aria-expanded="true"] .map-faces { box-shadow: 0 0 0 2px #fffaf2, 0 0 0 3.5px var(--color-gold), 0 8px 16px -5px rgb(52 37 31 / .65); }
.map-count { top: -6px; right: -12px; }
.map-pin { transform: translate(-50%, 0); }
@media (max-width: 520px) {
  .map-faces { width: 36px; height: 36px; padding: 2px; margin-bottom: 8px; }
  .map-face, .map-face + .map-face { width: 32px; height: 32px; }
}

/* 地図の拡大・縮小とまとまり（2026-10-16 作り直し） */
.map-viewport { position: relative; overflow: hidden; touch-action: pan-y; cursor: default; }
.finder-map.is-zoomed .map-viewport { touch-action: none; cursor: grab; }
.finder-map.is-zoomed .map-viewport:active { cursor: grabbing; }
.map-layer { transform-origin: 0 0; will-change: transform; }
.map-svg path, .map-frame { vector-effect: non-scaling-stroke; }
.map-pins { position: absolute; inset: 0; pointer-events: none; }
.map-pins > * { pointer-events: auto; }
.map-pin-wrap.is-clustered, .map-pin-wrap.is-out, .map-cluster.is-out { visibility: hidden; }
.map-pin-wrap.is-clustered .map-pin { opacity: 0 !important; }
.map-cluster { position: absolute; z-index: 3; transform: translate(-50%, -50%); width: calc(40px + var(--n, 0) * 0px); height: 40px; min-width: 40px; padding: 0 .4rem; display: inline-flex; align-items: baseline; justify-content: center; gap: 1px; border-radius: 999px; border: 2px solid #fffaf2; background: radial-gradient(circle at 35% 30%, var(--color-gold-light), var(--color-gold) 60%, var(--color-gold-strong)); color: var(--color-brown); box-shadow: 0 0 0 1px var(--color-gold), 0 8px 16px -6px rgb(52 37 31 / .6); cursor: zoom-in; line-height: 36px; opacity: 0; scale: .5; transition: opacity .45s ease, scale .55s cubic-bezier(.2, 1.4, .4, 1); transition-delay: calc(var(--i) * 140ms + 200ms); }
.finder-map.is-shown .map-cluster { opacity: 1; scale: 1; }
.map-cluster::before { content: ""; position: absolute; inset: -7px; border-radius: inherit; border: 1.5px solid var(--color-gold); opacity: 0; pointer-events: none; }
.finder-map.is-shown .map-cluster::before { animation: map-ripple-c 3.6s ease-out infinite; animation-delay: calc(var(--i) * 140ms + 1.2s); }
@keyframes map-ripple-c { 0% { transform: scale(.9); opacity: .9; } 60%, 100% { transform: scale(1.6); opacity: 0; } }
.map-cluster:hover { box-shadow: 0 0 0 2px var(--color-brown), 0 10px 20px -6px rgb(52 37 31 / .65); }
.map-cluster-n { font-family: var(--font-latin); font-size: 1.15rem; font-weight: 500; }
.map-cluster-u { font-size: .62rem; font-weight: 700; }
.map-zoom { position: absolute; right: 0; bottom: 0; display: flex; gap: 4px; z-index: 4; }
.map-zoom button { min-width: 34px; height: 34px; padding: 0 .55rem; border: 1px solid var(--color-line); background: #fffaf2; color: var(--color-brown); font-size: 1.05rem; line-height: 1; cursor: pointer; }
.map-zoom button:hover { border-color: var(--color-gold); }
.map-zoom .map-zoom-reset { font-size: .75rem; font-weight: 700; letter-spacing: .06em; }
.finder-map:not(.is-zoomed) .map-zoom-reset, .finder-map:not(.is-zoomed) [data-map-zoom="out"] { opacity: .45; }
/* 最初の演出のあとは、まとまりがほどけたピンをすぐ出す */
.finder-map.is-settled .map-pin, .finder-map.is-settled .map-cluster { transition-delay: 0s; }
.map-layer { will-change: auto; }

.map-pop-note { font-size: .72rem; color: var(--color-muted); margin: -.2rem 0 .4rem; }
.map-pop-head { gap: .8rem; }
.map-pop-head span { white-space: nowrap; }
/* 深く寄ったら、ピンの事務所名を出しておく */
.finder-map.is-deep .map-pin-name { opacity: 1; }
.map-pin-name { max-width: 14em; overflow: hidden; text-overflow: ellipsis; }

/* 深く寄ったときの事務所名は main.js が重ならないものだけ出す */
.finder-map.is-deep .map-pin-name { opacity: 0; }
.map-pin-wrap.show-name .map-pin-name, .map-pin:hover .map-pin-name, .map-pin:focus-visible .map-pin-name, .map-pin[aria-expanded="true"] .map-pin-name { opacity: 1; }
.map-pop-addr { margin: .6rem 0 0; padding-top: .55rem; border-top: 1px solid var(--color-line-soft); font-size: .74rem; line-height: 1.6; color: var(--color-ink-soft); display: grid; gap: .25rem; }
.map-pop-addr a { color: var(--color-gold-ink); font-weight: 700; text-decoration: none; }
.map-pop-addr a:hover { text-decoration: underline; }
.map-pop-addr a span { margin-left: .2em; }

/* ---------- 運営会社（/company）と、顧問の流儀とはの「取材を受ける先生へ」（2026-10-16） ---------- */
.page-hero--company .company-logo { margin: .4rem 0 1rem; }
.page-hero--company .company-logo img { height: 46px; width: auto; }



.company-links { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; }
.company-mission { background: var(--color-brown); color: var(--color-on-dark); padding-block: clamp(3rem, 6vw, 4.5rem); text-align: center; }
.company-mission .label-en { color: var(--color-gold-on-dark); }
.mvv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 1.6rem auto 0; max-width: 980px; background: rgb(219 197 127 / .35); border: 1px solid rgb(219 197 127 / .35); }



.mvv-value { font-family: var(--font-latin) !important; letter-spacing: .12em !important; }

.vitamin-list { list-style: none; padding: 0; margin: 1rem 0 1.2rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .6rem; }
.vitamin-list li { display: grid; gap: .3rem; padding: 1rem 1.1rem; background: var(--color-paper); border: 1px solid var(--color-line); border-top: 2px solid var(--color-gold); }
.vitamin-no { font-family: var(--font-latin); color: var(--color-gold-strong); font-size: 1.1rem; }
.vitamin-list strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1.02rem; letter-spacing: .05em; }
.vitamin-list span:last-child { font-size: .8rem; color: var(--color-ink-soft); line-height: 1.7; }

.merit-list { list-style: none; padding: 0; margin: 1rem 0 1.4rem; display: grid; gap: .8rem; }
.merit-list li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1.1rem; padding: 1.2rem 1.3rem; background: var(--color-paper); border: 1px solid var(--color-line); position: relative; }
.merit-list li::after { content: ""; position: absolute; right: 7px; bottom: 7px; width: 14px; height: 14px; border-right: 1px solid var(--color-gold); border-bottom: 1px solid var(--color-gold); }
.merit-no { grid-row: span 2; font-family: var(--font-latin); font-size: 1.7rem; line-height: 1; color: var(--color-gold-strong); font-variant-numeric: oldstyle-nums; }
.merit-list strong { font-family: var(--font-mincho); font-weight: 500; font-size: 1.15rem; letter-spacing: .1em; }
.about-grid .merit-list p { margin: .35rem 0 0; font-size: .9rem; line-height: 1.85; }
.merit-cta { margin-top: .4rem; }
.footer-publisher-link { display: inline-flex; }
@media (max-width: 760px) { .mvv { grid-template-columns: 1fr; } }
.movie-list-more { margin-top: clamp(2.5rem, 5vw, 3.5rem); text-align: center; }

/* ---------- 運営会社 v2（理念→ご縁→これから→顧問の流儀→サービス→提携。2026-10-16） ---------- */
.company-toc { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1.4rem; }
.company-toc a { font-size: .8rem; padding: .35rem .8rem; border: 1px solid var(--color-line); background: #fffaf2; color: var(--color-ink); text-decoration: none; }
.company-toc a:hover { border-color: var(--color-gold); }
.company-mission { text-align: left; }
.company-mission .container { max-width: 1040px; }
.company-band-title { font-size: var(--fs-chapter); color: var(--color-on-dark); margin: .4rem 0 .6rem; }

.mvv-mission, .mvv-vision, .mvv-values { border-top: 1px solid rgb(219 197 127 / .35); padding: 1.8rem 0; display: grid; grid-template-columns: 9rem minmax(0, 1fr); column-gap: 2rem; }
.mvv-mission > small, .mvv-vision > small, .mvv-values > small { font-family: var(--font-latin); letter-spacing: .22em; color: var(--color-gold-on-dark); font-size: .8rem; padding-top: .5rem; grid-row: span 3; }
.mvv-mission strong, .mvv-vision strong { font-family: var(--font-mincho); font-weight: 500; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); line-height: 1.6; letter-spacing: .06em; color: var(--color-on-dark); }
.mvv-mission p, .mvv-vision p { color: var(--color-on-dark-muted); line-height: 1.95; margin-top: .9rem; max-width: 46em; }
.mvv-value-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.mvv-value-grid > div { border: 1px solid rgb(219 197 127 / .3); padding: 1.1rem 1.1rem 1rem; }
.mvv-value-grid b { font-family: var(--font-latin); font-weight: 500; font-size: 1.25rem; letter-spacing: .08em; color: var(--color-gold-on-dark); }
.mvv-value-grid p { color: var(--color-on-dark-muted); font-size: .88rem; line-height: 1.85; margin-top: .5rem; }
.story-close { font-family: var(--font-mincho); font-size: 1.12rem; line-height: 1.9; color: var(--color-ink); border-left: 2px solid var(--color-gold); padding-left: 1rem; }
.company-sub { font-family: var(--font-mincho); font-weight: 500; font-size: 1.1rem; margin: 2rem 0 .8rem; }
.advisor-services { list-style: none; padding: 0; margin: 0; display: grid; gap: .6rem; }
.advisor-services li { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1rem; padding: .9rem 1rem; background: var(--color-paper); border: 1px solid var(--color-line); }
.advisor-services strong { font-family: var(--font-mincho); font-weight: 500; }
.advisor-services span { font-size: .88rem; line-height: 1.8; color: var(--color-ink-soft); }
.company-partner { background: var(--color-brown-deep, #34251f); color: var(--color-on-dark); padding-block: clamp(3rem, 6vw, 4.5rem); }
.company-partner .container { max-width: 1040px; }
.company-partner .label-en { color: var(--color-gold-on-dark); }
.partner-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.4rem; }
.partner-card { border: 1px solid rgb(219 197 127 / .4); padding: 1.5rem 1.4rem; background: rgb(255 250 242 / .04); }
.partner-to { font-family: var(--font-mincho); font-size: 1.2rem; color: var(--color-gold-on-dark); margin-bottom: .8rem; }
.partner-card p:not(.partner-to) { color: var(--color-on-dark-muted); line-height: 1.95; margin-top: .6rem; }
.partner-contact { margin-top: 1.4rem; padding: 1.3rem 1.4rem; background: #fffaf2; color: var(--color-ink); display: grid; gap: .5rem; }
.partner-contact-head { font-weight: 700; font-size: .9rem; letter-spacing: .04em; }
.partner-contact-row { display: grid; grid-template-columns: 4em minmax(0, 1fr); gap: .8rem; align-items: baseline; }
.partner-contact-row span { font-size: .8rem; color: var(--color-muted); }
.partner-contact-row a { font-family: var(--font-latin); font-size: 1.3rem; color: var(--color-brown); text-decoration: none; letter-spacing: .03em; }
.partner-contact-row a:hover { text-decoration: underline; }
@media (max-width: 760px) {
  .mvv-mission, .mvv-vision, .mvv-values { grid-template-columns: 1fr; }
  .mvv-mission > small, .mvv-vision > small, .mvv-values > small { grid-row: auto; padding-top: 0; margin-bottom: .4rem; }
  .mvv-value-grid, .partner-grid { grid-template-columns: 1fr; }
  .advisor-services li { grid-template-columns: 1fr; gap: .2rem; }
}

/* 運営会社: あゆみ（年表）。事実を静かに並べ、最後の「これから」だけ点線（2026-10-16 梅村「さりげなく感じさせる…図。品格が大事」） */
.history { list-style: none; padding: 0; margin: 1.8rem 0 1.4rem; position: relative; }
.history::before { content: ""; position: absolute; left: 6.6rem; top: .6rem; bottom: .6rem; width: 1px; background: linear-gradient(var(--color-gold), var(--color-gold-light)); }
.history li { position: relative; display: grid; grid-template-columns: 6.6rem minmax(0, 1fr); column-gap: 1.6rem; padding: .7rem 0; align-items: baseline; }
.history li::before { content: ""; position: absolute; left: calc(6.6rem - 4px); top: 1.2rem; width: 9px; height: 9px; border-radius: 50%; background: var(--color-paper); border: 1px solid var(--color-gold); }
.history time, .history .history-when { font-family: var(--font-latin); font-size: .95rem; letter-spacing: .04em; color: var(--color-gold-strong); white-space: nowrap; }
.history p { margin: 0; font-family: var(--font-mincho); font-size: 1rem; line-height: 1.8; color: var(--color-ink); }
.history li.is-future::before { background: var(--color-gold); }
.history li.is-future p { color: var(--color-brown); }
.history li.is-future .history-when { font-family: var(--font-sans); font-size: .78rem; letter-spacing: .14em; }

@media (max-width: 520px) {
  .history::before { left: 4.9rem; }
  .history li { grid-template-columns: 4.9rem minmax(0, 1fr); column-gap: 1.1rem; }
  .history li::before { left: calc(4.9rem - 4px); }
  .history time, .history .history-when { font-size: .82rem; }
}
.history-label { margin-top: 2.2rem; }
.history { margin-bottom: 2.4rem; }
.partner-list { list-style: none; padding: 0; margin: .8rem 0; display: grid; gap: .5rem; }
.partner-list li { position: relative; padding-left: 1.2rem; color: var(--color-on-dark-muted); line-height: 1.85; font-weight: 400; }
.partner-list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 6px; height: 6px; background: var(--color-gold-on-dark); transform: rotate(45deg); }
.company-band-title + .mvv-mission { margin-top: 1.6rem; }

.page-hero .lead--sub { margin-top: .4rem; font-size: .98rem; }
