@charset "UTF-8";
/* =========================================
   ABOUT — 会社概要 統合ページ
   理念 / 代表メッセージ / 会社概要 / アクセス
========================================= */

/* Hero */
.about-mv {
  position: relative;
  height: clamp(72vh, 90vh, 920px);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 0 0 clamp(72px, 9vw, 120px);
}
.about-mv .bg {
  position: absolute; inset: 0;
  background-image: url('/assets/photos/company/company-04.jpg');
  background-size: cover;
  background-position: center;
}
.about-mv::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.30) 0%, rgba(0,0,0,0) 25%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.55) 100%);
}
.about-mv .container { position: relative; z-index: 2; color: #fff; }
.about-mv .breadcrumb {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: rgba(255,255,255,0.75);
  margin-bottom: 32px;
}
.about-mv .breadcrumb a { color: rgba(255,255,255,0.75); }
.about-mv .breadcrumb span { color: rgba(255,255,255,0.4); }
.about-mv .small {
  font-family: var(--font-en);
  font-weight: 300;
  font-size: clamp(13px, 1.4vw, 18px);
  letter-spacing: 0.32em;
  text-transform: uppercase;
  display: block;
  color: rgba(255,255,255,0.85);
  margin-bottom: 24px;
}
.about-mv .big {
  font-family: var(--font-serif-jp);
  font-weight: 500;
  font-size: clamp(34px, 5.8vw, 88px);
  line-height: 1.45;
  color: #fff;
  letter-spacing: 0.06em;
  margin-bottom: 28px;
  text-shadow: 0 2px 28px rgba(0,0,0,0.22);
}
.about-mv h1 {
  font-size: clamp(13px, 1.2vw, 16px);
  font-weight: 400;
  letter-spacing: 0.24em;
  color: rgba(255,255,255,0.85);
}

/* Section commons */
section.s-philosophy,
section.s-message,
section.s-company,
section.s-access,
section.s-final-cta {
  padding-top: clamp(120px, 16vw, 200px);
  padding-bottom: clamp(120px, 16vw, 200px);
}
.s-philosophy { background: var(--c-bg); }
.s-message { background: var(--c-bg-soft); }
.s-company { background: var(--c-bg); }
section.s-access { background: var(--c-bg-soft); padding-top: 0 !important; display: flow-root; }
section.s-final-cta { background: transparent; padding-top: 0 !important; padding-bottom: clamp(80px, 10vw, 120px); }

.section-label {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.32em;
  color: var(--c-sub);
  margin-bottom: 24px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.section-label::before {
  content: '';
  width: 32px; height: 1px;
  background: var(--c-sub);
}

/* Editorial intro under section label */
.editorial-head {
  max-width: 800px;
  /* 2026-05-05 改：下余白を 2/3 に縮小（旧 64-100px → 43-67px） */
  margin: 0 auto clamp(43px, 5.4vw, 67px);
  text-align: center;
}
.editorial-head h2 {
  font-family: var(--font-serif-jp);
  font-size: clamp(24px, 3.4vw, 44px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.12em;
  color: var(--c-black);
}
.editorial-body {
  max-width: 640px;
  margin: 0 auto;
}
.editorial-body p {
  font-size: 15px;
  line-height: 2.4;
  margin-bottom: 28px;
  color: var(--c-text);
  letter-spacing: 0.06em;
}

/* MVA grid */
.mva-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(48px, 6vw, 100px) clamp(32px, 5vw, 80px);
  max-width: 1280px;
  margin: clamp(72px, 8vw, 120px) auto 0;
}
.mva-item .num {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.32em;
  color: var(--c-sub);
  margin-bottom: 28px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
}
.mva-item .num::after {
  content: '';
  width: 32px; height: 1px;
  background: var(--c-sub);
}
.mva-item .en {
  font-family: var(--font-serif-en);
  font-style: italic;
  font-size: clamp(22px, 2.2vw, 28px);
  color: var(--c-sub);
  margin-bottom: 6px;
  display: block;
  letter-spacing: 0.02em;
}
.mva-item .ja-label {
  display: block;
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--c-text);
  margin-bottom: 18px;
}
.mva-item h3 {
  font-family: var(--font-serif-jp);
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 500;
  line-height: 1.7;
  color: var(--c-black);
  letter-spacing: 0.08em;
  margin-bottom: 28px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--c-line);
}
.mva-item p {
  font-size: 14px;
  line-height: 2.2;
  color: var(--c-text);
  letter-spacing: 0.06em;
}
@media (max-width: 800px) { .mva-grid { grid-template-columns: 1fr; } }

/* Approach (4 cards) */
.approach-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(40px, 5vw, 72px);
  max-width: 1080px;
  margin: clamp(80px, 10vw, 140px) auto 0;
  border-top: 1px solid var(--c-line);
  padding-top: clamp(48px, 6vw, 80px);
}
.approach-item .num {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.32em;
  color: var(--c-sub);
  margin-bottom: 14px;
  display: block;
}
.approach-item h3 {
  font-family: var(--font-serif-jp);
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 500;
  color: var(--c-black);
  letter-spacing: 0.08em;
  margin-bottom: 20px;
  line-height: 1.7;
}
.approach-item p { font-size: 14px; line-height: 2.2; color: var(--c-text); letter-spacing: 0.06em; }
@media (max-width: 800px) { .approach-grid { grid-template-columns: 1fr; } }

/* Photo band */
.photo-band {
  position: relative;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: var(--c-bg-soft);
}
.photo-band img { display: block; width: 100%; height: 100%; object-fit: cover; }
.photo-band.aspect-21x9 { aspect-ratio: 21 / 9; }
.photo-band.aspect-16x9 { aspect-ratio: 16 / 9; }

