

.profile { padding: var(--section-py) 0; }
.profile__inner { max-width: var(--max-width); margin: 0 auto; padding: 0 var(--gutter); display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-xl); align-items: start; }
.profile__img { aspect-ratio: 4/3; background: var(--bg-warm); border-radius: var(--radius-md); overflow: hidden; font-family: var(--font-sans-en); font-size: var(--fs-xs); letter-spacing: var(--ls-widest); color: var(--text-light); }

.profile-table { width: 100%; border-collapse: collapse; }
.profile-table tr { border-bottom: 1px solid var(--border); }
.profile-table tr:first-child { border-top: 1px solid var(--border); }
.profile-table th { font-family: var(--font-serif-ja); font-size: var(--fs-sm); font-weight: var(--fw-medium); color: var(--text); text-align: left; padding: var(--space-sm) var(--space-md) var(--space-sm) 0; vertical-align: top; width: 8em; white-space: nowrap; }
.profile-table td { font-size: var(--fs-sm); font-weight: var(--fw-light); color: var(--text-mid); padding: var(--space-sm) 0; vertical-align: top; line-height: var(--lh-body); }
.profile-table td a { color: var(--accent); border-bottom: 1px solid var(--accent-pale); transition: border-color var(--duration-fast) var(--ease); }
.profile-table td a:hover { border-color: var(--accent); }

.rinen { padding: var(--section-py) var(--gutter); background: var(--bg-warm); }
.rinen__inner { max-width: var(--max-width); margin: 0 auto; }
.rinen__pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); margin-top: var(--space-lg); }
.pillar { background: var(--bg); border-radius: var(--radius-md); padding: var(--space-lg) var(--space-md); text-align: center; position: relative; }
.pillar::before { content: ''; position: absolute; top: 0; left: var(--space-md); right: var(--space-md); height: 2px; background: var(--warm); border-radius: 0 0 var(--radius-sm) var(--radius-sm); }
.pillar__num { font-family: var(--font-serif-en); font-size: var(--fs-h1); font-style: italic; color: var(--accent-pale); line-height: 1; display: block; margin-bottom: var(--space-sm); }
.pillar__ja { margin-bottom: var(--space-sm); letter-spacing: var(--ls-wide); }
.pillar__text { font-size: var(--fs-sm); font-weight: var(--fw-light); color: var(--text-mid); line-height: var(--lh-loose); }

.pillar--bg {
  position: relative;
  aspect-ratio: 4 / 3;
  padding: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--radius-md);
}
.pillar--bg::before { display: none; }
.pillar--bg .pillar__overlay {
  position: absolute;
  inset: 0;
  
  
  background: linear-gradient(to top right,
    color-mix(in srgb, var(--accent) 92%, transparent) 0%,
    color-mix(in srgb, var(--accent) 88%, transparent) 35%,
    color-mix(in srgb, var(--accent) 55%, transparent) 55%,
    color-mix(in srgb, var(--accent) 20%, transparent) 80%,
    color-mix(in srgb, var(--accent) 10%, transparent) 100%);
  z-index: 1;
  transition: opacity var(--duration-base) var(--ease);
}
.pillar--bg .pillar__inner {
  position: relative;
  z-index: 2;
  padding: var(--space-md);
  height: 100%;
  display: grid;
  grid-template-rows: auto 1fr auto;
  text-align: center;
}
.pillar--bg .pillar__num {
  grid-row: 1;
  color: var(--text-inv);
  opacity: 0.85;
  margin-bottom: 0;
}
.pillar--bg .pillar__ja {
  grid-row: 2;
  align-self: end;
  color: var(--text-inv);
  margin-bottom: var(--space-sm);
}
.pillar--bg .pillar__text {
  grid-row: 3;
  color: var(--text-inv);
  opacity: 0.92;
}

.pillar--01 {
  background-image: url('../img/brand-landscape.webp');
}
.pillar--02 {
  background-image: url('../img/pillar-02-origin.webp');
}
.pillar--03 {
  background-image: url('../img/pillar-03-handshake.webp');
}

.pillar--bg {
  background-size: 100% 100%;
  transition: background-size var(--duration-base) var(--ease);
}
.pillar--bg:hover {
  background-size: 108% 108%;
}
.pillar--bg:hover .pillar__overlay {
  opacity: 0.85;
}
@media (prefers-reduced-motion: reduce) {
  .pillar--bg,
  .pillar--bg .pillar__overlay { transition: none; }
  .pillar--bg:hover { background-size: 100% 100%; }
}
.rinen__note { max-width: var(--max-width-narrow); margin: var(--space-lg) auto 0; text-align: center; font-family: var(--font-sans-ja); font-size: var(--fs-lg); font-weight: var(--fw-medium); color: var(--text-mid); line-height: var(--lh-loose); }

.access { padding: var(--section-py) var(--gutter); background: var(--bg); }
.access__inner { max-width: var(--max-width); margin: 0 auto; display: grid; grid-template-columns: 1fr 1.4fr; gap: var(--space-xl); align-items: start; }
.access__address { font-family: var(--font-serif-ja); font-size: var(--fs-body); font-weight: var(--fw-light); font-style: normal; color: var(--text-mid); line-height: var(--lh-loose); margin-bottom: var(--space-lg); }
.access__address strong { font-weight: var(--fw-medium); color: var(--text); }
.access__list { display: flex; flex-direction: column; gap: 0; margin-bottom: var(--space-lg); }
.access__item { display: grid; grid-template-columns: 6em 1fr; gap: var(--space-sm); padding: var(--space-sm) 0; border-bottom: 1px solid var(--border); font-size: var(--fs-sm); }
.access__item:first-child { border-top: 1px solid var(--border); }
.access__item dt { font-weight: var(--fw-medium); color: var(--text); }
.access__item dd { font-weight: var(--fw-light); color: var(--text-mid); line-height: var(--lh-body); }
.access__item dd a { color: var(--accent); }

.company-cta { padding: var(--section-py) var(--gutter); background: var(--bg-accent); text-align: center; }
.company-cta__inner { max-width: 680px; margin: 0 auto; }
.company-cta__en { font-family: var(--font-serif-en); font-size: var(--fs-h1); font-style: italic; color: var(--text-inv); display: block; margin-bottom: var(--space-sm); }
.company-cta__title { margin-bottom: var(--space-sm); }
.company-cta__text { font-size: var(--fs-sm); font-weight: var(--fw-light); color: var(--text-inv); line-height: var(--lh-loose); margin-bottom: var(--space-lg); }

.map-embed {
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--border);
}
.map-embed iframe {
  display: block;
  width: 100%;
  border: 0;
}

@media (max-width: 768px) { .profile__inner { grid-template-columns: 1fr; gap: var(--space-lg); } }

@media (max-width: 768px) { .rinen__pillars { grid-template-columns: 1fr; gap: var(--grid-gap-sm); } }

@media (max-width: 768px) { .access__inner { grid-template-columns: 1fr; gap: var(--space-lg); } }
