/*
 * シブガイ コーポレート v2（2026-11 リニューアル A案「落ち着いた上質」）の見た目のすべて。
 * デザインの正本: proposals/design-a/Main.dc.html（パソコン 1440 幅）・A-sp.dc.html（スマホ 390 幅）。
 * 規則（HANDOFF.md「デザインのリニューアル」）: 色・字体・寸法は下の変数だけを使う。写真は全部同じ補正・同じ比率（大 4:3・カード 3:2）。
 * 旧テーマの style.css は読まない。旧テーマの本文の HTML（固定ページ・お知らせの本文）は「本文の型」(.v2-prose) で整える。
 * 区切り: 640px 未満＝スマホ（A-sp の値）、960px 未満＝タブレット（1 列に並べ、メニューは開閉式）、960px 以上＝パソコン。
 * 直したら src/theme/v2/shell.ts の CSS_VERSION（読み込みの ?v=）も変える。
 */

:root {
	--bg: #faf8f3;          /* 地 */
	--white: #ffffff;       /* 白の帯 */
	--biz: #f2eee5;         /* 事業の帯 */
	--line: #e6e1d6;        /* 区切り線 */
	--ink: #1f2430;         /* 文字・ボタン・フッター */
	--sub: #4a505b;         /* 補助の文字 */
	--sub2: #5a606b;        /* 補助の文字（日付など） */
	--gold: #c7b174;        /* 差し色の金（大きな数字・フッターの小見出しだけ） */
	--gold-text: #7a6530;   /* 金の文字（英字の小見出し・hover） */
	--gold-text2: #6e5b2a;  /* 金の文字（種別・カテゴリー） */
	--badge-line: #c9bf9f;  /* カテゴリーの枠 */
	--input-line: #d9d2c3;  /* 入力欄の枠 */
	--foot-text: #e9e5dc;
	--foot-sub: #b8b3a8;
	--foot-copy: #9c988f;
	--foot-line: #3a4050;
	--mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "BIZ UDPMincho", serif;
	--sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	--wrap: 1200px;          /* 幅 */
	--gutter: 40px;          /* 左右の余白 */
	--gap: 40px;             /* 12 列の間 */
	--section: 112px;        /* 段の上下 */
	--photo-filter: saturate(.82) contrast(1.03) sepia(.06);
	--radius: 2px;
}
@media (max-width: 959px) {
	:root { --gutter: 32px; --section: 80px; --gap: 32px; }
}
@media (max-width: 639px) {
	:root { --gutter: 20px; --section: 56px; --gap: 24px; }
}

/* ---------- 土台 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.v2 {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.8;
	letter-spacing: .04em;
	overflow-wrap: anywhere;
}
.v2 img { max-width: 100%; height: auto; }
.v2 a { color: var(--ink); }
.v2 a:hover { color: var(--gold-text); }
.v2 :focus-visible { outline: 2px solid var(--gold-text); outline-offset: 3px; }
.v2 [id^="to-"], .v2 [id^="index-"] { scroll-margin-top: 16px; }
/* 古い URL（/#index-…）の行き先の印。場所だけ持ち、見た目は無い */
.v2-anchor { display: block; height: 0; overflow: hidden; }
.v2-sr, .v2 .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.v2-skip {
	position: absolute; left: 12px; top: -80px; z-index: 100;
	background: var(--ink); color: var(--bg) !important; padding: 12px 18px; text-decoration: none; border-radius: var(--radius);
}
.v2-skip:focus { top: 12px; }
.v2-wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.v2-section { padding: var(--section) 0; }
.v2-band-white { background: var(--white); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.v2-band-biz { background: var(--biz); border-top: 1px solid var(--line); }
.v2-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); }
@media (max-width: 959px) {
	.v2-grid { grid-template-columns: minmax(0, 1fr); }
	.v2-grid > * { grid-column: auto !important; }
}

/* 写真（全部同じ補正・同じ比率） */
.v2-photo { display: block; width: 100%; height: auto; object-fit: cover; filter: var(--photo-filter); background: var(--line); }
.v2-photo--large { aspect-ratio: 4 / 3; }
.v2-photo--card { aspect-ratio: 3 / 2; }

