/* ============================================================
   Koichiro Ohtani — Design System
   Original stylesheet. No code copied from any reference site.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Noto+Sans+JP:wght@300;400;500;700&family=Noto+Serif+JP:wght@400;500;600&family=Shippori+Mincho+B1:wght@400;500&display=swap');

:root {
  /* Color */
  --color-bg: #FBF9F5;
  --color-bg-alt: #F2EEE7;
  --color-surface: #FFFFFF;
  --color-text: #3B3630;
  --color-text-soft: #8B8175;
  --color-accent: #A98B63;
  --color-accent-soft: #D8C7AD;
  --color-line: #E6E0D5;

  /* Type */
  --font-en: 'Cormorant Garamond', serif;
  --font-jp-serif: 'Noto Serif JP', serif;
  --font-hero-serif: 'Shippori Mincho B1', 'Noto Serif JP', serif;
  --font-jp-sans: 'Noto Sans JP', sans-serif;

  /* Spacing scale */
  --space-2xs: .5rem;
  --space-xs: 1rem;
  --space-sm: 1.75rem;
  --space-md: 3rem;
  --space-lg: 5rem;
  --space-xl: 7.5rem;
  --space-2xl: 10rem;

  /* Layout */
  --container-xl: 1440px;
  --container-l: 1180px;
  --container-m: 960px;
  --container-s: 680px;

  --header-h: 96px;
  --ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- Reset ---------- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-jp-sans);
  color: var(--color-text);
  background: var(--color-bg);
  font-size: 16px;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4, p, dl, dd { margin: 0; }
button { font: inherit; background: none; border: none; cursor: pointer; color: inherit; }

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.inner-xl { max-width: var(--container-xl); margin: 0 auto; padding: 0 40px; }
.inner-l  { max-width: var(--container-l);  margin: 0 auto; padding: 0 40px; }
.inner-m  { max-width: var(--container-m);  margin: 0 auto; padding: 0 32px; }
.inner-s  { max-width: var(--container-s);  margin: 0 auto; padding: 0 32px; }

/* ---------- Responsive line breaks ---------- */
.br-sp {
  display: none;
}
.br-pc {
  display: block;
}

@media screen and (max-width: 767px) {
  .br-sp {
    display: block;
  }
  .br-pc {
    display: none;
  }
}

@media (max-width: 768px) {
  .inner-xl, .inner-l, .inner-m, .inner-s { padding: 0 24px; }
}

/* ---------- Fade-up scroll animation ---------- */
.anim { opacity: 0; transform: translateY(24px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.anim.is-visible { opacity: 1; transform: translateY(0); }

/* ---------- Section heading ---------- */
.sec-heading { text-align: center; margin-bottom: var(--space-lg); }
.sec-heading__en {
  font-family: var(--font-en);
  font-weight: 500;
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  letter-spacing: .06em;
  color: var(--color-text);
}
.sec-heading__lead {
  margin-top: var(--space-xs);
  font-family: var(--font-jp-serif);
  font-size: .95rem;
  letter-spacing: .04em;
  color: var(--color-text-soft);
  line-height: 2;
}

.p-achievements__button {
  margin-top: var(--space-lg);
  text-align: center;
}

/* ---------- Buttons ---------- */
.btn-arrow {
  display: inline-flex;
  align-items: center;
  gap: .75em;
  font-size: .85rem;
  letter-spacing: .12em;
  padding-bottom: .5em;
  border-bottom: 1px solid var(--color-text);
  transition: opacity .3s var(--ease), border-color .3s var(--ease);
}
.arrow {
  display: inline-block;
  width: 1.5em;
  height: 1px;
  background: currentColor;
  position: relative;
  flex-shrink: 0;
}
.arrow::after {
  content: '';
  position: absolute;
  right: 0;
  top: -3px;
  width: 6px;
  height: 6px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}
.btn-arrow:hover { opacity: .55; }

.btn-solid {
  display: inline-flex;
  align-items: center;
  gap: .6em;
  padding: .5em 2.3em;
  border: 1px solid var(--color-text);
  border-radius: 999px;
  font-family: var(--font-jp-serif);
  font-size: .9rem;
  letter-spacing: .12em;
  transition: background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
}
.btn-solid .arrow { width: .75em; }
.btn-solid .arrow::after { width: 5px; height: 5px; top: -2.5px; }
.btn-solid:hover { background: #BEA79A; border-color: #BEA79A; color: var(--color-bg); }

.btn-solid--cta {
  background: #BEA79A;
  border-color: #BEA79A;
  color: #FFFFFF;
}
.btn-solid--cta:hover {
  background: #FFFFFF;
  border-color: #BEA79A;
  color: var(--color-text);
}
.btn-solid--cta .arrow { display: none; }

/* ============================================================
   Header
   ============================================================ */
.l-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  height: var(--header-h);
  display: flex;
  align-items: center;
  color: #FFFFFF;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: color .4s var(--ease), background .4s var(--ease), border-color .4s var(--ease);
}
.l-header:not(.is-scrolled) {
  text-shadow: 0 1px 12px rgba(0, 0, 0, .28);
}
.l-header.is-scrolled {
  color: var(--color-text);
  background: rgba(251, 249, 245, .92);
  backdrop-filter: blur(6px);
  border-color: transparent;
  text-shadow: none;
}
.l-header.is-drawer-open {
  backdrop-filter: none;
}
html.is-drawer-open,
body.is-drawer-open {
  overflow: hidden;
}

.l-header__wrap {
  width: 100%;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.l-header__logo { font-family: var(--font-en); font-size: 1.35rem; letter-spacing: .1em; }
.l-header__logo a { display: flex; align-items: center; gap: .6em; }
.l-header__nav__list {
  display: flex;
  gap: clamp(1.25rem, 2.4vw, 2.75rem);
}
.l-header__nav__list__item a {
  font-family: var(--font-en);
  font-size: .95rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 4px;
}
.l-header__nav__list__item a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 1px;
  background: currentColor;
  transition: width .35s var(--ease), background .4s var(--ease);
}
.l-header__nav__list__item a:hover::after,
.l-header__nav__list__item.is-current a::after { width: 100%; }

.l-header__nav__list__item--cta a {
  font-family: var(--font-en);
  text-transform: uppercase;
  font-size: .95rem;
  line-height: 1;
  letter-spacing: .14em;
  padding-top: .5em;
  padding-bottom: .5em;
  padding-left: 1.8em;
  padding-right: 1.8em;
}
.l-header__nav__list__item--cta a::after { content: none; }

.l-header__right { display: flex; align-items: center; gap: 2rem; }

.l-header__btn {
  display: none;
  width: 32px; height: 22px;
  position: relative;
  z-index: 210;
}
.l-header__btn span, .l-header__btn::before, .l-header__btn::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  background: currentColor;
  transition: transform .35s var(--ease), opacity .35s var(--ease), background .4s var(--ease);
}
.l-header__btn::before { top: 0; }
.l-header__btn span { top: 50%; transform: translateY(-50%); }
.l-header__btn::after { bottom: 0; }
.l-header__btn[aria-expanded="true"]::before { transform: translateY(10.5px) rotate(45deg); }
.l-header__btn[aria-expanded="true"]::after { transform: translateY(-10.5px) rotate(-45deg); }
.l-header__btn[aria-expanded="true"] span { opacity: 0; }

@media (max-width: 900px) {
  .l-header__nav { display: none; }
  .l-header__btn { display: block; }
}

/* Drawer */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 200;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  background: var(--color-bg);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .4s var(--ease), visibility .4s var(--ease);
}
.drawer[aria-hidden="false"] {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.drawer-backdrop {
  position: absolute;
  inset: 0;
  background: var(--color-bg);
}
.drawer-contents {
  position: absolute;
  inset: 0 0 0 auto;
  width: min(420px, 86vw);
  min-height: 100vh;
  min-height: 100dvh;
  color: var(--color-text);
  background: var(--color-bg);
  transform: translateX(100%);
  transition: transform .45s var(--ease);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: max(88px, calc(env(safe-area-inset-top) + 72px)) 48px max(32px, calc(env(safe-area-inset-bottom) + 24px));
}
.drawer[aria-hidden="false"] .drawer-contents { transform: translateX(0); }
.drawer-close {
  position: fixed;
  top: max(28px, calc(env(safe-area-inset-top) + 16px));
  right: max(32px, env(safe-area-inset-right));
  z-index: 210;
  color: var(--color-text);
}
.drawer-nav__list { margin: auto 0; }
.drawer-nav__list__item { border-bottom: 1px solid var(--color-line); }
.drawer-nav__list__item a {
  display: block;
  padding: 1.1rem 0;
  font-family: var(--font-en);
  font-size: 1.1rem;
  letter-spacing: .1em;
  color: var(--color-text);
}

/* ============================================================
   Hero
   ============================================================ */
.p-hero {
  position: relative;
  height: 100vh;
  min-height: 640px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.p-hero__image {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #EFE9DE 0%, #F6F2EA 45%, #E7DCC9 100%);
}
.p-hero__slide {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 1.6s var(--ease);
}
.p-hero__slide.is-active { opacity: 1; }
.p-hero__slide picture { display: block; width: 100%; height: 100%; }
.p-hero__slide img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.p-hero__copy {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  padding: calc(var(--header-h) + 1.5rem) 40px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2.4rem;
  text-align: center;
  pointer-events: none;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .34);
}
.p-hero__copy__message,
.p-hero__copy__lead {
  max-width: 100%;
  color: #FFFFFF;
  font-family: var(--font-hero-serif);
  font-weight: 400;
  opacity: 0;
  filter: blur(6px);
  animation: heroSoftReveal 1.8s var(--ease) forwards;
}
.p-hero__copy__message {
  font-size: 2rem;
  line-height: 1.45;
  letter-spacing: .12em;
}
.p-hero__copy__lead {
  font-size: 1.25rem;
  line-height: 1.75;
  letter-spacing: .1em;
  animation-delay: .35s;
}
@keyframes heroCopyReveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes heroSoftReveal {
  to {
    opacity: 1;
    filter: blur(0);
  }
}
@media (max-width: 768px) {
  .p-hero__copy {
    padding: calc(var(--header-h) + .5rem) 24px 0;
    gap: 1.6rem;
    transform: translateY(-3.5rem);
  }
  .p-hero__copy__message {
    font-size: 1.5rem;
    line-height: 1.6;
    letter-spacing: .12em;
    writing-mode: vertical-rl;
    text-orientation: mixed;
  }
  .p-hero__copy__message .br-sp {
    display: none;
  }
  .p-hero__copy__lead {
    font-size: .92rem;
    line-height: 1.9;
    letter-spacing: .06em;
  }
}

/* ============================================================
   Profile strip (moved out of the hero)
   ============================================================ */
.p-profile-strip {
  padding: var(--space-lg) 0;
  text-align: center;
}
.p-profile-strip__jp {
  font-size: .85rem;
  letter-spacing: .04em;
  color: var(--color-text);
}
.p-profile-strip__jp-sub {
  margin-top: .4rem;
  font-family: var(--font-jp-serif);
  font-size: .82rem;
  color: var(--color-text-soft);
}
.p-profile-strip__en {
  margin-top: 1.4rem;
  font-family: var(--font-en);
  font-size: .74rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--color-text-soft);
}
.p-profile-strip__en-sub {
  margin-top: .3rem;
  font-family: var(--font-en);
  font-style: italic;
  font-size: .74rem;
  letter-spacing: .01em;
  color: var(--color-text-soft);
}

