/* CSS Document */

/* =========================================
   ベース設定
========================================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 18px;
  -webkit-text-size-adjust: 100%;
}

body.site-body {
  margin: 0;
  padding: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;
  line-height: 1.8;
  color: #222;
  background-color: #f7f7f7;
  font-size: 1rem;
}

/* テキスト要素のリセット */
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol {
  margin: 0;
  padding: 0;
}

ul,
ol {
  list-style: none;
}

/* リンク */
a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* コンテナ / レイアウト共通 */

.container {
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* セクション */
.section {
  padding: 3.5rem 0;
}

.section-header {
  margin-bottom: 2rem;
}

.section-title {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin-bottom: 0.75rem;
}

.section-lead {
  font-size: 0.95rem;
  color: #555;
}

/* ボタン */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1.5rem;
  border-radius: 999px;
  font-size: 0.9rem;
  font-weight: 600;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.btn.primary {
  background-color: #1f9c6b;
  color: #fff;
  border-color: #1f9c6b;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}

.btn.primary:hover {
  background-color: #177c55;
  border-color: #177c55;
  text-decoration: none;
}

.btn.secondary {
  background-color: #ffffff;
  color: #1f9c6b;
  border-color: #1f9c6b;
}

.btn.secondary:hover {
  background-color: #eaf7f1;
  text-decoration: none;
}

.btn.ghost {
  background-color: transparent;
  color: #333;
  border-color: #cccccc;
}

.btn.ghost:hover {
  background-color: #efefef;
  text-decoration: none;
}

/* =========================================
   Header
========================================= */

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background-color: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid rgba(0, 0, 0, 0.03);
  backdrop-filter: blur(8px);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 0;
  gap: 1rem;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 700;
  font-size: 0.95rem;
}

.site-logo-mark {
  font-size: 1.2rem;
}

.site-nav {
  font-size: 0.8rem;
}

.nav-list {
  display: flex;
  align-items: center;
  gap: 0.95rem;
}

.nav-list a {
  color: #444;
}

.nav-list a:hover {
  color: #1f9c6b;
  text-decoration: none;
}

.nav-contact {
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  border: 1px solid #1f9c6b;
  color: #1f9c6b;
}

.nav-contact:hover {
  background-color: #1f9c6b;
  color: #fff;
}

/* スマホでナビが詰まりすぎないように */
@media (max-width: 720px) {
  .header-inner {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .site-nav {
    width: 100%;
  }

  .nav-list {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
  }
}

/* =========================================
   Hero
========================================= */

.hero {
  padding: 3rem 0 3.5rem;
}

.hero-inner {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.hero-copy {
  max-width: 32rem;
}

.hero-label {
  font-size: 0.8rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #1f9c6b;
  margin-bottom: 0.5rem;
}

.hero-title {
  font-size: 1.9rem;
  line-height: 1.3;
  margin-bottom: 1rem;
}

.hero-text {
  font-size: 0.95rem;
  color: #444;
  margin-bottom: 1.5rem;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.hero-visual {
  text-align: center;
}

.hero-tree {
  max-width: 280px;
  width: 100%;
  height: auto;
  display: inline-block;
}

.hero-visual-caption {
  margin-top: 0.75rem;
  font-size: 0.8rem;
  color: #777;
}

/* PCで横並び */
@media (min-width: 960px) {
  .hero {
    padding: 4rem 0 4.5rem;
  }

  .hero-inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .hero-copy {
    flex: 1.1;
  }

  .hero-visual {
    flex: 0.9;
  }
}

/* =========================================
   Mission
========================================= */

.mission {
  background-color: #ffffff;
}

.mission-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 2rem;
}

.mission-block {
  padding: 1.5rem;
  border-radius: 1.25rem;
  background-color: #f6faf8;
}

.mission-block h3 {
  font-size: 1rem;
  margin-bottom: 0.75rem;
}

.mission-block p {
  font-size: 0.9rem;
  color: #444;
}

.mission-note {
  background-color: #f2f2f2;
}

/* PC */
@media (min-width: 768px) {
  .mission-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* =========================================
   TREE Overview – 5つの枝
========================================= */

.tree-overview {
  background-color: #f7f7f7;
}

.tree-branches {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 2.2rem;
}

.branch-card {
  background-color: #ffffff;
  border-radius: 1.3rem;
  padding: 1.6rem 1.5rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}

.branch-card h3 {
  font-size: 1rem;
  margin-bottom: 0.6rem;
}

.branch-card p {
  font-size: 0.9rem;
  color: #555;
  margin-bottom: 0.9rem;
}

.branch-list {
  margin-bottom: 1rem;
}

.branch-list li {
  font-size: 0.85rem;
  color: #333;
  padding-left: 1.1rem;
  position: relative;
  margin-bottom: 0.35rem;
}

.branch-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  color: #1f9c6b;
}

.branch-link {
  font-size: 0.85rem;
  color: #1f9c6b;
  font-weight: 600;
}

.branch-link:hover {
  text-decoration: underline;
}

.branch-card-image {
  width: 100%;
  height: auto;
  margin-bottom: 1.2rem;
  border-radius: 8px;
  display: block;
}

/* PC */
@media (min-width: 960px) {
  .tree-branches {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tree-branches .branch-card:nth-child(4),
  .tree-branches .branch-card:nth-child(5) {
    grid-column: span 1;
  }
}

/* =========================================
   Key Services – 幹となる事業
========================================= */

.key-services {
  background-color: #ffffff;
}

.key-services-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
  margin-top: 2rem;
}

.key-service-card {
  border-radius: 1.3rem;
  padding: 1.7rem 1.6rem;
  background-color: #f9fbff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}

.key-service-card h3 {
  font-size: 1rem;
  margin-bottom: 0.75rem;
}

.key-service-text {
  font-size: 0.9rem;
  color: #444;
  margin-bottom: 0.9rem;
}

.key-service-points {
  margin-bottom: 1rem;
}

.key-service-points li {
  font-size: 0.85rem;
  color: #333;
  padding-left: 1.1rem;
  position: relative;
  margin-bottom: 0.3rem;
}

.key-service-points li::before {
  content: "–";
  position: absolute;
  left: 0;
  top: 0;
  color: #1f9c6b;
}

.tag-main,
.tag-sub {
  display: inline-block;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 0.2rem 0.6rem;
  margin-bottom: 0.6rem;
}

.tag-main {
  background-color: #1f9c6b;
  color: #fff;
}

.tag-sub {
  background-color: #e1f0ff;
  color: #295f9c;
}

/* PC */
@media (min-width: 768px) {
  .key-services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================
   Partners CTA
========================================= */

.partners-cta {
  background: linear-gradient(135deg, #f0fff7, #f4f8ff);
}

.partners-inner {
  max-width: 720px;
  margin: 0 auto;
}

.partners-copy {
  text-align: left;
}

.partners-points {
  margin: 1.2rem 0 1.6rem;
}

.partners-points li {
  font-size: 0.9rem;
  color: #333;
  padding-left: 1.1rem;
  position: relative;
  margin-bottom: 0.35rem;
}

.partners-points li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #1f9c6b;
}

/* =========================================
   Journal
========================================= */

.journal-preview {
  background-color: #ffffff;
}

.journal-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 2rem;
}

.journal-item {
  border-radius: 1.1rem;
  padding: 1.4rem 1.3rem;
  background-color: #f7f7f7;
}

.journal-tag {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #777;
  margin-bottom: 0.4rem;
}

.journal-title {
  font-size: 1rem;
  margin-bottom: 0.4rem;
}

.journal-meta {
  font-size: 0.75rem;
  color: #999;
  margin-bottom: 0.6rem;
}

.journal-excerpt {
  font-size: 0.85rem;
  color: #444;
  margin-bottom: 0.7rem;
}

.journal-link {
  font-size: 0.8rem;
  font-weight: 600;
  color: #1f9c6b;
}

.journal-link:hover {
  text-decoration: underline;
}

/* PC */
@media (min-width: 768px) {
  .journal-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================
   Contact CTA
========================================= */

.contact-cta {
  background-color: #f7f7f7;
}

.contact-inner {
  max-width: 640px;
  margin: 0 auto;
  text-align: left;
}

/* =========================================
   Footer
========================================= */

.site-footer {
  background-color: #111;
  color: #eee;
  padding: 2.5rem 0 1.8rem;
  margin-top: 1rem;
}

.footer-inner {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  font-size: 0.8rem;
}

.footer-logo {
  font-weight: 700;
  margin-bottom: 0.4rem;
}

.footer-text {
  color: #bbb;
  font-size: 0.9rem;
}

.footer-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.footer-nav a {
  color: #ccc;
}

.footer-nav a:hover {
  color: #fff;
  text-decoration: none;
}

.footer-copy {
  color: #666;
}

/* PC */
@media (min-width: 768px) {
  .footer-inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
  }
}


/* =========================================
   Services – 事業一覧トップ
========================================= */

.services-hero {
  background-color: #ffffff;
  padding-top: 3rem;
  padding-bottom: 1.5rem;
}

.services-hero .section-header {
  margin-bottom: 1.2rem;
}

.services-hero .hero-label {
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #1f9c6b;
  margin-bottom: 0.5rem;
}

.services-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  font-size: 0.8rem;
  color: #555;
  margin-top: 0.5rem;
}

.services-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem 0.7rem;
  border-radius: 999px;
  font-size: 0.75rem;
  border: 1px solid transparent;
  white-space: nowrap;
}

.services-badge::before {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 999px;
  display: inline-block;
}

.services-badge-live {
  background-color: #e6f6ee;
  border-color: #1f9c6b;
  color: #1f9c6b;
}

.services-badge-live::before {
  background-color: #1f9c6b;
}

.services-badge-planning {
  background-color: #fff4e5;
  border-color: #e49a37;
  color: #c26f08;
}

.services-badge-planning::before {
  background-color: #e49a37;
}

/* =========================================
   Services – Branch cards & list
========================================= */

.services-branches {
  background-color: #f7f7f7;
  padding-top: 1.5rem;
}

.services-branch-card {
  margin-bottom: 2rem;
}

.services-branch-header {
  margin-bottom: 1.4rem;
}

.services-branch-title {
  font-size: 1.1rem;
  margin-bottom: 0.4rem;
}

.services-branch-desc {
  font-size: 0.9rem;
  color: #555;
  margin-bottom: 0.8rem;
}

/* すでに .branch-link は定義済みなので流用 */

.services-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.2rem;
}

/* =========================================
   Services – Item cards
========================================= */

.services-item {
  background-color: #ffffff;
  border-radius: 1.1rem;
  padding: 1.4rem 1.3rem;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.03);
}

