/* 下層ページ共通：白・濃紺・明朝の見出し */
.subpage {
	color: #253746;
	background: #fff;
	font-size: 16px;
	line-height: 1.9
}
.subpage #wrapper {
	max-width: 1440px;
	margin: auto
}
.subpage .wrap {
	width: min(1100px, 88%);
	margin-inline: auto
}

.subpage main>section:not(.contact) {
	padding-block: 42px
}
.subpage .serif, .subpage .section-head h2, .subpage .content h2, .subpage .capability h2 {
	font-family: var(--serif);
	font-weight: 500
}
.subpage .page-hero {
	background: linear-gradient(115deg, #edf1f3, #fafafa);
	border-bottom: 1px solid #dde4e8
}
.subpage .page-hero h1, .subpage .ws-hero h1 {
	font: 500 var(--h1-size)/var(--h1-lh) var(--serif);
	letter-spacing: var(--h1-tracking);
	margin: 14px 0 12px;
	color: var(--navy)
}
.subpage .page-hero h1 span{font-size: 0.7em;}
.subpage .page-hero p {
	max-width: 850px;
	font-size: 16.5px;
	line-height: 2;
	
}
.subpage .eyebrow {
	font: 500 12px/1.7 Arial, sans-serif;
	letter-spacing: 2.5px;
	color: #537386
}
.subpage .section-head {
	margin-bottom: 32px
}
.subpage .section-head h2 {
	font-size: var(--h2-size);
	line-height: 1.65;
	margin: 8px 0 14px
}
.subpage .section-head p {
	color: #64717b
}
.subpage .btn, .subpage .btn-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	padding: 13px 25px;
	min-height: 48px;
	border: 1px solid #8b9aa6;
	font-size: 14px;
	transition: background .2s, color .2s
}
.subpage .btn:hover, .subpage .btn-link:hover {
	background: #e9eef1
}
.subpage .btn-primary {
	background: var(--navy);
	color: #fff;
	border-color: var(--navy)
}
.subpage .btn-primary:hover {
	background: #31516b
}

.subpage .philosophy {
	padding-block: 40px;
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: 30px
}
.subpage .philosophy h2 {
	font: 500 26px var(--serif);
	padding-top: 10px;
	color: var(--navy)
}
.subpage .philosophy p {
	font: 500 clamp(18px, 2vw, 25px)/2.2 var(--serif);
	letter-spacing: .05em
}
.subpage .info-table, .subpage .form-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1rem;
	text-align: left
}
.subpage .info-table th, .subpage .form-table th {
	width: 27%;
	font-weight: 500;
	background: #f3f5f6
}
.subpage .info-table th, .subpage .info-table td, .subpage .form-table th, .subpage .form-table td {
	padding: 22px 28px;
	border-block: 1px solid #dce2e6;
	vertical-align: top
}
.subpage .info-table p+p {
	margin-top: 16px
}
.subpage .info-table a {
	color: #287498;
	text-decoration: underline;
	overflow-wrap: anywhere
}
.subpage .cg-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px
}