/* ============================================================
   Generic section / placeholder image blocks
   ============================================================ */
.section { padding: var(--space-2xl) 0; }
.section--alt { background: var(--color-bg-alt); }
@media (max-width: 768px) {
  .section { padding: var(--space-xl) 0; }
}

.placeholder-img {
  background: linear-gradient(150deg, #EFE9DE 0%, #F7F4EE 50%, #E6DCC7 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-en);
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-text-soft);
  overflow: hidden;
}

/* ---------- Home International / five-image loop ---------- */
.p-international-loop {
  --international-slide-width: 500px;
  --international-slide-height: calc(var(--international-slide-width) * 406 / 513);
  --international-loop-distance: calc(var(--international-slide-width) * 5);
  width: 100%;
  margin-top: 8.2rem;
  overflow: hidden;
  -webkit-perspective: 1000px;
  perspective: 1000px;
}
.p-international-loop__track {
  display: flex;
  width: max-content;
  animation: international-loop-x 55s linear infinite;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
  will-change: transform;
}
.p-international-loop__track li {
  flex: 0 0 var(--international-slide-width);
  width: var(--international-slide-width);
  height: var(--international-slide-height);
}
.p-international-loop__track img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@keyframes international-loop-x {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(var(--international-loop-distance) * -1), 0, 0); }
}
@media (max-width: 1023px) {
  .p-international-loop {
    --international-slide-width: 300px;
    margin-top: 6.2rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-international-loop {
    overflow-x: auto;
    scrollbar-width: none;
  }
  .p-international-loop::-webkit-scrollbar { display: none; }
  .p-international-loop__track { animation: none; }
  .p-international-loop__track li[aria-hidden="true"] { display: none; }
}

/* ---------- Intro / two-col with images ---------- */
.p-intro {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(2rem, 6vw, 6rem);
  align-items: center;
  max-width: var(--container-l);
  margin: 0 auto;
  padding: 0 40px;
}
.p-intro__image { aspect-ratio: 4 / 5; border-radius: 2px; }
.p-intro__body__en {
  font-family: var(--font-en);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  letter-spacing: .05em;
}
.p-intro__body p {
  margin-top: var(--space-sm);
  font-family: var(--font-jp-serif);
  font-size: .95rem;
  line-height: 2.1;
  color: var(--color-text-soft);
}
.p-intro__body .btn-arrow { margin-top: var(--space-md); }

@media (max-width: 860px) {
  .p-intro { grid-template-columns: 1fr; }
}

/* ---------- Home concept / reference-inspired layout ---------- */
.p-concept {
  padding: clamp(11.25rem, 14vw, 13.75rem) 0;
  background: var(--color-bg);
}
.p-concept__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 clamp(2.5rem, 5vw, 4.5rem);
}
.p-concept__gallery {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: clamp(3rem, 7vw, 7rem);
}
.p-concept__gallery--top {
  padding: 0 clamp(1rem, 3vw, 3rem);
}
.p-concept__gallery--bottom {
  align-items: flex-start;
  padding: 0 clamp(1rem, 2vw, 2rem);
}
.p-concept__image {
  flex: 0 0 auto;
  margin: 0;
  overflow: hidden;
  background: var(--color-bg-alt);
}
.p-concept__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.p-concept__image--01,
.p-concept__image--04 {
  width: 37%;
}
.p-concept__image--02,
.p-concept__image--03 {
  width: 25%;
}
.p-concept__image--02 {
  margin-top: clamp(11rem, 13vw, 14.5rem);
  transform: translateX(-2.5rem);
}
.p-concept__image--03 {
  margin-top: clamp(-4rem, -3vw, -1.5rem);
  transform: translateX(5rem);
}
.p-concept__body {
  max-width: 720px;
  margin: clamp(8.125rem, 11vw, 10.625rem) auto;
  text-align: center;
  color: var(--color-text);
}
.p-concept__title {
  font-family: var(--font-en);
  font-weight: 500;
  font-size: clamp(1.45rem, 2.5vw, 2rem);
  line-height: 1;
  letter-spacing: 0;
  color: var(--color-text);
}
.p-concept__body p:not(.p-concept__title) {
  margin-top: 1.65rem;
  font-family: var(--font-jp-serif);
  font-size: .96rem;
  font-weight: 400;
  line-height: 2.35;
  letter-spacing: .035em;
  color: var(--color-text);
}
.p-concept__body .p-concept__title + p {
  margin-top: 2.6rem;
}
.p-concept__button {
  margin-top: 4rem;
}

