/* 施工実績だけに適用。既存の色・書体・720pxの切り替え幅を引き継ぐ。 */
.works-page { color: var(--service-ink); }
.works-page .site-header { color: var(--service-ink); }
.works-page .site-header::after { opacity: 1; }
.works-page .brand-mark {
  filter: brightness(0) sepia(26%) saturate(430%) hue-rotate(344deg) brightness(.74);
}
.works-page .brand-name { color: var(--service-ink); text-shadow: none; }
.works-page .site-menu { text-shadow: none; }
.works-main { padding-top: var(--site-header-safe-height); }
.works-container { width: min(1320px, calc(100% - clamp(36px, 10vw, 160px))); margin-inline: auto; }
.works-page h1, .works-page h2, .works-page h3 { font-family: var(--font-main); font-weight: 500; }
.works-page h1 { margin: 0; font-size: clamp(2.6rem, 4vw, 4.8rem); line-height: 1.4; }
.works-page h2 { margin: 0; font-size: clamp(1.65rem, 2.4vw, 2.6rem); line-height: 1.5; }
.works-page a { color: inherit; }
.works-page main a:focus-visible, .works-footer a:focus-visible, .works-category-navigation a:focus-visible {
  outline: 2px solid var(--wood-deep); outline-offset: 6px;
}
.works-text-link { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 1rem; line-height: 1.7; text-decoration: none; }
.works-text-link:hover { text-decoration: underline; text-underline-offset: 6px; }
.works-skip-link { position: fixed; top: -100px; left: 18px; z-index: 40; background: var(--paper); padding: 14px; }
.works-skip-link:focus { top: 12px; }
/* 表紙「風景の呼吸」: 元写真の上にだけ暗い膜を重ね、下側の木はそのまま見せる。 */
.works-hero { position: relative; isolation: isolate; height: clamp(500px, 72svh, 740px); overflow: hidden; color: var(--ink); background: var(--wood-deep); }
.works-hero-photo { position: absolute; inset: 0; }
.works-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 82%; transform-origin: 64% 76%; --hero-zoom: 1.006; animation: works-landscape-breath 14s ease-in-out infinite alternate; }
.works-hero-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(17, 12, 8, .76) 0%, rgba(17, 12, 8, .54) 26%, rgba(17, 12, 8, .15) 49%, transparent 72%); }
.works-hero-copy { position: relative; padding-top: clamp(40px, 5.5vw, 80px); }
.works-hero-copy h1 { font-size: clamp(3rem, 5.5vw, 5.4rem); letter-spacing: .08em; line-height: 1.4; }
.works-hero-copy p { margin: 22px 0 0; font-size: clamp(1.0625rem, 1.35vw, 1.22rem); line-height: 2; text-shadow: 0 1px 8px rgba(17, 12, 8, .2); }
.works-hero.is-motion-paused img { animation-play-state: paused; }
/* テーブルも含め写真にはblurをかけない。暗さは上の独立したグラデーションだけ。 */
@keyframes works-landscape-breath { from { transform: scale(1); } to { transform: scale(var(--hero-zoom)); } }
.works-category-entrances { padding-block: clamp(50px, 6vw, 86px) clamp(64px, 8vw, 110px); }
.works-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; margin: 0; padding: 0; list-style: none; }
.works-category-heading { padding-block: 26px 24px; }
.works-category-heading > .works-text-link { margin-bottom: 32px; }
.works-category-navigation { display: flex; flex-wrap: wrap; gap: 12px 30px; border-bottom: 1px solid var(--service-line); margin-bottom: 32px; }
.works-category-navigation a { display: inline-flex; align-items: center; min-height: 48px; padding: 8px 4px; margin-bottom: -1px; font-size: 1.0625rem; text-decoration: none; border-bottom: 2px solid transparent; color: var(--service-ink-soft); }
.works-category-navigation a[aria-current="page"] { border-color: var(--wood-deep); color: var(--service-ink); }
.works-category-navigation a:hover { color: var(--service-ink); }
.works-projects { padding-block: 24px 100px; }
.works-list-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }
.works-result-count { color: var(--service-ink-soft); font-size: 1rem; }
.works-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 68px 34px; padding: 0; margin: 36px 0 0; list-style: none; }
.work-card { min-width: 0; scroll-margin-top: 12px; }
.work-card-link { display: block; text-decoration: none; }
/* 元写真の縦横比を保ち、耳・脚・天板を一覧でも切らない。 */
.work-card-photo { display: flex; align-items: center; justify-content: center; background: none; }
.work-card-photo img { width: 100%; height: auto; transition: transform .5s ease; }
/* 入口の3枚だけは同じ4:3の枠。写真ごとの焦点は掲載データで管理する。 */
.work-category-photo { aspect-ratio: 4 / 3; }
.work-category-photo img { height: 100%; object-fit: cover; object-position: var(--photo-position, center); }
.work-category-action { display: flex; align-items: center; gap: 18px; min-height: 44px; margin: 14px 0 0; font-size: 1rem; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.work-card-caption { padding-top: 20px; }
.works-category { margin: 0 0 10px; font-size: 1rem; color: var(--service-ink-soft); line-height: 1.6; }
.work-card h3, .work-category-card h2 { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0; font-size: clamp(1.4rem, 1.9vw, 1.8rem); line-height: 1.5; }
.work-card h3 span, .work-category-card h2 span { font-family: serif; font-size: 1.25rem; transition: transform .35s ease; }
.work-card-description { margin: 10px 0 0; font-size: 1.0625rem; line-height: 1.8; color: var(--service-ink-soft); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  /* 写真を枠で切らず、小さく浮く既存サイトの感覚を採用する。 */
  .work-card-link:hover .work-card-photo img { transform: translateY(-4px); }
  .work-card-link:hover h3 span, .work-card-link:hover h2 span { transform: translate(3px, -3px); }
}
@media (prefers-reduced-motion: no-preference) {
  .work-card-link:focus-visible .work-card-photo img { transform: translateY(-4px); }
  .work-card-link:active .work-card-photo img { transform: translateY(-2px); }
}
.work-detail { padding-top: 26px; }
.work-detail-heading { padding-bottom: 36px; }
.work-detail-heading .works-back-link { margin-bottom: 36px; }
.work-detail-summary { margin: 16px 0 0; font-size: 1.0625rem; line-height: 1.8; color: var(--service-ink-soft); }
.work-cover { margin: 0; }
.work-cover img { width: 100%; height: auto; max-height: 78svh; object-fit: contain; }
.work-sections-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 32px; margin-block: 30px 0; padding-block: 18px; border-bottom: 1px solid var(--service-line); }
.work-sections-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 1.0625rem; text-decoration-thickness: 1px; text-underline-offset: 7px; }
.work-section { padding-top: clamp(66px, 8vw, 116px); scroll-margin-top: 12px; }
.work-section h2 { margin-bottom: 30px; }
.work-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: clamp(24px, 4vw, 52px); }
.work-gallery-photo { margin: 0; min-width: 0; }
.work-gallery-photo img { width: 100%; height: auto; }
.work-gallery-photo:only-child { grid-column: 1 / -1; width: min(100%, 900px); justify-self: center; }
.work-gallery-photo.is-portrait:only-child { width: min(100%, 600px); }
.work-gallery-photo.is-landscape:last-child:nth-child(odd) { grid-column: 1 / -1; }
.work-bottom-navigation { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 100px; padding: 36px 0; border-top: 1px solid var(--service-line); }
.works-next-link { display: block; font-size: 1.4rem; text-decoration: none; line-height: 1.7; }
.works-next-link > span:first-child { display: block; color: var(--service-ink-soft); font-size: 1rem; }
.works-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px 32px; padding-block: 38px; border-top: 1px solid var(--service-line); font-size: 1rem; }
@media (min-width: 721px) and (max-width: 1100px) {
  .works-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .work-category-card .work-card-description { min-height: 3.6em; }
}
@media (max-width: 720px) {
  .works-hero { height: clamp(350px, 52svh, 430px); }
  .works-hero-photo img { object-position: 68% 80%; --hero-zoom: 1.004; }
  .works-hero-copy { padding-top: 32px; }
  .works-hero-copy h1 { font-size: clamp(2.6rem, 10vw, 3rem); }
  .works-hero-copy p { margin-top: 18px; font-size: 1rem; line-height: 1.9; }
  .works-category-grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .works-category-entrances { padding-block: 44px 62px; }
  .works-category-heading { padding-top: 16px; }
  .works-category-heading > .works-text-link { margin-bottom: 26px; }

  .works-projects { padding-block: 12px 60px; }
  .works-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }

  .work-card-caption { padding-top: 16px; }
  .work-detail { padding-top: 16px; }
  .work-detail-heading .works-back-link { margin-bottom: 24px; }
  .work-detail-heading { padding-bottom: 26px; }
  .work-cover img { max-height: none; }
  .work-sections-nav { justify-content: flex-start; gap: 4px 24px; margin-top: 20px; }
  .work-gallery { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .work-section h2 { margin-bottom: 24px; }
  .work-bottom-navigation { align-items: flex-start; flex-direction: column; margin-top: 66px; padding-block: 26px; }
  .works-footer { flex-direction: column; align-items: flex-start; padding-block: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .works-hero-photo img { transform: none; }
  .works-page *, .works-page *::before, .works-page *::after { animation: none !important; transition: none !important; }
}

.works-image-error { font-size: 1.0625rem; line-height: 1.8; padding: 18px; background: var(--paper); }