.subpage .cg-item {
	display: block;
	background: #eef1f3;
	overflow: hidden
}
.subpage .cg-item img {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: contain;
	transition: transform .3s
}
.subpage .cg-item:hover img {
	transform: scale(1.025)
}
.subpage .alt {
	background: #f4f6f7
}
.subpage .ws-hero {
	background: #f0f3f5
}
.subpage .ws-hero-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px;
	align-items: center
}
.subpage .ws-hero-copy p {
	margin-bottom: 26px
}
.subpage .ws-hero-photo {
	position: relative
}
.subpage .ws-hero-photo img {
	width: 100%;
	aspect-ratio: 1.15;
	object-fit: cover
}
.subpage .ws-hero-script {
	position: absolute;
	bottom: 25px;
	right: 20px;
	color: #fff;
	font: italic 34px/1.2 Georgia, serif;
	text-shadow: 0 2px 8px #0009
}
.subpage .promo-card {
	background: #f0f3f5;
	display: flex;
	flex-direction: column
}
.subpage .promo-text {
	padding: 32px;
	flex: 1
}
.subpage .promo-text h3 {
	font-size: 25px;
	line-height: 1.65;
	margin: 10px 0 18px
}
.subpage .promo-text .btn {
	margin-top: 24px
}
.subpage .promo-photo img {
	width: 100%;
	aspect-ratio: 2;
	object-fit: cover
}
.subpage .capability {
	text-align: center;
	background: #eef2f4
}
.subpage .capability h2 {
	font-size: var(--h2-size);
	margin-bottom: 20px
}
.subpage .capability p {
	max-width: 800px;
	margin: auto
}
.subpage .capability-icons {
	display: flex;
	justify-content: center;
	gap: 40px;
	flex-wrap: wrap;
	margin-top: 35px
}
.subpage .cap-circle {
	width: 76px;
	height: 76px;
	border: 1px solid #9eafbb;
	border-radius: 50%;
	display: grid;
	place-items: center;
	margin-bottom: 10px
}
.subpage .cap-circle svg {
	width: 40px;
	height: 40px
}
.subpage .cap-item {
	font-size: 14px
}
.subpage .contact-form-wrap {
	max-width: 900px
}
.subpage .form-note {
	margin-bottom: 30px
}
.subpage .require, .subpage .error_messe {
	color: #a33d3d
}
.subpage .form-table input:not([type=file]), .subpage .form-table select, .subpage .form-table textarea {
	width: 100%;
	min-width: 0;
	padding: 12px 14px;
	border: 1px solid #b7c4ce;
	border-radius: 0;
	background: #fff;
	font: inherit;
	color: #253746
}
.subpage .form-table input[type=file] {
	max-width: 100%;
	font: inherit;
	font-size: 14px
}
.subpage .form-table textarea {
	min-height: 180px;
	resize: vertical
}
.subpage input:focus-visible, .subpage select:focus-visible, .subpage textarea:focus-visible {
outline:2px solid #3f839e;
outline-offset:3px
}
.subpage .form-submit {
	display: flex;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
	margin: 35px 0
}
.subpage .form-submit input {
	border: 1px solid var(--navy);
	background: var(--navy);
	color: white;
	min-width: 200px;
	padding: 16px 28px;
	font: inherit;
	cursor: pointer
}
.subpage .form-submit .btn-back-confirm {
	background: #fff;
	color: var(--navy)
}
.subpage.page-works #wrapper>section {
	max-width: 1100px;
	width: 88%;
	margin: auto;
	padding: 65px 0
}
.subpage.page-works .heading {
	font: 500 clamp(25px, 3vw, 38px)/1.7 var(--serif);
	color: var(--navy);
	margin-bottom: 24px
}
.subpage.page-works .description {
	max-width: 850px;
	margin-bottom: 45px
}
.subpage .toc-001 {
	padding: 32px;
	background: #f0f3f5;
	margin-bottom: 65px
}
.subpage .toc-001 h2 {
	font: 500 26px var(--serif);
	margin-bottom: 20px
}
.subpage .toc-001 h3 {
	font-size: 16px;
	margin-top: 20px
}
.subpage .toc-001 ol {
	columns: 2;
	padding-left: 24px
}
.subpage .toc-001 li {
	break-inside: avoid;
	padding: 6px
}
.subpage .toc-001 a {
	text-decoration: underline;
	text-underline-offset: 4px
}
.subpage .content {
	padding: 55px 0;
	border-top: 1px solid #cbd6dd
}
.subpage .content h2 {
	font-size: var(--h2-size);
	margin-bottom: 12px
}
.subpage .content h3 {
	font-size: 17px;
	font-weight: 500;
	margin-bottom: 20px
}
.subpage .content p {
	max-width: 850px;
	margin: 0 0 30px
}
.subpage .fotorama {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px
}
.subpage .fotorama>a {
	display: block;
	overflow: hidden
}
.subpage .fotorama img {
	width: 100%;
	height: 100%;
	aspect-ratio: 4/3;
	object-fit: cover
}
.subpage .fotorama>a:first-child {
	grid-column: span 2;
	grid-row: span 2
}
.subpage .fotorama br {
	display: none
}


.subpage .contact {
	max-width: 1440px;
	margin: auto
}
.subpage .contact .eyebrow {
	color: #fff;
	font-size: 10px;
	letter-spacing: 1.7px
}
.subpage .site-footer, .subpage .site-header {
	line-height: normal
}
.subpage #custom-lightbox {
	display: none;
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100%;
	transform: none;
	z-index: 100;
	background: #09131bec;
	align-items: center;
	justify-content: center
}
.subpage #custom-lightbox.active {
	display: flex
}
.subpage #lightbox-img {
	max-width: 85vw;
	max-height: 85vh;
	object-fit: contain
}
.subpage .close-btn, .subpage .nav-btn {
	position: absolute;
	color: white;
	font-size: 32px;
	cursor: pointer
}
.subpage .close-btn {
	right: 25px;
	top: 15px
}
.subpage .nav-btn.prev {
	left: 20px
}
.subpage .nav-btn.next {
	right: 20px
}
.subpage.noscroll {
	overflow: hidden
}