@media (min-width: 768px) and (max-width: 959px) {
  .p-concept {
    padding: clamp(8.125rem, 16vw, 10rem) 0;
  }
  .p-concept__inner {
    padding: 0 40px;
  }
  .p-concept__gallery {
    gap: clamp(2.5rem, 7vw, 4rem);
  }
  .p-concept__gallery--top,
  .p-concept__gallery--bottom {
    padding: 0;
  }
  .p-concept__image--01,
  .p-concept__image--04 {
    width: 39%;
  }
  .p-concept__image--02,
  .p-concept__image--03 {
    width: 27%;
  }
  .p-concept__image--02 {
    margin-top: 9rem;
    transform: translateX(-1.5rem);
  }
  .p-concept__image--03 {
    margin-top: -2rem;
    transform: translateX(3rem);
  }
  .p-concept__body {
    max-width: 680px;
    margin: clamp(6.25rem, 13vw, 8.125rem) auto;
  }
  .p-concept__body p:not(.p-concept__title) {
    margin-top: 1.35rem;
    font-size: .9rem;
    line-height: 2.25;
    letter-spacing: .02em;
  }
  .p-concept__body .p-concept__title + p {
    margin-top: 2.2rem;
  }
  .p-concept__button {
    margin-top: 3rem;
  }
}

@media (max-width: 767px) {
  .p-concept {
    padding: 7.5rem 0;
  }
  .p-concept__inner {
    padding: 0 20px;
  }
  .p-concept__gallery {
    gap: clamp(1rem, 5vw, 1.5rem);
  }
  .p-concept__gallery--top,
  .p-concept__gallery--bottom {
    padding: 0;
  }
  .p-concept__image--01,
  .p-concept__image--04 {
    width: 58%;
  }
  .p-concept__image--02,
  .p-concept__image--03 {
    width: 32%;
  }
  .p-concept__image--02 {
    margin-top: clamp(7rem, 25vw, 8.5rem);
    transform: translateX(-.75rem);
  }
  .p-concept__image--03 {
    margin-top: clamp(-2rem, -4vw, -.75rem);
    transform: translateX(1.5rem);
  }
  .p-concept__body {
    max-width: none;
    margin: clamp(5.625rem, 24vw, 7.5rem) 4px;
    text-align: left;
  }
  .p-concept__body p:not(.p-concept__title) {
    margin-top: 1.35rem;
    font-size: .9rem;
    line-height: 2.25;
    letter-spacing: .02em;
  }
  .p-concept__body .p-concept__title + p {
    margin-top: 2.1rem;
  }
  .p-concept__button {
    margin-top: 3.25rem;
  }
}

/* ---------- Feature list (Philosophy / points) ---------- */
.p-points__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-lg) var(--space-md);
  max-width: var(--container-l);
  margin: 0 auto;
  padding: 0 40px;
}
.p-points__list__item .num {
  font-family: var(--font-en);
  font-size: .8rem;
  letter-spacing: .2em;
  color: var(--color-accent);
}
.p-points__list__item .image { aspect-ratio: 4 / 3; margin: var(--space-xs) 0 var(--space-sm); }
.p-points__list__item h3 {
  font-family: var(--font-jp-serif);
  font-size: 1.05rem;
  letter-spacing: .03em;
}
.p-points__list__item p {
  margin-top: .8rem;
  font-size: .88rem;
  color: var(--color-text-soft);
  line-height: 2;
}

@media (max-width: 860px) {
  .p-points__list { grid-template-columns: 1fr; }
}

/* ---------- Home International summary ---------- */
.p-international-summary {
  width: min(100% - 48px, 720px);
  margin: clamp(4rem, 7vw, 6rem) auto 0;
  text-align: center;
}
.p-international-summary__name {
  font-family: var(--font-en);
  font-size: clamp(1.45rem, 2.5vw, 2rem);
  letter-spacing: .08em;
}
.p-international-summary__title {
  margin-top: 1.4rem;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(1.4rem, 2.7vw, 2rem);
  line-height: 1.9;
  letter-spacing: .06em;
}
.p-international-summary__text {
  margin-top: 2rem;
  font-family: var(--font-jp-serif);
  font-size: .94rem;
  line-height: 2.25;
  letter-spacing: .025em;
  color: var(--color-text-soft);
}
.p-international-summary__text p + p { margin-top: 1.2rem; }
.p-international-summary__button { margin-top: 2.8rem; }