.services-item-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}

.services-item-title {
  font-size: 1.1rem;
  margin: 0;
}

.services-item-title a {
  text-decoration: none;
  color: #222;
}

.services-item-title a:hover {
  color: #1f9c6b;
}

.services-item-sub {
  font-size: 0.95rem;
  color: #666;
  margin-bottom: 0.4rem;
}

.services-item-text {
  font-size: 0.85rem;
  color: #444;
  margin-bottom: 0.4rem;
}

.services-item-meta {
  font-size: 0.78rem;
  color: #888;
}

/* =========================================
   Service detail 共通クラス
   （アットマリーなど個別ページ用）
========================================= */

.service-hero {
  background-color: #ffffff;
  padding-top: 2.5rem;
  padding-bottom: 1.5rem;
}

.service-breadcrumb {
  font-size: 0.8rem;
  color: #888;
  margin-bottom: 0.8rem;
}

.service-breadcrumb a {
  color: #666;
}

.service-breadcrumb a:hover {
  color: #1f9c6b;
  text-decoration: none;
}

.service-hero-header {
  max-width: 720px;
}

.service-category-tag {
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #1f9c6b;
  margin-bottom: 0.4rem;
}

.service-title {
  font-size: 1.6rem;
  margin-bottom: 0.4rem;
}