@media(max-width:1000px) {
.subpage .ws-hero-grid {
	gap: 25px
}
.subpage .cg-grid {
	grid-template-columns: 1fr 1fr
}
.subpage .works-grid {
	grid-template-columns: 1fr 1fr
}
}

@media(max-width:760px) {
.subpage {
	font-size: 15px
}

	.subpage main>section:not(.contact) {
	padding-block: 28px
}
.subpage .page-hero h1, .subpage .ws-hero h1 {
	font-size: 29px
}
.subpage .section-head h2 {
	font-size: var(--h2-size-sm)
}
.subpage .philosophy, .subpage .ws-hero-grid, .subpage .pricing-grid, .subpage .option-grid, .subpage .promo-grid {
	grid-template-columns: 1fr;
	gap: 24px
}
.subpage .philosophy {
	padding-block: 15px
}
.subpage .philosophy p {
	font-size: 18px
}
.subpage .info-table th, .subpage .info-table td, .subpage .form-table th, .subpage .form-table td {
	display: block;
	width: 100%;
	padding: 16px 18px
}
.subpage .info-table th, .subpage .form-table th {
	border-bottom: 0
}
.subpage .info-table td, .subpage .form-table td {
	border-top: 0
}
.subpage .cg-grid {
	gap: 12px
}
.subpage .pricing-card-body, .subpage .promo-text {
	padding: 24px
}
.subpage .capability h2 {
	font-size: 25px
}
.subpage .capability-icons {
	gap: 22px
}
.subpage.page-works #wrapper>section {
	padding-block: 40px
}
.subpage .toc-001 {
	padding: 22px
}
.subpage .toc-001 ol {
	columns: 1
}
.subpage .content {
	padding-block: 35px
}
.subpage .content h2 {
	font-size: 24px
}
.subpage .fotorama {
	grid-template-columns: 1fr 1fr;
	gap: 10px
}
.subpage .fotorama>a:first-child {
	grid-row: auto
}
.subpage .works-grid, .photo-grid {
	grid-template-columns: 1fr
}
.subpage .work-info {
	padding: 18px
}
.subpage .contact .eyebrow {
	font-size: 10px
}
.subpage .form-submit input {
	width: 100%
}
}

@media(prefers-reduced-motion:reduce) {
.subpage .cg-item img {
	transition: none
}
}
/* お問い合わせフォーム：提供見本に合わせた淡いブルーのテーブル */
:is(.page-contact2, .page-mail) {
	background: #faf9f6;
}
:is(.page-contact2, .page-mail) main>.page-hero {
	padding: 40px 0 34px;
	background: transparent;
	border: 0;
	text-align: center;
}
:is(.page-contact2, .page-mail) .page-hero .eyebrow {
	color: #3688c8;
	font-size: 12px;
	letter-spacing: 2px;
}
:is(.page-contact2, .page-mail) .page-hero h1 {
	font-size: 36px;
	font-weight: 600;
	margin: 20px 0 0;
}
:is(.page-contact2, .page-mail) main>section:not(.page-hero) {
	padding: 38px 0 70px;
}
:is(.page-contact2, .page-mail) .contact-form-wrap {
	width: min(820px, 88%);
	max-width: 820px;
}
:is(.page-contact2, .page-mail) .form-note {
	text-align: center;
	font-size: 13px;
	line-height: 1.9;
	margin-bottom: 30px;
	color: #536c82;
}
:is(.page-contact2, .page-mail) .form-table {
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 16px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 16px 28px #15304709;
	font-size: 13px;
	color: #153858;
}
:is(.page-contact2, .page-mail) .form-table th {
	width: 34%;
	background: #e8f2fc;
	font-weight: 600;
	padding: 24px 26px;
	vertical-align: middle;
}
:is(.page-contact2, .page-mail) .form-table td {
	background: #fff;
	padding: 16px 20px;
	vertical-align: middle;
}
:is(.page-contact2, .page-mail) .form-table th, :is(.page-contact2, .page-mail) .form-table td {
	border: 0;
	border-bottom: 1px solid #dbe3e9;
}
:is(.page-contact2, .page-mail) .form-table tr:last-child th, :is(.page-contact2, .page-mail) .form-table tr:last-child td {
	border-bottom: 0;
}
:is(.page-contact2, .page-mail) .form-table input:not([type=file]), :is(.page-contact2, .page-mail) .form-table select, :is(.page-contact2, .page-mail) .form-table textarea {
	border: 1px solid #dbe3e9;
	border-radius: 8px;
	padding: 9px 13px;
	background: #faf9f6;
	font-size: 14px;
	line-height: 1.5;
	color: #153858;
	min-height: 40px;
}
:is(.page-contact2, .page-mail) .form-table input[type=file] {
	display: block;
	width: 100%;
	padding: 9px 11px;
	border: 1px solid #dbe3e9;
	border-radius: 8px;
	background: #faf9f6;
	font-size: 12px;
	line-height: 1.8;
}
:is(.page-contact2, .page-mail) .form-table textarea {
	min-height: 116px;
	display: block;
}
:is(.page-contact2, .page-mail) .require {
	color: #d35b42;
}
:is(.page-contact2, .page-mail) .form-submit {
	margin: 30px 0 0;
}
:is(.page-contact2, .page-mail) .form-submit input[type=submit] {
	min-width: 122px;
	width: auto;
	padding: 12px 32px;
	border-radius: 30px;
	background: #203c61;
	border-color: #203c61;
	font-size: 14px;
	font-weight: 600;
	box-shadow: 0 7px 15px #15304715;
}
:is(.page-contact2, .page-mail) .form-submit input[type=submit]:hover {
	background: #315477;
}