/* ---------- Home Work ---------- */
.p-home-work__inner {
  width: min(100% - 80px, 1180px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: clamp(3.5rem, 7vw, 7rem);
  align-items: center;
}
.p-home-work__media {
  margin: 0;
  overflow: hidden;
  background: var(--color-bg-alt);
}
.p-home-work__media img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.p-home-work__body { text-align: left; }
.p-home-work__eyebrow {
  font-family: var(--font-en);
  font-size: clamp(2.25rem, 4vw, 3.25rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: .06em;
}
.p-home-work__name {
  margin-top: 1rem;
  font-family: var(--font-jp-serif);
  font-size: .9rem;
  letter-spacing: .07em;
  color: var(--color-text-soft);
}
.p-home-work__title {
  margin-top: 1.6rem;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(1.65rem, 3vw, 2.4rem);
  line-height: 1.8;
  letter-spacing: .07em;
}
.p-home-work__text {
  margin-top: 2rem;
  font-family: var(--font-jp-serif);
  font-size: .94rem;
  line-height: 2.25;
  letter-spacing: .025em;
  color: var(--color-text-soft);
}
.p-home-work__text p + p { margin-top: 1.2rem; }
.p-home-work__roles {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1.5rem;
  margin-top: 2rem;
  font-family: var(--font-jp-serif);
  font-size: .92rem;
  letter-spacing: .06em;
  color: var(--color-text);
}
.p-home-work__button { margin-top: 2.8rem; }

@media (max-width: 900px) {
  .p-home-work__inner {
    width: min(100% - 48px, 680px);
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .p-home-work__title { font-size: clamp(1.55rem, 7vw, 2rem); }
  .p-home-work__text { font-size: .9rem; line-height: 2.2; }
  .p-home-work__roles { gap: .6rem 1.1rem; }
}

/* ---------- Work page ---------- */
.work-page .p-work-story { background: var(--color-bg); }
.work-page .p-work-inner { width: min(100% - 64px, 1120px); margin: 0 auto; }
.work-page .p-work-inner--narrow { max-width: 820px; }
.work-page .p-work-intro, .work-page .p-work-fields, .work-page .p-work-audience,
.work-page .p-work-approach, .work-page .p-work-requests, .work-page .p-work-selected,
.work-page .p-work-related { padding: var(--space-2xl) 0; }
.work-page .p-work-intro { text-align: center; }
.work-page .p-work-fields, .work-page .p-work-approach, .work-page .p-work-selected { background: var(--color-bg-alt); }
.work-page .p-work-eyebrow, .work-page .p-work-field__en, .work-page .p-work-field__num,
.work-page .p-work-selected__list > article > p { font-family: var(--font-en); color: var(--color-accent); letter-spacing: .13em; }
.work-page .p-work-eyebrow { font-size: .92rem; }
.work-page .p-work-heading h2, .work-page .p-work-intro h2, .work-page .p-work-related h2 {
  margin-top: 1rem; font-family: var(--font-jp-serif); font-weight: 500; font-size: clamp(1.7rem, 3vw, 2.55rem); line-height: 1.75; letter-spacing: .06em;
}
.work-page .p-work-copy { margin-top: 2rem; font-size: .96rem; line-height: 2.35; letter-spacing: .025em; }
.work-page .p-work-copy p + p { margin-top: 1.25rem; }
.work-page .p-work-roles { display: grid; grid-template-columns: repeat(4,1fr); margin-top: var(--space-lg); border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.work-page .p-work-roles li { padding: 1.5rem .5rem; font-family: var(--font-jp-serif); font-size: clamp(1rem,2vw,1.35rem); }
.work-page .p-work-field { display: grid; grid-template-columns: minmax(260px,.75fr) minmax(0,1.25fr); gap: clamp(3rem,7vw,7rem); padding: var(--space-xl) 0; border-bottom: 1px solid var(--color-line); }
.work-page .p-work-field:first-of-type { margin-top: var(--space-md); border-top: 1px solid var(--color-line); }
.work-page .p-work-field__num { font-size: 1.25rem; }
.work-page .p-work-field__en { margin-top: .7rem; font-size: .84rem; }
.work-page .p-work-field h3, .work-page .p-work-approach h3 { margin-top: 1.2rem; font-family: var(--font-jp-serif); font-weight: 500; font-size: clamp(1.35rem,2.3vw,1.85rem); line-height: 1.8; }
.work-page .p-work-field__body { font-size: .94rem; line-height: 2.15; }
.work-page .p-work-field__body p + p { margin-top: 1.1rem; }
.work-page .p-work-field__body h4 { margin: 2rem 0 .8rem; font-family: var(--font-jp-serif); font-weight: 500; }
.work-page .p-work-field__body ul, .work-page .p-work-audience ul, .work-page .p-work-requests ul { border-top: 1px solid var(--color-line); }
.work-page .p-work-field__body li, .work-page .p-work-audience li, .work-page .p-work-requests li { padding: .75rem 0; border-bottom: 1px solid var(--color-line); }
.work-page .p-work-note { padding-left: 1.2rem; border-left: 1px solid var(--color-accent-soft); color: var(--color-text-soft); }
.work-page .p-work-link { display: inline-block; margin-top: 1.5rem; padding-bottom: .25rem; border-bottom: 1px solid currentColor; }
.work-page .p-work-audience ul, .work-page .p-work-requests ul { display: grid; grid-template-columns: repeat(3,1fr); gap: 0 2rem; margin-top: var(--space-lg); }
.work-page .p-work-approach__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: var(--space-lg); background: var(--color-line); }
.work-page .p-work-approach__grid article { padding: clamp(2rem,3.5vw,3rem); background: var(--color-bg); }
.work-page .p-work-approach__grid article > p:last-child { margin-top: 1.2rem; color: var(--color-text-soft); font-size: .9rem; line-height: 2; }
.work-page .p-work-requests__note { max-width: 760px; margin-top: 2rem; color: var(--color-text-soft); }
.work-page .p-work-selected__list { margin-top: var(--space-lg); border-top: 1px solid var(--color-line); }
.work-page .p-work-selected__list article { display: grid; grid-template-columns: 260px 1fr; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--color-line); }
.work-page .p-work-selected__list h3 { font-family: var(--font-jp-serif); font-size: 1rem; font-weight: 400; line-height: 2; }
.work-page .p-work-related__grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: var(--color-line); }
.work-page .p-work-related a { display: block; min-height: 330px; padding: clamp(2rem,4vw,3.5rem); background: var(--color-bg); }
.work-page .p-work-related a > p:not(.p-work-eyebrow) { margin-top: 1.5rem; color: var(--color-text-soft); }
.work-page .p-work-related a span { display: inline-block; margin-top: 2rem; padding-bottom: .3rem; border-bottom: 1px solid currentColor; }
.work-page a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 5px; }
@media (max-width: 767px) {
  .work-page .p-work-inner { width: min(100% - 40px,680px); }
  .work-page .p-work-intro, .work-page .p-work-fields, .work-page .p-work-audience,
  .work-page .p-work-approach, .work-page .p-work-requests, .work-page .p-work-selected,
  .work-page .p-work-related { padding: var(--space-xl) 0; }
  .work-page .p-work-intro { text-align: left; }
  .work-page .p-work-roles { grid-template-columns: repeat(2,1fr); }
  .work-page .p-work-field, .work-page .p-work-approach__grid, .work-page .p-work-related__grid { grid-template-columns: 1fr; }
  .work-page .p-work-field { gap: 2rem; padding: var(--space-lg) 0; }
  .work-page .p-work-audience ul, .work-page .p-work-requests ul { grid-template-columns: 1fr; gap: 0; }
  .work-page .p-work-selected__list article { grid-template-columns: 1fr; gap: .7rem; }
  .work-page .p-work-related a { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .work-page .anim { opacity: 1; transform: none; transition: none; }
}

/* ---------- International page ---------- */
.international-page .p-international-story { background: var(--color-bg); }
.international-page .p-international-inner { width: min(100% - 64px, 1120px); margin: 0 auto; }
.international-page .p-international-intro, .international-page .p-international-vision,
.international-page .p-international-chashitsu, .international-page .p-international-values,
.international-page .p-international-guests, .international-page .p-international-education,
.international-page .p-international-experience, .international-page .p-international-programs,
.international-page .p-international-process, .international-page .p-international-future,
.international-page .p-international-profile, .international-page .p-international-related { padding: var(--space-2xl) 0; }
.international-page .p-international-vision, .international-page .p-international-values,
.international-page .p-international-education, .international-page .p-international-programs,
.international-page .p-international-future { background: var(--color-bg-alt); }
.international-page .p-international-hero__ja { margin-top: .7rem; font-family: var(--font-jp-serif); font-size: .9rem; }
.international-page .p-international-split { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr); gap:clamp(3rem,7vw,7rem); align-items:start; }
.international-page .p-international-kicker, .international-page .p-international-label,
.international-page .p-international-name, .international-page .p-international-values__grid > article > p:first-child,
.international-page .p-international-programs__list > article > p:first-child,
.international-page .p-international-process__grid > article > p:first-child,
.international-page .p-international-experience__list > article > p { font-family:var(--font-en); color:var(--color-accent); letter-spacing:.14em; }
.international-page .p-international-kicker { font-size:.95rem; }
.international-page .p-international-name { margin-top:.5rem; color:var(--color-text-soft); }
.international-page h2 { margin-top:1rem; font-family:var(--font-en); font-size:clamp(2rem,3.5vw,3rem); font-weight:500; line-height:1.35; letter-spacing:.02em; }
.international-page header > p[lang="ja"], .international-page .p-international-vision__grid article > p[lang="ja"] { margin-top:1.2rem; font-family:var(--font-jp-serif); color:var(--color-text-soft); line-height:2; }
.international-page .p-international-copy { font-family:var(--font-en); font-size:1.12rem; line-height:1.85; }
.international-page .p-international-copy p + p { margin-top:1.3rem; }
.international-page .p-international-copy--narrow { max-width:760px; margin:var(--space-lg) auto 0; }
.international-page .p-international-ja { margin-top:2rem; padding-left:1.2rem; border-left:1px solid var(--color-accent-soft); font-family:var(--font-jp-sans); font-size:.84rem; line-height:2; color:var(--color-text-soft); }
.international-page .p-international-vision__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:var(--space-lg); background:var(--color-line); }
.international-page .p-international-vision__grid article { padding:clamp(2rem,4vw,3.5rem); background:var(--color-bg); }
.international-page .p-international-vision__grid article h2 { font-size:clamp(1.55rem,2.4vw,2.15rem); }
.international-page .p-international-values__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:var(--space-lg); background:var(--color-line); }
.international-page .p-international-values__grid article { min-height:280px; padding:2rem; background:var(--color-bg); }
.international-page .p-international-values__grid h3, .international-page .p-international-programs__list h3,
.international-page .p-international-process__grid h3, .international-page .p-international-experience__list h3 { margin-top:1rem; font-family:var(--font-en); font-size:1.4rem; font-weight:500; line-height:1.35; }
.international-page .p-international-values__grid h3 span { display:block; margin-top:.35rem; font-family:var(--font-jp-serif); font-size:.78rem; color:var(--color-text-soft); }
.international-page .p-international-values__grid article > p:last-child,
.international-page .p-international-programs__list article > p:last-child,
.international-page .p-international-process__grid article > p:last-child { margin-top:1rem; font-family:var(--font-en); font-size:1rem; line-height:1.7; color:var(--color-text-soft); }
.international-page .p-international-lines { margin-top:2rem; border-top:1px solid var(--color-line); }
.international-page .p-international-lines li { padding:.7rem 0; border-bottom:1px solid var(--color-line); }
.international-page .p-international-experience__list { margin-top:var(--space-lg); border-top:1px solid var(--color-line); }
.international-page .p-international-experience__list article { display:grid; grid-template-columns:220px 1fr; gap:2rem; padding:2rem 0; border-bottom:1px solid var(--color-line); }
.international-page .p-international-experience__list article div > p { margin-top:.8rem; font-family:var(--font-en); font-size:1.05rem; line-height:1.75; }
.international-page .p-international-experience__list article div > p[lang="ja"] { font-family:var(--font-jp-sans); font-size:.82rem; color:var(--color-text-soft); }
.international-page .p-international-link { display:inline-flex; gap:.7rem; align-items:baseline; margin-top:2rem; padding-bottom:.3rem; border-bottom:1px solid currentColor; }
.international-page .p-international-link small { color:var(--color-text-soft); }
.international-page .p-international-programs__list { display:grid; grid-template-columns:repeat(2,1fr); margin-top:var(--space-lg); border-top:1px solid var(--color-line); }
.international-page .p-international-programs__list article { min-height:230px; padding:2rem; border-right:1px solid var(--color-line); border-bottom:1px solid var(--color-line); }
.international-page .p-international-process__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(2rem,4vw,4rem); margin-top:var(--space-lg); }
.international-page .p-international-process__grid article { padding-top:2rem; border-top:1px solid var(--color-line); }
.international-page .p-international-profile dl { max-width:820px; margin:var(--space-lg) auto 0; border-top:1px solid var(--color-line); }
.international-page .p-international-profile dl div { display:grid; grid-template-columns:250px 1fr; gap:2rem; padding:1.3rem 0; border-bottom:1px solid var(--color-line); }
.international-page .p-international-profile dt { font-family:var(--font-en); color:var(--color-text-soft); letter-spacing:.08em; }
.international-page .p-international-profile dd { font-family:var(--font-en); font-size:1.12rem; }
.international-page .p-international-profile dd span { font-family:var(--font-jp-sans); font-size:.82rem; color:var(--color-text-soft); }
.international-page .p-international-related__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--color-line); }
.international-page .p-international-related a { display:block; min-height:300px; padding:clamp(2rem,4vw,3.5rem); background:var(--color-bg); }
.international-page .p-international-related a > p:not(.p-international-kicker) { margin-top:1.5rem; font-family:var(--font-en); font-size:1.1rem; line-height:1.7; }
.international-page .p-international-related small { display:block; margin-top:1rem; color:var(--color-text-soft); }
.international-page .p-international-related a > span { display:inline-block; margin-top:2rem; padding-bottom:.3rem; border-bottom:1px solid currentColor; }
.international-page a:focus-visible { outline:2px solid var(--color-accent); outline-offset:5px; }
@media(max-width:767px){
  .international-page .p-international-inner { width:min(100% - 40px,680px); }
  .international-page .p-international-intro, .international-page .p-international-vision,
  .international-page .p-international-chashitsu, .international-page .p-international-values,
  .international-page .p-international-guests, .international-page .p-international-education,
  .international-page .p-international-experience, .international-page .p-international-programs,
  .international-page .p-international-process, .international-page .p-international-future,
  .international-page .p-international-profile, .international-page .p-international-related { padding:var(--space-xl) 0; }
  .international-page .p-international-split, .international-page .p-international-vision__grid,
  .international-page .p-international-values__grid, .international-page .p-international-programs__list,
  .international-page .p-international-process__grid, .international-page .p-international-related__grid { grid-template-columns:1fr; }
  .international-page .p-international-split { gap:2.5rem; }
  .international-page .p-international-values__grid article, .international-page .p-international-programs__list article { min-height:0; padding:1.8rem 0; border-right:0; }
  .international-page .p-international-experience__list article, .international-page .p-international-profile dl div { grid-template-columns:1fr; gap:.6rem; }
  .international-page .p-international-related a { min-height:0; }
}
@media(prefers-reduced-motion:reduce){.international-page .anim{opacity:1;transform:none;transition:none;}}

