*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { overflow-x: hidden; overflow-anchor: none; }
body {
  font-family: 'YuGothic', 'Yu Gothic', 'Hiragino Kaku Gothic ProN', sans-serif;
  color: #000;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

/* ========================================
   Header
======================================== */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 500;
  transition: background 0.4s, box-shadow 0.4s;
}
.site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 rgba(0,0,0,0.06);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 41px;
}

.header-logo a {
  display: block;
  line-height: 0;
}
.header-logo img {
  width: 229px;
  height: auto;
}

.header-right {
  display: flex;
  align-items: center;
  gap: 65px;
}

.header-nav {
  display: flex;
  align-items: center;
  gap: 40px;
}
.header-nav a {
  font-family: 'Cormorant Infant', 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #000;
  line-height: 1;
  transition: opacity 0.3s, color 0.6s;
}
.header-nav a:hover {
  opacity: 0.6;
}

.header-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 149px;
  height: 40px;
  background: #000;
  color: #fff;
  border-radius: 20px;
  font-family: 'Cormorant Infant', 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  padding-top: 2px;
  transition: background 0.3s, color 0.3s, box-shadow 0.3s;
}
.header-cta:hover {
  background: transparent;
  color: #fff;
  box-shadow: inset 0 0 0 1px #fff;
}
.site-header.is-scrolled .header-cta:hover {
  color: #000;
  box-shadow: inset 0 0 0 1px #000;
}

/* ========================================
   FV（既存FVプロトタイプを組み込む領域）
======================================== */
.fv-section {
  width: 100%;
  height: 100vh;
  height: 100svh;
  position: relative;
  overflow: hidden;
  background: #fff;
}

/* FV内のスケーリング用コンテナ */
.fv {
  position: absolute;
  top: 0;
  left: 0;
  width: 1440px;
  height: 825px;
  overflow: hidden;
  transform-origin: top left;
}

.fv-bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 1;
  background: url('../images/fv-bg-cut1-3.png') center/cover no-repeat;
}

.fv-pieces {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 2;
}

.fv-piece {
  position: absolute;
  opacity: 0;
}
.fv-piece.animating {
  will-change: transform, opacity;
}

.fv-text {
  position: absolute;
  z-index: 50;
  pointer-events: none;
}
.sp-only { display: none; }

/* Cut 1 text */
.fv-c1-heading-ja {
  margin: 0;
  padding: 0;
  top: 226px;
  left: calc(var(--left-safe, 0px) + 84px);
  font-family: 'Zen Old Mincho', serif;
  font-size: calc(37px * var(--tc, 1));
  font-weight: 500;
  line-height: 1.64;
  color: #000;
  letter-spacing: 0.03em;
  opacity: 0;
}
.fv-c1-lead {
  top: calc(226px + 37px * var(--tc, 1) * 1.64 + 19px);
  left: calc(var(--left-safe, 0px) + 99px);
  width: 388px;
  font-family: 'Zen Old Mincho', serif;
  font-size: calc(17px * var(--tc, 1));
  font-weight: 400;
  color: #0f0f0f;
  line-height: 2;
  letter-spacing: 0.04em;
  opacity: 0;
}
.fv-c1-heading-en {
  bottom: calc(var(--bottom-safe, 5px) + 3px);
  left: calc(var(--left-safe, 0px) + 19px);
  width: 745px;
  text-align: left;
  font-family: 'Cormorant Infant', serif;
  font-size: calc(89px * var(--tc, 1));
  font-weight: 400;
  color: #000;
  letter-spacing: 0.02em;
  line-height: 0.93;
  opacity: 0;
}

/* Cut 2 text */
.fv-c2-heading {
  top: 245px;
  left: 908px;
  font-family: 'Zen Old Mincho', serif;
  font-size: calc(37px * var(--tc, 1));
  font-weight: 500;
  color: #fff;
  letter-spacing: 1.11px;
  line-height: 1.5;
  opacity: 0;
}
.fv-c2-lead {
  top: 325px;
  left: 908px;
  width: 388px;
  font-family: 'Zen Old Mincho', serif;
  font-size: calc(17px * var(--tc, 1));
  font-weight: 400;
  color: #fff;
  line-height: 2;
  letter-spacing: 0.04em;
  opacity: 0;
}

/* Cut 3 text */
.fv-c3-heading {
  top: 240px;
  left: calc(var(--left-safe, 0px) + 96px);
  font-family: 'Zen Old Mincho', serif;
  font-size: calc(37px * var(--tc, 1));
  font-weight: 500;
  color: #000;
  letter-spacing: 1.11px;
  line-height: 1.5;
  opacity: 0;
}
.fv-c3-lead {
  top: 320px;
  left: calc(var(--left-safe, 0px) + 98px);
  width: 388px;
  font-family: 'Zen Old Mincho', serif;
  font-size: calc(17px * var(--tc, 1));
  font-weight: 400;
  color: #0f0f0f;
  line-height: 2;
  letter-spacing: 0.04em;
  opacity: 0;
}