/* Message — portrait + flowing letter */
.message-portrait {
  margin: 0 auto clamp(60px, 8vw, 100px);
  max-width: 720px;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--c-bg);
}
.message-portrait img { width: 100%; height: 100%; object-fit: cover; }
.message-body {
  max-width: 680px;
  margin: 0 auto;
}
.message-body .pre-title {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.32em;
  color: var(--c-sub);
  margin-bottom: 24px;
  text-align: center;
}
.message-body h2 {
  font-family: var(--font-serif-jp);
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.12em;
  color: var(--c-black);
  margin-bottom: 56px;
  text-align: center;
}
.message-body h3 {
  font-family: var(--font-serif-jp);
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--c-black);
  margin-top: 56px;
  margin-bottom: 28px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--c-line);
}
.message-body p {
  font-size: 15px;
  line-height: 2.4;
  margin-bottom: 28px;
  color: var(--c-text);
  letter-spacing: 0.06em;
}
.message-body .sign {
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid var(--c-line);
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 16px;
}
.message-body .sign .role {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--c-sub);
}
.message-body .sign .name {
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
}

/* Company table */
.company-table {
  width: 100%;
  max-width: 880px;
  margin: 0 auto;
  border-top: 0;
}
.company-table tr { border-bottom: 1px solid var(--c-line); }
.company-table th,
.company-table td {
  padding: 28px 0;
  text-align: left;
  vertical-align: top;
  font-size: 14px;
  line-height: 2;
}
.company-table th {
  width: 220px;
  font-family: var(--font-en);
  font-weight: 500;
  letter-spacing: 0.18em;
  color: var(--c-sub);
  font-size: 14px;
  padding-right: 24px;
}
.company-table td { color: var(--c-text); letter-spacing: 0.06em; }
@media (max-width: 700px) {
  .company-table th, .company-table td { display: block; padding: 12px 0; }
  .company-table th { width: 100%; padding-bottom: 4px; }
  .company-table td { padding-top: 0; padding-bottom: 24px; }
}

/* Trademark table */
.trademark-wrap {
  max-width: 880px;
  margin: clamp(72px, 8vw, 120px) auto 0;
}
.trademark-wrap .sub-label {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.28em;
  color: var(--c-sub);
  margin-bottom: 20px;
  display: block;
}
.trademark-wrap h3 {
  font-family: var(--font-serif-jp);
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--c-black);
  margin-bottom: 36px;
}
.trademark-table {
  width: 100%;
  border-top: 1px solid var(--c-line);
}
.trademark-table tr { border-bottom: 1px solid var(--c-line); }
.trademark-table td {
  padding: 22px 0;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.06em;
  color: var(--c-text);
}
.trademark-table td:first-child {
  width: 50%;
  color: var(--c-black);
  font-weight: 500;
}
.trademark-table td:last-child {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--c-sub);
}

/* Clients */
.clients-wrap {
  max-width: 880px;
  margin: clamp(72px, 8vw, 120px) auto 0;
}
.clients-wrap p {
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: 0.06em;
  color: var(--c-text);
  margin-bottom: 20px;
}
.clients-wrap .clients-list {
  font-size: 13px;
  line-height: 2.4;
  letter-spacing: 0.06em;
  color: var(--c-text);
  padding: 32px 0;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.clients-wrap .note { font-size: 12px; color: var(--c-sub); margin-top: 24px; line-height: 2; }

/* Access — 2 office grid */
.office-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 0;
  border-left: 0;
  margin-top: clamp(48px, 6vw, 80px);
}
.office-card {
  padding: clamp(40px, 5vw, 72px) clamp(28px, 4vw, 56px);
  border: 0;
  background: transparent;
}
.office-card .visual {
  aspect-ratio: 16 / 10;
  background: var(--c-bg-soft);
  margin-bottom: 32px;
  overflow: hidden;
}
.office-card .visual img { width: 100%; height: 100%; object-fit: cover; }
.office-card .visual.map iframe { width: 100%; height: 100%; border: 0; display: block; }
.office-card .label {
  font-family: var(--font-en);
  font-size: 13px;
  letter-spacing: 0.16em;
  color: var(--c-black);
  margin-bottom: 16px;
  display: block;
  font-weight: 500;
}
.office-card h3 {
  font-size: 18px;
  font-weight: 500;
  color: var(--c-black);
  margin-bottom: 14px;
  letter-spacing: 0.06em;
}
.office-card .zip { font-family: var(--font-en); font-size: 14px; color: var(--c-sub); margin-bottom: 6px; letter-spacing: 0.06em; }
.office-card .addr { font-size: 14px; line-height: 2; color: var(--c-text); margin-bottom: 16px; }
.office-card .meta { font-size: 14px; color: var(--c-sub); line-height: 2; margin-bottom: 24px; }
.office-card .map-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--c-black);
  border-bottom: 1px solid var(--c-black);
  padding-bottom: 4px;
}
.office-card .map-link::after { content: '↗'; font-size: 14px; }
@media (max-width: 800px) { .office-grid { grid-template-columns: 1fr; } }

/* Visit info card */
.visit-info {
  max-width: 880px;
  margin: clamp(60px, 8vw, 100px) auto 0;
  padding: clamp(36px, 4vw, 56px) clamp(28px, 4vw, 64px);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
}
.visit-info .label {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.28em;
  color: var(--c-sub);
  margin-bottom: 16px;
  display: block;
}
.visit-info h3 {
  font-family: var(--font-serif-jp);
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-bottom: 28px;
}
.visit-info ul { list-style: none; padding: 0; }
.visit-info li {
  font-size: 14px;
  line-height: 2.2;
  letter-spacing: 0.06em;
  padding-left: 18px;
  position: relative;
  color: var(--c-text);
}
.visit-info li::before {
  content: '';
  position: absolute;
  left: 0; top: 1.05em;
  width: 8px; height: 1px;
  background: var(--c-sub);
}