/* ---------- Contact page ---------- */
.contact-page .p-contact-story { background:var(--color-bg); }
.contact-page .p-contact-inner { width:min(100% - 64px,1040px); margin:0 auto; }
.contact-page .p-contact-intro,.contact-page .p-contact-areas,.contact-page .p-contact-before,
.contact-page .p-contact-process,.contact-page .p-contact-international,.contact-page .p-contact-form-section,
.contact-page .p-contact-school,.contact-page .p-contact-privacy { padding:var(--space-xl) 0; }
.contact-page .p-contact-areas,.contact-page .p-contact-process,.contact-page .p-contact-form-section,.contact-page .p-contact-privacy { background:var(--color-bg-alt); }
.contact-page .p-contact-hero__en { margin-top:.8rem; font-family:var(--font-en); font-size:1.05rem; line-height:1.5; }
.contact-page .p-contact-split { display:grid; grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr); gap:clamp(3rem,7vw,7rem); }
.contact-page .p-contact-kicker { font-family:var(--font-en); color:var(--color-accent); font-size:.95rem; letter-spacing:.14em; }
.contact-page h2 { margin-top:1rem; font-family:var(--font-jp-serif); font-size:clamp(1.65rem,3vw,2.4rem); font-weight:500; line-height:1.75; letter-spacing:.05em; }
.contact-page .p-contact-copy { font-size:.94rem; line-height:2.2; }
.contact-page .p-contact-copy p + p { margin-top:1.1rem; }
.contact-page .p-contact-copy--en { margin-top:2rem; font-family:var(--font-en); font-size:1.08rem; line-height:1.8; color:var(--color-text-soft); }
.contact-page .p-contact-anchor { display:inline-block; margin-top:2rem; padding-bottom:.3rem; border-bottom:1px solid currentColor; }
.contact-page .p-contact-heading { margin-bottom:var(--space-lg); }
.contact-page .p-contact-areas__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--color-line); }
.contact-page .p-contact-areas__grid article { padding:clamp(2rem,4vw,3rem); background:var(--color-bg); }
.contact-page .p-contact-areas h3,.contact-page .p-contact-process h3 { margin-top:.8rem; font-family:var(--font-jp-serif); font-size:1.25rem; font-weight:500; }
.contact-page .p-contact-areas ul,.contact-page .p-contact-before ul { margin-top:1.5rem; border-top:1px solid var(--color-line); }
.contact-page .p-contact-areas li,.contact-page .p-contact-before li { padding:.65rem 0; border-bottom:1px solid var(--color-line); font-size:.88rem; }
.contact-page .p-contact-areas article > p:last-child,.contact-page .p-contact-before div > p:last-child { margin-top:1.5rem; font-family:var(--font-en); color:var(--color-text-soft); }
.contact-page .p-contact-before div > p { line-height:2; }
.contact-page .p-contact-process ol { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; padding:0; list-style:none; background:var(--color-line); }
.contact-page .p-contact-process li { padding:2rem; background:var(--color-bg); }
.contact-page .p-contact-process li > p:first-child { font-family:var(--font-en); color:var(--color-accent); letter-spacing:.1em; }
.contact-page .p-contact-process li > p:not(:first-child) { margin-top:1rem; font-size:.88rem; line-height:1.9; }
.contact-page .p-contact-process small { display:block; margin-top:.8rem; font-family:var(--font-en); color:var(--color-text-soft); line-height:1.6; }
.contact-page .p-contact-ja { font-family:var(--font-jp-sans); font-size:.84rem; line-height:2; }
.contact-page .p-contact-form { max-width:880px; margin:0 auto; }
.contact-page .p-contact-honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
  opacity:0;
  pointer-events:none;
}
.contact-page .p-contact-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.contact-page .p-contact-field--full { grid-column:1/-1; }
.contact-page .p-contact-field label { display:block; margin-bottom:.65rem; font-size:.84rem; line-height:1.6; }
.contact-page .p-contact-status { display:inline-block; margin-left:.5rem; color:#7b5733; font-size:.68rem; white-space:nowrap; }
.contact-page .p-contact-status--optional { color:var(--color-text-soft); }
.contact-page .p-contact-field input,.contact-page .p-contact-field select,.contact-page .p-contact-field textarea {
  width:100%; min-height:52px; border:1px solid #cfc5b7; border-radius:0; background:var(--color-surface); padding:.8rem 1rem; font:inherit; color:var(--color-text);
}
.contact-page .p-contact-field textarea { min-height:220px; resize:vertical; }
.contact-page .p-contact-field input:focus,.contact-page .p-contact-field select:focus,.contact-page .p-contact-field textarea:focus,
.contact-page .p-contact-consent input:focus-visible + label { outline:2px solid var(--color-accent); outline-offset:3px; }
.contact-page .p-contact-field small,.contact-page .p-contact-help { display:block; margin:.6rem 0; font-size:.75rem; line-height:1.7; color:var(--color-text-soft); }
.contact-page .p-contact-consent { display:flex; align-items:flex-start; gap:.8rem; margin-top:2rem; padding:1.4rem 0; border-top:1px solid var(--color-line); border-bottom:1px solid var(--color-line); }
.contact-page .p-contact-consent input { width:20px; height:20px; flex:0 0 auto; margin-top:.25rem; accent-color:var(--color-accent); }
.contact-page .p-contact-consent label { font-size:.84rem; line-height:1.8; }
.contact-page .p-contact-consent a { text-decoration:underline; text-underline-offset:.2em; }
.contact-page .p-contact-form__result { margin-top:1rem; font-size:.85rem; line-height:1.8; }
.contact-page .p-contact-form__result:empty { display:none; }
.contact-page .p-contact-form__result.is-error { color:#8a2f20; }
.contact-page .p-contact-form__submit { margin-top:2rem; text-align:center; }
.contact-page .p-contact-form__submit button { min-height:50px; }
.contact-page .p-contact-privacy { text-align:center; color:var(--color-text-soft); font-size:.82rem; }
.contact-page a:focus-visible,.contact-page button:focus-visible { outline:2px solid var(--color-accent); outline-offset:5px; }
@media(max-width:767px){
  .contact-page .p-contact-inner { width:min(100% - 40px,680px); }
  .contact-page .p-contact-intro,.contact-page .p-contact-areas,.contact-page .p-contact-before,
  .contact-page .p-contact-process,.contact-page .p-contact-international,.contact-page .p-contact-form-section,
  .contact-page .p-contact-school,.contact-page .p-contact-privacy { padding:var(--space-lg) 0; }
  .contact-page .p-contact-split,.contact-page .p-contact-areas__grid,.contact-page .p-contact-process ol,.contact-page .p-contact-form__grid { grid-template-columns:1fr; }
  .contact-page .p-contact-split { gap:2rem; }
  .contact-page .p-contact-field--full { grid-column:auto; }
  .contact-page .p-contact-form__grid { gap:1.5rem; }
  .contact-page .p-contact-areas__grid { background:transparent; border-top:1px solid var(--color-line); }
  .contact-page .p-contact-areas__grid article { padding:2rem 0; border-bottom:1px solid var(--color-line); }
  .contact-page .p-contact-form__submit button { width:100%; justify-content:center; }
}
@media(prefers-reduced-motion:reduce){.contact-page .anim{opacity:1;transform:none;transition:none;}}

/* ---------- Media / news list ---------- */
.p-media__list {
  max-width: var(--container-m);
  margin: 0 auto;
  padding: 0 40px;
}
.p-media__list__item {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: var(--space-md);
  align-items: baseline;
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--color-line);
}
.p-media__list__item time {
  font-family: var(--font-en);
  font-size: .85rem;
  letter-spacing: .05em;
  color: var(--color-text-soft);
}
.p-media__list__item .cat {
  display: inline-block;
  margin-left: 1em;
  font-size: .7rem;
  letter-spacing: .08em;
  color: var(--color-accent);
}
.p-media__list__item .title { font-size: .92rem; line-height: 1.9; }

@media (max-width: 600px) {
  .p-media__list__item { grid-template-columns: 1fr; gap: .5rem; }
}

/* ---------- FAQ style accordion (optional reuse on Contact/About) ---------- */
.p-faq__list__item { border-bottom: 1px solid var(--color-line); }
.p-faq__list__item dt {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 1.6rem 0;
  cursor: pointer;
  font-size: .95rem;
}
.p-faq__list__item dt .q {
  font-family: var(--font-en);
  color: var(--color-accent);
  font-size: 1rem;
}
.p-faq__list__item dd {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s var(--ease), padding .4s var(--ease);
  font-size: .88rem;
  color: var(--color-text-soft);
  line-height: 2;
}
.p-faq__list__item.is-open dd { max-height: 260px; padding-bottom: 1.6rem; }

/* ============================================================
   Footer CTA
   ============================================================ */
.l-footer-cta { padding: var(--space-2xl) 0; background: var(--color-bg-alt); }
.l-footer-cta__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-md);
  max-width: var(--container-m);
  margin: var(--space-lg) auto 0;
  padding: 0 40px;
}
.l-footer-cta__list__item {
  border: 1px solid var(--color-line);
  padding: var(--space-md);
  background: var(--color-surface);
  transition: box-shadow .3s var(--ease), transform .3s var(--ease);
}
.l-footer-cta__list__item:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -22px rgba(59,54,48,.25); }
.l-footer-cta__list__item h3 { font-family: var(--font-jp-serif); font-size: 1.05rem; }
.l-footer-cta__list__item .en { margin-top: .3rem; font-family: var(--font-en); font-size: .8rem; letter-spacing: .1em; color: var(--color-text-soft); }
.l-footer-cta__list__item p { margin-top: 1rem; font-size: .85rem; color: var(--color-text-soft); line-height: 1.9; }
.l-footer-cta__list__item .btn-arrow { margin-top: 1.4rem; }