/* 文字の型 */
.v2-eyebrow {
	margin: 0; font-family: var(--sans); font-weight: 400;
	font-size: 13px; letter-spacing: .24em; line-height: 1.6; color: var(--gold-text); text-transform: uppercase;
}
.v2-h2 { margin: 0; font-family: var(--mincho); font-weight: 600; font-size: 30px; line-height: 1.5; letter-spacing: .08em; }
.v2-h2 .v2-eyebrow { display: block; margin-bottom: 6px; }
.v2-more { margin: 0; font-size: 14px; }
.v2-more a { display: inline-block; padding: 10px 0; }
@media (max-width: 639px) {
	.v2-eyebrow { font-size: 11px; letter-spacing: .22em; }
	.v2-h2 { font-size: 24px; }
}

/* ボタン（濃紺・四角・角 2px・高さ 48px 以上） */
.v2-btns { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; }
.v2-btn, .v2 a.v2-btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px;
	background: var(--ink); color: var(--bg); border: 1px solid var(--ink); border-radius: var(--radius);
	font-size: 14px; letter-spacing: .1em; line-height: 1.4; text-decoration: none; font-family: var(--sans);
}
.v2 a.v2-btn:hover { background: #3a4050; color: var(--bg); }
.v2-btn--line, .v2 a.v2-btn--line { background: transparent; color: var(--ink); }
.v2 a.v2-btn--line:hover { background: var(--ink); color: var(--bg); }
.v2-btn--small, .v2 a.v2-btn--small { min-height: 44px; padding: 0 18px; font-size: 13px; background: transparent; color: var(--ink); }
.v2 a.v2-btn--small:hover { background: var(--ink); color: var(--bg); }
@media (max-width: 639px) {
	.v2-btns { flex-direction: column; gap: 12px; }
	.v2-btns .v2-btn { display: flex; min-height: 50px; width: 100%; }
}

/* ---------- ヘッダー ---------- */
.v2-header { background: var(--bg); border-bottom: 1px solid var(--line); position: relative; z-index: 10; }
.v2-header__in {
	max-width: var(--wrap); margin: 0 auto; padding: 16px var(--gutter);
	display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
}
.v2-logo { display: flex; align-items: center; min-height: 44px; }
.v2-logo img { height: 26px; width: auto; display: block; }
.v2-nav ul { display: flex; align-items: center; gap: 32px; margin: 0; padding: 0; list-style: none; }
.v2-nav a {
	display: inline-flex; align-items: center; min-height: 44px;
	color: var(--ink); text-decoration: none; font-size: 14px; letter-spacing: .08em; white-space: nowrap;
}
.v2-nav a:hover { color: var(--gold-text); }
.v2-nav a.v2-nav__cta { padding: 0 22px; border: 1px solid var(--ink); border-radius: var(--radius); }
.v2-nav a.v2-nav__cta:hover { background: var(--ink); color: var(--bg); }
.v2-menu-btn { display: none; }
@media (max-width: 1099px) {
	.v2-nav ul { gap: 22px; }
}
@media (max-width: 959px) {
	.v2-header__in { padding: 10px var(--gutter); gap: 0; }
	.v2-logo img { height: 22px; }
	.v2-js .v2-menu-btn {
		display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px;
		width: 44px; height: 44px; margin-right: -10px; padding: 0; background: transparent; border: 0; cursor: pointer; color: var(--ink);
	}
	.v2-menu-btn span { display: block; width: 22px; height: 1.5px; background: currentColor; transition: transform .2s, opacity .2s; }
	.v2-header.is-open .v2-menu-btn span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
	.v2-header.is-open .v2-menu-btn span:nth-child(2) { opacity: 0; }
	.v2-header.is-open .v2-menu-btn span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
	.v2-nav { flex-basis: 100%; }
	.v2-js .v2-nav { display: none; }
	.v2-js .v2-header.is-open .v2-nav { display: block; }
	.v2-nav ul { flex-direction: column; align-items: stretch; gap: 0; padding: 8px 0 16px; }
	.v2-nav li { border-top: 1px solid var(--line); }
	.v2-nav a { display: flex; min-height: 52px; font-size: 15px; }
	.v2-nav li:last-child { border-top: 0; padding-top: 12px; }
	.v2-nav a.v2-nav__cta { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
	.v2-menu-btn span { transition: none; }
}

/* ---------- フッター（濃紺） ---------- */
.v2-footer { background: var(--ink); color: var(--foot-text); }
.v2-footer a { color: var(--foot-text); text-decoration: none; }
.v2-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.v2-footer :focus-visible { outline-color: var(--gold); }
.v2-footer__in {
	max-width: var(--wrap); margin: 0 auto; padding: 72px var(--gutter) 40px;
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px; font-size: 14px;
}
.v2-footer__in p { margin: 0; }
.v2-footer__co { grid-column: span 5; display: flex; flex-direction: column; gap: 14px; }
.v2-footer__name { font-family: var(--mincho); font-weight: 600; font-size: 22px; letter-spacing: .1em; color: #fff; }
.v2-footer__note { color: var(--foot-sub); }
.v2-footer__nav { grid-column: span 3; }
.v2-footer__nav--biz { grid-column: span 4; }
.v2-footer__h { color: var(--gold); font-size: 12px; letter-spacing: .2em; margin-bottom: 10px !important; }
.v2-footer__nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
/* 押せる範囲を 44px 以上に（文字 24px＋上下 10px） */
.v2-footer__nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 0; }
.v2-footer__links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px !important; }
.v2-footer__btn { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid var(--foot-line); border-radius: var(--radius); text-decoration: none; }
.v2-footer__btn:hover { border-color: var(--gold); }
.v2-footer__copy { grid-column: 1 / -1; margin-top: 32px !important; padding-top: 24px; border-top: 1px solid var(--foot-line); font-size: 12px; color: var(--foot-copy); }
.v2-footer__copy small { font-size: inherit; }
@media (max-width: 959px) {
	.v2-footer__in { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
	.v2-footer__co { grid-column: 1 / -1; }
	.v2-footer__nav, .v2-footer__nav--biz { grid-column: auto; }
}
@media (max-width: 639px) {
	.v2-footer__in { display: flex; flex-direction: column; gap: 12px; padding: 48px var(--gutter) 28px; font-size: 13px; }
	.v2-footer__co { gap: 12px; }
	.v2-footer__name { font-size: 20px; }
	.v2-footer__nav { margin-top: 16px; }
	.v2-footer__nav ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
	.v2-footer__copy { margin-top: 20px !important; padding-top: 18px; font-size: 11px; }
}

/* ---------- 下層ページの見出しの帯・パンくず ---------- */
.v2-band { border-bottom: 1px solid var(--line); padding: 32px 0 56px; }
.v2-band__title { margin: 6px 0 0; font-family: var(--mincho); font-weight: 600; font-size: 36px; line-height: 1.5; letter-spacing: .08em; }
.v2-band--article .v2-band__title { font-size: 30px; letter-spacing: .06em; max-width: 880px; }
.v2-crumbs { margin: 0 0 40px; font-size: 12px; color: var(--sub2); }
.v2-crumbs ol { display: block; margin: 0; padding: 0; list-style: none; line-height: 1.9; }
.v2-crumbs li { display: inline; }
.v2-crumbs li + li::before { content: "/"; margin: 0 10px; color: var(--foot-sub); }
.v2-crumbs a { display: inline-block; padding: 4px 0; color: var(--sub); text-decoration: none; }
.v2-crumbs a:hover { color: var(--gold-text); text-decoration: underline; }
.v2-crumbs li[aria-current] { padding: 4px 0; }
.v2-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 16px 0 0; font-size: 14px; color: var(--sub2); }
@media (max-width: 639px) {
	.v2-band { padding: 20px 0 36px; }
	.v2-crumbs { margin-bottom: 24px; }
	.v2-band__title { font-size: 26px; }
	.v2-band--article .v2-band__title { font-size: 22px; }
}

/* ---------- お知らせの行（トップ・一覧・カテゴリー・月別・検索で同じ） ---------- */
.v2-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.v2-rows > li { border-bottom: 1px solid var(--line); }
.v2-row {
	display: grid; grid-template-columns: 120px 96px minmax(0, 1fr); gap: 24px; align-items: center;
	padding: 22px 4px; text-decoration: none; color: var(--ink);
}
.v2 a.v2-row { color: var(--ink); text-decoration: none; }
.v2 a.v2-row:hover .v2-row__title { color: var(--gold-text); }
.v2-row__date { font-size: 14px; color: var(--sub2); }
.v2-row__title { font-size: 15px; }
.v2-badge, .v2 a.v2-badge {
	display: inline-block; font-size: 12px; line-height: 1.6; text-align: center; padding: 2px 8px; letter-spacing: .04em;
	border: 1px solid var(--badge-line); color: var(--gold-text2); text-decoration: none; white-space: nowrap;
}
.v2 a.v2-badge { padding: 8px 12px; }
.v2 a.v2-badge:hover { border-color: var(--gold-text); color: var(--gold-text); }
@media (max-width: 639px) {
	.v2-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 16px 0; }
	.v2-row__date { font-size: 13px; }
	.v2-row .v2-badge { font-size: 11px; padding: 0 8px; }
	.v2-row__title { flex-basis: 100%; font-size: 15px; line-height: 1.7; }
}