/* Final CTA */
.s-final-cta .ctablk {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.s-final-cta h2 {
  font-family: var(--font-serif-jp);
  font-size: clamp(20px, 2.4vw, 30px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
  margin-bottom: 28px;
  color: var(--c-black);
}
.s-final-cta p { font-size: 14px; line-height: 2.2; letter-spacing: 0.06em; color: var(--c-text); margin-bottom: 40px; }
.s-final-cta .btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 18px 40px;
  background: var(--c-black);
  color: #fff;
  font-size: 13px;
  letter-spacing: 0.18em;
  border-radius: 999px;
}
.s-final-cta .btn::after { content: '→'; font-size: 14px; }
/* ==========================================================================
   HERO NARRATIVE — botanist-style scroll-driven hero
   ========================================================================== */
/* common.css のグローバル `section { padding }` を打ち消してフルブリードに */
section.hero-narrative { padding: 0; margin: 0; }

/* /about/（CONCEPT）はヒーローと origin の間ヘッダーを非表示にして、VISION 到達でスライドダウン */
body.is-concept-page .site-header {
  transform: translateY(-100%);
  transition: transform .55s cubic-bezier(.4,0,.2,1);
}
body.is-concept-page .site-header.scrolled,
body.is-concept-page .site-header.is-solid,
body.is-concept-page .site-header.mega-active {
  transform: translateY(0);
}
.hero-narrative { position: relative; }
.hero-narrative .hn-track { position: relative; height: 220vh; }
.hero-narrative .hn-stage {
  position: sticky; top: 0;
  height: 100vh; width: 100%;
  overflow: hidden;
  color: #fff;
}
.hero-narrative .hn-stage-inner {
  position: absolute; inset: 0;
}
.hero-narrative .hn-bg {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 1.0s cubic-bezier(.2,.8,.2,1), transform 1.4s cubic-bezier(.2,.8,.2,1);
  transform: scale(1.06);
  will-change: opacity, transform;
}
.hero-narrative .hn-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.hero-narrative .hn-bg-1 { opacity: 1; transform: scale(1); }
.hero-narrative .hn-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.18) 60%, rgba(0,0,0,.32) 100%);
  opacity: 1;
  transition: background 1.0s cubic-bezier(.2,.8,.2,1);
  pointer-events: none;
}

/* state: step 2 — same photo, darker overlay so the right narrative reads cleanly */
.hero-narrative.is-step-2 .hn-bg-1 { opacity: 1; transform: scale(1.04); }
.hero-narrative.is-step-2 .hn-bg-2 { opacity: 0; }
.hero-narrative.is-step-2 .hn-bg-3 { opacity: 0; }
.hero-narrative.is-step-2 .hn-overlay {
  background: linear-gradient(90deg, rgba(0,0,0,.20) 0%, rgba(0,0,0,.45) 55%, rgba(0,0,0,.62) 100%);
}