.service-subtitle {
  font-size: 0.95rem;
  color: #555;
  margin-bottom: 0.8rem;
}

.service-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.75rem;
}

.service-status {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  border: 1px solid transparent;
}

.service-status-live {
  border-color: #1f9c6b;
  color: #1f9c6b;
  background-color: #e6f6ee;
}

.service-status-planning {
  border-color: #e49a37;
  color: #c26f08;
  background-color: #fff4e5;
}

.service-target-chip {
  padding: 0.15rem 0.6rem;
  border-radius: 999px;
  border: 1px dashed #cccccc;
}

/* 本文セクション共通 */

.service-section {
  background-color: #ffffff;
}

.service-section-alt {
  background-color: #f7f7f7;
}

.service-section-inner {
  max-width: 880px;
  margin: 0 auto;
}

.service-section-header {
  margin-bottom: 1.2rem;
}

.service-section-title {
  font-size: 1.4rem;
  margin-bottom: 0.4rem;
}

.service-section-lead {
  font-size: 0.9rem;
  color: #555;
}

/* 2カラムレイアウト（モバイルは縦積み） */

.service-two-column {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.service-main {
  font-size: 0.9rem;
  color: #333;
}

.service-main p {
  margin-bottom: 0.75rem;
}

/* サイドバー */

.service-aside {
  padding: 1.2rem 1rem;
  border-radius: 1rem;
  background-color: #f6faf8;
  font-size: 0.85rem;
}

.service-aside-title {
  font-size: 0.9rem;
  margin-bottom: 0.5rem;
}

.service-aside-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.service-aside-list li {
  position: relative;
  padding-left: 1rem;
  margin-bottom: 0.25rem;
}

.service-aside-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  color: #1f9c6b;
}