/* 右サイドバー（© + SCROLL + ライン） */
.side-right {
  position: absolute;
  right: 47px;
  top: 0;
  height: 100%;
  z-index: 400;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
}
.side-right-copy {
  position: absolute;
  top: 50%;
  transform: translateY(calc(-50% - 40px));
  writing-mode: vertical-rl;
  font-family: 'Cormorant Infant', serif;
  font-size: 13px;
  font-weight: 500;
  color: #000;
  text-transform: capitalize;
  letter-spacing: 0.02em;
}
.side-right-bottom {
  margin-top: auto;
  margin-bottom: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.side-right-bottom { position: relative; }
.fv-counter {
  position: absolute;
  right: calc(100% + 18px);
  bottom: -4px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: 'Cormorant Infant', serif;
  font-weight: 500;
  line-height: 1;
  color: #000;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.8s, color 0.6s;
}
.fv-counter.is-visible { opacity: 1; }
.fv-counter-cur {
  display: inline-block;
  overflow: hidden;
  font-size: 30px;
  letter-spacing: 0.02em;
}
.fv-counter-num { display: inline-block; }
.fv-counter-total {
  font-size: 15px;
  letter-spacing: 0.08em;
  opacity: 0.55;
}
body.is-dark-cut .fv-counter { color: #fff; }
.side-right-scroll {
  writing-mode: vertical-rl;
  font-family: 'Cormorant Infant', serif;
  font-size: 12px;
  font-weight: 500;
  color: #000;
  text-transform: uppercase;
  letter-spacing: 0.15em;
}
.side-right-line {
  width: 1px;
  height: 80px;
  background: #000;
  margin-top: 9px;
  position: relative;
  overflow: hidden;
}
.side-right-line::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleY(0);
  transform-origin: top;
  animation: scroll-sweep 1.8s ease-in-out infinite;
}
@keyframes scroll-sweep {
  0%   { transform: scaleY(0); opacity: 1; }
  50%  { transform: scaleY(1); opacity: 1; }
  55%  { transform: scaleY(1); opacity: 1; }
  80%  { transform: scaleY(1); opacity: 0; }
  81%  { transform: scaleY(0); opacity: 0; }
  90%  { transform: scaleY(0); opacity: 0; }
  91%  { transform: scaleY(0); opacity: 1; }
  100% { transform: scaleY(0); opacity: 1; }
}

/* ========================================
   Dark Cut（Cut 2）時のカラー反転
======================================== */
body.is-dark-cut .header-logo img {
  filter: brightness(0) invert(1);
  transition: filter 0.6s;
}
body.is-dark-cut .header-nav a {
  color: #fff;
}
body.is-dark-cut .header-cta {
  background: #fff;
  color: #000;
  transition: background 0.6s, color 0.6s, opacity 0.3s;
}
body.is-dark-cut .site-header.is-scrolled {
  background: rgba(0, 0, 0, 0.85);
  box-shadow: 0 1px 0 rgba(255,255,255,0.06);
}
body.is-dark-cut .side-right-copy {
  color: #fff;
  transition: color 0.6s;
}
body.is-dark-cut .side-right-scroll {
  color: #fff;
  transition: color 0.6s;
}
body.is-dark-cut .side-right-line {
  background: #fff;
  transition: background 0.6s;
}
body.is-dark-cut .side-right-line::after {
  background: #000;
}
.header-logo img {
  transition: filter 0.6s;
}
.side-right-copy {
  transition: color 0.6s;
}
.side-right-scroll {
  transition: color 0.6s;
}
.side-right-line {
  transition: background 0.6s;
}
.header-cta {
  transition: background 0.6s, color 0.6s, opacity 0.3s;
}

/* ========================================
   News セクション
======================================== */
.news-section {
  padding: 100px 174px 140px;
  background: #fff;
  position: relative;
  z-index: 10;
}
.news-inner {
  display: flex;
  gap: 0;
  align-items: flex-start;
  max-width: 1092px;
  margin: 0 auto;
}
.news-heading-area {
  width: 242px;
  flex-shrink: 0;
}
.news-label {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 400;
  color: #000;
  letter-spacing: 0.1em;
  line-height: 1;
}
.news-heading {
  font-family: 'Zen Old Mincho', serif;
  font-size: 49px;
  font-weight: 400;
  color: #000;
  line-height: 1.2;
  margin-top: 16px;
}
.news-list-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 42px;
  margin-top: 40px;
}
.news-list {
  width: 100%;
}
.news-item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 23px 0;
  border-bottom: 1px solid rgba(0,0,0,0.15);
}
.news-item:first-child {
  border-top: 1px solid rgba(0,0,0,0.15);
}
.news-date {
  font-family: 'Playfair Display', serif;
  font-size: 12px;
  font-weight: 400;
  color: #000;
  white-space: nowrap;
  line-height: 1;
}
.news-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 110px;
  height: 22px;
  font-family: 'Zen Old Mincho', serif;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.1em;
  white-space: nowrap;
  flex-shrink: 0;
}
.news-tag--ir { background: #005eae; }
.news-tag--hr { background: #f8a04e; }
.news-tag--sustainability { background: #6aaaff; letter-spacing: -0.05em; }
.news-tag--ir-dark { background: #29396f; }
.news-tag--notice { background: #58c8cb; }
.news-title {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.1em;
  line-height: 1.5;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.news-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 251px;
  height: 45px;
  border: 1px solid rgba(0,0,0,0.7);
  border-radius: 3px;
  padding: 0 8px 0 16px;
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.07em;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.news-more:hover {
  background: #000;
  color: #fff;
  border-color: #000;
}
.news-more-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #000;
  border-radius: 3px;
  transition: background 0.3s;
}
.news-more-icon svg {
  width: 12px;
  height: 12px;
}
.news-more-icon svg path {
  transition: stroke 0.3s;
}
.news-more:hover .news-more-icon {
  background: #fff;
}
.news-more:hover .news-more-icon svg path {
  stroke: #000;
}

/* ========================================
   About セクション
======================================== */
.about-section {
  position: relative;
  width: 100%;
  min-height: 959px;
  background: #000;
  overflow: hidden;
}
.about-pieces {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 825px;
  pointer-events: none;
  z-index: 1;
}
.about-piece {
  position: absolute;
  opacity: 0;
}
.about-piece.is-shown {
  opacity: 0.6;
}
.about-inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: 0;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 160px 163px 200px;
}
.about-catchphrase {
  font-family: 'Cormorant Infant', serif;
  font-size: 92px;
  font-weight: 400;
  color: #fff;
  line-height: 1.12;
  text-transform: uppercase;
  flex-shrink: 0;
  width: 50%;
  display: flex;
  flex-direction: column;
}
.about-catchphrase > span {
  display: block;
}
.about-content {
  padding-top: 21px;
}
.about-label {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.1em;
  line-height: 1;
}
.about-heading {
  font-family: 'Zen Old Mincho', serif;
  font-size: 37px;
  font-weight: 400;
  color: #fff;
  line-height: 1.55;
  letter-spacing: 0.03em;
  margin-top: 35px;
}
.about-text {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 18px;
  font-weight: 500;
  color: #fff;
  line-height: 2.2;
  letter-spacing: 0.06em;
  margin-top: 31px;
}
.about-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 206px;
  height: 45px;
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: 3px;
  padding: 0 8px 0 16px;
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.07em;
  margin-top: 31px;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.about-more:hover {
  background: #fff;
  color: #000;
  border-color: #fff;
}
.about-more-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #fff;
  border-radius: 3px;
  transition: background 0.3s;
}
.about-more-icon svg {
  width: 12px;
  height: 12px;
}
.about-more-icon svg path {
  transition: stroke 0.3s;
}
.about-more:hover .about-more-icon {
  background: #000;
}
.about-more:hover .about-more-icon svg path {
  stroke: #fff;
}

/* ========================================
   Business セクション
======================================== */
.business-section {
  position: relative;
  width: 100%;
  background: #f0eeed;
  overflow: hidden;
  padding: 140px 174px 160px;
}
.business-bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none;
}
.business-bg img {
  position: absolute;
  height: auto;
}
.business-bg-1 {
  width: 82%;
  left: -5%;
  top: -5%;
}
.business-bg-2 {
  width: 82%;
  left: auto;
  right: -5%;
  bottom: -5%;
  top: auto;
}
.business-header {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 1092px;
  margin: 0 auto 70px;
}
.business-label {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 400;
  color: #000;
  letter-spacing: 0.1em;
  line-height: 1;
}
.business-heading {
  font-family: 'Zen Old Mincho', serif;
  font-size: 37px;
  font-weight: 400;
  color: #000;
  line-height: 1.55;
  letter-spacing: 0.03em;
  margin-top: 20px;
}
.business-text {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  line-height: 1.95;
  letter-spacing: 0.03em;
  margin-top: 20px;
}
.business-cards {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 20px;
  align-items: flex-start;
  justify-content: center;
  max-width: 1092px;
  margin: 0 auto;
}
.business-card {
  width: 268px;
  height: 356px;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  display: block;
}
.business-card-img {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.business-card-overlay {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.75) 100%);
}
.business-card-content {
  position: absolute;
  bottom: 5px;
  left: 15px;
  right: 5px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.business-card-text {
  color: #fff;
  margin-bottom: 5px;
}
.business-card-en {
  font-family: 'Playfair Display', serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.07em;
  margin-bottom: 10px;
}
.business-card-title {
  font-family: 'Zen Old Mincho', serif;
  font-size: 25px;
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: 0.02em;
}
.business-card-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: #000;
  border-radius: 4px;
  flex-shrink: 0;
}
.business-card-arrow svg {
  width: 14px;
  height: 14px;
}
.business-card-img {
  transition: transform 0.5s ease;
}
.business-card:hover .business-card-img {
  transform: scale(1.05);
}
.business-more {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  margin-top: 60px;
}
.business-more-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 206px;
  height: 45px;
  border: 1px solid rgba(0,0,0,0.7);
  border-radius: 3px;
  padding: 0 8px 0 16px;
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.07em;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.business-more-btn:hover {
  background: #000;
  color: #fff;
  border-color: #000;
}
.business-more-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #000;
  border-radius: 3px;
  transition: background 0.3s;
}
.business-more-icon svg {
  width: 12px;
  height: 12px;
}
.business-more-icon svg path {
  transition: stroke 0.3s;
}
.business-more-btn:hover .business-more-icon {
  background: #fff;
}
.business-more-btn:hover .business-more-icon svg path {
  stroke: #000;
}