/* state: step 3 — image shrinks into an upper rectangle, text appears outside (below) */
.hero-narrative.is-step-3 .hn-bg-1,
.hero-narrative.is-step-3 .hn-bg-2 { opacity: 0; }
.hero-narrative.is-step-3 .hn-bg-3 {
  opacity: 1;
  transform-origin: center top;
  transform: scale(.6) translateY(8.3vh); /* image span ≈ 5vh – 65vh */
}
.hero-narrative.is-step-3 .hn-overlay { background: transparent; opacity: 0; }
.hero-narrative.is-step-3 { color: #1a1a1a; }

/* fallback bg behind images — switches to white in step 3 so the shrunk image sits on white */
.hero-narrative .hn-stage { background: #1a1a1a; transition: background 1.2s cubic-bezier(.2,.8,.2,1); }
.hero-narrative.is-step-3 .hn-stage { background: #ffffff; }

/* content layers */
.hero-narrative .hn-content {
  position: absolute; inset: 0;
  display: flex; align-items: center;
  padding: 0 clamp(24px, 4vw, 64px);
  opacity: 0; visibility: hidden;
  transition: opacity .9s cubic-bezier(.2,.8,.2,1);
}
.hero-narrative .hn-content-1 { align-items: center; padding-left: clamp(24px, 4vw, 64px); }
/* step 1 headline persists into step 2 (BOTANIST style) */
.hero-narrative.is-step-1 .hn-content-1,
.hero-narrative.is-step-2 .hn-content-1 { opacity: 1; visibility: visible; }
.hero-narrative.is-step-2 .hn-content-2 { opacity: 1; visibility: visible; }
.hero-narrative.is-step-3 .hn-content-3 { opacity: 1; visibility: visible; }

/* step 1 — headline */
.hero-narrative .hn-tag {
  display: inline-block;
  font-family: 'Oswald', sans-serif;
  font-weight: 400; letter-spacing: .22em; font-size: 12px;
  color: #fff;
  margin-bottom: clamp(20px, 3vw, 36px);
  text-transform: uppercase;
}
.hero-narrative .hn-headline {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: clamp(24px, 3.4vw, 46px);
  line-height: 1.65;
  letter-spacing: .05em;
  color: #fff;
  margin: 0;
}
.hero-narrative .hn-line {
  display: block;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1.1s cubic-bezier(.2,.8,.2,1), transform 1.1s cubic-bezier(.2,.8,.2,1);
}
.hero-narrative.is-step-1 .hn-line,
.hero-narrative.is-step-2 .hn-line { opacity: 1; transform: none; }
.hero-narrative.is-step-1 .hn-line:nth-child(1) { transition-delay: .3s; }
.hero-narrative.is-step-1 .hn-line:nth-child(2) { transition-delay: .55s; }

.hero-narrative .hn-scroll {
  position: absolute; left: clamp(28px, 6vw, 110px); bottom: 28px;
  display: inline-flex; align-items: center; gap: 14px;
  font-family: 'Oswald', sans-serif; letter-spacing: .22em; font-size: 12px;
  color: #fff; opacity: .9;
  transition: opacity .6s;
}
.hero-narrative.is-step-3 .hn-scroll { opacity: 0; }
.hero-narrative .hn-scroll-line {
  display: inline-block; width: 60px; height: 1px; background: rgba(255,255,255,.7); position: relative; overflow: hidden;
}
.hero-narrative .hn-scroll-line::after {
  content: ""; position: absolute; left: -40%; top: 0; width: 40%; height: 100%; background: #fff;
  animation: hnScrollSweep 2.6s ease-in-out infinite;
}
@keyframes hnScrollSweep {
  0% { left: -40%; } 60% { left: 100%; } 100% { left: 100%; }
}

/* step 2 — narrative on the right (left column = persistent headline) */
.hero-narrative .hn-content-2 {
  justify-content: flex-end;
  padding-right: clamp(28px, 8vw, 140px);
  padding-left: clamp(28px, 6vw, 110px);
}
.hero-narrative .hn-narrative {
  max-width: 600px; /* #1858 760→600 */
  color: #fff;
}
.hero-narrative .hn-narrative-tag {
  display: block;
  font-family: 'Oswald', sans-serif;
  font-weight: 500; letter-spacing: .26em; font-size: 12px;
  color: rgba(255,255,255,.85);
  margin-bottom: 28px;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 1.0s cubic-bezier(.2,.8,.2,1) .1s, transform 1.0s cubic-bezier(.2,.8,.2,1) .1s;
}
.hero-narrative .hn-narrative-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: clamp(14px, 1.05vw, 16px);
  line-height: 2.25;
  letter-spacing: .04em;
  margin: 0;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s cubic-bezier(.2,.8,.2,1) .25s, transform 1.2s cubic-bezier(.2,.8,.2,1) .25s;
}
.hero-narrative.is-step-2 .hn-narrative-tag,
.hero-narrative.is-step-2 .hn-narrative-text { opacity: 1; transform: none; }

/* step 3 — image shrunk above, text appears below it (outside the image) */
.hero-narrative .hn-content-3 {
  justify-content: center;
  align-items: flex-end;
  padding-bottom: clamp(40px, 6vh, 80px);
  padding-top: 70vh; /* image occupies upper ~60vh (60% of 100vh) + a small gap */
}
.hero-narrative .hn-origin {
  text-align: center;
  max-width: 760px;
  color: #1a1a1a;
}
.hero-narrative .hn-en {
  display: block;
  font-family: 'Oswald', sans-serif;
  font-weight: 500; letter-spacing: .26em; font-size: 12px;
  color: #777;
  margin-bottom: 16px;
}
.hero-narrative .hn-origin-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400; font-size: 14px; letter-spacing: .22em;
  color: #555;
  margin: 0 0 14px;
}
.hero-narrative .hn-origin-lede {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500; font-size: clamp(28px, 3.6vw, 44px);
  letter-spacing: .06em; line-height: 1.55;
  margin: 0 0 22px;
  color: #1a1a1a;
}
.hero-narrative .hn-origin-body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, .95vw, 14px); line-height: 2.1;
  letter-spacing: .04em;
  color: #555;
  margin: 0;
}

/* mobile */
@media (max-width: 768px) {
  .hero-narrative .hn-track { height: 240vh; }
  .hero-narrative .hn-content,
  .hero-narrative .hn-content-2 { padding-left: 22px; padding-right: 22px; }
  .hero-narrative .hn-headline { font-size: clamp(26px, 7vw, 36px); line-height: 1.6; letter-spacing: .04em; }
  .hero-narrative .hn-content-1 { align-items: center; padding-bottom: 0; }
  .hero-narrative .hn-content-2 { align-items: flex-end; padding-bottom: 80px; padding-right: 22px; }
  .hero-narrative .hn-narrative { max-width: 100%; }
  .hero-narrative .hn-narrative-text { font-size: 13px; line-height: 2.05; }
  .hero-narrative .hn-scroll { left: 22px; bottom: 24px; }
  /* #1813/#1814 SP では該当の改行を外して続けて表示 */
  .hn-narrative-text .hn-sp-hide { display: none; }
}

/* ==========================================================================
   ORIGIN — 写真と「シアワセをデザインする」を別セクションで配置
   ========================================================================== */
section.origin {
  background: #fff;
  padding: 0;
  text-align: center;
}
/* スクロール中に写真が縮小するピン領域（200vh） */
.origin-pin {
  position: relative;
  height: 200vh;
}
.origin-sticky {
  position: sticky; top: 0;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; /* sticky を阻害しない位置でクリップ */
}
.origin-figure {
  width: 100vw;
  aspect-ratio: 16 / 9;
  max-height: 92vh;
  margin: 0;
  /* --shrink: 1.0（フルブリード）→ 0.85（縮小） */
  transform: scale(var(--shrink, 1));
  transform-origin: center center;
  transition: transform .12s linear;
  will-change: transform;
}
.origin-figure img,
.origin-figure video {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.origin-text {
  margin-top: clamp(48px, 7vw, 96px);
  max-width: 1040px;
  padding: 0 clamp(20px, 4vw, 40px);
  margin-left: auto;
  margin-right: auto;
}
.origin-en {
  display: block;
  font-family: 'Oswald', sans-serif;
  font-weight: 500; letter-spacing: .26em; font-size: 30px;
  color: #777;
  margin-bottom: 16px;
}
.origin-tag {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400; font-size: 13px; letter-spacing: .22em;
  color: #777;
  margin: 0 0 22px;
}
.origin-lede {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500; font-size: clamp(28px, 3.6vw, 44px);
  letter-spacing: .06em; line-height: 1.55;
  margin: 0 0 32px;
  color: #1a1a1a;
}
.origin-body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, 1vw, 15px); line-height: 2.15;
  letter-spacing: .04em;
  color: #444;
  margin: 0;
}
@media (max-width: 768px) {
  .origin-figure { width: calc(100% - 32px); aspect-ratio: 3 / 4; } /* #1815 SP 動画を縦長に */
  .origin-lede { font-size: clamp(22px, 6.4vw, 30px); }
}