@media (max-width: 700px) {
  .l-footer-cta__list { grid-template-columns: 1fr; }
}

.footer-cta-single {
  text-align: center;
  margin-top: var(--space-lg);
}

/* ============================================================
   Footer
   ============================================================ */
.l-footer { padding: var(--space-xl) 0 var(--space-md); }
.l-footer__top {
  display: flex;
  justify-content: space-between;
  gap: var(--space-lg);
  flex-wrap: wrap;
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-line);
}
.l-footer__logo { font-family: var(--font-en); font-size: 1.2rem; letter-spacing: .1em; }
.l-footer__logo .sub { margin-top: .6rem; font-family: var(--font-jp-serif); font-size: .82rem; color: var(--color-text-soft); }
.l-footer__nav { display: flex; gap: clamp(2rem, 5vw, 5rem); }
.l-footer__top--simple { border-bottom: 0; }
.l-footer__top--simple .l-footer__logo .sub,
.l-footer__top--simple .l-footer__nav__list__item a {
  color: #625A52;
}
.l-footer__nav-title {
  margin-bottom: .65rem;
  font-family: var(--font-en);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-text);
}
.l-footer__nav__list__item a { display: block; padding: .35rem 0; font-family: var(--font-en); font-size: .85rem; letter-spacing: .08em; color: var(--color-text-soft); }
.l-footer__nav__list__item a:hover { color: var(--color-text); }

