/* 2026-10 renewal: content-page modules */
.renewal-photo,
figure.framed .renewal-photo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.renewal-photo--portrait { aspect-ratio: 2 / 3; }
.renewal-photo--wide { aspect-ratio: 3 / 2; }

/* Real supplied photographs retain their complete frame. Hero backgrounds are handled separately. */
.page-flow .flow-intro img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
.hero-portrait img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
.renewal-intro { max-width: 46rem; margin: 0 auto; }
.renewal-copy { white-space: pre-line; }
.renewal-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.renewal-card { background: rgba(255,255,255,.66); border-top: 1px solid var(--navy); padding: clamp(24px,3vw,38px); }
.renewal-card h3 { margin: 12px 0; font: 400 21px/1.7 var(--ja); }
.renewal-card p { margin: 0; color: rgba(43, 45, 40,.72); font-size: 13px; }
.renewal-split { display: grid; grid-template-columns: minmax(260px,.9fr) 1.1fr; gap: clamp(36px,7vw,96px); align-items: center; }
.renewal-label { margin: 0 0 14px; color: var(--teal-text, #6e6248); font: 400 12px/1.3 var(--en); letter-spacing: .15em; }
.renewal-note { margin-top: 18px; color: rgba(43, 45, 40, .72); font-size: 12px; }
.renewal-principles { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.renewal-principles li { padding: 15px 0; border-bottom: 1px solid var(--line); font-family: var(--ja); }
.renewal-principles strong { display: inline-block; min-width: 6em; margin-right: 14px; color: var(--teal-text, #6e6248); font-family: var(--en); font-weight: 400; }
.renewal-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.renewal-facts > div { padding: 22px; border: 1px solid var(--line); }
.renewal-facts dt { color: var(--teal-text, #6e6248); font: 400 12px/1.3 var(--en); letter-spacing: .12em; }
.renewal-facts dd { margin: 9px 0 0; font-size: 13px; }
@media (max-width: 760px) { .renewal-cards, .renewal-facts, .renewal-split { grid-template-columns: 1fr; } }

/* Supplied copy: retain wording, separate paragraphs for readability. */
.original-width { max-width: 850px; }
.original-copy p { margin: 0 0 1.4em; }
.original-copy p:last-child { margin-bottom: 0; }
.original-copy { overflow-wrap: anywhere; }
.original-width > .original-copy + .original-copy { margin-top: 1.5em; }
.page-concept h1.hd-ja { font-size: clamp(20px, 3.6vw, 30px); text-wrap: balance; }
.page-concept .sec--teal .original-copy { font-size: clamp(17px, 2.2vw, 28px); line-height: 2; }
@media (max-width: 760px) {
  .page-concept .original-width .original-copy br, .page-concept .concept-intro br { display: none; }
  .page-concept .original-width .original-copy, .page-concept .concept-intro { text-wrap: pretty; }
}

/* 2026-10-16 スマホで人物写真を横幅いっぱい・4:5に（顔を上寄りで残す） */
@media (max-width: 860px) {
  figure.framed .renewal-photo--portrait { aspect-ratio: 4 / 5; object-fit: cover !important; object-position: center 22%; height: auto; }
}

/* 2026-10-16 プロフィール: オーナーズボイスの最新3本 */
.profile-voice-lead { margin: 0 0 36px; }
.profile-voice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2.4vw, 34px); }
.profile-voice-grid > .btn { grid-column: 1 / -1; justify-self: start; }
.profile-voice .latest-card { display: block; color: var(--ink, #2b2d28); text-decoration: none; }
.profile-voice .latest-card figure { margin: 0 0 18px; aspect-ratio: 3 / 2; overflow: hidden; background: #094c4a; }
.profile-voice .latest-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.profile-voice .latest-card h3 { margin: 0 0 8px; font-size: 16px; line-height: 1.7; font-weight: 400; }
.profile-voice .latest-card .journal-channel-description { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px; line-height: 1.9; color: rgba(43, 45, 40, .72); }
.profile-voice .latest-card b { display: inline-block; margin-top: 10px; font-weight: 400; font-size: 12px; letter-spacing: .1em; color: var(--teal-text, #6e6248); }
.profile-voice-more { margin: 36px 0 0; }
.profile-voice:not(.is-loaded) .profile-voice-more { display: none; }
@media (max-width: 860px) { .profile-voice-grid { grid-template-columns: 1fr; } }

/* 2026-10-16 生地選び: 取り扱い生地の一覧 */
.fabric-list { position: relative; isolation: isolate; overflow: hidden; color: #f6f2ec; text-align: center; }
.fabric-list::before, .fabric-list::after { content: ""; position: absolute; inset: 0; z-index: -2; }
.fabric-list::before { background: url("/img/shoot-20261003/S-017.webp") center/cover no-repeat; }
.fabric-list::after { z-index: -1; background: rgba(4, 32, 31, .64); }
.fabric-list .eyebrow { color: #cfc2a2; }
.fabric-list .hd-ja { color: #f6f2ec; }
.fabric-list-lead { max-width: 36em; margin: 22px auto 48px; color: #d9dccb; line-height: 2.1; }
.fabric-list-grid { list-style: none; margin: 0 auto; padding: 0; max-width: 1180px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.fabric-list-grid li { display: flex; align-items: center; justify-content: center; min-height: 104px; padding: 14px 10px; background: rgba(6, 51, 50, .74); border: 1px solid rgba(207, 194, 162, .3); }
.fabric-list-grid span { font-family: "Cormorant", "Noto Serif JP", serif; font-size: 15px; line-height: 1.4; letter-spacing: .08em; color: #f6f2ec; word-break: keep-all; overflow-wrap: anywhere; }
.fabric-list-note { margin: 34px auto 0; max-width: 40em; font-size: 13px; color: #d9dccb; }
@media (max-width: 1020px) { .fabric-list-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px) { .fabric-list-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .fabric-list-grid li { min-height: 84px; } .fabric-list-grid span { font-size: 13px; } }

/* 2026-10-29 修正依頼: SERVICEページ（サービス一覧→各サービスの説明→よくある質問） */
.service-index .service-line { grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; color: inherit; text-decoration: none; }
.service-index .service-line small { display: block; margin-top: 6px; color: var(--teal-text, #6e6248); font: 400 11px/1.3 var(--en); letter-spacing: .14em; }
.service-index .service-line i { color: var(--teal-text, #6e6248); font-style: normal; transition: transform .2s; }
.service-index .service-line:hover i, .service-index .service-line:focus-visible i { transform: translateY(3px); }
.service-detail { scroll-margin-top: 92px; }
.service-detail .lead + p { margin-top: 18px; color: rgba(43, 45, 40, .72); line-height: 2.1; }
.service-detail .btn { margin-top: 26px; }
.faq-section .faq { margin-top: 28px; border-top: 1px solid var(--line); }
.faq-section .faq summary { padding-right: 2em; font-size: 16px; line-height: 1.8; }
.faq-section .faq details p { margin: 14px 0 0; color: rgba(43, 45, 40, .72); font-size: 15px; line-height: 2; }
.faq-section .faq details a { margin-left: .5em; color: var(--teal-text, #6e6248); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1280px) { .service-detail { scroll-margin-top: 80px; } }

/* 2026-10-29 修正依頼: お客様の声（/reviews） */
.reviews-intro { max-width: 46rem; margin: 0 auto clamp(36px, 6vw, 64px); text-align: center; }
.reviews-intro h1 { margin: 0 0 18px; }
.reviews-intro p:not(.eyebrow) { color: rgba(43, 45, 40, .72); }
.review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px) clamp(18px, 3vw, 40px); }
.review-card { margin: 0; }
.review-card figure { margin: 0 0 18px; aspect-ratio: 3 / 4; overflow: hidden; background: var(--sky, #d9dccb); }
.review-card img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.review-role { margin: 0 0 6px; color: var(--teal-text, #6e6248); font-size: 12px; letter-spacing: .08em; }
.review-card h2 { margin: 0; font: 400 clamp(19px, 1.8vw, 23px)/1.6 var(--ja); letter-spacing: .06em; }
.review-card h2 span { margin-left: .35em; font-size: .78em; }
@media (max-width: 960px) { .review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .review-grid { grid-template-columns: 1fr; } }
/* 各サービスの説明は写真と文章を同じ幅にし、長いサービス名が1文字だけ折り返さないよう見出しを抑える */
.service-detail .renewal-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.service-detail .hd-ja { font-size: clamp(24px, 2.5vw, 34px); }
@media (max-width: 760px) { .service-detail .renewal-split { grid-template-columns: 1fr; } }

/* 2026-10-30: お客様の声は写真が届くまで文字だけで見せる（写真が届いたら figure を戻し、--text を外す） */
.review-grid--text { max-width: 60rem; margin-inline: auto; gap: 0 clamp(18px, 3vw, 40px); }
.review-grid--text .review-card { padding: clamp(24px, 3vw, 34px) 0; border-top: 1px solid rgba(9, 76, 74, .18); }
.review-grid--text .review-role { margin-bottom: 10px; }
@media (max-width: 520px) {
  .review-grid--text .review-card { padding: 22px 0; }
  .review-grid--text .review-card:last-child { border-bottom: 1px solid rgba(9, 76, 74, .18); }
}
/* 一覧の最後の段にも線を引いて、PCでもスマホと同じように閉じる */
@media (min-width: 961px) { .review-grid--text .review-card:nth-last-child(-n+3) { border-bottom: 1px solid rgba(9, 76, 74, .18); } }
@media (min-width: 521px) and (max-width: 960px) { .review-grid--text .review-card:nth-last-child(-n+2) { border-bottom: 1px solid rgba(9, 76, 74, .18); } }

/* 2026-11-01: お仕立ての様子（旧 /voice）の写真と文を、オーダーの流れの各ステップに入れた */
.flow-list > li > .flow-scenes { grid-column: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 3vw, 32px); }
.flow-list > li > .flow-scenes--single { grid-template-columns: minmax(0, 1fr); max-width: 44rem; }
.flow-scene { margin: 0; scroll-margin-top: 110px; }
.flow-scene img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; background: #094c4a; }
.flow-scenes--single .flow-scene { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(18px, 3vw, 36px); align-items: center; }
.flow-scene figcaption { margin-top: 14px; }
.flow-scenes--single .flow-scene figcaption { margin-top: 0; }
.flow-scene .eyebrow { margin: 0 0 4px; }
.flow-scene h3 { margin: 0 0 6px; font: 400 clamp(17px, 1.8vw, 20px)/1.7 var(--ja); letter-spacing: .06em; }
.flow-scene figcaption > p:last-child { margin: 0; font-size: 14px; line-height: 1.9; color: rgba(43, 45, 40, .7); }
.flow-scene#consultation img { object-position: center 42%; }
.flow-scene#fabric img { object-position: center 48%; }
.flow-scene#details img { object-position: center 56%; }
.flow-scene#measure img { object-position: center 42%; }
.flow-scene#tailor img { object-position: center 18%; }
@media (max-width: 760px) {
  .flow-list > li > .flow-scenes { grid-column: 1 / -1; grid-template-columns: 1fr; gap: 40px; }
  .flow-scenes--single .flow-scene { grid-template-columns: 1fr; gap: 0; }
  .flow-scenes--single .flow-scene figcaption { margin-top: 14px; }
}
/* 2026-11-01 字体の変更で英字の店名が長くなり、スマホの所在地で「DRESSERS by THE REQUIRED」が枠からはみ出したため、
   店名は丸ごと次の行へ送り、それでも収まらないときは語と語の間で折り返す */
@media (max-width: 760px) { .fact-row dd .nowrap { display: inline-block; white-space: normal; } }
/* 2026-11-01 メニューから Flow を外し、サービスのオーダースーツの欄に流れの要約と「詳しく見る」（/flow）を入れた */
.service-flow { margin: 26px 0 30px; }
.service-flow-title { margin: 0 0 8px; font-size: 13px; letter-spacing: .12em; color: var(--teal-text, #6e6248); }
.service-flow-steps { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
.service-flow-steps li { display: flex; gap: 16px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.6; }
.service-flow-steps span { flex: none; width: 1.8em; font: 400 15px/1 var(--en); letter-spacing: .06em; color: var(--teal-text, #6e6248); font-variant-numeric: lining-nums; }
.flow-back { margin: 44px 0 0; text-align: center; font-size: 14px; }
.flow-back a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
/* 2026-11-01 生地のページの中身を /flow の 05 の下に移した。最後の「サービス（オーダースーツ）に戻る」の余白 */
.flow-back-wrap { padding: clamp(8px, 2vw, 16px) 0 clamp(56px, 8vw, 96px); }
/* 2026-11-01 オーダースーツの欄は流れの一覧で文が長くなったため、PCでは写真を上にそろえ、スクロールについてくるようにする */
@media (min-width: 761px) { #service-suit .renewal-split > figure { align-self: start; position: sticky; top: 110px; } }
.flow-back a.btn { text-decoration: none; }
/* 2026-11-01 パーソナルスタイリングの詳しいページ（/styling）。サービスのパーソナルスタイリングの欄の写真もオーダースーツと同じく上にそろえる */
@media (min-width: 761px) { #service-styling .renewal-split > figure { align-self: start; position: sticky; top: 110px; } }
.styling-menus { border-top: 1px solid var(--line); }
.styling-menu { display: grid; grid-template-columns: minmax(220px, .8fr) 1.2fr; gap: clamp(24px, 5vw, 72px); padding: clamp(36px, 5vw, 56px) 0; border-bottom: 1px solid var(--line); }
.styling-menu h3 { margin: 0 0 20px; font: 400 clamp(21px, 2.2vw, 26px)/1.6 var(--ja); }
.styling-menu h3 small { display: block; margin-top: 4px; font-size: 13px; letter-spacing: .06em; color: var(--teal-text, #6e6248); }
.styling-meta { display: grid; gap: 10px; margin: 0; font-size: 13px; line-height: 1.8; }
.styling-meta div { display: grid; grid-template-columns: 5em 1fr; gap: 12px; }
.styling-meta dt { color: var(--teal-text, #6e6248); }
.styling-meta dd { margin: 0; }
.styling-menu-body > p { margin: 0 0 1em; }
.styling-menu-body > .styling-checks-title { margin: 24px 0 10px; font-size: 13px; letter-spacing: .06em; color: var(--teal-text, #6e6248); }
.styling-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 28px; margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.8; }
.styling-checks li { position: relative; padding-left: 1.3em; }
.styling-checks li::before { content: ""; position: absolute; left: 0; top: .9em; width: .7em; height: 1px; background: currentColor; opacity: .45; }
.styling-plan-title { margin: 44px 0 14px; font: 400 18px/1.6 var(--ja); }
.styling-price .fact-row { grid-template-columns: 220px 1fr; }
.styling-price .fact-row dt { font-size: 13px; letter-spacing: .06em; }
.styling-steps { margin-top: 28px; }
@media (max-width: 760px) {
  .styling-menu { grid-template-columns: 1fr; }
  .styling-checks { grid-template-columns: 1fr; }
  .styling-price .fact-row { grid-template-columns: 1fr; gap: 6px; }
}
.styling-line { display: block; }
.styling-sub { display: block; margin-top: 6px; font-size: 13px; color: rgba(43, 45, 40, .72); }
.styling-checks { font-size: 15px; }
/* スマホでは、パーソナルスタイリングの欄も写真を文の上に（オーダースーツの欄とそろえる） */
@media (max-width: 760px) { #service-styling .renewal-split > figure { order: -1; } }
.styling-nb { white-space: nowrap; }
.styling-meta div { grid-template-columns: 6.5em 1fr; }
/* 2026-11-01 取り扱い生地にブランドのロゴ（公式サイト等から。生成り色1色・透明PNG）。公式ロゴのない・使用に承認が要るブランドは文字のまま */
.fabric-list-grid li.has-logo { padding: 18px 16px; }
.fabric-list-grid li.has-logo img { display: block; width: auto; height: auto; max-width: 82%; max-height: 46px; object-fit: contain; }
@media (max-width: 760px) { .fabric-list-grid li.has-logo img { max-height: 36px; } }
/* 小さく細く見えるロゴは少し大きく（Sonnet 確認での指摘） */
.fabric-list-grid li.has-logo img[src*="w-bill"], .fabric-list-grid li.has-logo img[src*="smith-woollens"], .fabric-list-grid li.has-logo img[src*="porter-harding"], .fabric-list-grid li.has-logo img[src*="tallia-di-delfino"], .fabric-list-grid li.has-logo img[src*="vitale-barberis-canonico"] { max-height: 56px; }
/* 2026-11-12 修正依頼（行87・88）: 想いのページの冒頭を「見出し＋写真と本文」の1つの欄に。導入文は本文の前、旧・緑の帯の4行は本文の後に引用のように置く */
.concept-story .concept-title { margin: 0 0 clamp(40px, 6vw, 72px); text-align: center; }
.concept-story-body { align-items: start; }
/* 2026-11-12 線画を上部へ移したので、本文は1列にして中央にそろえる（スマホは左ぞろえ） */
.concept-story-body--single { max-width: 46rem; margin: 0 auto; }
@media (min-width: 761px) {
  .concept-story-body--single { text-align: center; }
  .concept-story-body--single .concept-story-text .concept-intro { border-bottom: 0; padding-bottom: 0; margin-bottom: 2.6em; }
  .concept-story-body--single .concept-story-text .concept-intro::after { content: ""; display: block; width: 54px; height: 1px; margin: 2.6em auto 0; background: var(--line, #cfc9bc); }
  .concept-story-body--single .concept-story-text .concept-closing { margin-top: 3em; padding: 2.2em 0 0; border-left: 0; border-top: 1px solid var(--line, #cfc9bc); }
}
@media (min-width: 761px) { .concept-story-body > figure { position: sticky; top: 110px; } }
.concept-story-text .concept-intro { margin-bottom: 2em; padding-bottom: 2em; border-bottom: 1px solid var(--line); }
/* 2026-11-12 左の縦線をやめ、上の細い線で区切る（社長指摘「縦線が変」） */
.concept-story-text .concept-closing { margin-top: 2.4em; padding-top: 2em; border-top: 1px solid var(--line, #cfc9bc); color: var(--navy, #094c4a); font-family: var(--ja); font-size: clamp(16px, 1.6vw, 19px); line-height: 2.1; letter-spacing: .06em; }
/* 2026-11-12 修正依頼（行94）: /flow の DETAILS の欄を PRICE（価格表）に。styling.html の料金欄と同じ dl.fact-list の形 */
.flow-price .flow-price-list { margin-top: 28px; }
.flow-price .fact-row { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; padding: 16px 0; }
.flow-price .fact-row dt { color: var(--ink, #2b2d28); font-size: 15px; letter-spacing: .06em; }
.flow-price .fact-row dd { font-size: 16px; letter-spacing: .04em; font-variant-numeric: lining-nums tabular-nums; text-align: right; }
@media (max-width: 760px) { .flow-price .fact-row { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; } .flow-price .fact-row dt { font-size: 14px; } }
.fabric-list-grid li.has-logo img[src*="hardy-minnis"], .fabric-list-grid li.has-logo img[src*="fox-brothers"], .fabric-list-grid li.has-logo img[src*="dashing-tweeds"], .fabric-list-grid li.has-logo img[src*="harrisons"] { max-height: 52px; }
@media (max-width: 760px) { .fabric-list-grid li.has-logo img[src] { max-height: 42px; } }
/* 2026-11-01 想いとプロフィールのオーナーの言葉も、サムネイルなしの一覧（日付と題名）に。トップの BLOG 欄と同じ形 */
.profile-voice[data-style="row"] .profile-voice-grid { display: block; max-width: 1100px; margin-inline: auto; }
.profile-voice .latest-row { display: block; padding: 24px 4px; border-bottom: 1px solid rgba(9, 76, 74, .45); color: #2b2d28; text-decoration: none; text-align: left; }
.profile-voice .latest-row-date { display: block; margin-bottom: 8px; font: 400 18px/1.2 var(--en); letter-spacing: .06em; font-variant-numeric: lining-nums; }
.profile-voice .latest-row-title { display: block; font: 400 16px/1.7 var(--ja); letter-spacing: .06em; color: var(--ink); }
.profile-voice .latest-row:hover .latest-row-title { text-decoration: underline; text-underline-offset: 4px; }
/* 区切り線・左端・題名の色・ボタンをトップの BLOG 欄とそろえる（Sonnet 確認の指摘） */
.profile-voice .latest-row { padding: 24px 0; border-bottom-color: rgba(9, 76, 74, .72); }
.profile-voice .latest-row-title { color: #094c4a; word-break: auto-phrase; text-wrap: pretty; }
.profile-voice .profile-voice-more { text-align: center; margin-top: 32px; }
.profile-voice .profile-voice-more .btn { min-width: 280px; border: 1px solid #6e6248; color: #094c4a; font-size: 14px; letter-spacing: .12em; }
@media (max-width: 760px) { .profile-voice .profile-voice-more .btn { min-width: 0; width: 100%; } }
/* 2026-11-12 修正依頼: パーソナルスタイリング（/styling）。メニューから番号と所要時間・料金の表を外したので、左は英字ラベルと見出しだけにして右の本文を広く。ご注意事項は箇条書き */
.styling-menu { grid-template-columns: minmax(200px, .6fr) 1.4fr; }
.styling-notes { margin: 0; padding: 0; list-style: none; }
.styling-notes li { position: relative; padding-left: 1.2em; }
.styling-notes li + li { margin-top: 6px; }
.styling-notes li::before { content: "・"; position: absolute; left: 0; }
@media (max-width: 760px) { .styling-menu { grid-template-columns: 1fr; gap: 8px; } .styling-menu h3 { margin-bottom: 8px; } }
/* 2026-11-12 修正依頼: お客様の声に種別・感想・公式HP。PCは2列で写真（縦3:4のまま）の右に本文、タブレットは1列、スマホは写真の下に本文。7件目以降は MORE ボタンで開く */
.review-grid--voice { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(40px, 5vw, 64px) clamp(28px, 4vw, 56px); }
.review-grid--voice .review-card { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: clamp(18px, 2.4vw, 28px); align-items: start; }
.review-grid--voice .review-card figure { margin: 0; }
.review-grid--voice .review-card[hidden] { display: none; }
.review-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.review-kind { display: inline-block; padding: 2px 10px; border: 1px solid var(--line); color: var(--teal-text, #6e6248); font-size: 12px; letter-spacing: .08em; line-height: 1.6; }
.review-text { margin-top: 16px; font-size: 14px; line-height: 1.95; }
.review-text p { margin: 0 0 .8em; }
.review-text p:last-child { margin-bottom: 0; }
.review-link { display: inline-block; margin-top: 14px; color: var(--navy); font-size: 13px; letter-spacing: .08em; text-decoration: underline; text-underline-offset: 4px; }
.review-more { margin-top: clamp(36px, 5vw, 56px); text-align: center; }
.review-more[hidden] { display: none; }
.review-more .btn { min-width: 240px; letter-spacing: .16em; }
@media (max-width: 960px) { .review-grid--voice { grid-template-columns: 1fr; max-width: 46rem; margin-inline: auto; } }
@media (max-width: 520px) { .review-grid--voice .review-card { grid-template-columns: 1fr; gap: 16px; } .review-more .btn { width: 100%; min-width: 0; } }

/* 2026-11-12 お客様の声: 「公式HP」のリンクを、肩書き（職業・役職）の横へ（社長指示） */
.review-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; margin: 0 0 6px; }
.review-meta .review-role { margin: 0; }
.review-meta .review-link { margin-top: 0; font-size: 12px; white-space: nowrap; }

/* 2026-11-12 サービス冒頭の絵: パートナーシップラボの見本A案と同じ見せ方（絵はくっきりのまま、縁をごく細く溶かし、紙の色はページになじませる）（社長指示） */
figure.framed.service-illust { border: 0; padding: 0; background: none; box-shadow: none; }
figure.framed.service-illust .renewal-photo { aspect-ratio: auto; mix-blend-mode: darken; -webkit-mask-image: linear-gradient(to right, transparent 0%, transparent 1%, #000 5%, #000 94%, transparent 98%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 3%, #000 93%, transparent 98%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(to right, transparent 0%, transparent 1%, #000 5%, #000 94%, transparent 98%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 3%, #000 93%, transparent 98%, transparent 100%); mask-composite: intersect; }