/* ========================================
   Column セクション
======================================== */
.column-section {
  position: relative;
  width: 100%;
  background: linear-gradient(240deg, rgba(255,255,255,0) 16%, #f0eeeb 100%);
  overflow: hidden;
  padding: 120px 174px 140px;
}
.column-bg {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none;
}
.column-bg img {
  position: absolute;
  mix-blend-mode: multiply;
}
.column-bg-1 {
  width: 39%;
  right: 0; left: auto;
  bottom: 0;
}
.column-bg-2 {
  width: 34%;
  left: -5%;
  top: -5%;
}
.column-inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: 65px;
  max-width: 1092px;
  margin: 0 auto;
}
.column-photo {
  width: 582px;
  height: 407px;
  object-fit: cover;
  flex-shrink: 0;
}
.column-body {
  flex: 1;
  padding-top: 3px;
}
.column-label {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 400;
  color: #000;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}
.column-heading {
  font-family: 'Zen Old Mincho', serif;
  font-size: 37px;
  font-weight: 400;
  color: #000;
  line-height: 1.55;
  letter-spacing: 0.03em;
  margin-top: 20px;
}
.column-text {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  line-height: 1.9375;
  letter-spacing: 0.06em;
  margin-top: 35px;
}
.column-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 206px;
  height: 45px;
  border: 1px solid rgba(0,0,0,0.7);
  border-radius: 3px;
  padding: 0 8px 0 16px;
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  letter-spacing: 0.07em;
  margin-top: 31px;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.column-more:hover {
  background: #000;
  color: #fff;
  border-color: #000;
}
.column-more-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #000;
  border-radius: 3px;
  transition: background 0.3s;
}
.column-more-icon svg {
  width: 12px;
  height: 12px;
}
.column-more-icon svg path {
  transition: stroke 0.3s;
}
.column-more:hover .column-more-icon {
  background: #fff;
}
.column-more:hover .column-more-icon svg path {
  stroke: #000;
}

/* ========================================
   Recruit セクション
======================================== */
.recruit-section {
  position: relative;
  width: 100%;
  height: 844px;
  background: #2d2d2d;
  overflow: hidden;
  --rc: max(0px, calc((100% - 1440px) / 2));
}
.recruit-marquee {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
  pointer-events: none;
}
.recruit-marquee-track {
  display: flex;
  width: max-content;
  animation: recruit-scroll 20s linear infinite;
}
.recruit-marquee-text {
  font-family: 'Cormorant Infant', serif;
  font-size: 155px;
  font-weight: 400;
  color: #686868;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
  padding-right: 80px;
  flex-shrink: 0;
}
@keyframes recruit-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.recruit-content {
  position: absolute;
  top: 120px;
  left: calc(var(--rc) + 174px);
  width: 400px;
  z-index: 2;
}
.recruit-label {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.1em;
  line-height: 1;
}
.recruit-heading {
  font-family: 'Zen Old Mincho', serif;
  font-size: 37px;
  font-weight: 400;
  color: #fff;
  line-height: 1.55;
  margin-top: 16px;
}
.recruit-text {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #fff;
  line-height: 1.95;
  letter-spacing: 0.06em;
  margin-top: 40px;
}
.recruit-photo-main {
  position: absolute;
  top: 120px;
  left: calc(var(--rc) + 590px);
  width: 317px;
  height: 506px;
  object-fit: cover;
  object-position: top;
  z-index: 1;
}
.recruit-photo-sub1 {
  position: absolute;
  top: 148px;
  left: calc(var(--rc) + 935px);
  width: 274px;
  height: 171px;
  object-fit: cover;
  z-index: 1;
}
.recruit-photo-sub2 {
  position: absolute;
  top: 311px;
  left: calc(var(--rc) + 1030px);
  width: 236px;
  height: 170px;
  object-fit: cover;
  z-index: 1;
}
.recruit-buttons {
  position: absolute;
  top: 581px;
  left: calc(var(--rc) + 992px);
  z-index: 2;
  display: flex;
  flex-direction: column;
}
.recruit-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 206px;
  height: 45px;
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: 3px;
  padding: 0 8px 0 16px;
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.07em;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}
.recruit-btn:hover {
  background: #fff;
  color: #000;
  border-color: #fff;
}
.recruit-btn:hover .recruit-btn-icon {
  background: #000;
}
.recruit-btn:hover .recruit-btn-icon svg path {
  stroke: #fff;
}
.recruit-btn-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: #fff;
  border-radius: 3px;
  transition: background 0.3s;
}
.recruit-btn-icon svg {
  width: 12px;
  height: 12px;
}
.recruit-btn-icon svg path {
  transition: stroke 0.3s;
}

/* ========================================
   CTA セクション
======================================== */
.cta-section {
  position: relative;
  width: 100%;
  height: 337px;
  overflow: hidden;
}
.cta-bg {
  position: absolute;
  inset: 0;
}
.cta-bg img {
  /* パララックス用に帯より 30% 高くし、上下に約50pxずつはみ出させる。
     そのはみ出し分を JS で translateY して動かす（footer.php 末尾） */
  position: absolute;
  left: 0;
  top: -52%;
  width: 100%;
  height: 204%;
  object-fit: cover;
  object-position: center;
  will-change: transform;
}
.cta-overlay {
  position: absolute;
  inset: 0;
  /* 暗くする処理は撤去（2026-09-23）。画像そのものの明るさで見せる */
  background: none;
}
.cta-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1231px;
  height: 100%;
  margin: 0 auto;
  padding: 0 40px;
}
.cta-text {}
.cta-label {
  font-family: "Playfair Display", serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 1.45px;
  color: #fff;
  margin-bottom: 8px;
}
.cta-heading {
  font-family: "Zen Old Mincho", serif;
  font-size: 40px;
  font-weight: 400;
  line-height: 1.4;
  color: #fff;
}
.cta-buttons {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.cta-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 254px;
  height: 54px;
  border: 1px solid #fff;
  border-radius: 3.6px;
  color: #fff;
  text-decoration: none;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
  padding: 0 0 0 22px;
}
.cta-btn:hover {
  background: #fff;
  color: #333;
  border-color: #fff;
}
.cta-btn:hover .cta-btn-icon svg path {
  fill: #333;
}
.cta-btn-body {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cta-btn-icon {
  flex-shrink: 0;
}
.cta-btn-body span {
  font-family: "Inter", sans-serif;
  font-size: 15.6px;
  font-weight: 500;
  letter-spacing: 1.2px;
  white-space: nowrap;
}
.cta-btn-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: #fff;
  border-radius: 3.6px;
  flex-shrink: 0;
  margin-right: 9px;
  transition: background 0.3s;
}
.cta-btn:hover .cta-btn-arrow {
  background: #333;
}
.cta-btn:hover .cta-btn-arrow svg path {
  fill: #fff;
}
.cta-btn-arrow svg {
  width: 14px;
  height: 14px;
}
.cta-hours {
  font-size: 13px;
  color: rgba(255,255,255,0.8);
  letter-spacing: 0.5px;
  margin-top: -12px;
  text-align: left;
}
.cta-logo-pat { display: none; }
.site-footer {
  background: #f3f1f1;
  padding: 49px 0 0;
}
.footer-inner {
  padding: 0 114px;
}
.footer-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.footer-left {
  flex-shrink: 0;
}
.footer-logo {
  display: block;
  line-height: 0;
}
.footer-logo img {
  width: 283px;
  height: auto;
}
.footer-address {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  line-height: 1.8;
  margin-top: 27px;
  text-decoration: none;
  border-bottom: none;
}
.footer-address * {
  text-decoration: none !important;
  border-bottom: none !important;
}
.footer-nav {
  display: flex;
  gap: 80px;
}
.footer-nav-col {
  display: flex;
  flex-direction: column;
}
.footer-nav-col a {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #000;
  line-height: 2.75;
  transition: opacity 0.3s;
  white-space: nowrap;
}
.footer-nav-col a:hover {
  opacity: 0.5;
}
.footer-divider {
  width: 100%;
  height: 1px;
  background: #000;
  margin-top: 50px;
}
.footer-copy {
  font-family: 'YuGothic', 'Yu Gothic Medium', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 11px;
  font-weight: 500;
  color: #000;
  line-height: 1.8;
  padding: 23px 0 30px;
}

/* ========================================
   スクロール出現アニメーション
======================================== */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }
.reveal-delay-6 { transition-delay: 0.6s; }

/* スクロールインジケータ（FV右下） */
.scroll-indicator {
  position: absolute;
  right: 50px;
  bottom: 30px;
  z-index: 100;
}
.scroll-indicator svg {
  width: 24px;
  height: 46px;
}

/* ========================================
   Loading
======================================== */
.loading {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  z-index: 9999;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
}
.loading-logo {
  opacity: 0;
  position: relative;
  z-index: 2;
}
.loading-strips {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  display: flex;
  z-index: 1;
}
.loading-strip {
  flex: 1;
  height: 100%;
  background: #000;
}