/* ==========================================================================
   VISION / MISSION
   ========================================================================== */
.vm {
  background: #fff;
  padding: clamp(96px, 14vw, 180px) 0 clamp(96px, 14vw, 180px);
}
.vm .container { max-width: 980px; }
.vm-block { text-align: center; padding: 0 clamp(20px, 4vw, 40px); }
.vm-en {
  display: block;
  font-family: 'Oswald', sans-serif;
  font-weight: 500; letter-spacing: .12em; font-size: 30px;
  color: #000;
  margin-bottom: 18px;
  line-height: 1;
}
.vm-label {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400; font-size: 13px; letter-spacing: .22em;
  color: #888;
  margin: 0 0 28px;
}
.vm-headline {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: clamp(26px, 3.4vw, 42px);
  line-height: 1.6;
  letter-spacing: .06em;
  color: #1a1a1a;
  margin: 0 0 36px;
}
.vm-body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(14px, 1vw, 15px); line-height: 2.15;
  letter-spacing: .04em;
  color: #444;
  margin: 0 auto 1em;
  max-width: 720px;
}
.vm-body + .vm-body { margin-top: 1.6em; }
.vm-divider {
  width: 1px; height: clamp(60px, 8vw, 120px);
  background: #ddd;
  margin: clamp(72px, 10vw, 120px) auto;
}

/* ==========================================================================
   PHILOSOPHY — horizontal pin section (5 photos move)
   ========================================================================== */
.philosophy {
  background: #f7f7f5;
  padding: 120px 0 0; /* #1859 上 padding 100→120 */
}
.philosophy .ph-intro {
  text-align: center;
  margin-bottom: 48px !important;
  max-width: 980px;
}
/* 2026-05-05: 英語と日本語のサイズを逆転（英語を大、日本語を小） */
.philosophy .ph-en {
  display: block;
  font-family: 'Oswald', sans-serif;
  font-weight: 500;
  font-size: clamp(28px, 4vw, 46px);
  letter-spacing: .08em;
  line-height: 1.1;
  color: #1a1a1a;
  margin-bottom: 14px;
}
.philosophy .ph-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400;
  font-size: 12px;
  letter-spacing: .26em;
  line-height: 1.55;
  color: #555;
  margin: 0;
}

.philosophy .ph-pin {
  position: relative;
  /* total scroll length controls how far the track moves; 4 cards * ~90vh feels right */
  height: 380vh;
}
.philosophy .ph-viewport {
  position: sticky; top: 0;
  height: clamp(620px, 68vh, 760px);
  overflow: hidden;
}
.philosophy .ph-track {
  display: flex !important;
  height: 100% !important;
  align-items: center !important;
  gap: clamp(24px, 3vw, 48px);
  padding: 0 clamp(28px, 6vw, 110px) !important;
  will-change: transform;
}
.philosophy .ph-card {
  flex: 0 0 auto;
  width: clamp(320px, 64vw, 880px);
  background: #fff;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: stretch;
  border: 1px solid #ececec;
}
.philosophy .ph-figure {
  margin: 0; overflow: hidden; aspect-ratio: 4/5;
}
.philosophy .ph-figure img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 1.6s cubic-bezier(.2,.8,.2,1);
}
.philosophy .ph-card:hover .ph-figure img { transform: scale(1.04); }
.philosophy .ph-body {
  padding: clamp(28px, 3vw, 48px);
  display: flex; flex-direction: column; justify-content: center;
}
.philosophy .ph-num {
  font-family: 'Oswald', sans-serif;
  font-weight: 500; font-size: 13px; letter-spacing: .22em;
  color: #888; margin-bottom: 18px;
}
.philosophy .ph-card-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: clamp(20px, 2vw, 26px);
  line-height: 1.6; letter-spacing: .06em;
  color: #1a1a1a;
  margin: 0 0 22px;
}
.philosophy .ph-card-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, .95vw, 14px); line-height: 2.1;
  letter-spacing: .03em;
  color: #444;
  margin: 0 0 22px;
}
.philosophy .ph-card-catch {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: clamp(15px, 1.1vw, 17px);
  letter-spacing: .06em; line-height: 1.75;
  color: #1a1a1a;
  margin: 0;
  padding-top: 18px;
  border-top: 1px solid #ececec;
}

.philosophy .ph-progress { display: none !important; }
.philosophy .ph-progress-bar {
  display: block; height: 100%; width: 0; background: #1a1a1a;
  transition: width .25s cubic-bezier(.2,.8,.2,1);
}

/* mobile — fall back to vertical stack so it's still readable */
@media (max-width: 768px) {
  .philosophy .ph-pin { height: auto; }
  .philosophy .ph-viewport { position: relative; height: auto; overflow: visible; padding: 0 0 80px; } /* #1818 左右 22→0 */
  .philosophy .ph-track {
    flex-direction: column;
    gap: 32px;
    padding: 0 15px !important; /* #1817 左右 28→15（base の !important を上書き） */
    transform: none !important;
  }
  .philosophy .ph-card {
    width: 100%; grid-template-columns: 1fr;
  }
  .philosophy .ph-figure { aspect-ratio: 16/10; }
  .philosophy .ph-progress { display: none; }
}