.service-aside-note {
  font-size: 0.78rem;
  color: #777;
  margin-bottom: 0.6rem;
}

/* 箇条書き & フロー */

.service-bullet {
  list-style: none;
  margin: 0.4rem 0 0.8rem;
  padding: 0;
}

.service-bullet li {
  position: relative;
  padding-left: 1.1rem;
  margin-bottom: 0.3rem;
  font-size: 0.88rem;
}

.service-bullet li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: #1f9c6b;
}

.service-flow-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.service-flow-list li {
  margin-bottom: 0.8rem;
  font-size: 0.88rem;
}

.service-flow-list strong {
  font-weight: 600;
}

/* 小見出し */

.service-subheading {
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
  font-size: 1.2rem;
}

/* PCレイアウト */

@media (min-width: 768px) {
  .services-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-two-column {
    flex-direction: row;
    align-items: flex-start;
  }

  .service-main {
    flex: 2;
  }

  .service-aside {
    flex: 1;
  }
}

/* =========================================
   TREE PAGE THEME – ATEZ LIFE SUPPORT TREE
========================================= */

/* -----------------------------------------
   1. Hero section
----------------------------------------- */
.tree-hero {
  background: linear-gradient(to bottom, #ffffff, #f6f9f8 40%, #f2f5f4);
  padding-top: 4.5rem;
  padding-bottom: 3.5rem;
}

.tree-hero .section-title {
  font-size: 2.1rem;
  line-height: 1.35;
  color: #1a1a1a;
  margin-bottom: 1.2rem;
}

.tree-hero .section-lead {
  font-size: 1.15rem;
  line-height: 1.8;
  max-width: 880px;
  color: #444;
}

/* -----------------------------------------
   2. Visual section（樹の図）
----------------------------------------- */
.tree-visual {
  background-color: #ffffff;
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.tree-visual-inner {
  display: flex;
  flex-direction: column;
  gap: 3rem;
  align-items: center;
}

.tree-visual-image {
  text-align: center;
}

.tree-visual-image .hero-tree {
  max-width: 360px;
  width: 100%;
  filter: drop-shadow(0 6px 20px rgba(0, 0, 0, 0.08));
}

.tree-visual-text {
  max-width: 900px;
}

.tree-visual-text .section-title {
  font-size: 1.9rem;
  margin-bottom: 1rem;
}

.tree-visual-text .section-lead {
  font-size: 1.1rem;
  line-height: 1.75;
  color: #444;
  margin-bottom: 1.3rem;
}

.tree-visual-text .service-bullet li {
  font-size: 1.05rem;
  margin-bottom: 0.4rem;
}

/* PC */
@media (min-width: 960px) {
  .tree-visual-inner {
    flex-direction: row;
    align-items: flex-start;
  }

  .tree-visual-image {
    flex: 1;
  }

  .tree-visual-text {
    flex: 1.2;
  }
}

/* -----------------------------------------
   3. Branch overview（5つの枝）
----------------------------------------- */

.tree-overview {
  background-color: #f7f7f7;
  padding-top: 4.5rem;
  padding-bottom: 4.5rem;
}

.tree-overview .section-title {
  font-size: 1.9rem;
  margin-bottom: 1rem;
}

.tree-overview .section-lead {
  font-size: 1.1rem;
  max-width: 880px;
  margin-bottom: 2.8rem;
  line-height: 1.75;
  color: #444;
}

/* グラデーション入りの枝カード */
.tree-branches .branch-card {
  padding: 2.1rem 1.8rem;
  border-radius: 1.5rem;
  background: linear-gradient(135deg,
      #ffffff 0%,
      #f7fbf9 60%,
      #edf7f3 100%);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.06);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* ホバー時の軽い浮遊感 */
.tree-branches .branch-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.08);
}

.tree-branches .branch-card h3 {
  font-size: 1.25rem;
  margin-bottom: 0.8rem;
}

.branch-mini {
  font-size: 0.9rem;
  margin-top: 1rem;
  margin-bottom: 0.4rem;
  color: #555;
}

/* -----------------------------------------
   4. TRUNK（幹）
----------------------------------------- */

.key-services {
  padding-top: 4rem;
  padding-bottom: 4rem;
  background: linear-gradient(to bottom, #ffffff, #f8fbfe);
}

.key-services .section-title {
  font-size: 1.9rem;
}

.key-services .section-lead {
  font-size: 1.1rem;
  max-width: 880px;
  color: #555;
}

.key-service-card {
  padding: 2rem 1.8rem;
  background: #ffffff;
  border-radius: 1.4rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.key-service-card h3 {
  font-size: 1.25rem;
  margin-bottom: 0.7rem;
}

.key-service-card .key-service-text {
  font-size: 1rem;
  line-height: 1.65;
}

/* -----------------------------------------
   5. Growth（企画中も公開する理由）
----------------------------------------- */

.tree-growth {
  padding-top: 4.5rem;
  padding-bottom: 4.5rem;
}

.tree-growth .section-title {
  font-size: 1.8rem;
}

.tree-growth .section-lead {
  font-size: 1.1rem;
  line-height: 1.75;
  max-width: 880px;
  color: #444;
}

/* -----------------------------------------
   6. Partners CTA
----------------------------------------- */

.partners-cta {
  padding-top: 4rem;
  padding-bottom: 4rem;
  background: linear-gradient(135deg, #eefbf5, #f3f8ff);
}

.partners-cta .section-title {
  font-size: 1.9rem;
  margin-bottom: 1rem;
}

.partners-cta .section-lead {
  font-size: 1.1rem;
  line-height: 1.8;
  color: #444;
  max-width: 880px;
}

/* ===============================
   Layout & Typography – refinement
   （style.css の一番下に追記）
================================= */

/* コンテナを少しだけワイドに（Frontria寄せ） */
.container {
  max-width: 1120px;
  padding-inline: 1.75rem;
}

/* セクションの余白をデバイスごとに調整 */
.section {
  padding-block: 3rem;
}

@media (min-width: 960px) {
  .section {
    padding-block: 4rem;
  }
}

/* ベースタイポグラフィを少しだけ繊細に */
body.site-body {
  line-height: 1.9;
  color: #252629;
  background-color: #f5f5f7;
}

/* 段落とリストのベース */
p {
  font-size: 0.95rem;
  color: #444;
}

.section-lead {
  font-size: 1.05rem;
  color: #3b3c3f;
}

/* セクション見出しのメリハリアップ */
.section-title {
  font-size: 1.6rem;
  letter-spacing: 0.08em;
}

/* 見出し階層の補正（カード内など） */
h2 {
  font-size: 1.5rem;
}

h3 {
  font-size: 1.15rem;
}

/* Hero を少し大きめ・落ち着いた感じに */
.hero {
  padding-block: 3.5rem;
}

@media (min-width: 960px) {
  .hero {
    padding-block: 4.5rem;
  }
}

.hero-title {
  font-size: 2.1rem;
  line-height: 1.4;
}

.hero-text {
  font-size: 1.02rem;
  color: #3e3f42;
}

/* ラベルを少しだけ控えめ＆タイポ寄せ */
.hero-label {
  font-size: 0.78rem;
  letter-spacing: 0.18em;
}

/* 共通カード感の調整 */
.branch-card,
.key-service-card,
.services-item,
.journal-item {
  border-radius: 1rem;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.04);
}

/* TREEの枝カードのグラデは少しだけフラット寄りに */
.tree-branches .branch-card {
  background: linear-gradient(135deg,
      #ffffff 0%,
      #f9fbfa 55%,
      #eef4f2 100%);
}

/* Key services（幹）も少しフラットに */
.key-services {
  background: linear-gradient(to bottom, #ffffff, #f4f6fb);
}

.key-service-card {
  background-color: #ffffff;
}

/* Services 一覧のカードもそろえる */
.services-item {
  background-color: #ffffff;
}

/* Header: 高さとフォントを微調整 */
.site-header {
  background-color: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.header-inner {
  padding-block: 0.65rem;
}

.site-logo {
  font-size: 0.96rem;
}

.site-nav {
  font-size: 0.82rem;
}

/* Footer: 文字を少しだけ大きく・行間を広く */
.site-footer {
  padding-top: 2.75rem;
  padding-bottom: 2rem;
}

.footer-inner {
  font-size: 0.82rem;
}

.footer-text {
  font-size: 0.9rem;
  line-height: 1.8;
}

/* 長文ブロックは読み幅を絞る */
.service-section-inner,
.partners-inner,
.contact-inner {
  max-width: 820px;
}

/* ミッションやツリー説明など（if .section-header + テキスト主体なら効く） */
.mission .container,
.tree-visual-text,
.tree-growth .container {
  max-width: 880px;
}

.btn {
  padding: 0.65rem 1.4rem;
  font-size: 0.88rem;
  border-radius: 999px;
}

.tree-growth .section-lead {
  font-size: 1.1rem;
  line-height: 1.75;
  max-width: 880px;
  color: #444;
}

/* -----------------------------------------
   6. Partners CTA
----------------------------------------- */

.partners-cta {
  padding-top: 4rem;
  padding-bottom: 4rem;
  background: linear-gradient(135deg, #eefbf5, #f3f8ff);
}

.partners-cta .section-title {
  font-size: 1.9rem;
  margin-bottom: 1rem;
}

.partners-cta .section-lead {
  font-size: 1.1rem;
  line-height: 1.8;
  color: #444;
  max-width: 880px;
}

/* ===============================
   Layout & Typography – refinement
   （style.css の一番下に追記）
================================= */

/* コンテナを少しだけワイドに（Frontria寄せ） */
.container {
  max-width: 1120px;
  padding-inline: 1.75rem;
}

/* セクションの余白をデバイスごとに調整 */
.section {
  padding-block: 3rem;
}

@media (min-width: 960px) {
  .section {
    padding-block: 4rem;
  }
}

/* ベースタイポグラフィを少しだけ繊細に */
body.site-body {
  line-height: 1.9;
  color: #252629;
  background-color: #f5f5f7;
}

/* 段落とリストのベース */
p {
  font-size: 0.95rem;
  color: #444;
}

.section-lead {
  font-size: 1.05rem;
  color: #3b3c3f;
}

/* セクション見出しのメリハリアップ */
.section-title {
  font-size: 1.6rem;
  letter-spacing: 0.08em;
}

/* 見出し階層の補正（カード内など） */
h2 {
  font-size: 1.5rem;
}

h3 {
  font-size: 1.15rem;
}

/* Hero を少し大きめ・落ち着いた感じに */
.hero {
  padding-block: 3.5rem;
}

@media (min-width: 960px) {
  .hero {
    padding-block: 4.5rem;
  }
}

.hero-title {
  font-size: 2.1rem;
  line-height: 1.4;
}

.hero-text {
  font-size: 1.02rem;
  color: #3e3f42;
}

/* ラベルを少しだけ控えめ＆タイポ寄せ */
.hero-label {
  font-size: 0.78rem;
  letter-spacing: 0.18em;
}

/* 共通カード感の調整 */
.branch-card,
.key-service-card,
.services-item,
.journal-item {
  border-radius: 1rem;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.04);
}

/* TREEの枝カードのグラデは少しだけフラット寄りに */
.tree-branches .branch-card {
  background: linear-gradient(135deg,
      #ffffff 0%,
      #f9fbfa 55%,
      #eef4f2 100%);
}

/* Key services（幹）も少しフラットに */
.key-services {
  background: linear-gradient(to bottom, #ffffff, #f4f6fb);
}

.key-service-card {
  background-color: #ffffff;
}

/* Services 一覧のカードもそろえる */
.services-item {
  background-color: #ffffff;
}

/* Header: 高さとフォントを微調整 */
.site-header {
  background-color: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.header-inner {
  padding-block: 0.65rem;
}

.site-logo {
  font-size: 0.96rem;
}

.site-nav {
  font-size: 0.82rem;
}

/* Footer: 文字を少しだけ大きく・行間を広く */
.site-footer {
  padding-top: 2.75rem;
  padding-bottom: 2rem;
}

.footer-inner {
  font-size: 0.82rem;
}

.footer-text {
  font-size: 0.9rem;
  line-height: 1.8;
}

/* 長文ブロックは読み幅を絞る */
.service-section-inner,
.partners-inner,
.contact-inner {
  max-width: 820px;
}

/* ミッションやツリー説明など（if .section-header + テキスト主体なら効く） */
.mission .container,
.tree-visual-text,
.tree-growth .container {
  max-width: 880px;
}

.btn {
  padding: 0.65rem 1.4rem;
  font-size: 0.88rem;
  border-radius: 999px;
}

.btn.primary {
  background-color: #1f9c6b;
  border-color: #1f9c6b;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
}

.btn.primary:hover {
  background-color: #177c55;
}

.btn.secondary {
  background-color: #ffffff;
  color: #1f9c6b;
  border-color: #c8e4d6;
}

.btn.secondary:hover {
  background-color: #edf7f2;
}

/* =========================================
   JOURNAL PAGE – journalページ専用スタイル
========================================= */

/* Journal Hero */
.journal-hero {
  background-color: #ffffff;
  padding-top: 2.5rem;
  padding-bottom: 1.5rem;
}

/* Journal List Section */
.journal-list {
  background-color: #f7f7f7;
}

.journal-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 2rem;
}

.journal-card {
  background-color: #ffffff;
  border-radius: 1rem;
  padding: 1.5rem 1.4rem;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.journal-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.06);
}

.journal-date {
  font-size: 0.75rem;
  color: #888;
  margin-bottom: 0.5rem;
  letter-spacing: 0.05em;
}

.journal-card-title {
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 0.6rem;
  line-height: 1.5;
}

.journal-card-title a {
  color: #222;
  text-decoration: none;
  transition: color 0.18s ease;
}

.journal-card-title a:hover {
  color: #1f9c6b;
  text-decoration: none;
}

.journal-card-text {
  font-size: 0.88rem;
  color: #555;
  line-height: 1.7;
}

/* PC: 2カラムレイアウト */
@media (min-width: 768px) {
  .journal-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* =========================================
   ABOUT PAGE – aboutページ専用スタイル
========================================= */

/* About Hero */
.about-hero {
  background-color: #ffffff;
  padding-top: 2.5rem;
  padding-bottom: 1.5rem;
}

/* About Philosophy */
.about-philosophy {
  background-color: #f7f7f7;
}

/* About Vision */
.about-vision {
  background-color: #ffffff;
}

/* About Story */
.about-story {
  background-color: #f7f7f7;
}

/* About Tree Link */
.about-tree-link {
  background-color: #ffffff;
}

/* 2カラムレイアウト */
.about-two-column {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
}

.about-main {
  font-size: 0.95rem;
  color: #333;
  line-height: 1.85;
}

.about-main p {
  margin-bottom: 1rem;
}

.about-main strong {
  font-weight: 600;
  color: #1f9c6b;
}

/* サイドバー */
.about-aside {
  padding: 1.4rem 1.2rem;
  border-radius: 1rem;
  background-color: #f6faf8;
  font-size: 0.88rem;
}

.about-aside-title {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 0.7rem;
  color: #222;
}

.about-aside-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.about-aside-list li {
  position: relative;
  padding-left: 1.1rem;
  margin-bottom: 0.35rem;
  color: #444;
}

.about-aside-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  top: 0;
  color: #1f9c6b;
}

/* ワイドコンテンツ（サイドバーなし） */
.about-main-wide {
  max-width: 760px;
  font-size: 0.95rem;
  color: #333;
  line-height: 1.85;
}

.about-main-wide p {
  margin-bottom: 1rem;
}

.about-main-wide strong {
  font-weight: 600;
  color: #1f9c6b;
}

/* PCレイアウト */
@media (min-width: 768px) {
  .about-two-column {
    flex-direction: row;
    align-items: flex-start;
  }

  .about-main {
    flex: 2;
  }

  .about-aside {
    flex: 1;
  }
}

/* 共通: 交互背景色用クラス */
.section-alt {
  background-color: #f7f7f7;
}