/* ========================================
   ハンバーガーボタン（PC非表示）
======================================== */
.hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  width: 28px;
  height: 20px;
  position: relative;
  padding: 0;
  z-index: 510;
}
.hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: #000;
  position: absolute;
  left: 0;
  transition: transform 0.3s, opacity 0.3s, background 0.6s;
}
.hamburger span:nth-child(1) { top: 0; }
.hamburger span:nth-child(2) { top: 9px; }
.hamburger span:nth-child(3) { top: 18px; }
body.is-dark-cut .hamburger span {
  background: #fff;
}
.hamburger.is-open span {
  background: #000 !important;
}
.hamburger.is-open span:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
}
.hamburger.is-open span:nth-child(2) {
  opacity: 0;
}
.hamburger.is-open span:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
}

/* ========================================
   SP メニューオーバーレイ
======================================== */
.sp-menu {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #f3f1f1;
  z-index: 490;
  padding: 97px 0 40px 56px;
  flex-direction: column;
  gap: 40px;
  overflow-y: auto;
}
.sp-menu.is-open {
  display: flex;
}
body.sp-menu-open {
  overflow: hidden;
}
.sp-menu-nav {
  display: flex;
  flex-direction: column;
  width: 260px;
  gap: 0;
}
.sp-menu-link {
  font-family: 'Zen Old Mincho', serif;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  text-decoration: none;
  letter-spacing: 1.6px;
  line-height: 1;
  padding: 23px 0;
  border-bottom: 1px solid #ccc;
}
.sp-menu-link:first-child {
  padding-top: 0;
}
.sp-menu-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 149px;
  height: 40px;
  background: #000;
  border-radius: 20px;
  color: #fff;
  padding-top: 2px;
  font-family: 'Zen Old Mincho', serif;
  font-size: 15px;
  text-decoration: none;
  margin: 0 auto;
  margin-left: calc((260px - 149px) / 2);
}

/* ========================================
   フッター中間幅 901-1149px
======================================== */
@media (min-width: 901px) and (max-width: 1149px) {
  .footer-inner { padding: 0 40px; }
  .footer-nav { gap: 30px; }
  .footer-nav-col a { font-size: 13px; }
}
/* フッター狭幅 768-900px */
@media (min-width: 768px) and (max-width: 900px) {
  .footer-inner { padding: 0 30px; }
  .footer-left { transform: scale(0.9); transform-origin: top left; }
  .footer-nav { gap: 20px; margin-left: auto; transform: scale(0.9); transform-origin: top right; }
  .footer-nav-col a { font-size: 12px; line-height: 2.5; }
  .footer-copy { transform: scale(0.9); transform-origin: left; }
}

/* ========================================
   タブレット/SP共通（〜1199px）
======================================== */
@media (max-width: 1199px) {
  .header-right {
    display: none;
  }
  .hamburger {
    display: block;
  }
}

/* ========================================
   タブレット専用（768px〜1199px）
======================================== */
@media (min-width: 768px) and (max-width: 1199px) {
  .header-inner {
    padding: 18px 30px;
  }

  /* --- SPメニュー タブレット（右上パネル型） --- */
  .sp-menu {
    left: auto;
    right: 0;
    width: 340px;
    height: auto;
    padding: 80px 40px 35px;
    box-shadow: -2px 2px 15px rgba(0,0,0,0.15);
  }
  body.sp-menu-open {
    overflow: auto;
  }

  /* --- News タブレット共通 --- */
  .news-section {
    padding: 80px 60px 100px;
  }
}

/* タブレット縦持ち FV（768px〜1023px）— PC比率(1440:825)を維持 */
@media (min-width: 768px) and (max-width: 1023px) {
  .fv-section {
    height: 57.3vw;
  }
  .side-right {
    right: 15px;
  }
  .side-right-copy {
    display: none;
  }
  .side-right-bottom {
    margin-bottom: 85px;
  }
  .side-right-line {
    height: 60px;
    opacity: 0.5;
  }

  /* --- News タブレット縦持ち（共通） --- */
  .news-section {
    padding: 50px 30px 60px;
  }
  .news-inner {
    max-width: 100%;
  }
  .news-heading-area {
    width: 130px;
  }
  .news-heading {
    font-size: 28px;
    margin-top: 8px;
  }
  .news-label {
    font-size: 10px;
  }
  .news-list-area {
    gap: 25px;
    margin-top: 20px;
  }
  .news-item {
    gap: 10px;
    padding: 16px 0;
  }
  .news-date {
    font-size: 11px;
  }
  .news-tag {
    width: 78px;
    font-size: 10px;
    height: 18px;
  }
  .news-title {
    font-size: 13px;
  }
  .news-more {
    width: 188px;
    height: 36px;
    font-size: 12px;
  }
  .news-more-icon {
    width: 22px;
    height: 22px;
  }

  /* --- About タブレット縦持ち --- */
  .about-section {
    min-height: 550px;
  }
  .about-inner {
    padding: 90px 90px 110px;
  }
  .about-catchphrase {
    font-size: 52px;
  }
  .about-label {
    font-size: 10px;
  }
  .about-heading {
    font-size: 21px;
    margin-top: 20px;
  }
  .about-text {
    font-size: 14px;
    margin-top: 18px;
    line-height: 2;
  }
  .about-more {
    width: 150px;
    height: 36px;
    font-size: 12px;
    margin-top: 20px;
  }
  .about-more-icon {
    width: 22px;
    height: 22px;
  }
  .about-pieces {
    width: 1440px;
    left: 50%;
    margin-left: -720px;
    transform: scale(0.7);
    transform-origin: bottom center;
  }

  /* --- Business タブレット縦持ち --- */
  .business-section {
    padding: 80px 0 90px;
  }
  .business-header {
    width: 85%;
    margin: 0 auto 40px;
  }
  .business-cards {
    width: 85%;
    margin: 0 auto;
  }
  .business-label {
    font-size: 10px;
  }
  .business-heading {
    font-size: 21px;
    margin-top: 12px;
  }
  .business-text {
    font-size: 13px;
    margin-top: 12px;
  }
  .business-cards {
    gap: 12px;
  }
  .business-card {
    width: auto;
    flex: 1;
    min-width: 0;
    height: 200px;
  }
  .business-card-en {
    font-size: 8px;
    margin-bottom: 6px;
  }
  .business-card-title {
    font-size: 14px;
  }
  .business-card-arrow {
    width: 24px;
    height: 24px;
  }
  .business-card-arrow svg {
    width: 10px;
    height: 10px;
  }
  .business-more {
    margin-top: 35px;
  }
  .business-more-btn {
    width: 150px;
    height: 36px;
    font-size: 12px;
  }
  .business-more-icon {
    width: 22px;
    height: 22px;
  }
  .business-bg-1 {
    width: 200%;
  }
  .business-bg-2 {
    width: 200%;
  }

  /* --- Column タブレット縦持ち --- */
  .column-section {
    padding: 70px 0 80px;
  }
  .column-inner {
    width: 85%;
    margin: 0 auto;
    gap: 30px;
  }
  .column-photo {
    width: 50%;
    height: auto;
    aspect-ratio: 582 / 407;
  }
  .column-body {
    padding-left: 15px;
  }
  .column-label {
    font-size: 10px;
  }
  .column-heading {
    font-size: 21px;
    margin-top: 12px;
  }
  .column-text {
    font-size: 13px;
    margin-top: 20px;
  }
  .column-more {
    width: 150px;
    height: 36px;
    font-size: 12px;
    margin-top: 20px;
  }
  .column-more-icon {
    width: 22px;
    height: 22px;
  }
  .column-bg-1 {
    width: 80%;
  }
  .column-bg-2 {
    width: 70%;
  }

  /* --- Recruit タブレット縦持ち --- */
  .recruit-section {
    height: 480px;
  }
  .recruit-content {
    top: 65px;
    left: calc(50% - 291px);
    width: 168px;
  }
  .recruit-label {
    font-size: 10px;
  }
  .recruit-heading {
    font-size: 21px;
    margin-top: 10px;
  }
  .recruit-text {
    font-size: 13px;
    margin-top: 20px;
    line-height: 1.8;
  }
  .recruit-text br {
    display: none;
  }
  .recruit-photo-main {
    top: 65px;
    left: calc(50% - 94px);
    width: 170px;
    height: 270px;
  }
  .recruit-photo-sub1 {
    top: 85px;
    left: calc(50% + 96px);
    width: 160px;
    height: 97px;
  }
  .recruit-photo-sub2 {
    top: 185px;
    left: calc(50% + 146px);
    width: 140px;
    height: 97px;
  }
  .recruit-buttons {
    top: 330px;
    left: calc(50% + 96px);
  }
  .recruit-btn {
    width: 175px;
    height: 36px;
    font-size: 12px;
  }
  .recruit-btn-icon {
    width: 22px;
    height: 22px;
  }
  .recruit-marquee-text {
    font-size: 88px;
    padding-right: 45px;
  }

  /* --- CTA タブレット縦持ち --- */
  .cta-inner {
    padding: 55px 50px;
  }
  .cta-label {
    font-size: 10px;
  }
  .cta-heading {
    font-size: 23px;
  }
  .cta-button {
    width: 150px;
    height: 36px;
    font-size: 12px;
  }
  .cta-button-icon {
    width: 22px;
    height: 22px;
  }
}