/* =============================================================
   /about/message/ — gooooodnews.com 風の代表メッセージページ
   ============================================================= */
.msg-fv {
  padding: clamp(140px, 18vw, 220px) 0 clamp(80px, 10vw, 140px);
  background: var(--c-bg);
  border-bottom: 1px solid var(--c-line);
}
.msg-fv .breadcrumb {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--c-sub);
  margin-bottom: clamp(40px, 5vw, 64px);
}
.msg-fv .breadcrumb a { color: var(--c-sub); }
.msg-fv .breadcrumb span { color: var(--c-line); }
.msg-fv .en-label {
  display: block;
  font-family: var(--font-en);
  font-size: clamp(16px, 1.4vw, 18px);
  letter-spacing: 0.32em;
  color: var(--c-sub);
  margin-bottom: clamp(24px, 3vw, 36px);
}
.msg-fv-title {
  font-family: var(--font-serif-jp, 'Noto Serif JP'), serif;
  font-weight: 500;
  font-size: clamp(24px, 3.4vw, 40px);
  line-height: 1.7;
  letter-spacing: 0.08em;
  color: var(--c-black);
  margin-bottom: clamp(40px, 5vw, 64px);
  max-width: 22em;
}
.msg-fv-intro { max-width: 640px; }
.msg-fv-intro p {
  font-size: clamp(14px, 1.05vw, 16px);
  line-height: 2.4;
  letter-spacing: 0.08em;
  color: var(--c-text);
  margin-bottom: 12px;
}
.msg-fv-intro p:last-child { margin-bottom: 0; }

/* Body */
.msg-body {
  background: var(--c-bg-soft);
  padding: 0;
}
.msg-body-grid {
  display: grid;
  grid-template-columns: 0.85fr 1fr;
  gap: clamp(48px, 7vw, 100px);
  align-items: start;
}
.msg-photo {
  position: sticky;
  top: 100px;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--c-bg);
  /* 2026-06-13 #1504: 写真を 70% サイズに（PC のみ） */
  max-width: 70%;
}
.msg-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.6s cubic-bezier(.2,.8,.2,1);
}
.msg-photo:hover img { transform: scale(1.04); }
.msg-content { min-width: 0; }
.msg-content .msg-prose,
.msg-content .msg-signature { max-width: none; margin-left: 0; margin-right: 0; }
.msg-content .msg-section-head { text-align: left; margin-bottom: clamp(40px, 5vw, 56px); }
.msg-content .msg-prose p { line-height: 2.4; margin-bottom: clamp(32px, 3vw, 44px); }

@media (max-width: 900px) {
  .msg-body-grid { grid-template-columns: 1fr; gap: 40px; }
  .msg-photo { position: static; aspect-ratio: 4 / 5; max-width: 480px; margin: 0 auto; }
  .msg-content .msg-section-head { text-align: center; }
}

/* 2026-06-13 SP: .msg-photo img を 80% に */
@media (max-width: 700px) {
  .msg-photo {
    aspect-ratio: auto;
    background: transparent;
    max-width: none;
  }
  .msg-photo img {
    width: 80%;
    height: auto;
    margin: 0 auto;
    display: block;
    object-fit: contain;
  }
}

/* ============================================================
   2026-06-13 /about/access/ コメント反映（#1506-#1512）
   ============================================================ */
/* PC: 左右の office-card にそれぞれ内側パディング 60px、上下は 0 */
#access .office-grid > .office-card:first-of-type { padding: 0 60px 0 0; }
#access .office-grid > .office-card:nth-of-type(2) { padding: 0 0 0 60px; }
/* SP: padding 0、1枚目の card に下マージン 60px（縦並びになるので間隔をつくる）
   PC ルールの :first-of-type / :nth-of-type と特異度を揃えるため同じセレクタで上書き */
@media (max-width: 700px) {
  #access .office-grid > .office-card:first-of-type { padding: 0; margin: 0 0 60px 0; }
  #access .office-grid > .office-card:nth-of-type(2)  { padding: 0; margin: 0; }
}
/* #1509 PC + #1516 SP: /about/access/ の post-hero .lead を完全に非表示 */
body.page-id-11987 .post-hero .lead { display: none; }

.msg-section-head {
  text-align: center;
  margin-bottom: clamp(64px, 8vw, 100px);
}
.msg-section-head .en-label {
  display: block;
  font-family: var(--font-en);
  font-size: clamp(13px, 1.05vw, 15px);
  letter-spacing: 0.32em;
  color: var(--c-sub);
  margin-bottom: 16px;
}
.msg-section-head h2 {
  font-family: var(--font-serif-jp, 'Noto Serif JP'), serif;
  font-weight: 500;
  font-size: clamp(20px, 2.4vw, 28px);
  letter-spacing: 0.16em;
  color: var(--c-black);
  line-height: 1.6;
}

.msg-prose {
  max-width: 680px;
  margin: 0 auto;
}
.msg-prose p {
  font-size: clamp(14px, 1.05vw, 16px);
  line-height: 2.6;
  letter-spacing: 0.1em;
  color: var(--c-text);
  margin-bottom: clamp(40px, 4vw, 56px);
}
.msg-prose p:last-child { margin-bottom: 0; }

.msg-signature {
  max-width: 680px;
  margin: clamp(64px, 8vw, 96px) auto 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  padding-top: clamp(40px, 5vw, 56px);
}
.msg-signature .sig-role {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--c-sub);
}
.msg-signature .sig-name {
  font-family: var(--font-serif-jp, 'Noto Serif JP'), serif;
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 500;
  letter-spacing: 0.18em;
  color: var(--c-black);
}