/* ---------- トップ ---------- */
/* 最初の画面 */
.v2-hero__in {
	display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--gap); align-items: center;
	padding-top: 72px; padding-bottom: 96px;
}
.v2-hero__text { grid-column: span 5; display: flex; flex-direction: column; gap: 28px; }
.v2-hero__photo { grid-column: span 7; }
.v2-hero__title { margin: 0; font-family: var(--mincho); font-weight: 600; font-size: 52px; line-height: 1.45; letter-spacing: .06em; }
.v2-hero__lead { margin: 0; font-size: 16px; color: var(--sub); }
.v2-hero .v2-btns { padding-top: 8px; }
@media (max-width: 1239px) {
	.v2-hero__title { font-size: clamp(38px, 4.2vw, 52px); }
}
@media (max-width: 959px) {
	.v2-hero__in { grid-template-columns: minmax(0, 1fr); padding-top: 40px; padding-bottom: 72px; }
	.v2-hero__text, .v2-hero__photo { grid-column: auto; }
	.v2-hero__photo { order: -1; }
}
@media (max-width: 639px) {
	.v2-hero__in { padding: 0 0 48px; gap: 0; }
	.v2-hero__text { padding: 32px var(--gutter) 0; gap: 18px; }
	.v2-hero__title { font-size: 34px; line-height: 1.5; letter-spacing: .05em; }
	.v2-hero__lead { font-size: 15px; }
	.v2-hero .v2-btns { padding-top: 6px; }
}
/* 写真は四角で囲まない（2026-11-10 オーナー「その四角でかこわなくてもいい」「もともとはそうなってなかった」）。
   パソコン: 右端まで広げ、上下は帯いっぱい、左側を地の色へぼかして文字につなげる。スマホ・タブレット: 幅いっぱい、下側を地へぼかす */