/* iPad縦持ち（768px〜820px）— 見出しを上に積む */
@media (min-width: 768px) and (max-width: 820px) {
  .news-inner {
    flex-direction: column;
    align-items: stretch;
    width: 82%;
    margin: 0 auto;
  }
  .news-heading-area {
    width: 100%;
  }
  .news-list-area {
    margin-top: 25px;
  }
}

/* Recruit 820px〜1023px — 要素を大きく広げてバランス改善 */
@media (min-width: 820px) and (max-width: 1023px) {
  .recruit-section {
    height: 500px;
  }
  .recruit-content {
    left: 7.5%;
    width: 240px;
  }
  .recruit-photo-main {
    left: calc(50% - 60px);
    width: 190px;
    height: 300px;
  }
  .recruit-photo-sub1 {
    left: calc(50% + 145px);
    width: 165px;
    height: 103px;
  }
  .recruit-photo-sub2 {
    top: 195px;
    left: calc(50% + 190px);
    width: 142px;
    height: 100px;
  }
  .recruit-buttons {
    top: 345px;
    left: calc(50% + 145px);
  }
}

/* タブレット横持ち（1024px〜1199px）— FV高さ768px固定 */
@media (min-width: 1024px) and (max-width: 1199px) {
  .fv-section {
    height: 768px;
  }
  .side-right {
    right: 15px;
  }
  .side-right-copy {
    display: none;
  }
  .side-right-bottom {
    margin-bottom: 85px;
  }
  .side-right-line {
    height: 60px;
    opacity: 0.5;
  }
  .fv-c1-heading-ja {
    left: 208px;
  }
  .fv-c1-lead {
    left: 208px;
  }
  .fv-c1-heading-en {
    text-align: left;
    left: 208px;
    white-space: normal;
    font-size: calc(98px * var(--tc, 1));
  }
  .fv-c1-heading-en .sp-only {
    display: initial;
  }
  .fv-c2-heading {
    left: 855px;
  }
  .fv-c2-lead {
    left: 855px;
  }
  .fv-c3-heading {
    left: 208px;
  }
  .fv-c3-lead {
    left: 208px;
  }

  /* --- About タブレット横持ち --- */
  .about-section {
    min-height: 680px;
  }
  .about-inner {
    padding: 110px 60px 130px 160px;
  }
  .about-catchphrase {
    font-size: 65px;
    width: 42%;
  }
  .about-label {
    font-size: 11px;
  }
  .about-heading {
    font-size: 26px;
    margin-top: 20px;
  }
  .about-text {
    font-size: 15px;
    margin-top: 18px;
    line-height: 2;
  }
  .about-more {
    width: 160px;
    height: 40px;
    font-size: 13px;
    margin-top: 25px;
  }
  .about-more-icon {
    width: 24px;
    height: 24px;
  }
  .about-pieces {
    width: 1440px;
    left: 50%;
    margin-left: -720px;
    transform: scale(0.85);
    transform-origin: bottom center;
  }

  /* --- Column タブレット横持ち --- */
  .column-section {
    padding: 90px 0 100px;
  }
  .column-inner {
    width: 88%;
    margin: 0 4% 0 8%;
    gap: 25px;
  }
  .column-photo {
    width: 42%;
    height: auto;
    aspect-ratio: 582 / 407;
  }
  .column-body {
    padding-left: 0;
  }
  .column-label {
    font-size: 11px;
  }
  .column-heading {
    font-size: 26px;
    margin-top: 15px;
  }
  .column-text {
    font-size: 14px;
    margin-top: 25px;
  }
  .column-more {
    width: 160px;
    height: 40px;
    font-size: 13px;
    margin-top: 25px;
  }
  .column-more-icon {
    width: 24px;
    height: 24px;
  }
  .column-bg-1 {
    width: 60%;
  }
  .column-bg-2 {
    width: 50%;
  }

  /* --- Business タブレット横持ち --- */
  .business-section {
    padding: 100px 0 110px;
  }
  .business-header {
    width: 85%;
    margin: 0 auto 50px;
  }
  .business-cards {
    width: 85%;
    margin: 0 auto;
    gap: 15px;
  }
  .business-label {
    font-size: 11px;
  }
  .business-heading {
    font-size: 26px;
    margin-top: 15px;
  }
  .business-text {
    font-size: 14px;
    margin-top: 15px;
  }
  .business-card {
    width: auto;
    flex: 1;
    min-width: 0;
    height: 240px;
  }
  .business-card-en {
    font-size: 9px;
    margin-bottom: 8px;
  }
  .business-card-title {
    font-size: 18px;
  }
  .business-card-arrow {
    width: 28px;
    height: 28px;
  }
  .business-card-arrow svg {
    width: 12px;
    height: 12px;
  }
  .business-more {
    margin-top: 40px;
  }
  .business-more-btn {
    width: 160px;
    height: 40px;
    font-size: 13px;
  }
  .business-more-icon {
    width: 24px;
    height: 24px;
  }
  .business-bg-1 {
    width: 150%;
  }
  .business-bg-2 {
    width: 150%;
  }

  /* --- Recruit タブレット横持ち --- */
  .recruit-section {
    height: 600px;
  }
  .recruit-content {
    top: 65px;
    left: 7.5%;
    width: 290px;
  }
  .recruit-label {
    font-size: 11px;
  }
  .recruit-heading {
    font-size: 26px;
    margin-top: 12px;
  }
  .recruit-text {
    font-size: 14px;
    margin-top: 22px;
    line-height: 1.8;
  }
  .recruit-text br {
    display: none;
  }
  .recruit-photo-main {
    top: 65px;
    left: calc(50% - 75px);
    width: 230px;
    height: 360px;
  }
  .recruit-photo-sub1 {
    top: 85px;
    left: calc(50% + 181px);
    width: 195px;
    height: 125px;
  }
  .recruit-photo-sub2 {
    top: 220px;
    left: calc(50% + 238px);
    width: 170px;
    height: 120px;
  }
  .recruit-buttons {
    top: 400px;
    left: calc(50% + 181px);
  }
  .recruit-btn {
    width: 190px;
    height: 40px;
    font-size: 13px;
  }
  .recruit-btn-icon {
    width: 24px;
    height: 24px;
  }
  .recruit-marquee-text {
    font-size: 100px;
    padding-right: 50px;
  }

  /* --- CTA タブレット横持ち --- */
  .cta-inner {
    padding: 65px 60px;
  }
  .cta-label {
    font-size: 11px;
  }
  .cta-heading {
    font-size: 28px;
  }
  .cta-button {
    width: 170px;
    height: 42px;
    font-size: 13px;
  }
  .cta-button-icon {
    width: 26px;
    height: 26px;
  }

  /* --- News タブレット横持ち（縦組） --- */
  .news-section {
    padding: 80px 60px 100px;
  }
  .news-inner {
    flex-direction: column;
    align-items: stretch;
    width: 82%;
    margin: 0 auto;
  }
  .news-heading-area {
    width: 100%;
  }
  .news-list-area {
    margin-top: 25px;
  }
}