/* msg-profile-link / msg-profile-banner は廃止。代表メッセージ末尾の concept-cta に統一。 */
.msg-profile-cta {
  margin-top: clamp(28px, 4vw, 48px);
}
@media (max-width: 600px) {
  .msg-fv-title { font-size: clamp(22px, 5.5vw, 28px); letter-spacing: 0.06em; }
  .msg-prose p { line-height: 2.3; }
}

/* =========================================================
   /about/company/ — 会社概要テーブル / 拠点 / 関連 / 地図
   page-templates/about-company.php から移植（旧インライン<style>）
========================================================= */
.company-table {
  width: 100%; max-width: 880px; margin: 0 auto;
  border-top: 0;
}
.company-table tr { border-bottom: 1px solid var(--c-line); }
.company-table th,
.company-table td {
  padding: 32px 0; text-align: left; vertical-align: top;
  font-size: 14px; line-height: 2;
}
.company-table th {
  width: 220px;
  font-family: var(--font-en); font-weight: 500;
  letter-spacing: 0.18em; color: var(--c-sub);
  font-size: 14px; padding-right: 24px;
}
.company-table td { color: var(--c-text); letter-spacing: 0.06em; }
@media (max-width: 700px) {
  .company-table th, .company-table td { display: block; padding: 12px 0; }
  .company-table th { width: 100%; padding-bottom: 4px; }
  .company-table td { padding-top: 0; padding-bottom: 24px; }
}

.office-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border-top: 0;
  border-left: 0;
  margin-top: clamp(48px, 6vw, 80px);
}
.office-card {
  padding: clamp(40px, 5vw, 72px) clamp(28px, 4vw, 56px);
  border: 0;
}
.office-card .visual {
  aspect-ratio: 16 / 10;
  background: var(--c-bg);
  margin-bottom: 32px; overflow: hidden;
}
.office-card .visual img { width: 100%; height: 100%; object-fit: cover; }
.office-card .label {
  font-family: var(--font-en);
  font-size: 13px; letter-spacing: 0.16em;
  color: var(--c-black); margin-bottom: 16px;
  display: block; font-weight: 500;
}
.office-card h3 {
  font-size: 18px; font-weight: 500;
  color: var(--c-black); margin-bottom: 14px;
  letter-spacing: 0.06em;
}
.office-card .zip {
  font-family: var(--font-en);
  font-size: 14px; color: var(--c-sub);
  margin-bottom: 6px; letter-spacing: 0.06em;
}
.office-card .addr {
  font-size: 14px; line-height: 2;
  color: var(--c-text); margin-bottom: 16px;
}
.office-card .meta { font-size: 14px; color: var(--c-sub); line-height: 2; }
@media (max-width: 800px) { .office-grid { grid-template-columns: 1fr; } }

.office-card .map {
  aspect-ratio: 16 / 10; background: var(--c-bg);
  margin-bottom: 32px; overflow: hidden;
}
.office-card .map iframe { width: 100%; height: 100%; border: 0; display: block; }

.company-related-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.4vw, 32px);
  max-width: 1200px; margin: 0 auto;
}
.company-related-grid a {
  position: relative; display: block;
  aspect-ratio: 4 / 5; overflow: hidden;
  text-decoration: none; background: var(--c-black);
  isolation: isolate;
}
.company-related-grid a .cr-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  transition: transform 1.2s cubic-bezier(.2,.8,.2,1);
  z-index: 1;
}
.company-related-grid a:hover .cr-bg { transform: scale(1.06); }
/* 関連ページの背景写真（旧 about-company.php インライン style から集約） */
.company-related-grid a:nth-child(1) .cr-bg { background-image: url('../photos/concept-1.jpg'); }
.company-related-grid a:nth-child(2) .cr-bg { background-image: url('../photos/company/company-03.jpg'); }
.company-related-grid a:nth-child(3) .cr-bg { background-image: url('../photos/meeting/meeting-01.jpg'); }
.company-related-grid a::after {
  content: ''; position: absolute; inset: 0;
  background: rgba(31, 34, 38, 0.62);
  z-index: 2; transition: background .35s ease;
}
.company-related-grid a:hover::after { background: rgba(31, 34, 38, 0.5); }
.company-related-grid a .cr-body {
  position: absolute; inset: 0; z-index: 3;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center;
  padding: clamp(28px, 3vw, 40px); color: #fff;
}
.company-related-grid a .cr-en {
  font-family: var(--font-en);
  font-size: clamp(12px, 1vw, 13px);
  letter-spacing: 0.28em;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 14px;
}
.company-related-grid a h3 {
  font-size: clamp(18px, 1.8vw, 22px);
  font-weight: 500; color: #fff;
  margin: 0 0 14px; line-height: 1.5;
  letter-spacing: 0.08em;
}
.company-related-grid a .cr-desc {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.95; letter-spacing: 0.04em;
  margin: 0 0 18px;
  max-width: 300px;
}
.company-related-grid a .cr-arrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-en);
  font-size: 12px; letter-spacing: 0.24em;
  color: #fff;
}
.company-related-grid a .cr-arrow::after {
  content: ''; width: 24px; height: 1px;
  background: #fff; transition: width .35s ease;
}
.company-related-grid a:hover .cr-arrow::after { width: 36px; }
@media (max-width: 700px) {
  .company-related-grid { grid-template-columns: 1fr; }
  .company-related-grid a { aspect-ratio: 16 / 10; }
}