.l-footer__related {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 2rem;
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--color-line);
}
.l-footer__related-title {
  flex: 0 0 auto;
  font-family: var(--font-en);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-text-soft);
}
.l-footer__related-list {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .75rem 2rem;
}
.l-footer__related-list a {
  font-family: var(--font-en);
  font-size: .8rem;
  letter-spacing: .05em;
  color: var(--color-text-soft);
}
.l-footer__related-list a:hover { color: var(--color-text); }

.l-footer__lower {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  padding-top: var(--space-md);
}
.l-footer__lower__list { display: flex; gap: 2rem; }
.l-footer__lower__list__item a { font-size: .78rem; color: var(--color-text-soft); }
.copyright { font-size: .75rem; color: var(--color-text-soft); letter-spacing: .04em; }

@media (max-width: 700px) {
  .l-footer__top { flex-direction: column; }
  .l-footer__nav { flex-wrap: wrap; gap: 2.5rem; }
  .l-footer__related { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .l-footer__related-list { justify-content: flex-start; gap: .75rem 1.25rem; }
}

/* ---------- Form ---------- */
.p-form { max-width: var(--container-s); margin: 0 auto; padding: 0 40px; }
.p-form__row { margin-bottom: var(--space-md); }
.p-form__row label {
  display: block;
  font-size: .82rem;
  letter-spacing: .06em;
  color: var(--color-text-soft);
  margin-bottom: .6rem;
}
.p-form__row .req { color: var(--color-accent); margin-left: .4em; font-size: .72rem; }
.p-form__row input,
.p-form__row textarea {
  width: 100%;
  border: none;
  border-bottom: 1px solid var(--color-line);
  background: transparent;
  padding: .8rem .2rem;
  font-family: var(--font-jp-sans);
  font-size: .95rem;
  color: var(--color-text);
  transition: border-color .3s var(--ease);
}
.p-form__row input:focus,
.p-form__row textarea:focus {
  outline: none;
  border-color: var(--color-accent);
}
.p-form__row textarea { resize: vertical; min-height: 140px; }
.p-form__submit { text-align: center; margin-top: var(--space-lg); }

/* Page header (inner pages) */
.p-page-head {
  padding: calc(var(--header-h) + var(--space-xl)) 0 var(--space-lg);
  text-align: center;
}
.p-page-head__en {
  font-family: var(--font-en);
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  letter-spacing: .05em;
}
.p-page-head__jp {
  margin-top: var(--space-2xs);
  font-family: var(--font-jp-serif);
  font-size: .9rem;
  color: var(--color-text-soft);
  letter-spacing: .04em;
}
main { padding-top: var(--header-h); }
.p-hero { margin-top: calc(var(--header-h) * -1); }

/* ============================================================
   Inner page hero / editable content
   ============================================================ */
.p-sub-hero {
  position: relative;
  height: 100vh;
  min-height: 640px;
  margin-top: calc(var(--header-h) * -1);
  overflow: hidden;
}
.p-sub-hero__image,
.p-sub-hero__image picture {
  display: block;
  width: 100%;
  height: 100%;
}
.p-sub-hero__image::after {
  content: none;
}
.p-sub-hero__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.p-sub-hero__title {
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  bottom: var(--space-md);
  width: 100%;
  max-width: var(--container-xl);
  margin: 0 auto;
  padding: 0 40px;
  color: #fff;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .34);
}
.p-sub-hero__title-en {
  font-family: var(--font-en);
  font-size: clamp(2.75rem, 6vw, 5.25rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: .04em;
}
.p-sub-hero__title-jp {
  margin-top: 1rem;
  font-family: var(--font-jp-serif);
  font-size: .9rem;
  letter-spacing: .08em;
}
.p-sub-hero__lead {
  margin-top: 1.2rem;
  font-family: var(--font-jp-serif);
  font-size: clamp(1rem, 1.8vw, 1.25rem);
  line-height: 1.9;
  letter-spacing: .08em;
}
.p-sub-content {
  max-width: var(--container-m);
  margin: 0 auto;
  padding: var(--space-xl) 32px var(--space-2xl);
}
.p-sub-content__lead {
  font-family: var(--font-jp-serif);
  font-size: clamp(1.15rem, 2.2vw, 1.5rem);
  line-height: 2;
  letter-spacing: .04em;
}
.p-sub-content__text {
  margin-top: var(--space-sm);
  color: var(--color-text-soft);
  line-height: 2.2;
}

@media (max-width: 767px) {
  .p-sub-hero {
    min-height: 560px;
  }
  .p-sub-hero__title {
    padding: 0 24px;
  }
  .p-sub-content {
    padding: var(--space-lg) 24px var(--space-xl);
  }
}

/* ---------- About story ---------- */
.p-about-story {
  background: var(--color-bg);
}
.about-page .p-about-story .anim {
  opacity: 1;
  transform: none;
}
.p-about-story__inner {
  width: min(100% - 64px, 1080px);
  margin: 0 auto;
}
.p-about-story__inner--narrow {
  max-width: 820px;
}
.p-about-section,
.p-about-philosophy,
.p-about-profile,
.p-about-related {
  padding: var(--space-2xl) 0;
}
.p-about-section--intro {
  padding-top: calc(var(--space-2xl) + var(--space-sm));
  text-align: center;
}
.p-about-section--split,
.p-about-vision,
.p-about-quote {
  background: var(--color-bg-soft);
}
.p-about-story__eyebrow {
  font-family: var(--font-en);
  font-size: .9rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--color-accent);
}
.p-about-story h2 {
  margin-top: 1rem;
  font-family: var(--font-jp-serif);
  font-weight: 500;
  font-size: clamp(1.7rem, 3vw, 2.55rem);
  line-height: 1.75;
  letter-spacing: .06em;
}
.p-about-section__body {
  margin-top: 2rem;
  font-size: .96rem;
  line-height: 2.35;
  letter-spacing: .035em;
  color: var(--color-text);
}
.p-about-section__body p + p {
  margin-top: 1.25rem;
}
.p-about-split {
  display: grid;
  grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr);
  gap: clamp(3rem, 6vw, 6rem);
  align-items: start;
}
.p-about-split .p-about-section__body {
  margin-top: .35rem;
}
.p-about-section__heading {
  position: sticky;
  top: calc(var(--header-h) + 2rem);
}
.p-about-section__heading--center {
  position: static;
  max-width: 760px;
  margin: 0 auto;
  text-align: center;
}
.p-about-title-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: var(--space-lg);
  background: var(--color-line);
  text-align: left;
}
.p-about-title-list li {
  padding: 1.6rem;
  background: var(--color-bg);
}
.p-about-title-list span,
.p-about-profile dt,
.p-about-profile__history h3 {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  letter-spacing: .06em;
}
.p-about-title-list small {
  display: block;
  margin-top: .6rem;
  font-family: var(--font-en);
  font-size: .78rem;
  letter-spacing: .08em;
  color: var(--color-text-soft);
}
.p-about-quote {
  padding: var(--space-2xl) 0;
  text-align: center;
}
.p-about-quote blockquote {
  margin: var(--space-md) auto;
  padding: clamp(2.5rem, 5vw, 4rem) 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}