/* ========================================
   SP版レスポンシブ
======================================== */
@media (max-width: 767px) {
  /* --- Header SP --- */
  .header-inner {
    padding: 16px 20px;
  }
  .header-logo img {
    width: 160px;
  }
  .header-right {
    display: none;
  }
  .hamburger {
    display: block;
  }

  /* --- FV Text SP --- */
  .sp-only { display: initial; }
  .pc-only { display: none; }
  .fv-c1-heading-ja {
    top: 293px;
    left: 24px;
    font-size: calc(25.5px * var(--tc, 1));
    font-weight: 600;
    letter-spacing: 0.735px;
    line-height: 1.6;
  }
  .fv-c1-lead {
    top: 343px;
    left: 27px;
    width: 279px;
    font-size: calc(13px * var(--tc, 1));
    line-height: 2;
    color: #0f0f0f;
  }
  .fv-c1-heading-en {
    top: auto;
    bottom: calc(var(--bottom-safe, 0px) + 5px);
    left: 14px;
    width: 354px;
    white-space: normal;
    text-align: left;
    font-size: calc(40px * var(--tc, 1));
    font-weight: 400;
    line-height: 0.955;
  }
  .fv-c2-heading {
    top: 313px;
    left: 112px;
    transform: none;
    font-size: calc(25.5px * var(--tc, 1));
    font-weight: 600;
    letter-spacing: 0.735px;
    line-height: 1.6;
  }
  .fv-c2-lead {
    top: 363px;
    left: 115px;
    width: 279px;
    font-size: calc(13px * var(--tc, 1));
    text-align: left;
    line-height: 2;
  }
  .fv-c3-heading {
    top: 278px;
    left: 24px;
    font-size: calc(25.5px * var(--tc, 1));
    font-weight: 600;
    letter-spacing: 0.735px;
    line-height: 1.6;
    width: auto;
  }
  .fv-c3-lead {
    top: 328px;
    left: 27px;
    width: 279px;
    font-size: calc(13px * var(--tc, 1));
    text-align: left;
    line-height: 2;
  }

  /* --- FV SP --- */
  .fv {
    height: 876px;
  }

  /* --- Side Right SP --- */
  .side-right {
    right: 15px;
  }
  .fv-counter {
    right: calc(100% + 12px);
    bottom: -3px;
    gap: 6.9px;
  }
  .fv-counter-cur { font-size: 27.6px; }
  .fv-counter-total { font-size: 15.2px; }
  .side-right-bottom {
    margin-bottom: 20px;
  }
  .side-right-copy {
    display: none;
  }
  .side-right-scroll {
    font-size: 9px;
  }

  /* --- Recruit SP --- */
  .recruit-section {
    height: 1373px;
  }
  .recruit-content {
    top: 83px;
    left: 0;
    right: 0;
    width: 345px;
    margin: 0 auto;
  }
  .recruit-heading {
    font-size: 27px;
  }
  .recruit-text {
    margin-top: 25px;
    line-height: 1.94;
  }
  .recruit-photo-main {
    top: 450px;
    left: 0;
    right: 0;
    width: 268px;
    height: 430px;
    margin: 0 auto;
  }
  .recruit-photo-sub1 {
    top: 857px;
    left: 30px;
    width: 261px;
    height: 163px;
  }
  .recruit-photo-sub2 {
    top: 1012px;
    left: auto;
    right: 30px;
    width: 225px;
    height: 162px;
  }
  .recruit-buttons {
    top: 1204px;
    left: 0;
    right: 0;
    width: 206px;
    margin: 0 auto;
  }
  .recruit-btn-2nd {
    display: none;
  }
  .recruit-marquee-text {
    font-size: 108px;
  }

  /* --- Business SP --- */
  .business-section {
    padding: 120px 26px 120px 30px;
  }
  .business-bg-1 {
    width: 500%;
    left: auto;
    right: 0;
    top: -2%;
  }
  .business-bg-2 {
    width: 650%;
    left: auto;
    right: 0;
    bottom: 0;
    top: auto;
  }
  .business-header {
    text-align: left;
    margin-bottom: 50px;
  }
  .business-heading {
    font-size: 27px;
  }
  .business-text {
    font-size: 16px;
    line-height: 1.94;
    margin-top: 10px;
  }
  .business-cards {
    flex-direction: column;
    gap: 43px;
  }
  .business-card {
    width: 100%;
    height: 415px;
  }
  .business-card:nth-child(2),
  .business-card:nth-child(3) {
    margin-top: 0;
  }
  .business-card-content {
    bottom: 9px;
    left: 14px;
    right: 9px;
  }
  .business-card-en {
    font-size: 11px;
    margin-bottom: 9px;
  }
  .business-card-title {
    font-size: 23px;
    line-height: 1.29;
  }
  .business-card-arrow {
    width: 43px;
    height: 43px;
  }
  .business-card-arrow svg {
    width: 16px;
    height: 16px;
  }

  /* --- Column SP --- */
  .column-section {
    padding: 80px 30px 80px;
  }
  .column-inner {
    flex-direction: column;
    gap: 0;
  }
  .column-photo {
    width: 100%;
    height: auto;
    aspect-ratio: 315 / 220;
    order: 3;
    margin-top: 20px;
  }
  .column-body {
    padding-top: 0;
    display: contents;
  }
  .column-label {
    order: 1;
  }
  .column-heading {
    order: 2;
    font-size: 27px;
    margin-top: 15px;
  }
  .column-text {
    order: 4;
    font-size: 16px;
    line-height: 1.94;
    margin-top: 25px;
  }
  .column-more {
    order: 5;
    margin-top: 25px;
  }
  .column-bg-1 {
    width: 70%;
    right: -10%;
    bottom: -5%;
  }
  .column-bg-2 {
    width: 70%;
    left: -10%;
    top: -5%;
  }

  /* --- About SP --- */
  .about-section {
    min-height: auto;
  }
  .about-inner {
    flex-direction: column;
    padding: 130px 30px 345px;
    gap: 60px;
  }
  .about-catchphrase {
    font-size: 60px;
    width: 100%;
  }
  .about-content {
    padding-top: 0;
    width: 315px;
  }
  .about-heading {
    font-size: 27px;
    letter-spacing: 0.03em;
  }
  .about-text {
    font-size: 17px;
    letter-spacing: 0.06em;
  }
  .about-pieces {
    width: 1440px;
    left: auto;
    right: 0;
    transform: scale(0.55);
    transform-origin: bottom right;
  }

  /* --- News SP --- */
  .news-section {
    padding: 100px 30px;
  }
  .news-inner {
    flex-direction: column;
    max-width: 315px;
    margin: 0 auto;
  }
  .news-heading-area {
    width: 100%;
  }
  .news-label {
    font-size: 9.8px;
    letter-spacing: 0.1em;
  }
  .news-heading {
    font-size: 34.3px;
    margin-top: 8px;
  }
  .news-list-area {
    margin-top: 30px;
    align-items: flex-start;
    gap: 30px;
  }
  .news-item {
    flex-wrap: wrap;
    gap: 8px 9px;
    padding: 23px 0;
  }
  .news-title {
    width: 100%;
    flex: none;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
  }

  /* --- CTA SP --- */
  .cta-logo-pat--1 { left: 0; top: 20px; width: 155px; height: 28px; opacity: 0.12; }
  .cta-logo-pat--2 { left: 215px; top: 20px; width: 155px; height: 28px; opacity: 0.15; }
  .cta-logo-pat--3 { left: 100px; top: 68px; width: 155px; height: 28px; opacity: 0.12; }
  .cta-logo-pat--4 { left: 0; top: 118px; width: 155px; height: 28px; opacity: 0.12; }
  .cta-logo-pat--5 { left: 215px; top: 118px; width: 155px; height: 28px; opacity: 0.12; }
  .cta-logo-pat--6 { left: 100px; top: 168px; width: 155px; height: 28px; opacity: 0.12; }
  .cta-logo-pat--7 { left: 0; top: 218px; width: 155px; height: 28px; opacity: 0.12; }
  .cta-logo-pat--8 { left: 215px; top: 218px; width: 155px; height: 28px; opacity: 0.12; }
  .cta-section { height: auto; }
  .cta-inner { flex-direction: column; align-items: flex-start; padding: 50px 20px; gap: 30px; }
  .cta-heading { font-size: 26px; }
  .cta-buttons { width: 100%; max-width: 270px; }
  .cta-btn { width: 100%; max-width: none; box-sizing: border-box; }
  .cta-btn-arrow { margin-right: 9px; }
  .cta-hours { margin-top: -8px; font-size: 12px; }
  .cta-inner { flex-direction: column; align-items: flex-start; padding: 54px 20px 70px; gap: 40px; }
  .cta-heading { font-size: 27px; }

  /* --- Footer SP --- */
  .site-footer {
    padding: 49px 0 0;
  }
  .footer-inner {
    max-width: 315px;
    margin: 0 auto;
    padding: 0;
  }
  .footer-top {
    flex-direction: column;
  }
  .footer-logo img {
    width: 283px;
  }
  .footer-nav {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0;
    margin-top: 25px;
    width: 100%;
  }
  .footer-divider {
    width: 100%;
    margin-top: 40px;
  }
  .footer-copy {
    padding: 15px 0 30px;
  }
}