@media(max-width:760px) {
:is(.page-contact2, .page-mail) .page-hero h1 {
	font-size: 30px;
}
:is(.page-contact2, .page-mail) main>.page-hero {
	padding: 32px 0 20px;
}
:is(.page-contact2, .page-mail) main>section:not(.page-hero) {
	padding: 24px 0 45px;
}
:is(.page-contact2, .page-mail) .contact-form-wrap {
	width: 90%;
}
:is(.page-contact2, .page-mail) .form-table th, :is(.page-contact2, .page-mail) .form-table td {
	display: block;
	width: 100%;
	padding: 14px 18px;
}
:is(.page-contact2, .page-mail) .form-table th {
	border-bottom: 0;
}
:is(.page-contact2, .page-mail) .form-table tr:last-child th {
	border-radius: 0;
}
:is(.page-contact2, .page-mail) .form-note {
	font-size: 12px;
}
}

/* 確認・完了画面も入力画面と共通のトーンに統一。 */
.page-mail .form-table { table-layout:fixed; }
.page-mail .form-table td { overflow-wrap:anywhere; line-height:1.9; font-size:14px; }
.page-mail .form-submit input[type=button], .page-mail .form-submit a {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:160px; width:auto; padding:12px 28px;
  border:1px solid #203c61; border-radius:30px;
  background:#fff; color:#203c61; font:600 14px/1.9 var(--sans);
  cursor:pointer; text-decoration:none;
}
.page-mail .form-submit input[type=button]:hover, .page-mail .form-submit a:hover { background:#e8f2fc; }
.page-mail .error_messe { padding:18px 22px; background:#fff4f0; border-radius:12px; color:#a34232; font-size:14px; overflow-wrap:anywhere; }
.page-mail .error_messe .error_messe { padding:0; }
@media(max-width:760px) {
  .page-mail .form-submit { gap:12px; }
  .page-mail .form-submit input[type=submit], .page-mail .form-submit input[type=button], .page-mail .form-submit a { width:100%; }
}

/* 施工事例：目次と事例ごとの写真・説明を整理 */
.page-works .works-main { width:min(1100px,88%); margin:auto; padding:65px 0; }
.page-works .works-eyebrow { margin-bottom:18px; }
.page-works .works-main>.heading { font:500 clamp(25px,3vw,38px)/1.75 var(--serif); margin:0 0 25px; color:var(--navy); }
.page-works .works-main>.description { max-width:850px; margin:0 0 48px; line-height:2.1; color:#526675; }
.page-works .toc-001 { border-top:3px solid #23455e; padding:32px 36px; }
.page-works .toc-001 h3 { color:#56758a; font-size:13px; letter-spacing:1px; }
.page-works .toc-001 ol { columns:auto; display:grid; grid-template-columns:1fr 1fr; gap:0 30px; list-style:none; padding:0; }
.page-works .toc-001 li { padding:0; border-bottom:1px solid #d8e1e7; }
.page-works .toc-001 a { display:block; padding:13px 22px 13px 0; text-decoration:none; font-size:14px; }
.page-works .toc-001 a:hover { color:#277ca6; }
.page-works .content { scroll-margin-top:30px; padding:55px 0 60px; }
.page-works .content>.center { max-width:860px; margin-bottom:28px; }
.page-works .content h2 { line-height:1.6; padding-left:18px; border-left:3px solid #406983; }
.page-works .content h3 { color:#537083; margin-top:16px; }
.page-works .fotorama { gap:14px; align-items:stretch; }
.page-works .fotorama a { background:#edf1f3; }
.page-works .fotorama img { transition:opacity .2s; }
.page-works .fotorama a:hover img { opacity:.85; }
.page-works .works-more { margin:20px 0; }
.page-works .works-more summary { width:fit-content; margin:0 auto; padding:12px 26px; border:1px solid #b5c5d0; color:#254a63; font-size:14px; cursor:pointer; }
.page-works .works-more[open] summary { margin-bottom:22px; }
.page-works .works-extra>a:first-child { grid-column:auto; grid-row:auto; }
.page-works .content>p { color:#658093; font-size:13px; margin-top:18px; }
@media(max-width:760px) {
 .page-works .works-main { width:90%; padding:35px 0; }
 .page-works .toc-001 { padding:24px 20px; }
 .page-works .toc-001 ol { grid-template-columns:1fr; }
 .page-works .content { padding:35px 0 40px; }
 .page-works .content h2 { font-size:23px; }
 .page-works .works-more summary { width:100%; font-size:13px; padding:12px 16px; text-align:center; }
}

/* お知らせ一覧 */
.page-news .news-section { min-height:280px; }
.page-news .news-empty { padding:45px 24px; border-block:1px solid #dce3e8; text-align:center; color:#637888; }
@media(max-width:760px) { .page-news .news-empty { padding:32px 18px; font-size:14px; } }
/* ページ間の見出し、コンテンツ幅、余白、カードの最終統一 */
.subpage { --page-border:#dce4ea; --page-blue:#2b6388; --page-tint:#f2f5f7; }

.subpage .page-hero { position:relative; background:#f2f5f7; border-bottom:1px solid var(--page-border); }
.subpage .page-hero .wrap { border-left:3px solid #49738e; padding-left:28px; }
.subpage .page-hero .eyebrow { color:var(--page-blue); }
.subpage .section-head { padding-bottom:20px; border-bottom:1px solid var(--page-border); }
.subpage .section-head p { margin-top:10px; font-size:1.2rem; }
.subpage .btn,.subpage .btn-link { border-radius:3px; letter-spacing:.05em; }
.subpage .philosophy { padding:36px 0 20px; align-items:start; }
.subpage .info-table { border-top:2px solid #456983; }
.subpage .info-table th { background:#edf3f7; color:#28485f; }
.subpage .info-table td { line-height:2; }
.subpage .cg-grid { gap:28px; }
.subpage .cg-item { padding:8px; background:#fff; border:1px solid var(--page-border); box-shadow:0 5px 16px #15304706; }
.subpage .cg-item img { background:#f3f5f6; }
.subpage .cg-item:focus-visible,.subpage .work-item:focus-visible { outline:3px solid #478db5; outline-offset:4px; }

.subpage .works-grid { gap:30px; }
.subpage .work-item { box-shadow:0 5px 20px #15304707; }
.subpage .work-item:hover { transform:translateY(-3px); box-shadow:0 9px 24px #15304710; }

.subpage .work-cat { padding:3px 10px; background:#edf3f7; }
.subpage h2.tittle { font:500 28px/1.7 var(--serif); margin:0 0 28px; text-align:left; color:var(--navy); }
.subpage h2 {
  font: 500 18px/2 "Noto Sans JP", sans-serif;
  text-align: left;
  color: var(--navy);
}
.subpage .completion-date { font-size:13px; color:#637888; margin-top:12px; }


.page-news .news-empty { padding:60px 28px; background:#f8fafb; border:1px solid var(--page-border); border-radius:4px; }
.page-news .news-section { min-height:320px; }
/* お問い合わせで承認済みの中央配置と水色フォームは維持 */
:is(.page-contact2,.page-mail) main>.page-hero { background:transparent; border:0; padding:40px 0 34px; }
:is(.page-contact2,.page-mail) .page-hero .wrap { border:0; padding-left:0; }
:is(.page-contact2,.page-mail) main>section:not(.page-hero) { padding:38px 0 70px; }
:is(.page-contact2,.page-mail) .contact-form-wrap { width:min(820px,88%); }
@media(max-width:760px) {
 .subpage .page-hero .wrap { padding-left:18px; }
 .subpage .section-head { margin-bottom:24px; }
 .subpage .philosophy { padding-block:12px; gap:18px; }
 .subpage .philosophy p { font-size:17px; }
 .subpage .cg-grid { gap:14px; }
 .subpage .cg-item { padding:4px; }
 .subpage .works-grid { gap:22px; }
 .page-news .news-section { min-height:240px; }
 .page-news .news-empty { padding:36px 20px; text-align:left; }
 :is(.page-contact2,.page-mail) main>.page-hero { padding:32px 0 20px; }
 :is(.page-contact2,.page-mail) .page-hero h1 { font-size:30px; }
 :is(.page-contact2,.page-mail) main>section:not(.page-hero) { padding:24px 0 45px; }
 :is(.page-contact2,.page-mail) .contact-form-wrap { width:90%; }
}

/* リフォーム事例一覧専用。旧ギャラリーCSSより優先して適用。 */
/*
body.page-works_gallery main > .page-hero {
  padding:52px 0 60px !important;
  background:linear-gradient(115deg,#edf3f7,#fafbfc);
}
*/body.page-works_gallery .page-hero h1 { font-size:clamp(27px,3vw,40px); line-height:1.3; }
body.page-works_gallery main > section:not(.page-hero) { padding:56px 0 80px; }
body.page-works_gallery h2.tittle {
  display:flex; align-items:center; gap:20px;
  margin:0 0 32px; text-align:left; font:500 25px/1.6 var(--serif); color:var(--navy);
}
body.page-works_gallery h2.tittle::after { content:""; height:1px; background:#d7e1e8; flex:1; }
body.page-works_gallery .works-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:36px 26px; margin:0; align-items:stretch;
}
body.page-works_gallery .work-item {
  display:flex; flex-direction:column; min-width:0; overflow:hidden;
  background:#fff; border:1px solid #dce5eb; border-radius:5px;
  box-shadow:0 5px 18px #15304707; text-decoration:none;
  transition:transform .2s,box-shadow .2s;
}
body.page-works_gallery .work-img-box { width:100%; aspect-ratio:4/3; overflow:hidden; background:#edf2f5; }
body.page-works_gallery .work-img-box img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s; }

body.page-works_gallery .work-title { font:500 17px/1.7 var(--serif); color:#1b3a50; margin:0; overflow-wrap:anywhere; }
body.page-works_gallery .work-cat { display:inline-block; margin:16px 0 0; padding:4px 11px; background:#edf4f9; color:#4a6b83; font:400 12px/1.7 var(--sans); letter-spacing:.05em; border-radius:2px; }
@media(hover:hover) {
 body.page-works_gallery .work-item:hover { transform:translateY(-4px); box-shadow:0 12px 28px #15304713; }
 body.page-works_gallery .work-item:hover img { transform:scale(1.035); }
}
@media(max-width:1000px) {
 body.page-works_gallery .works-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 20px; }
}
@media(max-width:600px) {
/* body.page-works_gallery main>.page-hero { padding:32px 0 38px !important; }
*/ body.page-works_gallery .page-hero h1 { font-size:25px; letter-spacing:.03em; }
 body.page-works_gallery main>section:not(.page-hero) { padding:36px 0 50px; }
 body.page-works_gallery h2.tittle { font-size:22px; margin-bottom:24px; }
 body.page-works_gallery .works-grid { grid-template-columns:1fr; gap:24px; }
 body.page-works_gallery .work-info { padding:20px; }
 body.page-works_gallery .work-title { font-size:20px; }
	
}
@media(prefers-reduced-motion:reduce) {
 body.page-works_gallery .work-item,body.page-works_gallery .work-img-box img { transition:none; }
 body.page-works_gallery .work-item:hover,body.page-works_gallery .work-item:hover img { transform:none; }
}
/* indexページ以外は共通mainと同じ最大幅で中央配置。 */
body.subpage > main {
  width:100%; max-width:var(--max-width,1440px); margin-inline:auto;
}

/* スマホ表示では .wrap を指定幅にする(PC用の幅指定より優先) */
@media(max-width:760px) {
  body.subpage .wrap { width:95%; max-width:none; box-sizing:border-box; }
}

.photo-grid > * {
  min-width: 0;
}