.p-about-quote blockquote p {
  font-family: var(--font-jp-serif);
  font-size: clamp(1.9rem, 4vw, 3.15rem);
  line-height: 1.75;
  letter-spacing: .08em;
  color: var(--color-text);
}
.p-about-keyphrase {
  margin: 2rem 0;
  padding: 2rem 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  font-family: var(--font-jp-serif);
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  line-height: 1.9;
  letter-spacing: .08em;
  color: var(--color-accent);
}
.p-about-text-link {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  margin-top: 2rem;
  font-family: var(--font-jp-serif);
  font-size: .96rem;
  letter-spacing: .06em;
  color: var(--color-text);
}
.p-about-text-link:hover {
  opacity: .6;
}
.p-about-text-link--button {
  margin-top: 2rem;
}
.p-about-philosophy__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: var(--space-lg);
  background: var(--color-line);
}
.p-about-philosophy__grid section {
  min-height: 340px;
  padding: clamp(2rem, 3.4vw, 3rem);
  background: var(--color-bg);
}
.p-about-philosophy__en,
.p-about-related span {
  font-family: var(--font-en);
  font-size: .9rem;
  letter-spacing: .16em;
  color: var(--color-accent);
}
.p-about-philosophy h3 {
  margin-top: 1.2rem;
  font-family: var(--font-jp-serif);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: .08em;
}
.p-about-philosophy p:not(.p-about-philosophy__en),
.p-about-related p {
  margin-top: 1.3rem;
  font-size: .92rem;
  line-height: 2;
  color: var(--color-text-soft);
}
.p-about-vision {
  padding: var(--space-2xl) 0;
}
.p-about-vision__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 5vw, 5rem);
  padding-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-line);
}
.p-about-vision__mission {
  margin-top: 1rem;
  font-family: var(--font-jp-serif);
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  line-height: 2;
  letter-spacing: .06em;
}
.p-about-vision__text {
  max-width: 760px;
}
.p-about-profile__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: clamp(2rem, 5vw, 5rem);
  margin-top: var(--space-lg);
}
.p-about-profile dl {
  border-top: 1px solid var(--color-line);
}
.p-about-profile dl div,
.p-about-profile__history li {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: 1.5rem;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--color-line);
}
.p-about-profile dt,
.p-about-profile__history time {
  color: var(--color-text-soft);
}
.p-about-profile dd,
.p-about-profile__history span {
  line-height: 1.9;
}
.p-about-profile dd span {
  color: var(--color-text-soft);
}
.p-about-profile__history ul {
  margin-top: 1.2rem;
  border-top: 1px solid var(--color-line);
}
.p-about-related {
  padding-top: var(--space-xl);
}
.p-about-related__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: var(--space-lg);
  background: var(--color-line);
}
.p-about-related a {
  display: block;
  min-height: 260px;
  padding: clamp(2rem, 3.6vw, 3rem);
  background: var(--color-bg);
}
.p-about-related strong {
  display: block;
  margin-top: 1.4rem;
  font-family: var(--font-jp-serif);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: .08em;
}
.p-about-related strong::after {
  content: ' →';
  color: var(--color-accent);
}
.p-about-related a:hover {
  opacity: .68;
}

@media (max-width: 767px) {
  .p-sub-hero__lead {
    font-size: .95rem;
  }
  .p-about-section,
  .p-about-philosophy,
  .p-about-profile,
  .p-about-related,
  .p-about-quote,
  .p-about-vision {
    padding: var(--space-xl) 0;
  }
  .p-about-story__inner {
    width: min(100% - 40px, 680px);
  }
  .p-about-section--intro,
  .p-about-section__heading--center,
  .p-about-quote {
    text-align: left;
  }
  .p-about-split,
  .p-about-title-list,
  .p-about-philosophy__grid,
  .p-about-vision__grid,
  .p-about-profile__grid,
  .p-about-related__grid {
    grid-template-columns: 1fr;
  }
  .p-about-section__heading {
    position: static;
  }
  .p-about-title-list,
  .p-about-philosophy__grid,
  .p-about-related__grid {
    gap: 0;
    background: transparent;
    border-top: 1px solid var(--color-line);
  }
  .p-about-title-list li,
  .p-about-philosophy__grid section,
  .p-about-related a {
    min-height: 0;
    padding: 1.8rem 0;
    border-bottom: 1px solid var(--color-line);
  }
  .p-about-profile dl div,
  .p-about-profile__history li {
    grid-template-columns: 1fr;
    gap: .5rem;
  }
  .p-about-quote blockquote {
    padding: 2rem 0;
  }
}

/* ---------- Achievements page ---------- */
.p-achievements {
  padding: var(--space-xl) 0 var(--space-2xl);
}
.p-achievements__heading {
  max-width: var(--container-m);
  margin: 0 auto var(--space-lg);
  padding: 0 40px;
}
.p-achievements__title {
  font-family: var(--font-en);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 500;
  line-height: 1;
}
.p-achievements__subtitle,
.p-achievements__section-title {
  font-family: var(--font-jp-serif);
  font-weight: 500;
  letter-spacing: .06em;
}
.p-achievements__subtitle {
  margin-top: var(--space-sm);
  font-size: clamp(1.3rem, 2.5vw, 1.7rem);
}
.p-achievements__lead {
  margin-top: var(--space-sm);
  font-family: var(--font-jp-serif);
  font-size: .95rem;
  line-height: 2.3;
  letter-spacing: .04em;
}
.p-achievements__qualification {
  margin-top: var(--space-xl);
}
.p-achievements__section-title {
  max-width: var(--container-m);
  margin: 0 auto var(--space-sm);
  padding: 0 40px;
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
}

@media (max-width: 600px) {
  .p-achievements {
    padding: var(--space-lg) 0 var(--space-xl);
  }
  .p-achievements__heading,
  .p-achievements__section-title,
  .p-media__list {
    padding-right: 24px;
    padding-left: 24px;
  }
  .p-achievements__lead br {
    display: none;
  }
  .p-achievements__qualification {
    margin-top: var(--space-lg);
  }
}