.company-map-grid {
  display: grid; grid-template-columns: 1fr 1.4fr;
  gap: clamp(32px, 4vw, 60px);
  align-items: stretch;
  max-width: 1200px; margin: 0 auto;
}
.company-map-iframe {
  aspect-ratio: 16 / 10; min-height: 320px;
  background: var(--c-bg); overflow: hidden;
}
.company-map-iframe iframe { width: 100%; height: 100%; border: 0; display: block; }
.company-map-text h3 {
  font-size: 15px; font-weight: 500; letter-spacing: 0.06em;
  color: var(--c-black); margin: 0 0 16px;
}
.company-map-text .addr {
  font-size: 14px; line-height: 2.0;
  color: var(--c-text); letter-spacing: 0.06em;
  margin: 0 0 24px;
}
.company-map-text .info {
  font-size: 13px; line-height: 1.9;
  color: var(--c-sub); letter-spacing: 0.06em;
  margin: 0 0 24px;
}
.company-map-text .map-link {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-en);
  font-size: 12px; letter-spacing: 0.18em;
  border-bottom: 1px solid var(--c-line);
  padding-bottom: 4px;
  color: var(--c-black); text-decoration: none;
}
@media (max-width: 800px) {
  .company-map-grid { grid-template-columns: 1fr; }
  .company-map-iframe { aspect-ratio: 4 / 3; min-height: 280px; }
}

/* ============================================================
   /about/company/ — page-templates/about-company.php から移植した
   インラインスタイル（旧 style="..." を集約）
============================================================ */
/* Hero photo セクション */
.company-photo {
  padding: 0 0 clamp(40px, 5vw, 80px);
  background: #ffffff;
}
.company-photo-frame {
  aspect-ratio: 21 / 9;
  overflow: hidden;
  max-width: 1400px;
  margin: 0 auto;
}
.company-photo-frame img { width: 100%; height: 100%; object-fit: cover; }
/* 2026-06-13 SP: 写真を正方形に */
@media (max-width: 700px) {
  .company-photo-frame { aspect-ratio: 1 / 1; }
}

/* リード本文セクション */
.company-body-section {
  background: #ffffff;
  padding: 0 0 clamp(40px, 5vw, 80px);
}
.company-body-section .container-narrow { max-width: 720px; }

/* 会社情報テーブル + 拠点 */
.company-info-section {
  background: #ffffff;
  padding: 0 0 clamp(60px, 8vw, 100px);
}

/* 関連ページ */
.company-related-section {
  background: var(--c-bg-soft);
  padding: clamp(60px, 8vw, 120px) 0;
}
.company-related-section .section-head { margin-bottom: clamp(40px, 5vw, 60px); }

/* アクセス */
.company-map {
  padding: clamp(80px, 10vw, 140px) 0;
  background: var(--c-bg-soft);
  border-top: 1px solid var(--c-line);
}
.company-map .section-head { margin-bottom: clamp(40px, 5vw, 60px); }

/* group_html (tone village 内のリンク) */
.company-table .company-group-link { border-bottom: 1px solid var(--c-black); }

/* #1816 vm-headline の改行を SP のみ表示（誰もが自身の価値を / 誇れる社会へ） */
.vm-headline .vm-sp-br { display: none; }
@media (max-width: 768px) {
  .vm-headline .vm-sp-br { display: inline; }
}

/* #1860-#1863 PHILOSOPHY 各カードの2つ目の段落（ph-card-catch）を削除 */
.philosophy .ph-card-catch { display: none; }
/* #1864 ph-viewport の下マージン 0→120 */
.philosophy .ph-viewport { margin-bottom: 120px; }

/* 2026-06-14 websupport #1932-#1936（/about/ SP） */
@media (max-width: 768px) {
  #origin .origin-body br { display: none; }                            /* #1932 改行を取る */
  .origin-lede { font-size: 24px; }                                     /* #1933 26.5→24 */
  .vm-headline { font-size: 24px; }                                     /* #1934/#1935 26→24 */
  .philosophy .ph-viewport { margin-bottom: 0; padding-bottom: 100px; } /* #1936 margin120→0 / padding80→100 */
}

/* 2026-06-14 ユーザー指示：SP では本文中テキストリンクの下線を外す（common.css と同方針・後勝ち用） */
@media (max-width: 900px) {
  .company-table .company-group-link { border-bottom: 0; }
}

/* 2026-06-20 #2249 /about/message/ 代表メッセージ本文 p タイポ調整（PC/SP両方・全段落） */
body.page-id-11985 .msg-prose p { font-size: 15px; line-height: 32px; letter-spacing: 0.3px; }

/* 2026-06-26 websupport #3579-#3587 — about access(11987)/company(11986)/message(11985) SP */
@media (max-width: 900px) {
  body.page-id-11987 section.post-hero { padding-bottom: 0; }                          /* #3585 access hero 下60->0 */
  body.page-id-11987 #access { padding-bottom: 100px; }                                /* #3587 下120->100 */
  #access .label { margin-bottom: 5px; }                                               /* #3586 16->5 */
  .company-table th { font-size: 16px; font-weight: 700; }                             /* #3581 14->16/700 */
  .office-card { padding: 0; }                                                          /* #3582 40 28->0 */
  .company-info-section { padding-bottom: 0; }                                          /* #3583 下60->0 */
  .company-related-section { margin-bottom: 100px; padding-bottom: 0; }                 /* #3584 mb->100 / pb->0 */
  .msg-content .msg-prose p { font-size: 14px; line-height: 28px; }                     /* #3579 15->14/lh28 */
  .msg-signature { padding-top: 0; }                                                    /* #3580 上40->0 */
}

/* 2026-07-04 websupport #4215（この要素のみ・/about/） */
#origin .origin-text { margin-top: 150px; }   /* 96->150 */