/* FV 1枚目の見出し・リード — PC（1200px以上）のみ110%、25px下・10px右へ */
@media (min-width: 1200px) {
  .fv-c1-heading-ja {
    top: 251px;
    left: calc(var(--left-safe, 0px) + 94px);
    font-size: calc(37px * 1.1 * var(--tc, 1));
  }
  .fv-c1-lead {
    top: calc(251px + 37px * 1.1 * var(--tc, 1) * 1.64 + 19px);
    left: calc(var(--left-safe, 0px) + 109px);
    width: calc(388px * 1.1);
    font-size: calc(17px * 1.1 * var(--tc, 1));
  }
}

/* FV 2枚目の見出し・リード — PC（1200px以上）のみ110%、25px下へ（見出しとリードのあきは元のまま） */
@media (min-width: 1200px) {
  .fv-c2-heading {
    top: 270px;
    font-size: calc(37px * 1.1 * var(--tc, 1));
    letter-spacing: calc(1.11px * 1.1);
  }
  .fv-c2-lead {
    top: calc(270px + 37px * 1.1 * var(--tc, 1) * 1.5 + 24.5px);
    width: calc(388px * 1.1);
    font-size: calc(17px * 1.1 * var(--tc, 1));
  }
}

/* FV 3枚目の見出し・リード — PC（1200px以上）のみ110%、25px下へ（見出しとリードのあきは元のまま） */
@media (min-width: 1200px) {
  .fv-c3-heading {
    top: 265px;
    font-size: calc(37px * 1.1 * var(--tc, 1));
    letter-spacing: calc(1.11px * 1.1);
  }
  .fv-c3-lead {
    top: calc(265px + 37px * 1.1 * var(--tc, 1) * 1.5 + 24.5px);
    width: calc(388px * 1.1);
    font-size: calc(17px * 1.1 * var(--tc, 1));
  }
}

/* FVカウンター「01 / 03」— PC（1200px以上）のみ121%（110%×110%、右端・下端の位置はそのまま） */
@media (min-width: 1200px) {
  .fv-counter { gap: 9.7px; }
  .fv-counter-cur { font-size: 36.3px; }
  .fv-counter-total { font-size: 18.2px; }
}

/* About 背景写真 — PC（1200px以上）のみ。Figma 393:3057（写真＋白グラデーションは画像に焼き込み済み） */
.about-bg {
  display: none;
}
@media (min-width: 1200px) {
  .about-section {
    background: #fff;
  }
  .about-bg {
    display: block;
    position: absolute;
    inset: 0;
    z-index: 0;
    background: url(../images/about-bg-pc.webp?v=2) center bottom / cover no-repeat;
    pointer-events: none;
  }
  .about-pieces {
    display: none;
  }
  .about-inner {
    padding: 45px 163px 140px;
  }
  .about-catchphrase {
    width: 637.6px;
    font-size: calc(92.169px * 0.9);
    color: #000;
  }
  .about-content {
    padding-top: 5.85px;
  }
  .about-label {
    display: none;
  }
  .about-heading {
    margin-top: 0;
    color: #000;
    letter-spacing: 1px;
  }
  .about-text {
    margin-top: 16.15px;
    color: #000;
    letter-spacing: 1px;
  }
  .about-more {
    margin-top: 44px;
    border-color: rgba(0,0,0,0.7);
    color: #000;
  }
  .about-more:hover {
    background: #000;
    color: #fff;
    border-color: #000;
  }
  .about-more-icon {
    background: #000;
  }
  .about-more-icon svg path {
    stroke: #fff;
  }
  .about-more:hover .about-more-icon {
    background: #fff;
  }
  .about-more:hover .about-more-icon svg path {
    stroke: #000;
  }
}