.v2-hero { overflow: hidden; }
.v2-hero__photo .v2-photo { background: none; }
@media (min-width: 960px) {
	.v2-hero__photo {
		align-self: stretch; position: relative;
		margin: -72px calc(-1 * (max(0px, (100vw - var(--wrap)) / 2) + var(--gutter))) -96px 0;
	}
	.v2-hero__photo picture { position: absolute; inset: 0; }
	.v2-hero__photo .v2-photo {
		width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 30% 22%;
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 26%);
		mask-image: linear-gradient(to right, transparent 0, #000 26%);
	}
}
@media (max-width: 959px) {
	.v2-hero__photo { margin: -40px calc(-1 * var(--gutter)) 0; }
	.v2-hero__photo .v2-photo {
		aspect-ratio: 3 / 2; object-position: 40% 20%;
		-webkit-mask-image: linear-gradient(to bottom, #000 72%, transparent);
		mask-image: linear-gradient(to bottom, #000 72%, transparent);
	}
}
@media (max-width: 639px) {
	.v2-hero__photo { margin: 0; }
	.v2-hero__photo .v2-photo { aspect-ratio: 4 / 3; }
}

/* お知らせ */
.v2-home-news > .v2-wrap { padding-top: 80px; padding-bottom: 80px; }
.v2-home-news__head { grid-column: span 3; display: flex; flex-direction: column; gap: 12px; }
.v2-home-news__head .v2-more { margin-top: 4px; }
.v2-home-news__list { grid-column: span 9; }
@media (max-width: 959px) {
	/* スマホ・タブレットは A-sp のとおり「小見出し → 見出し → 一覧 → 一覧へのリンク」の順 */
	.v2-home-news .v2-grid { display: flex; flex-direction: column; gap: 0; }
	.v2-home-news__head { display: contents; }
	.v2-home-news__head .v2-eyebrow { order: 0; }
	.v2-home-news__head .v2-h2 { order: 1; margin: 4px 0 20px; }
	.v2-home-news__list { order: 2; }
	.v2-home-news__head .v2-more { order: 3; margin-top: 8px; }
}
@media (max-width: 639px) {
	.v2-home-news > .v2-wrap { padding-top: 48px; padding-bottom: 48px; }
	.v2-home-news__list > li:nth-child(n + 4) { display: none; }
}

/* 私たちについて */
.v2-about__head { grid-column: span 5; display: flex; flex-direction: column; gap: 12px; }
.v2-about__body { grid-column: span 7; display: flex; flex-direction: column; gap: 24px; font-size: 16px; }
.v2-about__body p { margin: 0; }
.v2-about__body .v2-more { margin-top: -8px; }
.v2-about__lead { font-family: var(--mincho); font-weight: 600; font-size: 24px; line-height: 1.7; letter-spacing: .06em; }
.v2-about__year { margin: 28px 0 0; display: flex; flex-direction: column; gap: 12px; }
/* 大きな「1970」は飾り（横の文で読める）。文字は CSS で描き、本文の文字としては置かない（WCAG 1.4.3 の飾りの扱い・Lighthouse の色の差の対象外） */
.v2-about__num::before { content: attr(data-num); }
.v2-about__num { font-family: var(--mincho); font-weight: 600; font-size: 120px; line-height: 1; color: var(--gold); letter-spacing: 0; white-space: nowrap; flex-shrink: 0; }
.v2-about__cap { font-size: 14px; color: var(--sub2); }
@media (max-width: 959px) {
	.v2-about__year { flex-direction: row; align-items: baseline; gap: 14px; margin-top: 8px; }
	.v2-about__num { font-size: 80px; }
}
@media (max-width: 639px) {
	.v2-about__body { font-size: 15px; gap: 18px; }
	.v2-about__head { gap: 4px; }
	.v2-about__num { font-size: 64px; }
	.v2-about__cap { font-size: 12px; }
	.v2-about__lead { font-size: 20px; }
}

/* 事業紹介 */
.v2-biz > .v2-wrap { display: flex; flex-direction: column; gap: 56px; }
.v2-biz__head { display: flex; flex-direction: column; gap: 12px; }
.v2-biz__group { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; align-items: start; }
.v2-biz__label { grid-column: span 2; margin: 0; padding-top: 14px; border-top: 2px solid var(--ink); font-size: 15px; font-weight: 500; letter-spacing: .06em; }
.v2-cards { grid-column: span 10; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin: 0; padding: 0; list-style: none; }
.v2-card, .v2 a.v2-card { display: flex; flex-direction: column; gap: 14px; text-decoration: none; color: var(--ink); }
.v2-card picture { display: block; }
.v2 a.v2-card:hover .v2-photo { filter: saturate(1) contrast(1.03); }
.v2 a.v2-card:hover .v2-card__name { color: var(--gold-text); }
.v2-card__kind { font-size: 12px; color: var(--gold-text2); letter-spacing: .1em; line-height: 1.6; }
.v2-card__name { font-family: var(--mincho); font-weight: 600; font-size: 19px; line-height: 1.5; margin-top: -8px; }
.v2-card__more { font-size: 13px; color: var(--sub); margin-top: -6px; }
@media (max-width: 959px) {
	.v2-biz__group { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.v2-biz__label, .v2-cards { grid-column: auto; }
	.v2-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
}
@media (max-width: 639px) {
	.v2-biz > .v2-wrap { gap: 32px; }
	.v2-biz__head { gap: 4px; }
	.v2-biz__label { font-size: 14px; padding-top: 10px; }
	.v2-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
	.v2-card, .v2 a.v2-card { gap: 8px; }
	.v2-card__kind { font-size: 11px; letter-spacing: .04em; }
	.v2-card__name { font-size: 16px; margin-top: -4px; }
	.v2-card__more { display: none; }
}

/* アクセス */
.v2-grid.v2-access, .v2-access .v2-grid { align-items: center; }
.v2-access__photo { grid-column: span 6; }
.v2-access__text { grid-column: span 6; display: flex; flex-direction: column; gap: 20px; padding-left: 24px; font-size: 16px; }
.v2-access__text p { margin: 0; }
.v2-access__text .v2-h2 { margin-bottom: 8px; }
.v2-access__text .v2-btns { margin-top: 8px; }
@media (max-width: 959px) {
	.v2-access__text { padding-left: 0; gap: 14px; }
	.v2-access__text .v2-h2 { margin: -10px 0 4px; }
}
@media (max-width: 639px) {
	.v2-access__text { font-size: 15px; }
}

/* お問い合わせ（フォームの HTML と送り方は site_parts/contact-form のまま。見た目だけ v2 に合わせる） */
.v2-contact__head { grid-column: span 4; display: flex; flex-direction: column; gap: 12px; }
.v2-contact__form { grid-column: span 8; }
@media (max-width: 959px) {
	.v2-contact__head { gap: 4px; }
}
.v2 .sg-cf { max-width: none; margin: 0; color: var(--ink); font-family: var(--sans); }
.v2 .sg-cf .sg-lead { text-align: left; font-size: 15px; color: var(--sub); margin: 0 0 28px; }
.v2 .sg-cf .sg-lb { font-size: 14px; font-weight: 500; letter-spacing: .04em; }
.v2 .sg-cf .sg-req { background: var(--ink); color: #fff; border-radius: var(--radius); font-weight: 500; }
.v2 .sg-cf .sg-opt { background: var(--biz); color: var(--sub); border-radius: var(--radius); font-weight: 500; }
.v2 .sg-cf .sg-hint { color: var(--sub2); }
.v2 .sg-cf input[type=text], .v2 .sg-cf input[type=email], .v2 .sg-cf textarea {
	border: 1px solid var(--input-line); border-radius: var(--radius); padding: 14px 16px; font-size: 16px; color: var(--ink); background: #fff;
}
.v2 .sg-cf input[type=text], .v2 .sg-cf input[type=email] { min-height: 52px; }
.v2 .sg-cf input:focus, .v2 .sg-cf textarea:focus { border-color: var(--gold-text); box-shadow: 0 0 0 3px rgba(122, 101, 48, .2); }
.v2 .sg-cf .sg-radio, .v2 .sg-cf .sg-check { border: 1px solid var(--input-line); border-radius: var(--radius); background: #fff; }
.v2 .sg-cf .sg-radio input, .v2 .sg-cf .sg-check input { accent-color: var(--ink); }
.v2 .sg-cf .sg-radio:has(input:checked) { border: 2px solid var(--ink); background: var(--bg); }
.v2 .sg-cf .sg-check { background: var(--bg); border-color: var(--line); }
.v2 .sg-cf .sg-check a { color: var(--gold-text2); }
.v2 .sg-cf .sg-actions { justify-content: flex-start; margin-top: 32px; }
.v2 .sg-cf .sg-btn {
	min-width: 240px; min-height: 52px; padding: 0 48px; border-radius: var(--radius); background: var(--ink); color: var(--bg);
	font-size: 15px; font-weight: 500; letter-spacing: .12em;
}
.v2 .sg-cf .sg-btn:hover { background: #3a4050; }
@media (max-width: 639px) {
	.v2 .sg-cf .sg-btn { width: 100%; min-width: 0; }
}

/* ---------- お知らせの一覧・記事 ---------- */
.v2-news-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 80px; padding-top: 64px; padding-bottom: var(--section); align-items: start; }
.v2-h2--list { font-size: 24px; margin-bottom: 24px; }
.v2-count { margin-left: 14px; font-family: var(--sans); font-weight: 400; font-size: 13px; color: var(--sub2); letter-spacing: .04em; }
.v2-empty { margin: 0; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--sub); }
.v2-pager { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.v2-pager .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px;
	border: 1px solid var(--line); background: var(--white); color: var(--ink); text-decoration: none; font-size: 14px; border-radius: var(--radius);
}
.v2-pager a.page-numbers:hover { border-color: var(--ink); color: var(--ink); }
.v2-pager .page-numbers.current { background: var(--ink); border-color: var(--ink); color: var(--bg); }
.v2-pager .page-numbers.dots { border: 0; background: transparent; min-width: 24px; }
.v2-share { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); }
.v2-share__label { font-size: 13px; color: var(--sub2); margin-right: 4px; }
.v2-prevnext { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 32px; }
.v2-prevnext a {
	display: flex; flex-direction: column; gap: 4px; padding: 16px 20px; border: 1px solid var(--line); background: var(--white);
	font-size: 14px; line-height: 1.7; color: var(--ink); text-decoration: none;
}
.v2-prevnext a:hover { border-color: var(--ink); }
.v2-prevnext__next { text-align: right; }
.v2-prevnext__label { font-size: 12px; letter-spacing: .12em; color: var(--gold-text); }
.v2-back { margin: 32px 0 0; font-size: 14px; }
.v2-back a { display: inline-block; padding: 10px 0; }
.v2-notfound { padding-top: 64px; padding-bottom: var(--section); }
.v2-notfound p { margin: 0 0 32px; }
.v2-notfound .v2-btn { margin: 0 12px 12px 0; }
@media (max-width: 959px) {
	.v2-news-layout { grid-template-columns: minmax(0, 1fr); gap: 56px; padding-top: 40px; }
}
@media (max-width: 639px) {
	.v2-h2--list { font-size: 20px; }
	.v2-prevnext { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.v2-prevnext__next { text-align: left; }
}

/* サイドバー（site_parts/news-sidebar の HTML: 最近の投稿・カテゴリー・アーカイブ・検索） */
.v2-side { font-size: 14px; }
.v2-side > div + div { margin-top: 40px; }
.v2-side h2 { margin: 0 0 8px; padding-top: 12px; border-top: 2px solid var(--ink); font-family: var(--sans); font-size: 15px; font-weight: 500; letter-spacing: .06em; line-height: 1.6; }
.v2-side ul { list-style: none; margin: 0; padding: 0; }
.v2-side li { border-bottom: 1px solid var(--line); }
.v2-side li a { display: block; padding: 12px 0; color: var(--ink); text-decoration: none; line-height: 1.7; }
.v2-side li a:hover { color: var(--gold-text); }
.v2-side li a[aria-current] { color: var(--gold-text); font-weight: 500; }
.v2-side form > div { display: flex; gap: 8px; }
.v2-side input[type=text] {
	flex: 1; min-width: 0; min-height: 48px; padding: 10px 14px; border: 1px solid var(--input-line); border-radius: var(--radius);
	background: #fff; font: inherit; font-size: 16px; color: var(--ink);
}
.v2-side input[type=text]:focus { outline: 2px solid var(--gold-text); outline-offset: 0; border-color: var(--gold-text); }
.v2-side input[type=submit] {
	min-height: 48px; padding: 0 20px; border: 1px solid var(--ink); border-radius: var(--radius); background: var(--ink); color: var(--bg);
	font: inherit; font-size: 14px; letter-spacing: .1em; cursor: pointer;
}
.v2-side input[type=submit]:hover { background: #3a4050; }

/* ---------- 本文の型（旧テーマの本文 HTML: 固定ページ・お知らせの本文） ---------- */
.v2-prose { font-size: 16px; line-height: 1.9; }
.v2-prose p { margin: 0 0 1.2em; }
.v2-prose a { text-decoration: underline; text-underline-offset: 3px; }
.v2-prose strong { font-weight: 700; }
.v2-prose ul, .v2-prose ol { margin: 0 0 1.2em; padding-left: 1.5em; }
.v2-prose img { filter: var(--photo-filter); }
.v2-prose figure { margin: 0 0 1.2em; }
.v2-prose h3 { margin: 0 0 16px; font-family: var(--mincho); font-weight: 600; font-size: 20px; line-height: 1.6; letter-spacing: .06em; }
.v2-prose .wp-block-heading, .v2-article h2 { margin: 56px 0 20px; padding-bottom: 12px; border-bottom: 1px solid var(--line); font-family: var(--mincho); font-weight: 600; font-size: 22px; line-height: 1.6; letter-spacing: .06em; }
.v2-article > :first-child { margin-top: 0; }
.v2-prose .has-text-align-center, .v2-prose .tx_center { text-align: center; }
.v2-prose .aligncenter { text-align: center; margin-left: auto; margin-right: auto; }
.v2-prose .aligncenter img { display: inline-block; vertical-align: top; }
.v2-prose .wp-block-image { margin: 0 0 16px; }
.v2-prose .wp-block-image img { height: auto; max-width: 100%; }
.v2-prose .wp-block-spacer { clear: both; }
.v2-prose hr, .v2-prose .hr_style01 { border: 0; border-top: 1px solid var(--line); margin: 72px 0; }
.v2-prose .mb-lg { margin-bottom: 48px; }
.v2-prose .mb-md { margin-bottom: 24px; }
.v2-prose .mb-sm { margin-bottom: 16px; }
.v2-prose .mb-xsm { margin-bottom: 8px; }
.v2-prose .mb-lg > :last-child, .v2-prose .mb-md > :last-child, .v2-prose .mb-sm > :last-child { margin-bottom: 0; }
.v2-prose .tx_catch { margin-bottom: 16px; }
/* 記事の中の濃い色のボタン（本文の HTML のインラインの色）を v2 のボタンにそろえる */
.v2-prose a[style*="background:#1a1a1a"] { background: var(--ink) !important; border-radius: var(--radius) !important; font-weight: 500 !important; }
.v2-prose a[style*="background:#1a1a1a"]:hover { background: #3a4050 !important; color: #fff !important; }

/* 固定ページの枠（旧テーマの section > .container > .box_smaller） */
.v2-page > section { padding: 64px 0 var(--section); }
.v2-page .container { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.v2-page .box_smaller { max-width: 880px; margin: 0; }
.v2-page .v2-h2 { margin: 0 0 32px; font-size: 26px; text-align: left; }
@media (max-width: 639px) {
	.v2-prose { font-size: 15px; }
	.v2-page > section { padding-top: 40px; }
	.v2-page .v2-h2 { font-size: 22px; margin-bottom: 24px; }
	.v2-prose hr, .v2-prose .hr_style01 { margin: 48px 0; }
	.v2-prose .mb-lg { margin-bottom: 32px; }
	.v2-prose .wp-block-heading, .v2-article h2 { font-size: 19px; margin-top: 40px; }
}

/* 表（会社概要・特商法: table.tbl_basic.tbl_style01、記事: figure.wp-block-table） */
.v2-prose table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--line); font-size: 15px; line-height: 1.8; }
.v2-prose th, .v2-prose td { padding: 20px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.v2-prose th { width: 28%; font-weight: 500; color: var(--sub); }
.v2-prose .wp-block-table { overflow-x: auto; margin: 0 0 1.6em; }
.v2-prose .wp-block-table td:first-child { width: 28%; font-weight: 500; color: var(--sub); }
.v2-prose .wp-block-table table { border: 0; border-top: 1px solid var(--line); }
.v2-prose .wp-block-table th, .v2-prose .wp-block-table td { padding: 14px 16px; border: 0; border-bottom: 1px solid var(--line); }
.v2-prose .wp-block-table td > br:first-child, .v2-prose .wp-block-table td > br:last-child { display: none; }
@media (max-width: 639px) {
	.v2-prose .tbl_basic th, .v2-prose .tbl_basic td { display: block; width: auto; padding: 0 4px; border: 0; }
	.v2-prose .tbl_basic th { padding-top: 16px; font-size: 13px; }
	.v2-prose .tbl_basic td { padding-bottom: 16px; border-bottom: 1px solid var(--line); }
	.v2-prose .tbl_basic tr { display: block; }
	.v2-prose .wp-block-table td { padding: 12px 10px; }
}
/* 沿革（div.dsp_table > .dsp_tr > .dsp_th・.dsp_td） */
.v2-prose .dsp_table { border-top: 1px solid var(--line); font-size: 15px; }
.v2-prose .dsp_tr { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 24px; padding: 16px 4px; border-bottom: 1px solid var(--line); }
.v2-prose .dsp_th { font-family: var(--mincho); font-weight: 600; color: var(--gold-text); letter-spacing: .04em; }
@media (max-width: 639px) {
	.v2-prose .dsp_tr { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; padding: 14px 0; }
}
/* 社名変更の年と説明（dl.sn_dl_2col） */
.v2-prose .sn_dl_2col { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 0; margin: 0; }
.v2-prose .sn_dl_2col dt { font-weight: 500; white-space: nowrap; }
.v2-prose .sn_dl_2col dd { margin: 0; }
@media (max-width: 639px) {
	.v2-prose .sn_dl_2col { display: block; }
	.v2-prose .sn_dl_2col dd { margin: 0 0 10px !important; }
}

/* /route/ の地図（トップから移した Google マップ） */
.v2-map { border-top: 1px solid var(--line); }
.v2-map__canvas { height: 440px; background: var(--biz); }
@media (max-width: 639px) {
	.v2-map__canvas { height: 320px; }
}