/* About ボタン「会社情報はこちら」— タブレットで1行に収まるよう幅を広げる */
@media (min-width: 1024px) and (max-width: 1199px) {
  .about-more { width: 180px; white-space: nowrap; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .about-more { width: 170px; white-space: nowrap; }
}

/* Service ボタン「サービス一覧はこちら」— NEWSボタンと同じ幅に */
.business-more-btn { width: 251px; white-space: nowrap; }
@media (min-width: 1024px) and (max-width: 1199px) {
  .business-more-btn { width: 235px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .business-more-btn { width: 188px; }
}

/* Column ボタン「記事一覧はこちら」— タブレットで1行に収まるよう幅を広げる（Aboutボタンと同じ） */
@media (min-width: 1024px) and (max-width: 1199px) {
  .column-more { width: 180px; white-space: nowrap; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .column-more { width: 170px; white-space: nowrap; }
}

/* About 背景写真 — SP（767px以下）。PC版（Figma 393:3057）に合わせて白背景＋黒文字、写真は下部に敷いて上を白へフェード */
@media (max-width: 767px) {
  .about-section {
    background: #fff;
  }
  .about-bg {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 560px;
    z-index: 0;
    background:
      linear-gradient(180deg, #fff 36%, rgba(255,255,255,0.5) 58%, rgba(255,255,255,0) 86.6%),
      url(../images/about-bg-sp.webp) center bottom / cover no-repeat;
    pointer-events: none;
  }
  .about-pieces {
    display: none;
  }
  .about-catchphrase {
    color: #000;
  }
  .about-label {
    display: none;
  }
  .about-heading {
    margin-top: 0;
    color: #000;
  }
  .about-text {
    color: #000;
  }
  .about-more {
    border-color: rgba(0,0,0,0.7);
    color: #000;
  }
  .about-more-icon {
    background: #000;
  }
  .about-more-icon svg path {
    stroke: #fff;
  }
}

/* About 本文 — SPのみ改行なし・両端揃え */
@media (max-width: 767px) {
  .about-text br {
    display: none;
  }
  .about-text {
    text-align: justify;
    letter-spacing: 0.02em;
  }
  .about-content {
    width: 100%;
  }
  .about-catchphrase {
    font-size: 52px;
  }
  .about-catchphrase > span {
    white-space: nowrap;
  }
  .about-inner {
    padding-top: 30px;
    gap: 45px;
  }
}

/* NEWS ボタン — SPのみ10px下げる（上の一覧との空きを+10px） */
@media (max-width: 767px) {
  .news-more {
    margin-top: 10px;
  }
}

/* RECRUIT サブ写真2枚 — PC（1200px以上）のみ、2枚の組を上の写真の左上基準で92%に縮小し、10px右へ */
@media (min-width: 1200px) {
  .recruit-photo-sub1 {
    top: 148px;
    left: calc(var(--rc) + 945px);
    width: calc(274px * 0.92);
    height: calc(171px * 0.92);
  }
  .recruit-photo-sub2 {
    top: calc(148px + 163px * 0.92);
    left: calc(var(--rc) + 945px + 95px * 0.92);
    width: calc(236px * 0.92);
    height: calc(170px * 0.92);
  }
}

/* CTA 背景 — FV2枚目の幾何学模様（左寄せ・右は黒）。パララックスは撤去（2026-10-06） */
.cta-section {
  background: #000;
}
.cta-bg img {
  /* パララックス：帯の204%の高さの画像を上下に動かす（footer.php 末尾のJS）。PC・SPとも */
  object-position: left center;
  filter: brightness(0.45);
}
@media (max-width: 767px) {
  .cta-bg img {
    object-position: center center;
  }
}

/* COLUMN：PCのみ写真幅を縮め、見出しの文字幅を確保 */
@media (min-width: 1200px) {
  .column-photo {
    width: min(500px, calc(100% - 425px));
  }
  .column-body {
    min-width: 360px;
  }
}

/* ABOUT: PCのみ背景写真を穏やかにスクロール */
@media (min-width: 1200px) and (prefers-reduced-motion: no-preference) {
  .about-bg {
    inset: -80px 0;
    transform: translate3d(0, var(--about-parallax-y, 0px), 0);
    will-change: transform;
  }
}

/* ABOUT: SPは控えめな移動量で、下端に余白を出さない */
@media (max-width: 767px) and (prefers-reduced-motion: no-preference) {
  .about-bg {
    bottom: -40px;
    height: 640px;
    transform: translate3d(0, var(--about-parallax-y, 0px), 0);
    will-change: transform;
  }
}

/* ABOUT: 狭いPC幅では英字を縮め、右の文章幅を1440px時と同じに保つ。 */
@media (min-width: 1200px) and (max-width: 1439px) {
  .about-catchphrase {
    width: calc(100% - 476.4px);
    font-size: calc(82.9521px - (1440px - 100vw) * 0.13);
  }
  .about-content {
    flex: 0 0 476.4px;
  }
}

/* COLUMN: PCは画像の左上を保ち、下端を本文側のボタンに揃える。 */
@media (min-width: 1200px) {
  .column-inner {
    display: grid;
    grid-template-columns: minmax(0, min(437px, calc(100% - 505px))) minmax(440px, 1fr);
  }
  .column-photo {
    grid-area: 1 / 1;
    position: absolute;
    inset: 0;
    width: min(437px, calc(100% - 505px));
    height: 100%;
    object-fit: cover;
  }
  .column-body {
    grid-area: 1 / 2;
    min-width: 0;
  }
}

/* RECRUIT: 1440px未満のPCでは写真3枚を同じ比率で縮小。文字サイズは維持。 */
@media (min-width: 1200px) and (max-width: 1439px) {
  .recruit-section { --recruit-shrink: calc(1440px - 100vw); }
  .recruit-photo-main {
    left: calc(590px - var(--recruit-shrink) * 0.000000000);
    top: calc(120px - var(--recruit-shrink) * 0.000000000);
    width: calc(317px - var(--recruit-shrink) * 0.220299106);
    height: calc(506px - var(--recruit-shrink) * 0.351644630);
  }
  .recruit-photo-sub1 {
    left: calc(945px - var(--recruit-shrink) * 0.246707201);
    top: calc(148px - var(--recruit-shrink) * 0.019458596);
    width: calc(252.08px - var(--recruit-shrink) * 0.175182961);
    height: calc(157.32px - var(--recruit-shrink) * 0.109329512);
  }
  .recruit-photo-sub2 {
    left: calc(1032.4px - var(--recruit-shrink) * 0.307445819);
    top: calc(297.96px - var(--recruit-shrink) * 0.123673278);
    width: calc(217.12px - var(--recruit-shrink) * 0.150887514);
    height: calc(156.4px - var(--recruit-shrink) * 0.108690158);
  }
  .recruit-buttons {
    left: calc(992px - var(--recruit-shrink) * 0.241666667);
    top: calc(581px - var(--recruit-shrink) * 0.351644630);
  }
}

/* RECRUIT: PC本文の幅を全角1文字＋字間ぶん狭める。 */
@media (min-width: 1200px) {
  .recruit-text {
    width: calc(100% - 1.06em);
  }
}

/* ABOUT: compact photo section, with a clear boundary below NEWS. */
@media (min-width: 1200px) {
  .about-section { min-height: 620px; }
  .about-inner { padding-top: 60px; padding-bottom: 64px; }
  .about-bg { background-position: center bottom; }
}
@media (max-width: 767px) {
  .about-section { min-height: 0; }
  .about-inner { padding-bottom: 100px; }
}
/* Figma 393:3057 — desktop ABOUT, 1440 × 620. */
.about-figma-arrow { display: none; }
@media (min-width: 1200px) {
  .about-section { min-height: 620px; background: #272727; }
  .about-inner { max-width: 1440px; padding: 96px 0 65px; width: calc(100% - 120px); display: grid; grid-template-columns: minmax(0, 630.8fr) minmax(0, 417fr); max-width: 1047.8px; }
  .about-catchphrase { width: auto; font-size: 92.169px; line-height: 1.12; color: #fff; }
  .about-content { width: auto; min-width: 0; padding-top: 5.852px; }
  .about-heading { color: #fff; font-size: 37px; line-height: 1.55; margin-top: 0; letter-spacing: 1px; }
  .about-text { color: #fff; font-size: 18px; line-height: 2.2; letter-spacing: 1px; margin-top: 17.85px; }
  .about-more { margin-top: 31px; color: #fff; border-color: rgba(255,255,255,.7); }
  .about-more:hover { background: rgba(255,255,255,.15); color: #fff; border-color: #fff; }
  .about-more-icon { display: none; }
  .about-figma-arrow { display: block; flex: 0 0 30.0957px; }
  .about-bg { display:block; inset: 0; height: auto; background:none; transform:none; will-change:auto; }
  .about-bg::before { content:""; position:absolute; width:108.12%; height:167.41%; left:-8.09%; top:-67.42%; background:url(../images/about-photo-pc.png) center / 100% 100% no-repeat; transform:translateY(clamp(0px, var(--about-parallax-y, 0px), 200px)); }
  .about-bg::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.25); }
}

@media (min-width:1200px) { .about-inner { grid-template-columns: minmax(0,1fr) 476.4px; column-gap: 30px; } .about-catchphrase { font-size: clamp(57.66px,5.3568vw,77.145453px); } }

/* PC ABOUT button: black background with white text and arrow on hover. */
@media (min-width: 1200px) {
  .about-more:hover { background: #000; border-color: #000; color: #fff; }
  .about-more:hover .about-figma-arrow { display: block; }
  .about-more:hover .about-more-icon { display: none; }
  .about-more:hover .about-more-icon svg path { stroke: #000; }
}
/* Figma 488:517: mobile ABOUT, keeping the current CMS copy. */
@media (max-width: 767px) {
  .about-section { min-height: 851px; background: #333; }
  .about-inner { display: flex; flex-direction: column; width: 100%; max-width: none; padding: 88px 30px 100px; gap: 30px; }
  .about-catchphrase { width: 100%; color: #fff; font-size: clamp(40px, 13.8667vw, 59.91px); line-height: 1.12; }
  .about-content { width: 100%; padding-top: 5.852px; }
  .about-label { display: block; color: #fff; font-size: 14px; line-height: 14px; letter-spacing: 1.4467px; margin: 0; }
  .about-heading { color: #fff; font-size: 27px; line-height: 1.55; letter-spacing: .7721px; margin-top: 21px; }
  .about-text { color: #fff; font-size: 17px; line-height: 2.2; letter-spacing: 1px; margin-top: 17px; text-align: left; }
  .about-text br { display: none; }
  .about-more { width: 206px; height: 45px; margin-top: 31px; color: #fff; border-color: rgba(255,255,255,.7); }
  .about-more-icon { display: none; }
  .about-figma-arrow { display: block; flex: 0 0 30.0957px; }
  .about-more:hover { background: #000; color: #fff; border-color: #000; }
  .about-bg { display: block; inset: 0; height: auto; background: none; transform: none; }
  .about-bg::before { content: ""; position: absolute; left: -16.82%; top: -70px; width: 140.06%; height: calc(100% + 140px); background: url(../images/about-photo-sp.png) center / 100% 100% no-repeat; transform: translateY(var(--about-parallax-y, 0px)); }
  .about-bg::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.35); }
}

/* Official hito-heya management photo: keep all three people in the card. */
.business-card:nth-child(2) .business-card-img { object-position: 25% center; }
