/* v0.2.283 — exact-order consolidation of v282 global CSS.
 * Original source files remain in the theme; only network delivery is consolidated.
 */

/* ===== SOURCE: main.css ===== */
:root {
  --color-ink: #1e1d1b;
  --color-soft-ink: #5e5a54;
  --color-bg: #f8f5ef;
  --color-paper: #fffdf8;
  --color-deep: #151311;
  --color-line: rgba(30, 29, 27, 0.12);
  --color-accent: #9b8369;
  --header-height: 76px;
  --container: 1180px;
  --font-serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Times New Roman", serif;
  --font-sans: "Zen Kaku Gothic New", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-latin-display: "Instrument Serif", "Times New Roman", serif;
  --font-latin-sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
}

/* v0.2.189 — keep service names together at every responsive width. */
.business-scope-quick strong,
.business-service__content h3 {
  line-break: strict;
  word-break: normal;
  overflow-wrap: normal;
}
@supports (word-break: auto-phrase) {
  .business-scope-quick strong,
  .business-service__content h3 { word-break: auto-phrase; }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--color-ink);
  background: var(--color-paper);
  font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Times New Roman", serif;
  letter-spacing: 0.04em;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 50;
  width: 100%;
  min-height: var(--header-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 34px;
  mix-blend-mode: difference;
  color: #fff;
}
.site-brand {
  font-size: 15px;
  letter-spacing: 0.18em;
  font-family: "Times New Roman", serif;
  white-space: nowrap;
}
.site-nav ul { display: flex; gap: 24px; list-style: none; margin: 0; padding: 0; }
.site-nav a { font-size: 12px; letter-spacing: 0.16em; }
.site-menu-button { display: none; }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(420px, 0.82fr) minmax(0, 1.18fr);
  align-items: stretch;
  overflow: hidden;
  background:
    linear-gradient(90deg, #fffdf8 0%, #fffdf8 40%, #f2ece2 100%);
}
.hero::before {
  content: "THE REASON";
  position: absolute;
  left: 6.4vw;
  top: 11svh;
  z-index: 0;
  color: rgba(30, 29, 27, 0.055);
  font-family: "Times New Roman", serif;
  font-size: clamp(68px, 12vw, 180px);
  line-height: 0.9;
  letter-spacing: .04em;
  pointer-events: none;
  white-space: nowrap;
}
.hero__media {
  order: 2;
  min-height: 100svh;
  padding: 8vw 5vw 5.6vw 0;
  position: relative;
  z-index: 1;
}
.hero__image-wrap {
  width: 100%;
  height: 100%;
  min-height: 560px;
  margin: 0;
  overflow: hidden;
  background: #e9e1d5;
}
.hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: scale(1.035);
  filter: saturate(.92) contrast(1.02);
}
.hero__content {
  order: 1;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 14vw 5vw 10vw 8vw;
  position: relative;
  z-index: 2;
}
.hero__label { margin-bottom: 28px; }
.hero__title {
  margin: 0;
  font-size: clamp(44px, 6.2vw, 94px);
  line-height: 1.23;
  font-weight: 400;
  letter-spacing: .055em;
}
.hero__title span { display: block; }
.hero__nowrap { white-space: nowrap; }
.hero__lead {
  max-width: 440px;
  margin: 36px 0 0;
  color: var(--color-soft-ink);
  font-size: 13px;
  line-height: 1.9;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hero__meta {
  position: absolute;
  right: 34px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  display: grid;
  gap: 22px;
  writing-mode: vertical-rl;
  color: rgba(255,255,255,.86);
  mix-blend-mode: difference;
  font-size: 10px;
  letter-spacing: .2em;
}
.hero__scroll {
  position: absolute;
  left: 34px;
  bottom: 32px;
  margin: 0;
  font-size: 11px;
  letter-spacing: .18em;
  writing-mode: vertical-rl;
}

.section { padding: 128px 32px; }
.section__inner { width: min(100%, var(--container)); margin: 0 auto; }
.section__inner--narrow { width: min(100%, 900px); }
.section-label {
  color: var(--color-accent);
  font-size: 12px;
  letter-spacing: .18em;
  text-transform: uppercase;
  margin: 0 0 24px;
}
.section-title, .page-title {
  font-size: clamp(34px, 4.5vw, 72px);
  line-height: 1.34;
  font-weight: 400;
  margin: 0 0 34px;
}
.section-text, .content-body p {
  font-size: 17px;
  line-height: 2.15;
  color: var(--color-soft-ink);
  margin: 0 0 24px;
}

.visual-rhythm {
  background: #0f0e0c;
  color: #fff;
  padding: 0;
  overflow: hidden;
}
.visual-rhythm__track {
  width: min(100%, 1440px);
  min-height: 82svh;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.25fr .62fr .88fr;
  gap: 24px;
  align-items: center;
  padding: 8vw 32px;
}
.visual-rhythm figure { margin: 0; overflow: hidden; background: #211f1d; }
.visual-rhythm img { width: 100%; height: 100%; object-fit: cover; opacity: .92; }
.visual-rhythm__item--large { height: 62svh; min-height: 430px; }
.visual-rhythm__item--small { height: 42svh; min-height: 320px; align-self: end; }
.visual-rhythm__copy { align-self: center; }
.visual-rhythm__copy .section-label { color: #c3ae95; }
.visual-rhythm__copy p:not(.section-label) { font-size: clamp(18px, 2vw, 30px); line-height: 1.9; margin: 0; }

.statement { background: var(--color-paper); }
.role { background: var(--color-deep); color: #fff; }
.role .section-label { color: #c3ae95; }
.role-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: rgba(255,255,255,.18);
  margin-top: 58px;
}
.role-card { background: var(--color-deep); padding: 54px 46px; min-height: 320px; }
.role-card__name { font-size: 13px; color: #c3ae95; letter-spacing: .2em; }
.role-card h3 { font-size: 26px; font-weight: 400; margin: 0 0 24px; }
.role-card p { line-height: 2.05; color: rgba(255,255,255,.82); }

.entrances { display: grid; grid-template-columns: repeat(2, 1fr); padding: 0; }
.entrance-card {
  min-height: 92svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
}
.entrance-card__image { position: absolute; inset: 0; z-index: -2; margin: 0; background: #1a1715; }
.entrance-card__image img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.035); transition: transform 1.4s ease; filter: saturate(.9) brightness(.72); }
.entrance-card:hover .entrance-card__image img { transform: scale(1.085); }
.entrance-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(15,14,12,.82), rgba(15,14,12,.12) 58%, rgba(15,14,12,.36)); }
.entrance-card__body { padding: 9vw 7vw; }
.entrance-card h2 { font-size: clamp(32px, 4vw, 64px); line-height: 1.38; font-weight: 400; margin: 0 0 28px; }
.entrance-card p:not(.section-label) { line-height: 2; color: rgba(255,255,255,.82); max-width: 560px; }
.entrance-card--business { border-left: 1px solid rgba(255,255,255,.18); }
.text-link { display: inline-block; margin-top: 32px; border-bottom: 1px solid currentColor; padding-bottom: 7px; font-size: 13px; letter-spacing: .14em; }

.works-preview { background: var(--color-paper); }
.work-showcase { margin-top: 72px; border-top: 1px solid var(--color-line); }
.work-category {
  display: grid;
  grid-template-columns: 260px 1fr;
  align-items: center;
  gap: 48px;
  padding: 32px 0;
  border-bottom: 1px solid var(--color-line);
}
.work-category figure { aspect-ratio: 16/10; margin: 0; overflow: hidden; background: #e9e2d7; }
.work-category img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s ease; }
.work-category:hover img { transform: scale(1.08); }
.work-category span { display: block; font-size: clamp(32px, 5vw, 78px); line-height: 1.02; }
.work-category small { display: block; color: var(--color-soft-ink); font-size: 14px; margin-top: 14px; }

.journal-preview { background: #f2ede4; }
.journal-preview__inner { display: grid; grid-template-columns: 1fr .85fr; gap: 72px; align-items: center; }
.journal-preview__keywords { display: grid; gap: 1px; background: var(--color-line); border: 1px solid var(--color-line); }
.journal-preview__keywords span { background: #fffdf8; padding: 32px; font-size: clamp(24px, 3.5vw, 48px); letter-spacing: .08em; }

.about-preview { background: var(--color-paper); }
.about-preview__inner { display: grid; grid-template-columns: .85fr 1fr; gap: 76px; align-items: center; }
.about-preview__image { margin: 0; overflow: hidden; aspect-ratio: 4/5; background: #e9e2d7; }
.about-preview__image img { width: 100%; height: 100%; object-fit: cover; }

.cta { background: var(--color-deep); color: #fff; text-align: center; }
.cta .section-label { color: #c3ae95; }
.cta .section-text { color: rgba(255,255,255,.78); }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  min-height: 54px;
  padding: 14px 34px;
  border: 1px solid currentColor;
  font-size: 13px;
  letter-spacing: .16em;
  margin-top: 24px;
  transition: background .35s ease, color .35s ease;
}
.button:hover { background: var(--color-ink); color: #fff; }
.button--light { color: #fff; }
.button--light:hover { background: #fff; color: var(--color-deep); }

.page-hero { padding: 190px 32px 96px; background: var(--color-bg); }
.page-content { padding-top: 84px; }
.content-body h2 { font-size: 34px; line-height: 1.45; font-weight: 400; margin: 64px 0 24px; }
.content-body h3 { font-size: 25px; line-height: 1.55; font-weight: 400; margin: 48px 0 18px; }
.content-body ul { line-height: 2; color: var(--color-soft-ink); }

.works-grid, .journal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.work-card a, .journal-card a { display: block; }
.work-card figure, .journal-card figure { aspect-ratio: 4/5; margin: 0 0 22px; background: #e9e2d7; overflow: hidden; }
.work-card figure img, .journal-card figure img { width: 100%; height: 100%; object-fit: cover; }
.work-card h2, .journal-card h2 { font-size: 24px; line-height: 1.45; font-weight: 400; margin: 0 0 12px; }
.work-card p, .journal-card p { color: var(--color-soft-ink); line-height: 1.8; }
.journal-card__meta, .article-meta { color: var(--color-accent) !important; font-size: 12px !important; letter-spacing: .12em; line-height: 1.7 !important; margin: 0 0 14px !important; }
.journal-empty { max-width: 740px; padding: 56px; border: 1px solid var(--color-line); background: #fffdf8; }
.journal-empty h2 { font-size: clamp(28px, 4vw, 52px); font-weight: 400; margin: 0 0 22px; }
.pagination-wrap { margin-top: 56px; }
.article-image, .work-single-image { width: min(100% - 64px, 1180px); margin: 0 auto; }
.article-image img, .work-single-image img { width: 100%; max-height: 760px; object-fit: cover; }
.article-body { font-size: 17px; }
.article-cta { margin-top: 72px; padding-top: 42px; border-top: 1px solid var(--color-line); text-align: center; }
.article-cta p { color: var(--color-soft-ink); line-height: 1.9; }

.site-footer { padding: 76px 32px; background: #0f0e0c; color: #fff; }
.site-footer__inner { width: min(100%, var(--container)); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr auto; gap: 32px; align-items: end; }
.site-footer p { margin: 0; }
.site-footer__brand { font-size: 15px; letter-spacing: .2em; }
.site-footer__copy, .site-footer__copyright { color: rgba(255,255,255,.68); font-size: 12px; line-height: 1.8; }
.site-footer__nav { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; }
.site-footer__nav a { color: rgba(255,255,255,.78); font-family: var(--font-latin-ui); font-size: 10px; letter-spacing: .12em; text-decoration: none; white-space: nowrap; }
.site-footer__nav a:hover { color: #fff; }

.js-reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s ease, transform 1s ease; }
.js-reveal.is-visible { opacity: 1; transform: translateY(0); }
.hero.is-ready .hero__title .js-reveal:nth-child(1) { transition-delay: .2s; }
.hero.is-ready .hero__title .js-reveal:nth-child(2) { transition-delay: .45s; }
.hero.is-ready .hero__title .js-reveal:nth-child(3) { transition-delay: .7s; }
.hero.is-ready .hero__lead { transition-delay: .95s; }
.js-image-drift img { transition: transform 1.2s ease; }

@media (max-width: 900px) {
  :root { --header-height: 66px; }
  .site-header { padding: 20px; mix-blend-mode: normal; color: var(--color-ink); background: rgba(255,253,248,.9); backdrop-filter: blur(14px); }
  .site-brand { font-size: 13px; }
  .site-menu-button { display: inline-flex; width: 42px; height: 34px; flex-direction: column; justify-content: center; gap: 7px; border: 0; background: transparent; padding: 0; color: inherit; }
  .site-menu-button span:not(.screen-reader-text) { display: block; height: 1px; background: currentColor; }
  .site-nav { position: fixed; inset: var(--header-height) 0 auto 0; background: var(--color-paper); padding: 26px 20px 34px; transform: translateY(-120%); transition: transform .35s ease; border-bottom: 1px solid var(--color-line); }
  .site-nav.is-open { transform: translateY(0); }
  .site-nav ul { display: grid; gap: 18px; }
  .hero { grid-template-columns: 1fr; min-height: auto; background: var(--color-paper); }
  .hero::before { top: 78px; left: 18px; font-size: 64px; }
  .hero__media { order: 1; min-height: auto; height: 56svh; padding: 88px 20px 0; }
  .hero__image-wrap { min-height: 0; height: 100%; }
  .hero__image { object-position: center 38%; transform: scale(1.01); }
  .hero__content { order: 2; min-height: auto; padding: 56px 20px 90px; }
  .hero__title { font-size: clamp(41px, 11vw, 60px); line-height: 1.28; }
  .hero__nowrap { white-space: normal; }
  .hero__lead { margin-top: 28px; font-size: 11px; }
  .hero__meta, .hero__scroll { display: none; }
  .section { padding: 92px 20px; }
  .section-title, .page-title { font-size: clamp(32px, 9vw, 52px); }
  .section-text, .content-body p { font-size: 16px; line-height: 2; }
  .visual-rhythm__track { min-height: auto; grid-template-columns: 1fr; gap: 18px; padding: 90px 20px; }
  .visual-rhythm__item--large, .visual-rhythm__item--small { height: auto; min-height: 0; aspect-ratio: 4/5; }
  .role-grid, .entrances, .works-grid, .journal-grid, .journal-preview__inner, .about-preview__inner { grid-template-columns: 1fr; }
  .role-card { padding: 42px 28px; }
  .entrance-card { min-height: 76svh; }
  .entrance-card--business { border-left: 0; }
  .entrance-card__body { padding: 76px 28px; }
  .work-category { grid-template-columns: 1fr; gap: 22px; padding: 32px 0; }
  .work-category figure { aspect-ratio: 4/3; }
  .work-category span { font-size: clamp(36px, 11vw, 58px); }
  .journal-preview__inner, .about-preview__inner { gap: 44px; }
  .journal-preview__keywords span { padding: 24px; font-size: 30px; }
  .page-hero { padding: 142px 20px 76px; }
  .article-image, .work-single-image { width: calc(100% - 40px); }
  .journal-empty { padding: 36px 28px; }
  .site-footer__inner { grid-template-columns: 1fr; }
  .site-footer__nav { order: 2; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js-reveal { opacity: 1; transform: none; }
}


/* v0.2.1 visual tuning after PC / mobile screen recording review */
@media (min-width: 901px) {
  .hero {
    grid-template-columns: minmax(520px, 1fr) minmax(0, 1fr);
  }

  .hero__content {
    padding: 13vw 3.8vw 10vw 6.4vw;
  }

  .hero__title {
    max-width: 780px;
    font-size: clamp(44px, 5.1vw, 82px);
    line-height: 1.28;
    letter-spacing: .04em;
  }

  .hero__lead {
    max-width: 520px;
  }
}

@media (max-width: 900px) {
  .hero__media {
    height: 50svh;
    padding: 84px 20px 0;
  }

  .hero__content {
    padding: 44px 20px 84px;
  }

  .hero__title {
    font-size: clamp(38px, 10.2vw, 54px);
    line-height: 1.3;
  }

  .hero__image {
    object-position: center 38%;
  }

  .statement .section-title {
    font-size: clamp(28px, 7.7vw, 44px);
    line-height: 1.45;
    word-break: keep-all;
  }
}


/* v0.2.14 - V2 base / image crop correction requested by KAZUYA */
/* TOP: use supplied TOP image. Keep the composition calm and avoid accidental human cropping. */
.hero__image {
  object-position: center center;
}

@media (max-width: 900px) {
  .hero__image {
    object-position: center 38%;
  }
}

/* VISUAL DIRECTION: left photo keeps the right elbow in frame; right photo keeps lower breathing room. */
.visual-rhythm__item--large img {
  object-position: 42% center;
}
.visual-rhythm__item--small img {
  object-position: center bottom;
}

/* BRANDING WORKS thumbnails: show these three images without trimming the original angle of view. */
.work-category figure {
  aspect-ratio: auto;
  min-height: 0;
  background: transparent;
}
.work-category figure img {
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center center;
}

/* ABOUT: keep the person visible without forced cropping. */
.about-preview__image {
  background: transparent;
}
.about-preview__image img {
  object-fit: contain;
  object-position: center center;
}

@media (min-width: 901px) {
  .work-category {
    grid-template-columns: 260px 1fr;
  }
  .work-category figure {
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

@media (max-width: 900px) {
  .visual-rhythm__item--large img {
    object-position: 40% center;
  }
  .visual-rhythm__item--small img {
    object-position: center bottom;
  }
  .work-category figure {
    aspect-ratio: auto;
  }
  .work-category figure img {
    height: auto;
  }
  .about-preview__image {
    aspect-ratio: auto;
  }
}

/* v0.2.15 - Visual Direction crop correction: show full original frames */
.visual-rhythm figure {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #0f0e0c;
}

.visual-rhythm__item--large img,
.visual-rhythm__item--small img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

/* Left image: keep the person, including the right elbow, inside the frame. */
.visual-rhythm__item--large {
  padding: 0;
}

/* Right shoe/detail image: use the original angle of view without trimming. */
.visual-rhythm__item--small {
  padding: 0;
}

@media (min-width: 901px) {
  .visual-rhythm__item--large {
    height: 62svh;
    min-height: 430px;
  }
  .visual-rhythm__item--small {
    height: 42svh;
    min-height: 320px;
  }
}

@media (max-width: 900px) {
  .visual-rhythm figure {
    background: #0f0e0c;
  }
  .visual-rhythm__item--large,
  .visual-rhythm__item--small {
    min-height: 0;
    height: auto;
    aspect-ratio: auto;
  }
  .visual-rhythm__item--large img,
  .visual-rhythm__item--small img {
    width: 100% !important;
    max-height: none !important;
  }
}


/* v0.2.16 - force full original framing for VISUAL DIRECTION images */
@media (min-width: 901px) {
  .visual-rhythm__track {
    grid-template-columns: minmax(0, 1.18fr) minmax(220px, 0.60fr) minmax(0, 0.90fr);
    align-items: center;
  }
  .visual-rhythm__item--large,
  .visual-rhythm__item--small {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: visible !important;
    background: transparent !important;
    display: block !important;
  }
  .visual-rhythm__item--large img,
  .visual-rhythm__item--small img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: none !important;
    object-fit: contain !important;
    transform: none !important;
    opacity: .92;
  }
  .visual-rhythm__item--large img {
    object-position: left center !important;
  }
  .visual-rhythm__item--small img {
    object-position: center center !important;
  }
}

@media (max-width: 900px) {
  .visual-rhythm__item--large,
  .visual-rhythm__item--small {
    aspect-ratio: auto !important;
    overflow: visible !important;
    background: transparent !important;
  }
  .visual-rhythm__item--large img,
  .visual-rhythm__item--small img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center center !important;
    transform: none !important;
  }
}

/* v0.2.18 PERSONAL page */
.personal-hero {
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(440px, .92fr);
  position: relative;
  overflow: hidden;
  background: var(--color-paper);
}
.personal-hero__media { margin: 0; min-height: 100svh; overflow: hidden; background: #e8e0d5; }
.personal-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; transform: scale(1.025); }
.personal-hero__content { display: flex; flex-direction: column; justify-content: center; padding: 150px 6vw 100px; }
.personal-hero__title { margin: 0; font-size: clamp(44px, 5vw, 80px); line-height: 1.34; font-weight: 400; letter-spacing: .055em; }
.personal-hero__lead { max-width: 580px; margin: 38px 0 0; color: var(--color-soft-ink); font-size: 16px; line-height: 2.1; }
.personal-hero__side { position: absolute; right: 26px; bottom: 34px; margin: 0; writing-mode: vertical-rl; font-size: 10px; letter-spacing: .2em; color: var(--color-soft-ink); }
.personal-intro { background: var(--color-paper); }
.personal-intro__inner { display: grid; grid-template-columns: 1fr .9fr; gap: 10vw; align-items: start; }
.personal-intro__text { padding-top: 54px; }
.personal-intro__text p { color: var(--color-soft-ink); font-size: 17px; line-height: 2.15; margin: 0 0 26px; }
.personal-philosophy { display: grid; grid-template-columns: .92fr 1.08fr; min-height: 86svh; background: var(--color-deep); color: #fff; }
.personal-philosophy__image { margin: 0; min-height: 86svh; overflow: hidden; background: #211e1a; }
.personal-philosophy__image img { width: 100%; height: 100%; object-fit: cover; object-position: center center; opacity: .9; }
.personal-philosophy__copy { display: flex; flex-direction: column; justify-content: center; padding: 9vw 8vw; }
.personal-philosophy__copy .section-label { color: #c3ae95; }
.personal-philosophy__body { max-width: 640px; }
.personal-philosophy__body p { margin: 0 0 24px; color: rgba(255,255,255,.8); font-size: 17px; line-height: 2.1; }
.personal-services { background: #f5f0e8; }
.personal-services__head { display: grid; grid-template-columns: 1fr .7fr; gap: 9vw; align-items: end; }
.personal-service-list { margin-top: 82px; border-top: 1px solid var(--color-line); }
.personal-service { display: grid; grid-template-columns: 70px minmax(240px, .72fr) 1fr; gap: 42px; padding: 48px 0; border-bottom: 1px solid var(--color-line); align-items: start; }
.personal-service__number { font-family: "Times New Roman", serif; font-size: 12px; letter-spacing: .14em; color: var(--color-accent); padding-top: 7px; }
.personal-service__title p { margin: 0 0 10px; color: var(--color-accent); font-size: 12px; letter-spacing: .16em; }
.personal-service__title h3 { margin: 0; font-size: clamp(25px, 2.4vw, 38px); line-height: 1.45; font-weight: 400; }
.personal-service__text { margin: 0; color: var(--color-soft-ink); font-size: 16px; line-height: 2.05; }
.personal-labo { background: var(--color-paper); }
.personal-labo__intro { display: grid; grid-template-columns: 1fr 1fr; min-height: 90svh; }
.personal-labo__image { margin: 0; min-height: 90svh; overflow: hidden; background: #e8e0d5; }
.personal-labo__image img { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.personal-labo__copy { display: flex; flex-direction: column; justify-content: center; padding: 9vw 7vw; }
.personal-labo__body p { color: var(--color-soft-ink); font-size: 16px; line-height: 2.1; margin: 0 0 22px; }
.personal-program { padding: 112px 32px 128px; background: #efe8de; }
.personal-program__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 46px; background: rgba(30,29,27,.14); border: 1px solid rgba(30,29,27,.14); }
.personal-program__item { min-height: 390px; padding: 40px 30px; background: #f8f5ef; }
.personal-program__item > span { display: block; color: var(--color-accent); font-size: 12px; letter-spacing: .16em; margin-bottom: 48px; }
.personal-program__item > p { margin: 0 0 16px; font-size: 11px; letter-spacing: .14em; color: var(--color-accent); }
.personal-program__item h3 { margin: 0 0 28px; font-size: 24px; line-height: 1.55; font-weight: 400; }
.personal-program__item div { color: var(--color-soft-ink); font-size: 15px; line-height: 1.95; }
.personal-gain { background: var(--color-paper); }
.personal-gain__inner { display: grid; grid-template-columns: 1fr .85fr; gap: 10vw; }
.personal-gain__list { border-top: 1px solid var(--color-line); }
.personal-gain__list p { margin: 0; padding: 24px 0; border-bottom: 1px solid var(--color-line); font-size: 17px; line-height: 1.8; }
.personal-voice { background: #f1ebe2; }
.personal-voice__quotes { margin: 72px 0 54px; }
.personal-voice__quotes p { margin: 0; padding: 32px 0; border-bottom: 1px solid var(--color-line); font-size: clamp(24px, 3.5vw, 50px); line-height: 1.5; font-weight: 400; }
.personal-voice__quotes p:first-child { border-top: 1px solid var(--color-line); }
.personal-voice__note { max-width: 720px; color: var(--color-soft-ink); font-size: 16px; line-height: 2; }
.personal-message { min-height: 82svh; display: flex; align-items: center; position: relative; overflow: hidden; color: #fff; }
.personal-message__image, .personal-message__overlay { position: absolute; inset: 0; margin: 0; }
.personal-message__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.personal-message__overlay { background: linear-gradient(90deg, rgba(15,14,12,.82), rgba(15,14,12,.38) 58%, rgba(15,14,12,.2)); }
.personal-message__content { position: relative; z-index: 2; width: min(100% - 64px, var(--container)); margin: 0 auto; }
.personal-message__content .section-label { color: #d0bba2; }
.personal-message__content .section-title { max-width: 800px; }
.personal-message__content > p:last-child { max-width: 650px; color: rgba(255,255,255,.84); font-size: 17px; line-height: 2.1; }
.personal-cta { background: var(--color-deep); color: #fff; text-align: center; }
.personal-cta .section-label { color: #c3ae95; }
.personal-cta .section-text { color: rgba(255,255,255,.78); }

@media (max-width: 900px) {
  .personal-hero { grid-template-columns: 1fr; min-height: auto; }
  .personal-hero__media { min-height: 0; height: 58svh; padding-top: 74px; }
  .personal-hero__media img { object-position: center 30%; transform: none; }
  .personal-hero__content { padding: 58px 20px 92px; }
  .personal-hero__title { font-size: clamp(39px, 10.5vw, 56px); }
  .personal-hero__lead { font-size: 15px; line-height: 2; }
  .personal-hero__side { display: none; }
  .personal-intro__inner, .personal-services__head, .personal-gain__inner { grid-template-columns: 1fr; gap: 34px; }
  .personal-intro__text { padding-top: 0; }
  .personal-philosophy, .personal-labo__intro { grid-template-columns: 1fr; min-height: auto; }
  .personal-philosophy__image, .personal-labo__image { min-height: 0; height: 66svh; }
  .personal-philosophy__copy, .personal-labo__copy { padding: 92px 20px; }
  .personal-service-list { margin-top: 58px; }
  .personal-service { grid-template-columns: 44px 1fr; gap: 16px 20px; padding: 38px 0; }
  .personal-service__title { grid-column: 2; }
  .personal-service__text { grid-column: 2; }
  .personal-program { padding: 92px 20px; }
  .personal-program__grid { grid-template-columns: 1fr; }
  .personal-program__item { min-height: 0; padding: 34px 28px 42px; }
  .personal-program__item > span { margin-bottom: 28px; }
  .personal-voice__quotes { margin: 52px 0 42px; }
  .personal-voice__quotes p { padding: 26px 0; font-size: clamp(24px, 7vw, 38px); }
  .personal-message { min-height: 72svh; }
  .personal-message__image img { object-position: 82% 35%; }
  .personal-message__content { width: calc(100% - 40px); }
  .personal-message__overlay { background: linear-gradient(90deg, rgba(15,14,12,.84) 0%, rgba(15,14,12,.58) 52%, rgba(15,14,12,.18) 100%); }
}

/* v0.2.22 — BUSINESS page and bilingual service navigation */
.site-nav a { display: flex; align-items: center; min-height: 34px; }
.menu-label { line-height: 1.2; }
.menu-label--desktop { display: grid; gap: 4px; text-align: center; }
.menu-label--mobile { display: none; }
.menu-label__en { font-size: 11px; letter-spacing: .16em; white-space: nowrap; }
.menu-label__ja { font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif; font-size: 9px; letter-spacing: .08em; white-space: nowrap; opacity: .72; }

.business-hero { position: relative; min-height: 100svh; display: grid; grid-template-columns: .86fr 1.14fr; overflow: hidden; background: #f4eee5; }
.business-hero__content { display: flex; flex-direction: column; justify-content: center; padding: 150px 5.8vw 100px 6.4vw; position: relative; z-index: 2; }
.business-hero__title { margin: 0; font-size: clamp(44px, 5vw, 80px); line-height: 1.34; font-weight: 400; letter-spacing: .055em; }
.business-hero__lead { max-width: 600px; margin: 38px 0 0; color: var(--color-soft-ink); font-size: 16px; line-height: 2.1; }
.business-hero__media { margin: 0; min-height: 100svh; overflow: hidden; background: #d7d0c7; }
.business-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center center; transform: scale(1.02); }
.business-hero__side { position: absolute; right: 24px; bottom: 34px; margin: 0; writing-mode: vertical-rl; color: rgba(255,255,255,.84); font-size: 10px; letter-spacing: .2em; z-index: 3; }
.business-question { background: var(--color-paper); }
.business-question__inner { display: grid; grid-template-columns: 1fr .9fr; gap: 10vw; align-items: start; }
.business-question__body { padding-top: 54px; }
.business-question__body p { margin: 0 0 26px; color: var(--color-soft-ink); font-size: 17px; line-height: 2.15; }
.business-approach { display: grid; grid-template-columns: .94fr 1.06fr; min-height: 88svh; background: var(--color-deep); color: #fff; }
.business-approach__image { margin: 0; min-height: 88svh; overflow: hidden; background: #211e1a; }
.business-approach__image img { width: 100%; height: 100%; object-fit: cover; object-position: center center; opacity: .9; }
.business-approach__copy { display: flex; flex-direction: column; justify-content: center; padding: 9vw 8vw; }
.business-approach__copy .section-label { color: #c3ae95; }
.business-approach__body { max-width: 650px; }
.business-approach__body p { margin: 0 0 24px; color: rgba(255,255,255,.8); font-size: 17px; line-height: 2.1; }
.business-services { background: #f4efe7; }
.business-services__head { display: grid; grid-template-columns: 1fr .72fr; gap: 9vw; align-items: end; }
.business-service-list { display: grid; gap: 1px; margin-top: 84px; background: rgba(30,29,27,.13); border: 1px solid rgba(30,29,27,.13); }
.business-service { display: grid; grid-template-columns: 1fr 1fr; min-height: 620px; background: var(--color-paper); }
.business-service--reverse .business-service__image { order: 2; }
.business-service__image { margin: 0; min-height: 620px; overflow: hidden; background: #e5ded4; }
.business-service__image img { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.business-service__image--contain { display: flex; align-items: center; justify-content: center; padding: 8%; background: #e9e1d7; }
.business-service__image--contain img { width: 100%; height: auto; max-height: 100%; object-fit: contain; }
.business-service__content { display: flex; flex-direction: column; justify-content: center; padding: 7vw 6vw; }
.business-service__number { display: block; margin-bottom: 40px; color: var(--color-accent); font-family: "Times New Roman", serif; font-size: 12px; letter-spacing: .16em; }
.business-service__content .section-label { margin-bottom: 16px; }
.business-service__content h3 { margin: 0 0 34px; font-size: clamp(30px, 3.2vw, 52px); line-height: 1.4; font-weight: 400; }
.business-service__content > p:not(.section-label) { margin: 0 0 20px; color: var(--color-soft-ink); font-size: 16px; line-height: 2.05; }
.business-service__detail { padding-top: 16px; border-top: 1px solid var(--color-line); font-size: 14px !important; }
.business-team { display: grid; grid-template-columns: .88fr 1.12fr; min-height: 94svh; background: #191715; color: #fff; }
.business-team__image { position: relative; margin: 0; min-height: 94svh; overflow: hidden; background: #28231f; }
.business-team__image img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: contain; object-position: center center; opacity: .88; }
.business-team__overlay { position: absolute; z-index: 3; top: clamp(34px,5vw,78px); left: clamp(22px,4.2vw,72px); margin: 0; color: rgba(24,22,20,.88); font-family: Manrope,Arial,sans-serif; font-size: clamp(48px,6.4vw,112px); font-weight: 600; line-height: .82; letter-spacing: -.065em; text-transform: uppercase; pointer-events: none; mix-blend-mode: multiply; }
.business-team__content { display: flex; flex-direction: column; justify-content: center; padding: 8vw 7vw; }
.business-team__content .section-label { color: #c3ae95; }
.business-team__roles { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 40px; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.15); }
.business-team__roles article { padding: 34px 30px 38px; background: #191715; }
.business-team__name { margin: 0 0 14px; color: #c3ae95; font-size: 12px; letter-spacing: .18em; }
.business-team__roles h3 { margin: 0 0 24px; font-size: 18px; line-height: 1.6; font-weight: 400; }
.business-team__roles article > p:last-child, .business-team__summary { color: rgba(255,255,255,.86); font-size: 15px; line-height: 2; }
.business-team__summary { max-width: 700px; margin: 34px 0 0; }
.business-process { background: var(--color-paper); }
.business-process__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 54px; background: rgba(30,29,27,.13); border: 1px solid rgba(30,29,27,.13); }
.business-process__grid article { min-height: 370px; padding: 38px 28px; background: #faf7f1; }
.business-process__grid span { display: block; margin-bottom: 42px; color: var(--color-accent); font-size: 12px; letter-spacing: .16em; }
.business-process__grid article > p { margin: 0 0 15px; color: var(--color-accent); font-size: 11px; letter-spacing: .14em; }
.business-process__grid h3 { margin: 0 0 24px; font-size: 23px; line-height: 1.55; font-weight: 400; }
.business-process__grid article > div { color: var(--color-soft-ink); font-size: 15px; line-height: 1.95; }
.business-works { background: #eee7dd; }
.business-works__inner { display: grid; grid-template-columns: 1fr .85fr; gap: 10vw; align-items: start; }
.business-works__categories { border-top: 1px solid var(--color-line); }
.business-works__categories a { display: grid; gap: 7px; padding: 28px 0; border-bottom: 1px solid var(--color-line); transition: transform .25s ease; }
.business-works__categories a:hover { transform: translateX(8px); }
.business-works__categories span { font-family: "Times New Roman", serif; font-size: 23px; }
.business-works__categories small { color: var(--color-soft-ink); font-size: 13px; }
.business-message { min-height: 82svh; display: flex; align-items: center; position: relative; overflow: hidden; color: #fff; }
.business-message__image, .business-message__overlay { position: absolute; inset: 0; margin: 0; }
.business-message__image img { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.business-message__overlay { background: linear-gradient(90deg, rgba(15,14,12,.85), rgba(15,14,12,.42) 58%, rgba(15,14,12,.18)); }
.business-message__content { position: relative; z-index: 2; width: min(100% - 64px, var(--container)); margin: 0 auto; }
.business-message__content .section-label { color: #d0bba2; }
.business-message__content .section-title { max-width: 820px; }
.business-message__content > p:last-child { max-width: 660px; color: rgba(255,255,255,.84); font-size: 17px; line-height: 2.1; }
.business-cta { background: var(--color-deep); color: #fff; text-align: center; }
.business-cta .section-label { color: #c3ae95; }
.business-cta .section-text { color: rgba(255,255,255,.78); }

@media (max-width: 900px) {
  .site-nav a { min-height: 48px; }
  .menu-label--desktop { display: none; }
  .menu-label--mobile { display: grid; gap: 5px; text-align: left; }
  .menu-label__ja { font-size: 14px; opacity: 1; }
  .menu-label__en { font-size: 9px; opacity: .68; }
  .business-hero { grid-template-columns: 1fr; min-height: auto; }
  .business-hero__media { order: 1; min-height: 0; height: clamp(450px, 126vw, 540px); padding-top: 74px; }
  .business-hero__media img { object-position: center center; transform: none; }
  .business-hero__content { order: 2; padding: 58px 20px 92px; }
  .business-hero__title { font-size: clamp(39px, 10.5vw, 56px); }
  .business-hero__lead { font-size: 15px; line-height: 2; }
  .business-hero__side { display: none; }
  .business-question__inner, .business-services__head, .business-works__inner { grid-template-columns: 1fr; gap: 34px; }
  .business-question__body { padding-top: 0; }
  .business-approach, .business-team { grid-template-columns: 1fr; min-height: auto; }
  .business-approach__image { min-height: 0; height: clamp(500px, 142vw, 610px); }
  .business-team__image { min-height: 0; height: auto; }
  .business-approach__copy, .business-team__content { padding: 92px 20px; }
  .business-service-list { margin-top: 58px; }
  .business-service { grid-template-columns: 1fr; min-height: 0; }
  .business-service--reverse .business-service__image { order: 0; }
  .business-service__image { min-height: 0; height: clamp(470px, 132vw, 570px); }
  .business-service__image--contain { height: auto; padding: 0; }
  .business-service__image--contain img { width: 100%; height: auto; max-height: none; }
  .business-service__content { padding: 68px 24px 76px; }
  .business-service__number { margin-bottom: 28px; }
  .business-team__image { height: auto; }
  .business-team__image img { width: 100%; height: auto; }
  .business-team__overlay { top: 24px; left: 18px; font-size: clamp(38px,12.5vw,68px); line-height: .84; letter-spacing: -.06em; }
  .business-team__roles { grid-template-columns: 1fr; }
  .business-process__grid { grid-template-columns: 1fr; }
  .business-process__grid article { min-height: 0; padding: 34px 28px 42px; }
  .business-process__grid span { margin-bottom: 28px; }
  .business-message { min-height: 560px; }
  .business-message__image img { object-position: 82% 35%; }
  .business-message__content { width: calc(100% - 40px); }
  .business-message__overlay { background: linear-gradient(90deg, rgba(15,14,12,.84) 0%, rgba(15,14,12,.58) 52%, rgba(15,14,12,.18) 100%); }
}

/* v0.2.26 BRANDING WORKS page */
.works-hero {
  min-height: 100svh;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(390px, .72fr);
  position: relative;
  overflow: hidden;
  background: #f4efe7;
}
.works-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 150px 7vw 110px;
}
.works-hero__title {
  margin: 0;
  max-width: 800px;
  font-size: clamp(46px, 5.8vw, 92px);
  line-height: 1.28;
  font-weight: 400;
  letter-spacing: .045em;
}
.works-hero__lead {
  max-width: 640px;
  margin: 42px 0 0;
  color: var(--color-soft-ink);
  font-size: 16px;
  line-height: 2.12;
}
.works-hero__media {
  margin: 0;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 110px 4vw 60px;
  background: #151413;
}
.works-hero__media img {
  display: block;
  width: min(100%, 660px);
  height: auto;
  max-height: calc(100svh - 170px);
  object-fit: contain;
}
.works-hero__side {
  position: absolute;
  right: 22px;
  bottom: 30px;
  margin: 0;
  writing-mode: vertical-rl;
  color: rgba(255,255,255,.72);
  font-size: 10px;
  letter-spacing: .18em;
}
.works-index {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  background: var(--color-paper);
}
.works-index a {
  display: grid;
  gap: 8px;
  min-height: 210px;
  padding: 42px 5vw;
  border-right: 1px solid var(--color-line);
  transition: background .25s ease, color .25s ease;
}
.works-index a:last-child { border-right: 0; }
.works-index a:hover { background: var(--color-deep); color: #fff; }
.works-index span { color: var(--color-accent); font-family: "Times New Roman", serif; font-size: 11px; letter-spacing: .16em; }
.works-index strong { font-family: "Times New Roman", serif; font-size: clamp(23px, 2.3vw, 36px); font-weight: 400; line-height: 1.3; }
.works-index small { color: var(--color-soft-ink); font-size: 13px; }
.works-index a:hover small { color: rgba(255,255,255,.7); }

.works-case { padding: 150px 32px 170px; scroll-margin-top: 80px; }
.works-case--corporate { background: #eee7dd; }
.works-case--personal { background: #181715; color: #fff; }
.works-case--visual { background: #f7f4ee; }
.works-case__head {
  display: grid;
  grid-template-columns: 1fr .78fr;
  gap: 10vw;
  align-items: end;
}
.works-case__head--reverse { grid-template-columns: .78fr 1fr; }
.works-case__head--reverse > div:first-child { order: 2; }
.works-case__head--reverse > div:last-child { order: 1; }
.works-case__number {
  margin: 0 0 42px;
  color: var(--color-accent);
  font-family: "Times New Roman", serif;
  font-size: 12px;
  letter-spacing: .2em;
}
.works-case--personal .section-label,
.works-case--personal .works-case__number { color: #c4ad92; }
.works-case__intro { padding-bottom: 8px; }
.works-case__client {
  margin: 0 0 24px !important;
  font-size: clamp(24px, 2.8vw, 40px) !important;
  line-height: 1.5 !important;
  color: inherit !important;
}
.works-case__intro p:last-child {
  margin: 0;
  color: var(--color-soft-ink);
  font-size: 16px;
  line-height: 2.08;
}
.works-case--personal .works-case__intro p:last-child { color: rgba(255,255,255,.72); }
.works-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin: 82px 0 100px;
  border: 1px solid rgba(30,29,27,.14);
  background: rgba(30,29,27,.14);
}
.works-meta > div { min-height: 220px; padding: 34px 32px 38px; background: rgba(255,255,255,.52); }
.works-meta small { display: block; margin-bottom: 34px; color: var(--color-accent); font-size: 10px; letter-spacing: .18em; }
.works-meta p { margin: 0; color: var(--color-soft-ink); font-size: 15px; line-height: 2; }
.works-meta--light { border-color: rgba(255,255,255,.15); background: rgba(255,255,255,.15); }
.works-meta--light > div { background: #181715; }
.works-meta--light small { color: #c4ad92; }
.works-meta--light p { color: rgba(255,255,255,.7); }


.works-before-after {
  display: grid;
  grid-template-columns: minmax(230px, .34fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 68px);
  align-items: end;
  margin-bottom: clamp(28px, 4vw, 68px);
}
.works-before-after figure { margin: 0; min-width: 0; }
.works-before-after figcaption {
  margin-bottom: 14px;
  color: #c4ad92;
  font-family: "Times New Roman", serif;
  font-size: 11px;
  letter-spacing: .2em;
}
.works-before-after img { display: block; width: 100%; height: auto; }
.works-before-after__before {
  max-width: 430px;
  justify-self: center;
  padding: clamp(16px, 2vw, 28px);
  background: #f2eee7;
  color: #181715;
}
.works-before-after__before img {
  width: 100%;
  max-height: 620px;
  object-fit: contain;
}
.works-before-after__after img {
  width: 100%;
  max-height: 880px;
  object-fit: contain;
  object-position: center;
}
.works-editorial--personal-after { margin-top: 0; }
.works-editorial {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 50px);
  align-items: start;
}
.works-shot { margin: 0; min-width: 0; }
.works-shot img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  object-position: center;
}
.works-shot--full { grid-column: 1 / -1; }
.works-shot--seven { grid-column: span 7; }
.works-shot--six { grid-column: span 6; }
.works-shot--five { grid-column: span 5; }
.works-shot--three { grid-column: span 3; }
.works-editorial--personal .works-shot:nth-child(3) { grid-column-start: 7; }
.works-editorial--personal .works-shot:nth-child(4) { grid-column-start: 10; }

.works-masonry {
  column-gap: clamp(18px, 2.4vw, 38px);
}
.works-masonry--space { columns: 3 280px; }
.works-masonry--visuals { columns: 4 240px; }
.works-masonry__item {
  break-inside: avoid;
  margin: 0 0 clamp(18px, 2.4vw, 38px);
  overflow: hidden;
}
.works-masonry__item img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
}

.selected-visuals { padding: 150px 32px 170px; background: #ece5da; }
.selected-visuals__head {
  display: grid;
  grid-template-columns: 1fr .68fr;
  gap: 9vw;
  align-items: end;
  margin-bottom: 92px;
}
.selected-visuals__head .section-text { margin: 0; }
.works-message {
  padding: 150px 32px 160px;
  background: var(--color-deep);
  color: #fff;
  text-align: center;
}
.works-message .section-label { color: #c3ae95; }
.works-message .section-text { color: rgba(255,255,255,.76); }

@media (max-width: 900px) {
  .works-hero { grid-template-columns: 1fr; min-height: auto; }
  .works-hero__copy { order: 2; padding: 62px 20px 94px; }
  .works-hero__title { font-size: clamp(40px, 11vw, 58px); }
  .works-hero__lead { font-size: 15px; line-height: 2; }
  .works-hero__media { order: 1; min-height: 0; padding: 102px 18px 34px; }
  .works-hero__media img { width: min(100%, 560px); max-height: none; }
  .works-hero__side { display: none; }
  .works-index { grid-template-columns: 1fr; }
  .works-index a { min-height: 0; padding: 30px 20px 34px; border-right: 0; border-bottom: 1px solid var(--color-line); }
  .works-index a:last-child { border-bottom: 0; }
  .works-case, .selected-visuals, .works-message { padding: 96px 20px 112px; }
  .works-case__head,
  .works-case__head--reverse,
  .selected-visuals__head { grid-template-columns: 1fr; gap: 34px; }
  .works-case__head--reverse > div:first-child,
  .works-case__head--reverse > div:last-child { order: initial; }
  .works-case__number { margin-bottom: 26px; }
  .works-meta { grid-template-columns: 1fr; margin: 56px 0 66px; }
  .works-meta > div { min-height: 0; padding: 28px 24px 32px; }
  .works-meta small { margin-bottom: 20px; }
  .works-before-after { grid-template-columns: 1fr; gap: 38px; margin-bottom: 46px; }
  .works-before-after__before { width: min(72vw, 360px); justify-self: start; }
  .works-before-after__after { width: 100%; }
  .works-editorial { grid-template-columns: 1fr; gap: 22px; }
  .works-shot--full,
  .works-shot--seven,
  .works-shot--six,
  .works-shot--five,
  .works-shot--three,
  .works-editorial--personal .works-shot:nth-child(3),
  .works-editorial--personal .works-shot:nth-child(4) { grid-column: 1; }
  .works-masonry--space,
  .works-masonry--visuals { columns: 2 150px; column-gap: 14px; }
  .works-masonry__item { margin-bottom: 14px; }
  .selected-visuals__head { margin-bottom: 54px; }
}

@media (max-width: 520px) {
  .works-masonry--space { columns: 1; }
  .works-masonry--visuals { columns: 2; }
}


/* v0.2.28 SELECTED BRAND VISUALS — portrait-only editorial layout */
.selected-visuals__gallery {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2.2vw, 34px);
}
.selected-visuals__row {
  display: grid;
  gap: clamp(14px, 2.2vw, 34px);
  align-items: start;
}
.selected-visuals__row--58-42 { grid-template-columns: minmax(0, 1.38fr) minmax(0, 1fr); }
.selected-visuals__row--55-45 { grid-template-columns: minmax(0, 1.22fr) minmax(0, 1fr); }
.selected-visuals__row--50-50 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.selected-visuals__row--45-55 { grid-template-columns: minmax(0, 1fr) minmax(0, 1.22fr); }
.selected-visuals__row--44-56,
.selected-visuals__row--42-58 { grid-template-columns: minmax(0, 1fr) minmax(0, 1.32fr); }
.selected-visuals__item {
  margin: 0;
  min-width: 0;
  overflow: hidden;
}
.selected-visuals__item img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
  transition: transform .7s cubic-bezier(.22,.61,.36,1);
}
@media (hover: hover) {
  .selected-visuals__item:hover img { transform: scale(1.012); }
}
.selected-visuals__row--brush {
  padding: clamp(10px, 1.2vw, 18px);
  background: rgba(255,255,255,.32);
}

@media (max-width: 520px) {
  .selected-visuals__gallery { gap: 10px; }
  .selected-visuals__row,
  .selected-visuals__row--58-42,
  .selected-visuals__row--55-45,
  .selected-visuals__row--50-50,
  .selected-visuals__row--45-55,
  .selected-visuals__row--44-56,
  .selected-visuals__row--42-58 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .selected-visuals__row--brush { padding: 0; background: transparent; }
}


/* v0.2.29 CASE 02 — warm greige section, clearer scroll continuity */
.works-case--personal {
  background: #d3cbc1;
  color: var(--color-ink);
}
.works-case--personal .section-label,
.works-case--personal .works-case__number,
.works-case--personal .works-meta--light small,
.works-case--personal .works-before-after figcaption {
  color: #80664f;
}
.works-case--personal .works-case__intro p:last-child {
  color: #5c5751;
}
.works-case--personal .works-meta--light {
  border-color: rgba(30,29,27,.14);
  background: rgba(30,29,27,.14);
}
.works-case--personal .works-meta--light > div {
  background: rgba(255,253,248,.58);
}
.works-case--personal .works-meta--light p {
  color: #5c5751;
}
.works-shot--personal-wide {
  display: flex;
  justify-content: center;
  padding-top: clamp(8px, 1.5vw, 24px);
}
.works-shot--personal-wide img {
  width: min(100%, 1120px);
  height: auto;
  object-fit: contain;
}


/* v0.2.32 PERSONAL BRANDING — transformation editorial */
.works-case--personal {
  background: #e2dbd2;
  color: #292724;
}
.works-case--personal .section-label,
.works-case--personal .works-case__number,
.works-case--personal .works-meta--light small {
  color: #7b624d;
}
.works-case--personal .works-case__intro p:last-child,
.works-case--personal .works-meta--light p {
  color: #5a554f;
}
.works-case--personal .works-meta--light {
  border-color: rgba(41,39,36,.13);
  background: rgba(41,39,36,.13);
}
.works-case--personal .works-meta--light > div {
  background: rgba(255,253,249,.55);
}

.transformation-editorial {
  --transformation-accent: #7b624d;
  --transformation-ink: #292724;
  --transformation-muted: #68615a;
  margin-top: clamp(78px, 9vw, 142px);
}
.transformation-editorial figure { margin: 0; min-width: 0; }
.transformation-editorial img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}
.transformation-editorial__opening {
  display: grid;
  grid-template-columns: minmax(210px, .31fr) minmax(56px, .09fr) minmax(0, .60fr);
  gap: clamp(24px, 3.4vw, 58px);
  align-items: start;
}
.transformation-editorial__before {
  width: min(100%, 430px);
  justify-self: start;
  padding: clamp(14px, 1.8vw, 25px);
  background: rgba(255,253,249,.68);
  box-shadow: 0 24px 70px rgba(58,48,39,.08);
}
.transformation-editorial__hero {
  margin-top: clamp(52px, 7vw, 112px);
}
.transformation-editorial__label {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: baseline;
  margin: 0 0 16px;
  color: var(--transformation-accent);
}
.transformation-editorial__label span {
  font-family: "Times New Roman", serif;
  font-size: 11px;
  letter-spacing: .2em;
}
.transformation-editorial__label small {
  color: var(--transformation-muted);
  font-size: 11px;
  letter-spacing: .08em;
}
.transformation-editorial__bridge {
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  padding-top: clamp(58px, 8vw, 130px);
  color: var(--transformation-accent);
  font-family: "Times New Roman", serif;
  font-size: 9px;
  letter-spacing: .22em;
  writing-mode: vertical-rl;
}
.transformation-editorial__bridge i {
  display: block;
  width: 1px;
  height: clamp(68px, 9vw, 130px);
  background: currentColor;
  opacity: .52;
}
.transformation-editorial__statement {
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(280px, .56fr);
  gap: clamp(42px, 9vw, 150px);
  align-items: end;
  margin: clamp(100px, 13vw, 196px) 0 clamp(82px, 10vw, 154px);
  padding: clamp(58px, 7vw, 100px) 0;
  border-top: 1px solid rgba(41,39,36,.18);
  border-bottom: 1px solid rgba(41,39,36,.18);
}
.transformation-editorial__statement h3 {
  grid-column: 1;
  margin: 14px 0 0;
  font-family: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(31px, 4.1vw, 66px);
  font-weight: 400;
  line-height: 1.48;
  letter-spacing: .015em;
}
.transformation-editorial__statement > p:last-child {
  grid-column: 2;
  grid-row: 1 / span 2;
  margin: 0;
  color: var(--transformation-muted);
  font-size: 15px;
  line-height: 2.15;
}
.transformation-editorial__eyebrow {
  grid-column: 1;
  margin: 0;
  color: var(--transformation-accent);
  font-family: "Times New Roman", serif;
  font-size: 10px;
  letter-spacing: .22em;
}
.transformation-editorial__after-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(22px, 3.8vw, 64px);
  align-items: start;
}
.transformation-editorial__portrait {
  grid-column: 1 / span 7;
}
.transformation-editorial__story {
  grid-column: 9 / -1;
  margin-top: clamp(80px, 12vw, 190px);
}
.transformation-editorial__story figure { margin: 0; }
.transformation-editorial__story p {
  margin: clamp(24px, 3vw, 42px) 0 0;
  color: var(--transformation-ink);
  font-family: "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(18px, 1.8vw, 28px);
  line-height: 1.85;
}
.transformation-editorial__story p span {
  display: block;
  margin-bottom: 18px;
  color: var(--transformation-accent);
  font-family: "Times New Roman", serif;
  font-size: 9px;
  letter-spacing: .22em;
}
.transformation-editorial__full {
  grid-column: 3 / 11;
  margin-top: clamp(70px, 9vw, 140px);
}

@media (max-width: 900px) {
  .transformation-editorial { margin-top: 72px; }
  .transformation-editorial__opening {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .transformation-editorial__before {
    width: min(72vw, 360px);
    justify-self: start;
  }
  .transformation-editorial__bridge {
    width: 100%;
    flex-direction: row;
    justify-content: center;
    gap: 16px;
    padding: 8px 0;
    writing-mode: horizontal-tb;
  }
  .transformation-editorial__bridge i {
    width: clamp(42px, 14vw, 90px);
    height: 1px;
  }
  .transformation-editorial__hero { margin-top: 0; }
  .transformation-editorial__statement {
    grid-template-columns: 1fr;
    gap: 28px;
    margin: 82px 0 74px;
    padding: 54px 0;
  }
  .transformation-editorial__statement h3,
  .transformation-editorial__statement > p:last-child,
  .transformation-editorial__eyebrow {
    grid-column: 1;
    grid-row: auto;
  }
  .transformation-editorial__statement > p:last-child { max-width: 620px; }
  .transformation-editorial__after-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }
  .transformation-editorial__portrait { grid-column: 1; }
  .transformation-editorial__story {
    grid-column: 2;
    margin-top: clamp(34px, 10vw, 82px);
  }
  .transformation-editorial__story p {
    margin-top: 20px;
    font-size: clamp(16px, 4.5vw, 22px);
  }
  .transformation-editorial__full {
    grid-column: 1 / -1;
    width: min(100%, 720px);
    justify-self: center;
    margin-top: 42px;
  }
}

@media (max-width: 520px) {
  .transformation-editorial__label {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 12px;
  }
  .transformation-editorial__bridge {
    justify-content: flex-start;
    overflow: hidden;
    white-space: nowrap;
    font-size: 8px;
    letter-spacing: .17em;
  }
  .transformation-editorial__statement {
    margin: 68px 0 58px;
    padding: 42px 0;
  }
  .transformation-editorial__statement h3 {
    font-size: clamp(28px, 8.2vw, 38px);
    line-height: 1.55;
  }
  .transformation-editorial__statement > p:last-child {
    font-size: 14px;
    line-height: 2;
  }
  .transformation-editorial__after-grid { gap: 10px; }
  .transformation-editorial__story { margin-top: 28px; }
  .transformation-editorial__story p {
    margin-top: 14px;
    font-size: 15px;
    line-height: 1.75;
  }
  .transformation-editorial__story p span { margin-bottom: 10px; font-size: 8px; }
  .transformation-editorial__full { margin-top: 28px; }
}


/* v39: SELECTED BRAND VISUALS / floating horizontal gallery */
.selected-visuals { overflow: hidden; }
.selected-visuals__stage {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
  cursor: grab;
  touch-action: pan-x pan-y;
  padding: 38px 0 54px;
}
.selected-visuals__stage::-webkit-scrollbar { display: none; }
.selected-visuals__stage.is-dragging { cursor: grabbing; }
.selected-visuals__track {
  position: relative;
  display: flex;
  align-items: center;
  gap: clamp(36px, 6vw, 110px);
  width: max-content;
  min-height: min(72svh, 760px);
  padding: 0 max(7vw, 40px);
}
.selected-visuals__float {
  position: relative;
  flex: 0 0 auto;
  width: clamp(220px, 24vw, 390px);
  padding: 0;
  border: 0;
  background: transparent;
  color: #171615;
  text-align: left;
  cursor: pointer;
  transform: translateY(var(--float-y, 0)) rotate(var(--float-r, 0deg));
  transition: transform .6s cubic-bezier(.2,.75,.25,1), opacity .35s ease;
}
.selected-visuals__float:nth-child(3n) { width: clamp(190px, 20vw, 320px); }
.selected-visuals__float:nth-child(5n) { width: clamp(250px, 28vw, 440px); }
.selected-visuals__float--1 { --float-y: -9%; --float-r: -1.8deg; }
.selected-visuals__float--2 { --float-y: 12%; --float-r: 1.2deg; }
.selected-visuals__float--3 { --float-y: -2%; --float-r: -.7deg; }
.selected-visuals__float--4 { --float-y: 15%; --float-r: 1.8deg; }
.selected-visuals__float--5 { --float-y: -13%; --float-r: .8deg; }
.selected-visuals__float--6 { --float-y: 5%; --float-r: -1.1deg; }
.selected-visuals__float:hover,
.selected-visuals__float:focus-visible {
  transform: translateY(var(--float-y, 0)) rotate(0deg) scale(1.025);
  z-index: 3;
  outline: none;
}
.selected-visuals__frame {
  display: block;
  overflow: hidden;
  background: #d8d0c5;
  box-shadow: 0 28px 70px rgba(28, 24, 20, .14);
}
.selected-visuals__frame img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .7s cubic-bezier(.2,.75,.25,1), filter .5s ease;
}
.selected-visuals__float:hover img { transform: scale(1.018); }
.selected-visuals__caption {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 12px;
  align-items: start;
  margin-top: 13px;
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.selected-visuals__caption small {
  font-size: 11px;
  line-height: 1.7;
  letter-spacing: .04em;
  text-transform: none;
  color: #5f5a54;
}
.selected-visuals__guide {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-top: 12px;
  font-size: 10px;
  letter-spacing: .18em;
}
.selected-visuals__guide i { display:block; width:120px; height:1px; background:#7a736a; position:relative; }
.selected-visuals__guide i::after { content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-top:1px solid; border-right:1px solid; transform:rotate(45deg); }
.visual-lightbox[hidden] { display: none; }
.visual-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) 70px;
  align-items: center;
  background: rgba(15, 14, 13, .96);
  color: #fff;
  padding: 58px 28px 28px;
}
.visual-lightbox__figure { margin:0; display:grid; justify-items:center; gap:18px; max-height: calc(100svh - 90px); }
.visual-lightbox__figure img { max-width: min(82vw, 1100px); max-height: 78svh; width:auto; height:auto; object-fit:contain; }
.visual-lightbox__figure figcaption { max-width: 720px; font-size: 12px; line-height:1.8; letter-spacing:.08em; text-align:center; color:#d8d3cd; }
.visual-lightbox__close,
.visual-lightbox__nav { border:0; background:transparent; color:#fff; cursor:pointer; font:inherit; }
.visual-lightbox__close { position:absolute; top:18px; right:24px; font-size:32px; font-weight:200; }
.visual-lightbox__nav { font-size:27px; opacity:.75; transition:opacity .25s; }
.visual-lightbox__nav:hover { opacity:1; }
body.has-lightbox { overflow:hidden; }
@media (max-width: 767px) {
  .selected-visuals__stage {
    padding: 24px 0 38px;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 22px;
    -webkit-overflow-scrolling: touch;
  }
  .selected-visuals__float { scroll-snap-align: center; }
  .selected-visuals__track { min-height: 64svh; gap: 32px; padding: 0 22px; }
  .selected-visuals__float,
  .selected-visuals__float:nth-child(3n),
  .selected-visuals__float:nth-child(5n) { width: min(68vw, 300px); }
  .selected-visuals__float--1 { --float-y:-7%; }
  .selected-visuals__float--2 { --float-y:9%; }
  .selected-visuals__float--3 { --float-y:-1%; }
  .selected-visuals__float--4 { --float-y:10%; }
  .selected-visuals__float--5 { --float-y:-8%; }
  .selected-visuals__float--6 { --float-y:4%; }
  .selected-visuals__caption small { font-size:10px; }
  .selected-visuals__guide { margin-left:0; }
  .visual-lightbox { grid-template-columns: 42px minmax(0,1fr) 42px; padding:54px 8px 18px; }
  .visual-lightbox__figure img { max-width: calc(100vw - 100px); max-height:75svh; }
  .visual-lightbox__figure figcaption { padding:0 8px; font-size:10px; }
}

/* v40: keep captions 10 and 20 inside the desktop gallery viewport */
@media (min-width: 768px) {
  .selected-visuals__float:nth-child(10),
  .selected-visuals__float:nth-child(20) {
    --float-y: 2%;
  }
}


/* v41: keep vertical page scrolling available while the pointer is over the gallery */
.selected-visuals__stage { overscroll-behavior-block: auto; }
@media (hover: hover) and (pointer: fine) {
  .selected-visuals__guide span::after {
    content: "  /  横にドラッグ・Shift＋スクロール";
    letter-spacing: .08em;
    text-transform: none;
  }
}


/* v42: desktop returns to a calm static gallery; mobile keeps horizontal swipe */
@media (min-width: 768px) {
  .selected-visuals { overflow: visible; }
  .selected-visuals__stage {
    width: 100%;
    margin-left: 0;
    overflow: visible;
    padding: 44px 0 20px;
    cursor: default;
    touch-action: auto;
  }
  .selected-visuals__stage.is-dragging { cursor: default; }
  .selected-visuals__track {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: clamp(54px, 7vw, 110px) clamp(38px, 5vw, 82px);
    width: 100%;
    min-height: 0;
    padding: 0;
  }
  .selected-visuals__float,
  .selected-visuals__float:nth-child(3n),
  .selected-visuals__float:nth-child(5n),
  .selected-visuals__float:nth-child(10),
  .selected-visuals__float:nth-child(20) {
    width: 100%;
    transform: none;
  }
  .selected-visuals__float:nth-child(even) { margin-top: clamp(42px, 7vw, 110px); }
  .selected-visuals__float:hover,
  .selected-visuals__float:focus-visible { transform: none; }
  .selected-visuals__guide { display: none; }
}

/* v43: prevent accidental page-wide horizontal drift on phones.
   The selected visuals rail remains horizontally swipeable inside its own box. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

.site,
.site-main,
main,
section,
header,
footer {
  min-width: 0;
  max-width: 100%;
}

img,
video,
iframe,
svg {
  max-width: 100%;
}

@media (max-width: 767px) {
  .selected-visuals {
    overflow: hidden;
  }

  .selected-visuals__stage {
    width: calc(100% + 40px);
    max-width: none;
    margin-left: -20px;
    margin-right: -20px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }

  .selected-visuals__track {
    max-width: none;
  }
}

/* v44: ABOUT — La paix brand book */
.about-page { background: #f4f1ec; color: #171615; }
.about-hero { position: relative; min-height: min(92svh, 920px); display: grid; align-items: end; overflow: hidden; background: #171615; color: #fff; }
.about-hero__media, .about-hero__veil { position: absolute; inset: 0; }
.about-hero__media { margin: 0; }
.about-hero__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(1.03); }
.about-hero__veil { background: linear-gradient(90deg, rgba(12,11,10,.68) 0%, rgba(12,11,10,.20) 58%, rgba(12,11,10,.32) 100%); }
.about-hero__content { position: relative; z-index: 2; width: 100%; padding-bottom: clamp(70px, 10svh, 120px); }
.about-hero__title { margin: 18px 0 24px; font-family: var(--font-serif); font-weight: 400; font-size: clamp(48px, 8.2vw, 132px); line-height: .98; letter-spacing: -.035em; }
.about-hero__lead { margin: 0; color: rgba(255,255,255,.78); font-size: 10px; letter-spacing: .22em; }
.about-hero__side { position: absolute; right: 22px; top: 50%; z-index: 2; margin: 0; writing-mode: vertical-rl; transform: translateY(-50%); font-size: 9px; letter-spacing: .24em; }
.about-manifesto { padding-block: clamp(110px, 16vw, 220px); }
.about-manifesto__title, .about-message__title { margin: 22px 0 42px; font-family: var(--font-serif); font-weight: 400; font-size: clamp(42px, 6.7vw, 96px); line-height: 1.12; letter-spacing: -.03em; }
.about-manifesto__copy { max-width: 720px; margin-left: auto; display: grid; gap: 18px; font-size: clamp(16px, 1.35vw, 20px); line-height: 2.05; }
.about-company { background: #201f1d; color: #f3eee7; }
.about-company__grid, .about-together__grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(50px, 8vw, 140px); align-items: center; }
.about-company__image, .about-together__image { margin: 0; overflow: hidden; }
.about-company__image img, .about-together__image img { width: 100%; height: auto; display: block; }
.about-people__intro { max-width: 760px; margin-bottom: clamp(80px, 12vw, 150px); }
.about-person { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(320px, .72fr); gap: clamp(45px, 8vw, 130px); align-items: center; margin-bottom: clamp(120px, 18vw, 240px); }
.about-person--kazuya { grid-template-columns: minmax(320px, .72fr) minmax(0, 1.08fr); }
.about-person--kazuya .about-person__image { order: 2; }
.about-person__image { margin: 0; overflow: hidden; }
.about-person__image img { width: 100%; height: auto; display: block; }
.about-person__copy { max-width: 540px; }
.about-person__number { margin: 0 0 42px; font-family: var(--font-serif); font-size: clamp(70px, 9vw, 138px); line-height: 1; color: #b2aa9f; }
.about-person__copy h3 { margin: 20px 0 30px; font-family: var(--font-serif); font-weight: 400; font-size: clamp(30px, 3.5vw, 52px); line-height: 1.18; }
.about-person__copy p:not(.about-person__number):not(.section-label) { line-height: 2; color: #55504a; }
.about-together { background: #ded6cc; }
.about-together__grid { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); }
.about-numbers { background: #fff; }
.about-numbers__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: #d5cec6; border: 1px solid #d5cec6; margin-top: 48px; }
.about-number { background: #fff; padding: clamp(34px, 5vw, 72px); min-height: 260px; display: flex; flex-direction: column; justify-content: space-between; }
.about-number strong { font-family: var(--font-serif); font-weight: 400; font-size: clamp(54px, 7vw, 104px); line-height: 1; letter-spacing: -.04em; }
.about-number strong span { font-size: .38em; vertical-align: top; }
.about-number p { margin: 42px 0 0; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; line-height: 1.8; }
.about-number small { color: #6c665f; letter-spacing: .04em; text-transform: none; }
.about-message { text-align: center; padding-block: clamp(120px, 18vw, 240px); }
.about-message .section-text { max-width: 720px; margin-inline: auto; }
.about-message .button { margin-top: 42px; }
@media (max-width: 767px) {
  .about-hero { min-height: 80svh; }
  .about-hero__content { padding-bottom: 54px; }
  .about-hero__title { font-size: clamp(43px, 14vw, 72px); }
  .about-hero__side { display: none; }
  .about-manifesto { padding-block: 92px; }
  .about-manifesto__title, .about-message__title { font-size: clamp(36px, 10.7vw, 58px); }
  .about-manifesto__copy { margin-left: 0; }
  .about-company__grid, .about-together__grid, .about-person, .about-person--kazuya { grid-template-columns: 1fr; gap: 38px; }
  .about-company__image { order: -1; }
  .about-person--kazuya .about-person__image { order: 0; }
  .about-person { margin-bottom: 110px; }
  .about-person__number { margin-bottom: 24px; }
  .about-numbers__grid { grid-template-columns: 1fr; }
  .about-number { min-height: 210px; }
}

/* CONTACT — editorial inquiry experience */
.contact-page { background: #f4f1eb; color: #1a1917; }
.contact-hero { padding: clamp(150px, 18vw, 260px) 0 clamp(90px, 11vw, 170px); border-bottom: 1px solid rgba(26,25,23,.16); }
.contact-hero__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .65fr); gap: clamp(50px, 8vw, 140px); align-items: end; }
.contact-hero__title { margin: 42px 0 0; font-family: "Times New Roman", "Yu Mincho", serif; font-size: clamp(62px, 9.7vw, 168px); font-weight: 400; line-height: .82; letter-spacing: -.065em; }
.contact-hero__copy { max-width: 520px; padding-bottom: 1.2vw; font-size: 14px; line-height: 2.05; }
.contact-hero__lead { margin: 0 0 28px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(21px, 2vw, 31px); line-height: 1.75; }
.contact-section-title { margin: 34px 0 clamp(54px, 7vw, 100px); font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(42px, 6.3vw, 102px); font-weight: 400; line-height: 1.12; letter-spacing: -.05em; }
.contact-path { background: #ece7df; }
.contact-path__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(26,25,23,.22); border-left: 1px solid rgba(26,25,23,.22); }
.contact-path__card { position: relative; min-height: 330px; padding: clamp(28px, 4vw, 58px); color: inherit; text-decoration: none; border-right: 1px solid rgba(26,25,23,.22); border-bottom: 1px solid rgba(26,25,23,.22); transition: color .35s ease, background .35s ease; }
.contact-path__card:hover { color: #f4f1eb; background: #1a1917; }
.contact-path__number { display: block; margin-bottom: clamp(60px, 7vw, 100px); font-size: 11px; letter-spacing: .2em; }
.contact-path__en { display: block; margin-bottom: 9px; font-family: "Times New Roman", serif; font-size: clamp(30px, 3.3vw, 54px); line-height: 1; letter-spacing: -.04em; }
.contact-path__card strong { display: block; font-family: "Yu Mincho", serif; font-size: 18px; font-weight: 400; }
.contact-path__description { display: block; max-width: 480px; margin-top: 24px; font-size: 12px; line-height: 1.9; opacity: .72; }
.contact-path__arrow { position: absolute; right: 32px; top: 30px; font-size: 28px; font-weight: 300; }
.contact-form-section { background: #191816; color: #f4f1eb; }
.contact-form-section__inner { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: clamp(50px, 9vw, 150px); align-items: start; }
.contact-form-section__intro { position: sticky; top: 120px; }
.contact-form-section__note { max-width: 340px; padding-top: 40px; border-top: 1px solid rgba(244,241,235,.25); color: rgba(244,241,235,.65); font-size: 12px; line-height: 1.9; }
.contact-form-wrap { min-width: 0; }
.lp-contact-form__trap { position:absolute !important; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.lp-contact-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 28px; }
.lp-contact-form__field { display: block; min-width: 0; margin: 0 0 38px; padding: 0; border: 0; }
.lp-contact-form__field > span, .lp-contact-form__field legend { display: block; margin-bottom: 14px; color: rgba(244,241,235,.78); font-size: 11px; letter-spacing: .1em; }
.lp-contact-form__field b, .lp-contact-form__field legend span { margin-left: 8px; color: #c8b7a0; font-size: 9px; font-weight: 400; }
.lp-contact-form input[type="text"], .lp-contact-form input[type="email"], .lp-contact-form input[type="tel"], .lp-contact-form textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(244,241,235,.32); border-radius: 0; padding: 13px 0 17px; outline: none; color: #fff; background: transparent; font: inherit; font-size: 15px; transition: border-color .25s ease; }
.lp-contact-form textarea { min-height: 190px; resize: vertical; line-height: 1.8; }
.lp-contact-form input:focus, .lp-contact-form textarea:focus { border-color: #f4f1eb; }
.lp-contact-form input::placeholder, .lp-contact-form textarea::placeholder { color: rgba(244,241,235,.35); }
.lp-contact-form__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.lp-contact-form__choices label { position: relative; cursor: pointer; }
.lp-contact-form__choices input { position: absolute; opacity: 0; pointer-events: none; }
.lp-contact-form__choices span { display: flex; min-height: 64px; align-items: center; padding: 15px 18px; border: 1px solid rgba(244,241,235,.25); font-size: 12px; line-height: 1.5; transition: .25s ease; }
.lp-contact-form__choices input:checked + span { color: #191816; background: #f4f1eb; border-color: #f4f1eb; }
.lp-contact-form__choices input:focus-visible + span { outline: 2px solid #fff; outline-offset: 3px; }
.lp-contact-form__privacy { display: flex; gap: 12px; align-items: flex-start; margin: 8px 0 35px; color: rgba(244,241,235,.68); font-size: 11px; line-height: 1.7; cursor: pointer; }
.lp-contact-form__privacy input { margin-top: 3px; accent-color: #f4f1eb; }
.lp-contact-form__privacy a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.lp-contact-form__submit { display: flex; width: min(100%, 520px); min-height: 112px; align-items: center; justify-content: space-between; padding: 0 34px; border: 1px solid rgba(244,241,235,.6); color: #f4f1eb; background: transparent; cursor: pointer; transition: .3s ease; }
.lp-contact-form__submit:hover { color: #191816; background: #f4f1eb; }
.lp-contact-form__submit span { font-family: "Times New Roman", serif; font-size: clamp(23px, 2.6vw, 40px); letter-spacing: -.02em; }
.lp-contact-form__submit small { font-size: 10px; letter-spacing: .12em; }
.contact-notice { padding: clamp(36px, 5vw, 70px); border: 1px solid rgba(244,241,235,.3); }
.contact-notice--success { min-height: 330px; display: flex; flex-direction: column; justify-content: center; }
.contact-notice__en { margin: 0 0 25px; font-family: "Times New Roman", serif; font-size: clamp(48px, 7vw, 90px); line-height: .9; }
.contact-notice h2 { margin: 0 0 20px; font-family: "Yu Mincho", serif; font-size: clamp(25px, 3vw, 42px); font-weight: 400; }
.contact-notice--error { margin-bottom: 35px; border-color: rgba(220,130,110,.7); color: #f2c8bc; font-size: 13px; }
.contact-closing { min-height: 78svh; display: flex; align-items: center; background: #d9d0c5; }
.contact-closing__en { margin: 0; font-family: "Times New Roman", serif; font-size: clamp(56px, 9.6vw, 160px); line-height: .86; letter-spacing: -.065em; }
.contact-closing__ja { margin: clamp(40px, 6vw, 80px) 0 0 auto; width: max-content; font-family: "Yu Mincho", serif; font-size: clamp(20px, 2.3vw, 34px); line-height: 1.7; }
@media (max-width: 900px) {
  .contact-hero__grid, .contact-form-section__inner { grid-template-columns: 1fr; }
  .contact-hero__copy { padding-top: 20px; }
  .contact-form-section__intro { position: static; }
}
@media (max-width: 767px) {
  .contact-hero { padding: 125px 0 88px; }
  .contact-hero__title { margin-top: 32px; font-size: clamp(55px, 18vw, 82px); line-height: .87; }
  .contact-hero__lead br { display: none; }
  .contact-path__grid { grid-template-columns: 1fr; }
  .contact-path__card { min-height: 285px; padding: 28px 24px; }
  .contact-path__number { margin-bottom: 55px; }
  .contact-path__description { padding-right: 20px; }
  .lp-contact-form__grid, .lp-contact-form__choices { grid-template-columns: 1fr; }
  .lp-contact-form__grid { gap: 0; }
  .lp-contact-form__choices span { min-height: 58px; }
  .lp-contact-form__submit { min-height: 90px; padding: 0 22px; }
  .contact-closing { min-height: 65svh; }
  .contact-closing__ja { width: auto; margin-left: 0; }
}

/* FAQ — editorial accordion */
.faq-page { background: #f4f1eb; color: #1a1917; }
.faq-hero { padding: clamp(150px, 18vw, 260px) 0 clamp(90px, 11vw, 170px); border-bottom: 1px solid rgba(26,25,23,.16); }
.faq-hero__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .65fr); gap: clamp(50px, 8vw, 140px); align-items: end; }
.faq-hero__title { margin: 42px 0 0; font-family: "Times New Roman", "Yu Mincho", serif; font-size: clamp(62px, 9.7vw, 168px); font-weight: 400; line-height: .82; letter-spacing: -.065em; }
.faq-hero__copy { max-width: 520px; padding-bottom: 1.2vw; font-size: 14px; line-height: 2.05; }
.faq-hero__lead { margin: 0 0 28px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(21px, 2vw, 31px); line-height: 1.75; }
.faq-index { background: #e9e3da; }
.faq-index__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: clamp(42px, 6vw, 86px); border-top: 1px solid rgba(26,25,23,.2); border-left: 1px solid rgba(26,25,23,.2); }
.faq-index__item { position: relative; min-height: 220px; padding: clamp(26px, 3.5vw, 48px); border-right: 1px solid rgba(26,25,23,.2); border-bottom: 1px solid rgba(26,25,23,.2); color: inherit; text-decoration: none; transition: .3s ease; }
.faq-index__item:hover { color: #f4f1eb; background: #1a1917; }
.faq-index__item > span { display: block; margin-bottom: 54px; font-size: 10px; letter-spacing: .2em; }
.faq-index__item strong { display: block; font-family: "Times New Roman", serif; font-size: clamp(27px, 3vw, 48px); font-weight: 400; line-height: 1; letter-spacing: -.035em; }
.faq-index__item small { display: block; margin-top: 10px; font-size: 12px; }
.faq-index__item i { position: absolute; right: 28px; top: 26px; font-style: normal; font-size: 21px; }
.faq-list { background: #f4f1eb; }
.faq-group { scroll-margin-top: 110px; padding: clamp(70px, 9vw, 140px) 0; border-bottom: 1px solid rgba(26,25,23,.18); }
.faq-group:first-child { padding-top: 0; }
.faq-group__header { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 24px; margin-bottom: clamp(45px, 6vw, 90px); }
.faq-group__header > span { padding-top: 8px; font-size: 11px; letter-spacing: .2em; }
.faq-group__header p { margin: 0 0 12px; font-family: "Times New Roman", serif; font-size: clamp(35px, 4.8vw, 76px); line-height: .95; letter-spacing: -.045em; }
.faq-group__header h2 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: 15px; font-weight: 400; }
.faq-group__items { margin-left: min(10vw, 150px); border-top: 1px solid rgba(26,25,23,.3); }
.faq-item { border-bottom: 1px solid rgba(26,25,23,.3); }
.faq-item summary { display: grid; grid-template-columns: 46px minmax(0, 1fr) 34px; gap: 18px; align-items: center; min-height: 118px; padding: 26px 4px; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item__q { font-family: "Times New Roman", serif; font-size: 26px; }
.faq-item__question { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(17px, 1.55vw, 23px); line-height: 1.65; }
.faq-item__toggle { position: relative; width: 24px; height: 24px; }
.faq-item__toggle::before, .faq-item__toggle::after { content: ""; position: absolute; left: 2px; top: 11px; width: 20px; height: 1px; background: currentColor; transition: transform .3s ease; }
.faq-item__toggle::after { transform: rotate(90deg); }
.faq-item[open] .faq-item__toggle::after { transform: rotate(0deg); }
.faq-item__answer { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 18px; padding: 0 60px 42px 4px; }
.faq-item__answer > span { font-family: "Times New Roman", serif; font-size: 24px; }
.faq-item__answer p { max-width: 850px; margin: 0; font-size: 14px; line-height: 2; }
.faq-contact { background: #191816; color: #f4f1eb; }
.faq-contact__inner h2 { margin: clamp(45px, 7vw, 95px) 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(36px, 6.2vw, 98px); font-weight: 400; line-height: 1.25; letter-spacing: -.045em; }
.faq-contact__link { display: grid; grid-template-columns: minmax(0, 1fr) auto 34px; gap: 22px; align-items: center; min-height: 118px; padding: 0 28px; border-top: 1px solid rgba(244,241,235,.35); border-bottom: 1px solid rgba(244,241,235,.35); color: inherit; text-decoration: none; transition: .3s ease; }
.faq-contact__link:hover { color: #191816; background: #f4f1eb; }
.faq-contact__link span { font-family: "Times New Roman", serif; font-size: clamp(30px, 4vw, 62px); letter-spacing: -.035em; }
.faq-contact__link small { font-size: 11px; letter-spacing: .1em; }
.faq-contact__link i { font-style: normal; font-size: 24px; }
@media (max-width: 900px) {
  .faq-hero__grid { grid-template-columns: 1fr; }
  .faq-hero__copy { padding-top: 20px; }
  .faq-group__items { margin-left: 0; }
}
@media (max-width: 767px) {
  .faq-hero { padding: 125px 0 88px; }
  .faq-hero__title { margin-top: 32px; font-size: clamp(55px, 18vw, 82px); line-height: .87; }
  .faq-hero__lead br { display: none; }
  .faq-index__grid { grid-template-columns: 1fr; }
  .faq-index__item { min-height: 190px; padding: 26px 22px; }
  .faq-index__item > span { margin-bottom: 42px; }
  .faq-group { scroll-margin-top: 80px; padding: 78px 0; }
  .faq-group__header { grid-template-columns: 44px minmax(0, 1fr); gap: 12px; }
  .faq-group__header p { font-size: clamp(33px, 11vw, 48px); }
  .faq-item summary { grid-template-columns: 32px minmax(0, 1fr) 26px; gap: 10px; min-height: 104px; padding: 22px 0; }
  .faq-item__q { font-size: 22px; }
  .faq-item__question { font-size: 16px; }
  .faq-item__answer { grid-template-columns: 32px minmax(0, 1fr); gap: 10px; padding: 0 0 34px; }
  .faq-item__answer p { font-size: 13px; }
  .faq-contact__link { grid-template-columns: minmax(0, 1fr) 26px; min-height: 98px; padding: 0 4px; }
  .faq-contact__link small { display: none; }
  .faq-contact__link span { font-size: clamp(29px, 10vw, 44px); }
}

/* =========================================================
   PERSONAL editable conversion page — v0.2.50
========================================================= */
.personal-page { overflow: clip; background: var(--color-paper); }
.personal-page .personal-hero__lead p,
.personal-page .section-text p { margin: 0; }
.personal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; margin-top: 38px; }
.personal-actions .button,
.personal-actions .text-link { margin-top: 0; }
.personal-actions--center { justify-content: center; }
.button--dark { background: var(--color-deep); color: #fff; border-color: var(--color-deep); }
.button--dark:hover { background: transparent; color: var(--color-deep); }
.text-link--light { color: #fff; }

.personal-page .personal-hero { background: #f4efe7; grid-template-columns: minmax(0,1.02fr) minmax(440px,.98fr); }
.personal-page .personal-hero__content { padding-right: clamp(50px,7vw,110px); }
.personal-page .personal-hero__title { max-width: 760px; font-size: clamp(42px,4.6vw,74px); line-height: 1.42; }
.personal-page .personal-hero__lead { max-width: 650px; margin-top: 34px; }
.personal-page .personal-hero__lead p { font-size: 16px; line-height: 2.08; }
.personal-hero__note { display: flex; align-items: center; gap: 12px; margin: 25px 0 0; color: var(--color-accent); font-size: 12px; line-height: 1.7; letter-spacing: .08em; }
.personal-hero__note span { flex: 0 0 28px; height: 1px; background: currentColor; }

.personal-problem { background: var(--color-paper); }
.personal-problem__inner { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(60px,10vw,150px); align-items: start; }
.personal-problem__body { padding-top: 50px; max-width: 680px; }
.personal-problem__body p { margin: 0 0 24px; color: var(--color-soft-ink); font-size: 17px; line-height: 2.15; }
.personal-problem__body p:last-child { color: var(--color-ink); font-size: clamp(19px,1.8vw,25px); line-height: 1.95; }

.personal-page .personal-philosophy { grid-template-columns: .88fr 1.12fr; }
.personal-page .personal-philosophy__copy { padding: clamp(90px,10vw,160px) clamp(45px,8vw,125px); }
.personal-page .personal-philosophy__body p { margin-bottom: 25px; }

.personal-case { background: #eee7dc; }
.personal-case__inner { display: grid; grid-template-columns: 1fr; }
.personal-case--with-image .personal-case__inner { grid-template-columns: minmax(300px,.78fr) minmax(0,1.22fr); gap: clamp(60px,9vw,135px); align-items: center; }
.personal-case__image { margin: 0; aspect-ratio: 4/5; overflow: hidden; background: #d9d0c4; }
.personal-case__image img { width: 100%; height: 100%; object-fit: cover; }
.personal-case__content { max-width: 980px; }
.personal-case--with-image .personal-case__content { max-width: none; }
.personal-case__change { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin: clamp(48px,6vw,78px) 0 38px; border: 1px solid rgba(30,29,27,.16); background: rgba(30,29,27,.16); }
.personal-case__change article { min-height: 280px; padding: clamp(30px,4vw,48px); background: #f7f2ea; }
.personal-case__change article > p { margin: 0 0 28px; color: var(--color-accent); font: 400 11px/1.3 Arial,sans-serif; letter-spacing: .2em; }
.personal-case__change article div p { margin: 0; color: var(--color-soft-ink); font-size: 16px; line-height: 2.05; }
.personal-case__closing { max-width: 780px; }
.personal-case__closing p { margin: 0; font-size: clamp(19px,2vw,27px); line-height: 1.9; }

.personal-routes { background: #f8f4ed; }
.personal-routes__head,
.personal-menu__head { display: grid; grid-template-columns: 1fr .76fr; gap: clamp(50px,9vw,125px); align-items: end; }
.personal-routes__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: 78px; background: rgba(30,29,27,.14); border: 1px solid rgba(30,29,27,.14); }
.personal-route { min-height: 470px; padding: clamp(42px,5vw,72px); display: flex; flex-direction: column; background: #fffdf8; }
.personal-route--labo { background: var(--color-deep); color: #fff; }
.personal-route__label { margin: 0 0 70px; color: var(--color-accent); font: 400 11px/1.3 Arial,sans-serif; letter-spacing: .2em; }
.personal-route--labo .personal-route__label { color: #c7af95; }
.personal-route h3 { margin: 0 0 28px; max-width: 530px; font-size: clamp(27px,3vw,44px); line-height: 1.55; font-weight: 400; }
.personal-route div p { margin: 0; max-width: 560px; color: var(--color-soft-ink); font-size: 16px; line-height: 2; }
.personal-route--labo div p { color: rgba(255,255,255,.76); }
.personal-route .text-link { margin-top: auto; padding-top: 50px; align-self: flex-start; }

.personal-menu { background: #ede6dc; }
.personal-menu__list { margin-top: 78px; border-top: 1px solid rgba(30,29,27,.18); }
.personal-menu-item { display: grid; grid-template-columns: 55px minmax(260px,.78fr) minmax(300px,1fr) minmax(210px,.56fr); gap: clamp(24px,4vw,62px); padding: 48px 0; border-bottom: 1px solid rgba(30,29,27,.18); align-items: start; }
.personal-menu-item__number { margin: 0; padding-top: 5px; color: var(--color-accent); font: 400 11px/1.3 Arial,sans-serif; letter-spacing: .18em; }
.personal-menu-item__name > p { margin: 0 0 12px; color: var(--color-accent); font: 400 10px/1.4 Arial,sans-serif; letter-spacing: .16em; }
.personal-menu-item__name h3 { margin: 0 0 14px; font-size: clamp(24px,2.3vw,36px); line-height: 1.55; font-weight: 400; }
.personal-menu-item__name > span { display: block; color: var(--color-soft-ink); font-size: 12px; line-height: 1.7; }
.personal-menu-item__body p { margin: 0; color: var(--color-soft-ink); font-size: 15px; line-height: 2; }
.personal-menu-item__action { text-align: right; }
.personal-menu-item__action > p { margin: 0; font-size: 14px; line-height: 1.8; }
.personal-menu-item__action .text-link { margin-top: 30px; font-size: 11px; }

.personal-page .personal-labo__intro { grid-template-columns: .92fr 1.08fr; min-height: 100svh; }
.personal-page .personal-labo__image { min-height: 100svh; }
.personal-page .personal-labo__copy { padding: clamp(90px,9vw,145px) clamp(42px,7vw,105px); }
.personal-labo__price { margin: 34px 0 0; font-size: clamp(20px,2vw,28px); line-height: 1.6; }
.personal-labo__availability { display: grid; gap: 1px; margin-top: 35px; border-top: 1px solid var(--color-line); }
.personal-labo__availability p { display: grid; grid-template-columns: 82px 1fr; gap: 18px; margin: 0; padding: 17px 0; border-bottom: 1px solid var(--color-line); color: var(--color-soft-ink); font-size: 13px; line-height: 1.85; }
.personal-labo__availability span { color: var(--color-accent); font: 400 10px/1.6 Arial,sans-serif; letter-spacing: .16em; }
.personal-program__grid--five { grid-template-columns: repeat(5,minmax(0,1fr)); }
.personal-program__grid--five .personal-program__item { min-height: 430px; padding: 36px 25px 42px; }
.personal-program__grid--five .personal-program__item > span { min-height: 35px; margin-bottom: 34px; font: 400 10px/1.5 Arial,sans-serif; }
.personal-program__grid--five .personal-program__item h3 { font-size: 21px; }
.personal-program__grid--five .personal-program__item div p { margin: 0; }

.personal-page .personal-gain { background: #fffdf8; }
.personal-page .personal-gain__list p { position: relative; padding-left: 34px; }
.personal-page .personal-gain__list p:before { content: ''; position: absolute; left: 2px; top: 50%; width: 14px; height: 1px; background: var(--color-accent); }

.personal-page .personal-voice { background: #eee7dd; }
.personal-voice__cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; margin: 70px 0 46px; background: rgba(30,29,27,.14); border: 1px solid rgba(30,29,27,.14); }
.personal-voice-card { min-height: 370px; display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding: clamp(34px,4vw,52px); background: #f8f4ed; }
.personal-voice-card p { margin: 0; font-size: clamp(20px,2.1vw,30px); line-height: 1.8; }
.personal-voice-card cite { margin-top: 35px; color: var(--color-soft-ink); font-size: 11px; line-height: 1.6; letter-spacing: .12em; font-style: normal; }
.personal-page .personal-voice__note p { margin: 0; }

.personal-page .personal-message__content > div { max-width: 650px; color: rgba(255,255,255,.84); font-size: 17px; line-height: 2.1; }
.personal-page .personal-message__content > div p { margin: 0; }
.personal-page .personal-cta .section-text { max-width: 720px; margin: 0 auto; }
.personal-page .personal-cta .section-text p { margin: 0; }

@media (max-width: 1100px) {
  .personal-menu-item { grid-template-columns: 42px minmax(210px,.7fr) 1fr; }
  .personal-menu-item__action { grid-column: 2 / -1; display: flex; justify-content: space-between; align-items: center; text-align: left; }
  .personal-menu-item__action .text-link { margin-top: 0; }
  .personal-program__grid--five { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .personal-program__grid--five .personal-program__item:last-child { grid-column: 1 / -1; min-height: 280px; }
}

@media (max-width: 900px) {
  .personal-page .personal-hero { grid-template-columns: 1fr; }
  .personal-page .personal-hero__content { padding: 64px 20px 92px; }
  .personal-page .personal-hero__title { font-size: clamp(36px,9.4vw,52px); }
  .personal-page .personal-hero__lead p { font-size: 15px; }
  .personal-actions { align-items: flex-start; }
  .personal-problem__inner,
  .personal-routes__head,
  .personal-menu__head,
  .personal-case--with-image .personal-case__inner { grid-template-columns: 1fr; gap: 34px; }
  .personal-problem__body { padding-top: 0; }
  .personal-case--with-image .personal-case__image { width: min(100%,560px); }
  .personal-routes__grid { grid-template-columns: 1fr; margin-top: 54px; }
  .personal-route { min-height: 410px; padding: 42px 28px; }
  .personal-route__label { margin-bottom: 42px; }
  .personal-menu__list { margin-top: 54px; }
  .personal-menu-item { grid-template-columns: 36px 1fr; gap: 18px 16px; padding: 38px 0; }
  .personal-menu-item__name,
  .personal-menu-item__body,
  .personal-menu-item__action { grid-column: 2; }
  .personal-menu-item__action { display: block; }
  .personal-menu-item__action .text-link { margin-top: 24px; }
  .personal-page .personal-labo__intro { grid-template-columns: 1fr; min-height: auto; }
  .personal-page .personal-labo__image { min-height: 0; height: 68svh; }
  .personal-page .personal-labo__copy { padding: 92px 20px; }
  .personal-voice__cards { grid-template-columns: 1fr; margin-top: 52px; }
  .personal-voice-card { min-height: 300px; }
}

@media (max-width: 680px) {
  .personal-actions { display: grid; grid-template-columns: 1fr; gap: 22px; }
  .personal-actions .button { width: 100%; min-width: 0; padding-left: 18px; padding-right: 18px; font-size: 11px; }
  .personal-actions .text-link { justify-self: start; }
  .personal-actions--center .text-link { justify-self: center; }
  .personal-case__change { grid-template-columns: 1fr; }
  .personal-case__change article { min-height: 0; padding: 32px 25px; }
  .personal-program__grid--five { grid-template-columns: 1fr; }
  .personal-program__grid--five .personal-program__item:last-child { grid-column: auto; min-height: 0; }
  .personal-labo__availability p { grid-template-columns: 1fr; gap: 8px; }
}

/* =========================================================
   BRAND ME LABO — v0.2.51
========================================================= */
.labo-page { overflow: hidden; background: var(--color-paper); --color-accent:#846d57; }
.labo-hero { position: relative; display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); min-height: 100svh; background: var(--color-deep); color: #fff; }
.labo-hero__copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 150px 6.5vw 90px 8vw; }
.labo-hero__copy .section-label { color: #c8b298; }
.labo-hero__title { margin: 0; font-size: clamp(48px,6.4vw,98px); line-height: 1.22; font-weight: 400; letter-spacing: .055em; }
.labo-hero__lead { max-width: 620px; margin-top: 40px; color: rgba(255,255,255,.76); font-size: 16px; line-height: 2.08; }
.labo-hero__lead p { margin: 0 0 18px; }
.labo-hero__note { display: flex; align-items: center; gap: 14px; margin: 22px 0 0; color: rgba(255,255,255,.68); font: 400 10px/1.5 Arial,sans-serif; letter-spacing: .18em; }
.labo-hero__note span { width: 42px; height: 1px; background: rgba(255,255,255,.42); }
.labo-hero__image { min-height: 100svh; margin: 0; overflow: hidden; background: #2b2824; }
.labo-hero__image img { width: 100%; height: 100%; object-fit: cover; object-position: center center; opacity: .92; transform: scale(1.025); }
.labo-hero__side { position: absolute; right: 25px; bottom: 30px; z-index: 2; margin: 0; writing-mode: vertical-rl; color: rgba(255,255,255,.7); font: 400 9px/1 Arial,sans-serif; letter-spacing: .24em; }

.labo-intro { background: #f6f1e9; }
.labo-intro__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.78fr); gap: 9vw; align-items: start; }
.labo-intro__body { padding-top: 50px; color: var(--color-soft-ink); font-size: 17px; line-height: 2.12; }
.labo-intro__body p { margin: 0 0 24px; }
.labo-pain-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 78px; border-top: 1px solid var(--color-line); }
.labo-pain-list p { display: grid; grid-template-columns: 52px 1fr; gap: 18px; align-items: start; margin: 0; padding: 27px 18px 27px 0; border-bottom: 1px solid var(--color-line); font-size: 16px; line-height: 1.8; }
.labo-pain-list p:nth-child(odd) { border-right: 1px solid var(--color-line); }
.labo-pain-list p:nth-child(even) { padding-left: 30px; }
.labo-pain-list span { color: var(--color-accent); font: 400 10px/1.5 Arial,sans-serif; letter-spacing: .16em; }

.labo-promise { position: relative; min-height: 94svh; background: #d9d0c4; overflow: hidden; }
.labo-promise__image { position: absolute; inset: 0; margin: 0; }
.labo-promise__image:after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(13,12,10,.15),rgba(13,12,10,.62)); }
.labo-promise__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.labo-promise__card { position: relative; z-index: 2; width: min(700px,48vw); margin-left: auto; padding: 12vw 8vw 11vw 7vw; color: #fff; }
.labo-promise__card .section-label { color: #d3bda3; }
.labo-promise__card .section-title { font-size: clamp(40px,4.8vw,72px); }
.labo-promise__card > div { color: rgba(255,255,255,.82); font-size: 17px; line-height: 2.12; }
.labo-promise__card > div p { margin: 0 0 24px; }

.labo-fit { background: var(--color-deep); color: #fff; }
.labo-fit .section-label { color: #c7af93; }
.labo-fit .section-text { color: rgba(255,255,255,.68); }
.labo-fit__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.82fr); gap: 9vw; }
.labo-fit__list { border-top: 1px solid rgba(255,255,255,.2); }
.labo-fit__list p { position: relative; margin: 0; padding: 25px 0 25px 30px; border-bottom: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.84); font-size: 16px; line-height: 1.8; }
.labo-fit__list p:before { content: ""; position: absolute; left: 2px; top: 35px; width: 8px; height: 8px; border: 1px solid #c7af93; transform: rotate(45deg); }

.labo-journey { background: #eee7dd; }
.labo-section-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.55fr); gap: 8vw; align-items: end; }
.labo-journey__grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin-top: 70px; border: 1px solid rgba(30,29,27,.14); background: rgba(30,29,27,.14); gap: 1px; }
.labo-journey__item { min-height: 420px; padding: 38px 27px 42px; background: #f9f6f0; }
.labo-journey__item > span { display: block; min-height: 54px; color: var(--color-accent); font: 400 10px/1.4 Arial,sans-serif; letter-spacing: .15em; }
.labo-journey__item h3 { margin: 0 0 28px; font-size: 23px; line-height: 1.55; font-weight: 400; }
.labo-journey__item div { color: var(--color-soft-ink); font-size: 14px; line-height: 1.95; }
.labo-journey__item div p { margin: 0; }

.labo-program { background: var(--color-paper); }
.labo-section-head--program { align-items: start; }
.labo-program__list { margin-top: 84px; border-top: 1px solid var(--color-line); }
.labo-program__item { display: grid; grid-template-columns: 72px minmax(270px,.78fr) minmax(0,1fr); gap: 44px; align-items: start; padding: 48px 0; border-bottom: 1px solid var(--color-line); }
.labo-program__number { margin: 8px 0 0; color: var(--color-accent); font: 400 10px/1 Arial,sans-serif; letter-spacing: .17em; }
.labo-program__name > p { margin: 0 0 14px; color: var(--color-accent); font: 400 10px/1.4 Arial,sans-serif; letter-spacing: .16em; }
.labo-program__name h3 { margin: 0; font-size: clamp(25px,2.6vw,38px); line-height: 1.5; font-weight: 400; }
.labo-program__body { color: var(--color-soft-ink); font-size: 16px; line-height: 2.05; }
.labo-program__body p { margin: 0; }

.labo-online { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr); min-height: 94svh; background: #eee8de; }
.labo-online__image { min-height: 94svh; margin: 0; overflow: hidden; background: #d5cec4; }
.labo-online__image img { width: 100%; height: 100%; object-fit: cover; object-position: center 34%; }
.labo-online__copy { display: flex; flex-direction: column; justify-content: center; padding: 9vw 7vw; }
.labo-online__body { color: var(--color-soft-ink); font-size: 16px; line-height: 2.05; }
.labo-online__body p { margin: 0 0 22px; }
.labo-online__list { margin-top: 25px; border-top: 1px solid var(--color-line); }
.labo-online__list p { margin: 0; padding: 18px 0; border-bottom: 1px solid var(--color-line); font-size: 14px; line-height: 1.7; }

.labo-results { background: #f9f6f0; overflow: hidden; }
.labo-results__head { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(280px,.62fr); column-gap: 8vw; align-items: end; margin-bottom: clamp(62px,8vw,118px); }
.labo-results__head .section-label { grid-column: 1 / -1; }
.labo-results__head .section-title { margin-bottom: 0; max-width: 820px; }
.labo-results__lead { max-width: 470px; color: var(--color-soft-ink); font-size: 15px; line-height: 2; }
.labo-results__lead p { margin: 0; }
.labo-results__list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--color-line); }
.labo-results__item { min-height: 210px; padding: 34px 42px 40px 0; border-bottom: 1px solid var(--color-line); }
.labo-results__item:nth-child(odd):not(.labo-results__item--punch) { border-right: 1px solid var(--color-line); padding-right: clamp(30px,4vw,68px); }
.labo-results__item:nth-child(even):not(.labo-results__item--punch) { padding-left: clamp(30px,4vw,68px); }
.labo-results__item > span { display: block; margin-bottom: 48px; color: var(--color-accent); font: 400 10px/1 Arial,sans-serif; letter-spacing: .17em; }
.labo-results__item > p { max-width: 520px; margin: 0; font-family: "Yu Mincho","Hiragino Mincho ProN",serif; font-size: clamp(22px,2.2vw,31px); font-weight: 400; line-height: 1.65; letter-spacing: .035em; }
.labo-results__item--punch { grid-column: 1 / -1; min-height: clamp(360px,48vw,620px); display: flex; flex-direction: column; justify-content: space-between; margin: clamp(58px,8vw,112px) calc(50% - 50vw); padding: clamp(56px,7vw,96px) max(calc((100vw - var(--container))/2),5vw) clamp(64px,8vw,112px); background: var(--color-deep); color: #f6f1e9; border: 0; }
.labo-results__item--punch > span { color: #c7af93; margin-bottom: clamp(90px,15vw,190px); }
.labo-results__item--punch > p { max-width: 1050px; font-size: clamp(40px,6.4vw,94px); line-height: 1.34; letter-spacing: .025em; }
.labo-results__item--closing { grid-column: 1 / -1; display: grid; grid-template-columns: 90px minmax(0,1fr); align-items: start; min-height: 0; padding: clamp(46px,6vw,78px) 0 0; border: 0; }
.labo-results__item--closing > span { margin: 11px 0 0; }
.labo-results__item--closing > p { max-width: 860px; font-size: clamp(28px,3.5vw,50px); line-height: 1.55; }

.labo-story { background: #e9e1d6; }
.labo-story__grid { display: grid; grid-template-columns: 1fr; }
.labo-story--with-image .labo-story__grid { grid-template-columns: minmax(320px,.85fr) minmax(0,1.15fr); gap: 7vw; align-items: center; }
.labo-story__image { margin: 0; aspect-ratio: .82/1; overflow: hidden; background: #d2c9be; }
.labo-story__image img { width: 100%; height: 100%; object-fit: cover; }
.labo-story__content { max-width: 900px; }
.labo-story__change { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; margin-top: 55px; background: rgba(30,29,27,.15); border: 1px solid rgba(30,29,27,.15); }
.labo-story__change article { padding: 35px 32px; background: #f7f3ed; }
.labo-story__change article > p { margin: 0 0 22px; color: var(--color-accent); font: 400 10px/1 Arial,sans-serif; letter-spacing: .18em; }
.labo-story__change article div { color: var(--color-soft-ink); font-size: 15px; line-height: 2; }
.labo-story__change article div p { margin: 0; }
.labo-story__quote { margin: 48px 0 0; padding: 38px 0 0; border-top: 1px solid var(--color-line); }
.labo-story__quote p { margin: 0 0 20px; font-size: clamp(23px,3vw,40px); line-height: 1.65; }
.labo-story__quote cite { color: var(--color-soft-ink); font-size: 12px; font-style: normal; letter-spacing: .12em; }

.labo-offer { background: #f6f1e9; }
.labo-offer__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,.78fr); gap: 8vw; align-items: start; }
.labo-offer__facts { margin-top: 50px; border-top: 1px solid var(--color-line); }
.labo-offer__facts dl { display: grid; grid-template-columns: 130px 1fr; gap: 24px; margin: 0; padding: 22px 0; border-bottom: 1px solid var(--color-line); }
.labo-offer__facts dt { color: var(--color-accent); font: 400 10px/1.5 Arial,sans-serif; letter-spacing: .15em; }
.labo-offer__facts dd { margin: 0; font-size: 17px; line-height: 1.65; }
.labo-offer__payment-note { margin-top: 18px; color: var(--color-soft-ink); font-size: 13px; line-height: 1.8; }
.labo-offer__payment-note p { margin: 0; }
.labo-offer__card { position: sticky; top: 110px; padding: 48px 42px; background: var(--color-paper); border: 1px solid var(--color-line); box-shadow: 0 30px 70px rgba(34,29,24,.08); }
.labo-offer__card-label { margin: 0 0 28px; color: var(--color-accent); font: 400 10px/1 Arial,sans-serif; letter-spacing: .18em; }
.labo-offer__items { margin-bottom: 34px; border-top: 1px solid var(--color-line); }
.labo-offer__items p { position: relative; margin: 0; padding: 16px 0 16px 22px; border-bottom: 1px solid var(--color-line); font-size: 14px; line-height: 1.75; }
.labo-offer__items p:before { content: "+"; position: absolute; left: 0; color: var(--color-accent); }
.labo-offer__card .button { width: 100%; text-align: center; }
.labo-offer__note { margin-top: 22px; color: var(--color-soft-ink); font-size: 12px; line-height: 1.85; }
.labo-offer__note p { margin: 0; }

.labo-photo { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); min-height: 76svh; background: var(--color-deep); color: #fff; }
.labo-photo__image { min-height: 76svh; margin: 0; overflow: hidden; background: #282522; }
.labo-photo__image img { width: 100%; height: 100%; object-fit: cover; object-position: center center; opacity: .88; }
.labo-photo__copy { display: flex; flex-direction: column; justify-content: center; padding: 8vw; }
.labo-photo__copy .section-label { color: #c7af93; }
.labo-photo__copy > div { max-width: 660px; color: rgba(255,255,255,.78); font-size: 16px; line-height: 2.08; }
.labo-photo__copy > div p { margin: 0; }

.labo-update { background: var(--color-deep); color: #fff; border-top: 1px solid rgba(255,255,255,.14); }
.labo-update .section-label { color: #c7af93; }
.labo-update .section-text { color: rgba(255,255,255,.72); }
.labo-update__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.75fr); gap: 9vw; align-items: start; }

.labo-faq { background: var(--color-paper); }
.labo-faq__grid { display: grid; grid-template-columns: minmax(270px,.65fr) minmax(0,1fr); gap: 8vw; }
.labo-faq__list { border-top: 1px solid var(--color-line); }
.labo-faq__item { border-bottom: 1px solid var(--color-line); }
.labo-faq__item summary { display: grid; grid-template-columns: 44px 1fr 22px; gap: 16px; align-items: center; padding: 25px 0; cursor: pointer; list-style: none; font-size: 16px; line-height: 1.7; }
.labo-faq__item summary::-webkit-details-marker { display: none; }
.labo-faq__item summary .labo-faq__number { color: var(--color-accent); font: 400 10px/1 Arial,sans-serif; letter-spacing: .15em; }
.labo-faq__item summary i { position: relative; width: 16px; height: 16px; }
.labo-faq__item summary i:before,.labo-faq__item summary i:after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 1px; background: currentColor; transition: transform .25s ease; }
.labo-faq__item summary i:after { transform: rotate(90deg); }
.labo-faq__item[open] summary i:after { transform: rotate(0); }
.labo-faq__item > div { padding: 0 38px 27px 60px; color: var(--color-soft-ink); font-size: 14px; line-height: 2; }
.labo-faq__item > div p { margin: 0; }

.labo-cta { background: #151311; color: #fff; text-align: center; }
.labo-cta .section-label { color: #c7af93; }
.labo-cta .section-text { color: rgba(255,255,255,.72); }

@media (max-width: 1100px) {
  .labo-journey__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .labo-journey__item { min-height: 350px; }
}

@media (max-width: 820px) {
  .labo-hero { grid-template-columns: 1fr; min-height: auto; }
  .labo-hero__image { order: 1; min-height: 0; height: 60svh; padding-top: var(--header-height); }
  .labo-hero__copy { order: 2; padding: 68px 20px 86px; }
  .labo-hero__title { font-size: clamp(42px,11vw,62px); }
  .labo-hero__lead { font-size: 15px; }
  .labo-hero__side { display: none; }
  .labo-intro__grid,.labo-fit__grid,.labo-section-head,.labo-update__grid,.labo-faq__grid { grid-template-columns: 1fr; gap: 36px; }
  .labo-intro__body { padding-top: 0; }
  .labo-pain-list { grid-template-columns: 1fr; margin-top: 55px; }
  .labo-pain-list p:nth-child(odd) { border-right: 0; }
  .labo-pain-list p:nth-child(even) { padding-left: 0; }
  .labo-promise { display: flex; flex-direction: column; min-height: auto; background: var(--color-deep); }
  .labo-promise__image { position: relative; height: 64svh; }
  .labo-promise__image:after { background: linear-gradient(0deg,rgba(13,12,10,.55),rgba(13,12,10,.05)); }
  .labo-promise__card { width: 100%; padding: 82px 20px 90px; }
  .labo-journey__grid { grid-template-columns: 1fr; margin-top: 50px; }
  .labo-journey__item { min-height: 0; padding: 34px 28px 42px; }
  .labo-program__list { margin-top: 55px; }
  .labo-program__item { grid-template-columns: 42px 1fr; gap: 14px 18px; padding: 38px 0; }
  .labo-program__name { grid-column: 2; }
  .labo-program__body { grid-column: 2; }
  .labo-online,.labo-photo { grid-template-columns: 1fr; min-height: auto; }
  .labo-online__image,.labo-photo__image { min-height: 0; height: 64svh; }
  .labo-online__copy,.labo-photo__copy { padding: 88px 20px; }
  .labo-story--with-image .labo-story__grid { grid-template-columns: 1fr; gap: 55px; }
  .labo-story__change { grid-template-columns: 1fr; }
  .labo-results__head { grid-template-columns: 1fr; gap: 30px; margin-bottom: 58px; }
  .labo-results__lead { font-size: 14px; line-height: 1.95; }
  .labo-results__list { grid-template-columns: 1fr; }
  .labo-results__item { min-height: 0; padding: 34px 0 38px !important; border-right: 0 !important; }
  .labo-results__item > span { margin-bottom: 24px; }
  .labo-results__item > p { font-size: clamp(22px,6.4vw,29px); line-height: 1.65; }
  .labo-results__item--punch { min-height: 72svh; margin: 54px -20px; padding: 52px 20px 66px !important; border: 0 !important; }
  .labo-results__item--punch > span { margin-bottom: auto; }
  .labo-results__item--punch > p { max-width: 100%; font-size: clamp(40px,11vw,58px); line-height: 1.42; }
  .labo-results__item--closing { display: block; padding-top: 42px !important; }
  .labo-results__item--closing > span { margin: 0 0 24px; }
  .labo-results__item--closing > p { font-size: clamp(27px,7vw,36px); line-height: 1.6; }
  .labo-offer__grid { grid-template-columns: 1fr; gap: 56px; }
  .labo-offer__card { position: static; padding: 36px 24px; }
}

@media (max-width: 560px) {
  .labo-pain-list p { grid-template-columns: 38px 1fr; font-size: 15px; }
  .labo-promise__image,.labo-online__image,.labo-photo__image { height: 54svh; }
  .labo-faq__item summary { grid-template-columns: 32px 1fr 18px; gap: 10px; font-size: 15px; }
  .labo-faq__item > div { padding-left: 42px; }
  .labo-offer__facts dl { grid-template-columns: 100px 1fr; }
}

/* =========================================================
   SINGLE SESSIONS / MENU & PRICE — v0.2.52
========================================================= */
.single-menu-page { background: var(--color-paper); color: var(--color-deep); overflow: clip; }
.single-menu-hero { position: relative; min-height: 100svh; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(420px,.92fr); background: #e9e4dc; }
.single-menu-hero__media { min-height: 100svh; overflow: hidden; margin: 0; }
.single-menu-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.single-menu-hero__copy { display: flex; flex-direction: column; justify-content: center; padding: calc(var(--header-height) + 70px) clamp(48px,7vw,118px) 90px; }
.single-menu-hero__title { max-width: 720px; margin: 24px 0 32px; font-family: var(--font-serif); font-size: clamp(52px,6.2vw,98px); font-weight: 400; line-height: 1.04; letter-spacing: -.055em; }
.single-menu-hero__lead { max-width: 590px; font-size: 15px; line-height: 2.05; }
.single-menu-hero__lead p { margin: 0 0 1.1em; }
.single-menu-hero__note { display: flex; align-items: center; gap: 13px; margin: 30px 0 0; font: 500 10px/1.2 var(--font-sans); letter-spacing: .2em; }
.single-menu-hero__note span { width: 34px; height: 1px; background: currentColor; opacity: .45; }
.single-menu-hero__side { position: absolute; right: 22px; bottom: 30px; margin: 0; writing-mode: vertical-rl; font: 500 9px/1 var(--font-sans); letter-spacing: .25em; opacity: .42; }

.single-menu-guide { border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.single-menu-guide__head,.single-menu-list__head { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(300px,.72fr); gap: clamp(50px,9vw,150px); align-items: end; }
.single-menu-guide__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: clamp(62px,8vw,110px); border-top: 1px solid var(--color-line); border-left: 1px solid var(--color-line); }
.single-menu-guide__item { min-height: 310px; padding: 34px 30px 42px; border-right: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.single-menu-guide__item > p { margin: 0 0 70px; font: 500 10px/1.2 var(--font-sans); letter-spacing: .16em; opacity: .55; }
.single-menu-guide__item h3 { margin: 0 0 24px; font-family: var(--font-serif); font-size: clamp(23px,2vw,31px); font-weight: 400; line-height: 1.45; }
.single-menu-guide__item div { font-size: 13px; line-height: 1.95; opacity: .72; }
.single-menu-guide__item div p { margin: 0; }

.single-menu-list { padding-bottom: 0; }
.single-menu-list__head { margin-bottom: clamp(75px,10vw,150px); }
.single-service { min-height: 880px; display: grid; grid-template-columns: minmax(0,1fr) minmax(520px,1fr); border-top: 1px solid var(--color-line); }
.single-service:last-child { border-bottom: 1px solid var(--color-line); }
.single-service--reverse .single-service__image { order: 2; }
.single-service--reverse .single-service__content { order: 1; }
.single-service__image { min-height: 880px; margin: 0; overflow: hidden; background: #ded8cf; }
.single-service__image img { width: 100%; height: 100%; object-fit: cover; }
.single-service__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(74px,8vw,135px) clamp(44px,7vw,110px); }
.single-service__top { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--color-line); font: 500 10px/1.2 var(--font-sans); letter-spacing: .17em; }
.single-service__top span { opacity: .48; }
.single-service__top p { margin: 0; text-align: right; }
.single-service__title { margin: 50px 0 20px; font-family: var(--font-serif); font-size: clamp(38px,4vw,66px); font-weight: 400; line-height: 1.12; letter-spacing: -.035em; }
.single-service__tagline { margin: 0 0 34px; font-family: var(--font-serif); font-size: clamp(19px,1.7vw,27px); line-height: 1.7; }
.single-service__body { max-width: 650px; font-size: 14px; line-height: 2.05; }
.single-service__body p { margin: 0 0 1.1em; }
.single-service__facts { margin: 46px 0 0; border-top: 1px solid var(--color-line); }
.single-service__facts > div { display: grid; grid-template-columns: 86px 1fr; gap: 22px; padding: 18px 0; border-bottom: 1px solid var(--color-line); }
.single-service__facts dt { font: 500 9px/1.5 var(--font-sans); letter-spacing: .16em; opacity: .48; }
.single-service__facts dd { margin: 0; font-size: 14px; line-height: 1.65; }
.single-service__facts dd small { display: block; margin-top: 5px; font-size: 11px; line-height: 1.7; opacity: .58; }
.single-service__details { display: grid; grid-template-columns: 1fr 1fr; gap: 38px; margin-top: 44px; }
.single-service__details > div > p { margin: 0 0 18px; font: 500 9px/1.2 var(--font-sans); letter-spacing: .16em; opacity: .5; }
.single-service__details ul { list-style: none; padding: 0; margin: 0; }
.single-service__details li { position: relative; padding: 8px 0 8px 17px; font-size: 12px; line-height: 1.65; border-bottom: 1px solid rgba(27,25,22,.09); }
.single-service__details li:before { content: ''; position: absolute; left: 0; top: 16px; width: 5px; height: 1px; background: currentColor; opacity: .55; }
.single-service__action { margin-top: 46px; }
.single-service__action-buttons { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.single-service__action-buttons--split .button { min-width:min(100%, 220px); justify-content:center; text-align:center; }
.single-service__button-secondary { background:transparent; color:var(--color-deep); border-color:var(--color-deep); }
.single-service__button-secondary:hover { background:var(--color-deep); color:#fff; }
.single-service__action > p { max-width: 620px; margin: 18px 0 0; font-size: 11px; line-height: 1.8; opacity: .55; }
@media (max-width: 620px) {
  .single-service__action-buttons--split { display:grid; grid-template-columns:1fr; }
  .single-service__action-buttons--split .button { width:100%; min-width:0; }
}

.single-menu-labo { padding: clamp(100px,13vw,190px) 0; background: var(--color-deep); color: #fff; }
.single-menu-labo__inner { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(330px,.65fr); gap: clamp(50px,10vw,170px); align-items: start; }
.single-menu-labo .section-label,.single-menu-labo .section-title { color: inherit; }
.single-menu-labo__body { max-width: 580px; font-size: 14px; line-height: 2.1; color: rgba(255,255,255,.74); }
.single-menu-labo__body p { margin: 0 0 1.2em; }
.single-menu-labo__body .button { margin-top: 26px; }

.single-menu-flow__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: clamp(62px,8vw,105px); border-top: 1px solid var(--color-line); }
.single-menu-flow__item { min-height: 300px; padding: 36px 30px 42px; border-right: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
.single-menu-flow__item:first-child { border-left: 1px solid var(--color-line); }
.single-menu-flow__item span { font: 500 10px/1 var(--font-sans); letter-spacing: .15em; opacity: .45; }
.single-menu-flow__item h3 { margin: 76px 0 22px; font-family: var(--font-serif); font-size: 25px; font-weight: 400; }
.single-menu-flow__item div { font-size: 12px; line-height: 1.9; opacity: .68; }
.single-menu-flow__item div p { margin: 0; }

.single-menu-faq { background: #e8e3db; }
.single-menu-faq__grid { display: grid; grid-template-columns: minmax(0,.72fr) minmax(520px,1fr); gap: clamp(60px,10vw,160px); align-items: start; }
.single-menu-faq__list { border-top: 1px solid rgba(27,25,22,.22); }
.single-menu-faq__item { border-bottom: 1px solid rgba(27,25,22,.22); }
.single-menu-faq__item summary { display: grid; grid-template-columns: 36px 1fr 22px; gap: 14px; align-items: center; padding: 25px 0; cursor: pointer; list-style: none; font-size: 15px; line-height: 1.7; }
.single-menu-faq__item summary::-webkit-details-marker { display: none; }
.single-menu-faq__item summary span { font: 500 9px/1 var(--font-sans); letter-spacing: .15em; opacity: .48; }
.single-menu-faq__item summary i { position: relative; display: block; width: 16px; height: 16px; }
.single-menu-faq__item summary i:before,.single-menu-faq__item summary i:after { content: ''; position: absolute; left: 0; top: 7px; width: 16px; height: 1px; background: currentColor; transition: transform .25s ease; }
.single-menu-faq__item summary i:after { transform: rotate(90deg); }
.single-menu-faq__item[open] summary i:after { transform: rotate(0); }
.single-menu-faq__item > div { padding: 0 36px 26px 50px; font-size: 13px; line-height: 2; opacity: .7; }
.single-menu-faq__item > div p { margin: 0; }

@media (max-width: 1100px) {
  .single-menu-guide__grid,.single-menu-flow__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .single-service { grid-template-columns: minmax(0,.9fr) minmax(480px,1.1fr); }
}

@media (max-width: 820px) {
  .single-menu-hero { grid-template-columns: 1fr; min-height: auto; }
  .single-menu-hero__media { order: 1; min-height: 0; height: 60svh; padding-top: var(--header-height); }
  .single-menu-hero__copy { order: 2; padding: 68px 20px 86px; }
  .single-menu-hero__title { font-size: clamp(44px,12vw,64px); }
  .single-menu-hero__side { display: none; }
  .single-menu-guide__head,.single-menu-list__head,.single-menu-labo__inner,.single-menu-faq__grid { grid-template-columns: 1fr; gap: 36px; }
  .single-menu-guide__grid { margin-top: 50px; }
  .single-service,.single-service--reverse { display: flex; flex-direction: column; min-height: 0; }
  .single-service--reverse .single-service__image,.single-service--reverse .single-service__content { order: initial; }
  .single-service__image { min-height: 0; height: 62svh; }
  .single-service__content { padding: 76px 20px 88px; }
  .single-service__title { margin-top: 38px; }
  .single-menu-labo { padding: 95px 0; }
  .single-menu-faq__grid { gap: 55px; }
}

@media (max-width: 560px) {
  .single-menu-guide__grid,.single-menu-flow__grid { grid-template-columns: 1fr; }
  .single-menu-guide__item,.single-menu-flow__item { min-height: 0; border-left: 1px solid var(--color-line); }
  .single-menu-guide__item > p { margin-bottom: 50px; }
  .single-service__image { height: 54svh; }
  .single-service__details { grid-template-columns: 1fr; gap: 34px; }
  .single-service__facts > div { grid-template-columns: 70px 1fr; }
  .single-menu-flow__item h3 { margin-top: 48px; }
  .single-menu-faq__item summary { grid-template-columns: 30px 1fr 18px; gap: 10px; font-size: 14px; }
  .single-menu-faq__item > div { padding-left: 40px; padding-right: 18px; }
}

/* =========================================================
   BRAND ME LABO UPDATE — v0.2.53
========================================================= */
.update-page { background: var(--color-paper); }
.update-hero { position: relative; min-height: 100svh; overflow: hidden; display: flex; align-items: flex-end; color: #fff; background: #151311; }
.update-hero__media { position: absolute; inset: 0; margin: 0; }
.update-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 34%; filter: saturate(.72) contrast(1.04) brightness(.72); transform: scale(1.02); }
.update-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,12,10,.82) 0%, rgba(13,12,10,.58) 42%, rgba(13,12,10,.13) 76%), linear-gradient(0deg, rgba(13,12,10,.58), transparent 48%); }
.update-hero__copy { position: relative; z-index: 2; width: min(100%, 760px); padding: clamp(150px,16vw,230px) 6vw clamp(76px,9vw,130px) 8vw; }
.update-hero__copy .section-label { color: #d0b89d; }
.update-hero__title { margin: 0; font-size: clamp(48px,6.6vw,102px); line-height: 1.22; font-weight: 400; letter-spacing: .045em; }
.update-hero__lead { max-width: 620px; margin-top: 34px; color: rgba(255,255,255,.78); font-size: 15px; line-height: 2.08; }
.update-hero__lead p { margin: 0 0 1.2em; }
.update-hero__note { margin: 30px 0 0; font: 400 10px/1.7 Arial,sans-serif; letter-spacing: .18em; color: rgba(255,255,255,.62); }
.update-hero__side { position: absolute; z-index: 2; right: 30px; top: 50%; margin: 0; transform: translateY(-50%); writing-mode: vertical-rl; font: 400 10px/1 Arial,sans-serif; letter-spacing: .25em; color: rgba(255,255,255,.68); }
.update-intro { background: #eee9df; }
.update-intro__grid,.update-section-head { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.68fr); gap: clamp(48px,9vw,145px); align-items: start; }
.update-intro .section-title { max-width: 760px; }
.update-triggers { background: var(--color-paper); }
.update-section-head { margin-bottom: clamp(55px,7vw,95px); }
.update-index { margin: 4px 0 0; justify-self: end; font: 400 11px/1 Arial,sans-serif; letter-spacing: .2em; }
.update-trigger-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(30,29,27,.24); }
.update-trigger-list li { display: grid; grid-template-columns: 70px minmax(0,1fr); gap: 34px; align-items: center; min-height: 118px; padding: 28px 0; border-bottom: 1px solid rgba(30,29,27,.2); }
.update-trigger-list span { font: 400 11px/1 Arial,sans-serif; letter-spacing: .18em; color: var(--color-accent); }
.update-trigger-list p { margin: 0; max-width: 920px; font-size: clamp(18px,2vw,28px); line-height: 1.7; }
.update-themes { background: var(--color-deep); color: #fff; }
.update-themes .section-label { color: #c7af93; }
.update-themes .section-text { color: rgba(255,255,255,.82); }
.update-theme-list { border-top: 1px solid rgba(255,255,255,.22); }
.update-theme { display: grid; grid-template-columns: 80px minmax(0,.9fr) minmax(280px,.55fr); gap: clamp(28px,5vw,80px); padding: clamp(54px,7vw,96px) 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.update-theme__number { font: 400 11px/1 Arial,sans-serif; letter-spacing: .18em; color: #c7af93; padding-top: 8px; }
.update-theme__main > p { margin: 0 0 22px; font: 400 10px/1.5 Arial,sans-serif; letter-spacing: .19em; color: rgba(255,255,255,.56); }
.update-theme h3 { margin: 0 0 24px; font-size: clamp(30px,3.7vw,58px); font-weight: 400; line-height: 1.4; }
.update-theme strong { display: block; margin-bottom: 22px; font-size: 16px; font-weight: 400; line-height: 1.9; color: #d7c5b2; }
.update-theme__main div { color: rgba(255,255,255,.82); font-size: 14px; line-height: 2; }
.update-theme__main div p { margin: 0; }
.update-theme ul { margin: 5px 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.22); }
.update-theme li { padding: 17px 0; border-bottom: 1px solid rgba(255,255,255,.14); font-size: 13px; line-height: 1.75; color: rgba(255,255,255,.76); }
.update-flow { background: #eee9df; }
.update-flow .section-title { max-width: 840px; }
.update-flow__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin-top: 70px; background: rgba(30,29,27,.18); border: 1px solid rgba(30,29,27,.18); }
.update-flow__item { min-height: 360px; padding: 38px 32px; background: #eee9df; }
.update-flow__item span { font: 400 11px/1 Arial,sans-serif; letter-spacing: .18em; color: var(--color-accent); }
.update-flow__item h3 { margin: 78px 0 22px; font-size: 22px; font-weight: 400; line-height: 1.6; }
.update-flow__item div { font-size: 13px; line-height: 2; color: var(--color-soft-ink); }
.update-flow__item div p { margin: 0; }
.update-plans { background: var(--color-paper); }
.update-plan-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.update-plan { min-height: 840px; padding: clamp(44px,5vw,78px); display: flex; flex-direction: column; border: 1px solid rgba(30,29,27,.2); }
.update-plan--year { background: var(--color-deep); color: #fff; border-color: var(--color-deep); }
.update-plan--year .section-label { color: #c7af93; }
.update-plan h2 { margin: 0 0 28px; font-size: clamp(34px,4vw,61px); font-weight: 400; line-height: 1.35; }
.update-plan__body { min-height: 150px; color: var(--color-soft-ink); font-size: 14px; line-height: 2; }
.update-plan--year .update-plan__body { color: rgba(255,255,255,.82); }
.update-plan__body p { margin: 0; }
.update-plan dl { margin: 48px 0 40px; border-top: 1px solid rgba(30,29,27,.22); }
.update-plan--year dl { border-color: rgba(255,255,255,.22); }
.update-plan dl div { display: grid; grid-template-columns: 110px 1fr; gap: 24px; padding: 20px 0; border-bottom: 1px solid rgba(30,29,27,.16); }
.update-plan--year dl div { border-color: rgba(255,255,255,.15); }
.update-plan dt { font: 400 10px/1.6 Arial,sans-serif; letter-spacing: .17em; color: var(--color-accent); }
.update-plan--year dt { color: #c7af93; }
.update-plan dd { margin: 0; font-size: 17px; line-height: 1.55; }
.update-plan ul { margin: 0 0 40px; padding: 0; list-style: none; }
.update-plan li { position: relative; padding: 10px 0 10px 24px; font-size: 13px; line-height: 1.75; }
.update-plan li::before { content: ""; position: absolute; left: 0; top: 20px; width: 10px; height: 1px; background: currentColor; opacity: .5; }
.update-plan .button { align-self: flex-start; margin-top: auto; }
.update-plan__note { margin: 24px 0 0; font-size: 11px; line-height: 1.9; opacity: .62; }
.update-boundary { background: #f4f0e8; }
.update-boundary__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: rgba(30,29,27,.18); border: 1px solid rgba(30,29,27,.18); }
.update-boundary__grid > div { padding: clamp(38px,5vw,70px); background: #f4f0e8; }
.update-boundary__mark { margin: 0 0 55px; font: 400 11px/1 Arial,sans-serif; letter-spacing: .2em; color: var(--color-accent); }
.update-boundary h3 { margin: 0 0 34px; font-size: clamp(25px,3vw,42px); font-weight: 400; }
.update-boundary ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(30,29,27,.2); }
.update-boundary li { padding: 18px 0; border-bottom: 1px solid rgba(30,29,27,.15); font-size: 14px; line-height: 1.8; }
.update-faq { background: var(--color-paper); }
.update-faq__grid { display: grid; grid-template-columns: minmax(300px,.62fr) minmax(0,1fr); gap: clamp(50px,9vw,145px); align-items: start; }
.update-faq__list { border-top: 1px solid rgba(30,29,27,.28); }
.update-faq__item { border-bottom: 1px solid rgba(30,29,27,.22); }
.update-faq__item summary { display: grid; grid-template-columns: 46px minmax(0,1fr) 28px; gap: 16px; align-items: center; min-height: 106px; padding: 24px 0; cursor: pointer; list-style: none; font-size: 16px; line-height: 1.75; }
.update-faq__item summary::-webkit-details-marker { display: none; }
.update-faq__item summary span { font: 400 10px/1 Arial,sans-serif; letter-spacing: .15em; color: var(--color-accent); }
.update-faq__item summary i { position: relative; width: 22px; height: 22px; }
.update-faq__item summary i::before,.update-faq__item summary i::after { content: ""; position: absolute; left: 1px; top: 10px; width: 20px; height: 1px; background: currentColor; transition: transform .3s ease; }
.update-faq__item summary i::after { transform: rotate(90deg); }
.update-faq__item[open] summary i::after { transform: rotate(0deg); }
.update-faq__item > div { padding: 0 42px 34px 62px; color: var(--color-soft-ink); font-size: 14px; line-height: 2; }
.update-faq__item > div p { margin: 0; }
.update-cta { background: #e8e1d5; }

@media (max-width: 980px) {
  .update-intro__grid,.update-section-head,.update-faq__grid { grid-template-columns: 1fr; gap: 34px; }
  .update-index { justify-self: start; }
  .update-theme { grid-template-columns: 56px minmax(0,1fr); }
  .update-theme > ul { grid-column: 2; }
  .update-flow__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .update-plan { min-height: 760px; }
}

@media (max-width: 720px) {
  .update-hero { min-height: 94svh; }
  .update-hero__media img { object-position: 58% center; }
  .update-hero__shade { background: linear-gradient(0deg, rgba(13,12,10,.88) 0%, rgba(13,12,10,.53) 63%, rgba(13,12,10,.2) 100%); }
  .update-hero__copy { padding: 130px 24px 62px; }
  .update-hero__title { font-size: clamp(40px,12vw,62px); }
  .update-hero__lead { font-size: 13px; }
  .update-hero__side { display: none; }
  .update-trigger-list li { grid-template-columns: 40px minmax(0,1fr); gap: 16px; min-height: 96px; }
  .update-trigger-list p { font-size: 17px; }
  .update-theme { grid-template-columns: 1fr; gap: 22px; }
  .update-theme > ul { grid-column: 1; }
  .update-theme__number { margin-bottom: 12px; }
  .update-theme h3 { font-size: 32px; }
  .update-flow__grid,.update-plan-grid,.update-boundary__grid { grid-template-columns: 1fr; }
  .update-flow__item { min-height: 300px; }
  .update-flow__item h3 { margin-top: 50px; }
  .update-plan { min-height: 0; padding: 46px 26px; }
  .update-plan__body { min-height: 0; }
  .update-plan dl div { grid-template-columns: 86px 1fr; gap: 16px; }
  .update-faq__item summary { grid-template-columns: 34px minmax(0,1fr) 24px; font-size: 14px; }
  .update-faq__item > div { padding-left: 50px; }
}

/* =========================================================
   v0.2.58 — TOP mobile readability and reveal timing
   Desktop layout and WordPress-saved content remain unchanged.
========================================================= */
.mobile-only-break { display: none; }

@media (max-width: 900px) {
  /* Keep every hero title line inside narrow smartphone viewports. */
  .hero__content {
    min-width: 0;
    width: 100%;
    overflow: hidden;
  }

  .hero__title {
    width: 100%;
    max-width: 100%;
    font-size: clamp(29px, 8.65vw, 42px);
    line-height: 1.34;
    letter-spacing: .02em;
    overflow-wrap: normal;
  }

  .hero__title span,
  .hero__nowrap {
    max-width: 100%;
    white-space: nowrap;
  }

  /* Use intentional three-line compositions only on smartphones. */
  .mobile-only-break { display: initial; }

  .statement .section-title {
    font-size: clamp(27px, 7.25vw, 38px);
    line-height: 1.56;
    letter-spacing: .025em;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .cta .section-title {
    width: 100%;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
    font-size: clamp(25px, 7.2vw, 36px);
    line-height: 1.58;
    letter-spacing: .02em;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  /* Short, early reveals let body copy become readable as scrolling starts. */
  .js-reveal {
    transform: translateY(8px);
    transition-duration: .32s;
    transition-timing-function: ease-out;
  }

  .hero.is-ready .hero__title .js-reveal:nth-child(1) { transition-delay: 0s; }
  .hero.is-ready .hero__title .js-reveal:nth-child(2) { transition-delay: .05s; }
  .hero.is-ready .hero__title .js-reveal:nth-child(3) { transition-delay: .10s; }
  .hero.is-ready .hero__lead { transition-delay: .15s; }
}

@media (max-width: 360px) {
  .hero__title {
    font-size: clamp(28px, 8.45vw, 31px);
    letter-spacing: .01em;
  }

  .statement .section-title {
    font-size: 24px;
    letter-spacing: .015em;
  }

  .cta .section-title {
    font-size: 24px;
    letter-spacing: .01em;
  }
}

/* v0.2.194 — quiet desktop navigation readability. */
@media (min-width: 901px) {
  .site-nav .menu-label--desktop { gap: 5px; }
  .site-nav .menu-label__en { font-size: 12px; font-weight: 500; }
  .site-nav .menu-label__ja { font-size: 9.5px; opacity: .82; }
}

/* =========================================================
   v0.2.59 — Mobile line-break and narrow-column corrections
   Based on the v58 screen recording. Desktop and saved values unchanged.
========================================================= */
@media (max-width: 900px) {
  /* PERSONAL: the page-specific desktop rule was keeping this section in two columns. */
  .personal-page .personal-philosophy {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .personal-page .personal-philosophy__image {
    min-height: 0;
    height: 66svh;
  }

  .personal-page .personal-philosophy__copy {
    padding: 88px 20px;
  }

  /* Keep the two editor-defined REAL STORY lines intact. */
  .personal-case .section-title {
    max-width: 100%;
    font-size: clamp(25px, 7.9vw, 31px);
    line-height: 1.55;
    letter-spacing: 0;
    white-space: nowrap;
  }

  /* BUSINESS: controlled breaks prevent isolated グ / ィング fragments. */
  .business-service__content h3 {
    max-width: 100%;
    line-height: 1.5;
    letter-spacing: 0;
    white-space: nowrap;
  }

  .business-process__title {
    max-width: 100%;
    font-size: clamp(25px, 7.8vw, 31px);
    line-height: 1.55;
    letter-spacing: 0;
    white-space: nowrap;
  }

  /* BRANDING WORKS: prevent the honorific from becoming a one-character line. */
  .works-case--visual .works-case__client {
    font-size: clamp(18px, 5vw, 21px) !important;
    letter-spacing: 0 !important;
  }

  .works-client-name {
    white-space: nowrap;
  }

  /* ABOUT: use the saved line break plus one mobile-only break for three calm lines. */
  .about-manifesto__title {
    max-width: 100%;
    font-size: clamp(25px, 7.5vw, 31px);
    line-height: 1.52;
    letter-spacing: 0;
    white-space: nowrap;
  }

  /* JOURNAL: give the masthead an inner gutter and keep both English lines on-screen. */
  .journal-masthead .section__inner {
    width: 100%;
    padding-right: 20px;
    padding-left: 20px;
  }

  .journal-masthead__title {
    max-width: 100%;
    font-size: clamp(48px, 14vw, 58px);
    line-height: .92;
    letter-spacing: -.04em;
    white-space: nowrap;
  }
}

@media (max-width: 360px) {
  .personal-case .section-title {
    font-size: 25px;
  }

  .business-process__title {
    font-size: 25px;
  }

  .about-manifesto__title {
    font-size: 25px;
  }

  .journal-masthead__title {
    font-size: 48px;
  }
}

/* =========================================================
   v0.2.60 — Smartphone editorial line composition
   414px-class device review. Desktop and saved WP values unchanged.
========================================================= */
.responsive-copy--desktop { display: inline; }
.responsive-copy--mobile { display: none; }

@media (max-width: 900px) {
  .responsive-copy--desktop { display: none; }
  .responsive-copy--mobile { display: inline; }

  /* Japanese kinsoku and paragraph rhythm. */
  .section-title,
  .section-text,
  .personal-page p,
  .about-page p {
    line-break: strict;
    overflow-wrap: normal;
    text-wrap: pretty;
  }

  .section-text,
  .personal-philosophy__body p,
  .personal-menu-item__body p,
  .business-approach__body p,
  .works-case__intro p:last-child,
  .about-company .section-text {
    letter-spacing: .025em;
  }

  /* TOP */
  .visual-rhythm__copy p:not(.section-label) {
    max-width: 100%;
    font-size: clamp(24px, 6.45vw, 28px);
    line-height: 1.75;
    letter-spacing: .02em;
  }

  .statement .section-text {
    font-size: 15px;
    line-height: 2.05;
    letter-spacing: .01em;
  }

  .works-preview .section-title {
    font-size: clamp(31px, 8.25vw, 35px);
    line-height: 1.55;
    letter-spacing: .01em;
  }

  .about-preview .section-title {
    font-size: clamp(34px, 9vw, 39px);
    line-height: 1.55;
    letter-spacing: .01em;
  }

  /* PERSONAL */
  .personal-page .personal-hero__title {
    max-width: 100%;
    font-size: clamp(33px, 8.8vw, 37px);
    line-height: 1.5;
    letter-spacing: .01em;
  }

  .personal-problem .section-title {
    max-width: 100%;
    font-size: clamp(32px, 8.5vw, 36px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .personal-philosophy__copy .section-title {
    max-width: 100%;
    font-size: clamp(30px, 8vw, 34px);
    line-height: 1.58;
    letter-spacing: .01em;
    white-space: normal;
  }

  .personal-routes .section-title {
    max-width: 100%;
    font-size: clamp(31px, 8.15vw, 35px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .personal-route h3 {
    max-width: 100%;
    font-size: clamp(24px, 6.4vw, 27px);
    line-height: 1.68;
    letter-spacing: 0;
  }

  .personal-menu .section-title {
    max-width: 100%;
    font-size: clamp(34px, 9vw, 39px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .personal-menu-item__name h3 {
    max-width: 100%;
    font-size: clamp(24px, 6.45vw, 27px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  .personal-labo__copy .section-title {
    max-width: 100%;
    font-size: clamp(30px, 8vw, 34px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .personal-gain .section-title {
    max-width: 100%;
    font-size: clamp(31px, 8.15vw, 35px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .personal-voice .section-title {
    max-width: 100%;
    font-size: clamp(27px, 7.15vw, 30px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  .personal-voice-card p {
    font-size: 18px;
    line-height: 1.95;
    letter-spacing: .015em;
  }

  .personal-message .section-title {
    max-width: 100%;
    font-size: clamp(30px, 8vw, 34px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .personal-message__overlay {
    background: linear-gradient(90deg, rgba(15,14,12,.91) 0%, rgba(15,14,12,.74) 66%, rgba(15,14,12,.42) 100%);
  }

  .personal-page .personal-message__content > div {
    font-size: 15px;
    line-height: 2;
  }

  .personal-cta .section-title {
    max-width: 100%;
    font-size: clamp(25px, 6.5vw, 27px);
    line-height: 1.68;
    letter-spacing: 0;
  }

  /* BUSINESS */
  .business-approach .section-title {
    max-width: 100%;
    font-size: clamp(30px, 8vw, 34px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .business-message .section-title {
    max-width: 100%;
    font-size: clamp(30px, 8vw, 34px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .business-message__overlay {
    background: linear-gradient(90deg, rgba(15,14,12,.91) 0%, rgba(15,14,12,.72) 66%, rgba(15,14,12,.40) 100%);
  }

  /* BRANDING WORKS */
  .works-hero__title {
    max-width: 100%;
    font-size: clamp(33px, 8.7vw, 37px);
    line-height: 1.52;
    letter-spacing: .005em;
  }

  .works-case--personal > .section__inner > .works-case__head .section-title {
    max-width: 100%;
    font-size: clamp(29px, 7.75vw, 32px);
    line-height: 1.6;
    letter-spacing: .005em;
  }

  .transformation-editorial__statement h3 {
    max-width: 100%;
    font-size: clamp(29px, 7.7vw, 33px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .works-case--corporate .section-title,
  .works-case--visual .section-title {
    max-width: 100%;
    font-size: clamp(31px, 8.2vw, 35px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .selected-visuals .section-title {
    max-width: 100%;
    font-size: clamp(28px, 8.05vw, 34px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .works-message .section-title {
    max-width: 100%;
    font-size: clamp(28px, 7.35vw, 31px);
    line-height: 1.65;
    letter-spacing: 0;
  }

  /* ABOUT */
  .about-hero__content {
    padding-right: 20px;
    padding-left: 20px;
  }

  .about-hero__title {
    max-width: 100%;
    font-size: clamp(38px, 10.4vw, 44px);
    line-height: 1.32;
    letter-spacing: 0;
  }

  .about-hero__lead {
    max-width: 100%;
    font-size: 9px;
    line-height: 1.9;
    letter-spacing: .14em;
  }

  .about-manifesto__title {
    max-width: 100%;
    font-size: clamp(28px, 7.45vw, 31px);
    line-height: 1.62;
    letter-spacing: 0;
    white-space: normal;
  }

  .about-company .section-title {
    max-width: 100%;
    font-size: clamp(22px, 6.2vw, 26px);
    line-height: 1.72;
    letter-spacing: 0;
  }

  .about-company .section-text,
  .about-company .section-text p {
    color: rgba(243,238,231,.78);
    font-size: 15px;
    line-height: 2.08;
  }

  .about-people__intro .section-title {
    max-width: 100%;
    font-size: clamp(28px, 8.1vw, 34px);
    line-height: 1.58;
    letter-spacing: .005em;
  }

  .about-message__title {
    max-width: 100%;
    font-size: clamp(28px, 7.5vw, 31px);
    line-height: 1.62;
    letter-spacing: 0;
  }
}

@media (max-width: 360px) {
  .visual-rhythm__copy p:not(.section-label) { font-size: 23px; }
  .personal-page .personal-hero__title { font-size: 32px; }
  .personal-philosophy__copy .section-title,
  .business-approach .section-title { font-size: 29px; }
  .personal-route h3 { font-size: 23px; }
  .personal-voice .section-title { font-size: 26px; }
  .personal-cta .section-title { font-size: 24px; }
  .business-message .section-title { font-size: 28px; }
  .works-hero__title { font-size: 32px; }
  .works-case--personal > .section__inner > .works-case__head .section-title { font-size: 28px; }
  .about-hero__title { font-size: 37px; }
  .about-company .section-title { font-size: 22px; }
  .about-people__intro .section-title { font-size: 28px; }
  .about-message__title { font-size: 27px; }
}

/* =========================================================
   v0.2.61 — Smartphone orphan-line correction
   414px-class device review. Desktop and saved WP values unchanged.
========================================================= */
@media (max-width: 900px) {
  /* SINGLE SESSIONS: preserve phrase units instead of browser-made orphans. */
  .single-menu-hero__title {
    max-width: 100%;
    font-size: clamp(37px, 9.55vw, 40px);
    line-height: 1.46;
    letter-spacing: 0;
  }

  .single-menu-hero__lead,
  .single-menu-hero__lead p {
    line-break: strict;
    text-wrap: pretty;
    letter-spacing: 0;
  }

  .single-menu-faq .section-title {
    max-width: 100%;
    font-size: clamp(30px, 7.75vw, 32px);
    line-height: 1.58;
    letter-spacing: 0;
  }

  .single-menu-faq__item summary {
    grid-template-columns: 28px minmax(0, 1fr) 18px;
    gap: 8px;
    font-size: 13.5px;
    line-height: 1.85;
    line-break: strict;
    text-wrap: pretty;
    letter-spacing: 0;
  }

  .single-menu-cta .personal-cta__inner {
    padding-left: 24px;
    padding-right: 24px;
  }

  .single-menu-cta .section-title {
    max-width: 100%;
    font-size: clamp(26px, 7vw, 29px);
    line-height: 1.64;
    letter-spacing: 0;
  }

  .single-menu-cta .personal-cta__body {
    max-width: 340px;
    margin: 0 auto;
    font-size: 14px;
    line-height: 2.05;
    letter-spacing: 0;
    text-align: center;
  }

  .single-menu-cta .personal-cta__body > p {
    margin: 0;
  }

  .single-menu-cta .personal-actions {
    width: 100%;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 24px;
  }

  .single-menu-cta .personal-actions .text-link {
    max-width: 100%;
    margin-left: 0;
    white-space: normal;
  }

  /* BRANDING WORKS / CASE 01 */
  .works-case--personal > .section__inner > .works-case__head .section-title {
    font-size: clamp(29px, 7.6vw, 32px);
    line-height: 1.62;
  }
}

@media (max-width: 360px) {
  .single-menu-hero__title { font-size: 36px; }
  .single-menu-faq .section-title { font-size: 29px; }
  .single-menu-cta .section-title { font-size: 25px; }
  .single-menu-faq__item summary { font-size: 13px; }
}

/* =========================================================
   v0.2.62 — 414px smartphone copy refinement
   Phrase-based line breaks, compact hero hierarchy, and card-title control.
========================================================= */
@media (max-width: 900px) {
  /* SINGLE SESSIONS hero: three balanced lines instead of a five-line orphan. */
  .single-menu-hero__title {
    max-width: 100%;
    font-size: clamp(28px, 7.45vw, 31px);
    line-height: 1.62;
    letter-spacing: .005em;
  }

  .single-menu-hero__lead,
  .single-menu-hero__lead p {
    font-size: 14px;
    line-height: 2.02;
    letter-spacing: .005em;
  }

  /* CHOOSE BY PURPOSE cards: keep verbs with their objects. */
  .single-menu-guide__item h3 {
    max-width: 100%;
    font-size: clamp(22px, 5.9vw, 25px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  /* ABOUT / WHY TOGETHER: natural Japanese and a stable two-line statement. */
  .about-together .section-title {
    max-width: 100%;
    font-size: clamp(27px, 7.15vw, 30px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  /* ABOUT final message: clear three-line hierarchy with no short middle orphan. */
  .about-message__title {
    max-width: 100%;
    font-size: clamp(27px, 7.2vw, 30px);
    line-height: 1.68;
    letter-spacing: 0;
  }

  .about-message .section-text,
  .about-message .section-text p {
    max-width: 100%;
    font-size: 14px;
    line-height: 2.08;
    letter-spacing: .01em;
  }

  /* Requested punctuation removal keeps these lines visually centered. */
  .transformation-editorial__statement h3,
  .works-message .section-title,
  .about-manifesto__title {
    text-wrap: balance;
  }
}

@media (max-width: 360px) {
  .single-menu-hero__title { font-size: 27px; }
  .single-menu-guide__item h3 { font-size: 21px; }
  .about-together .section-title,
  .about-message__title { font-size: 26px; }
}



/* =========================================================
   v0.2.63 — Conversion copy and smartphone Japanese typesetting
   414px-class review. Desktop layout and editable saved values remain intact.
========================================================= */
@media (max-width: 900px) {
  /* PERSONAL: Brand Me Labo promise is specific, compact, and action-oriented. */
  .personal-labo__copy .section-title {
    max-width: 100%;
    font-size: clamp(28px, 7.45vw, 31px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  /* Embedded menu: render the long diagnosis name once and keep the noun phrase intact. */
  .personal-menu-item__name h3 {
    font-size: clamp(21px, 5.65vw, 24px);
    line-height: 1.58;
  }

  .personal-menu-item__name h3 .service-title__keep,
  .single-service__title .service-title__keep {
    white-space: nowrap;
  }

  /* SINGLE SESSIONS menu heading and service title. */
  .single-menu-list__head .section-title {
    max-width: 100%;
    font-size: clamp(30px, 7.9vw, 33px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  .single-service__title {
    max-width: 100%;
    font-size: clamp(29px, 7.6vw, 32px);
    line-height: 1.48;
    letter-spacing: -.01em;
  }

  .single-service__top {
    align-items: flex-start;
  }

  .single-service__top p {
    max-width: calc(100% - 46px);
    font-size: 9px;
    line-height: 1.65;
    letter-spacing: .15em;
  }

  /* BRAND ME LABO: phrase-led line breaks instead of browser-led wrapping. */
  .labo-hero__title {
    max-width: 100%;
    font-size: clamp(34px, 8.9vw, 38px);
    line-height: 1.48;
    letter-spacing: .005em;
  }

  .labo-intro .section-title,
  .labo-program .section-title,
  .labo-story .section-title,
  .labo-update .section-title {
    max-width: 100%;
    font-size: clamp(29px, 7.7vw, 32px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  .labo-promise__card .section-title,
  .labo-photo .section-title {
    max-width: 100%;
    font-size: clamp(29px, 7.7vw, 32px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  .labo-program__name h3 {
    max-width: 100%;
    font-size: clamp(21px, 5.7vw, 24px);
    line-height: 1.62;
    letter-spacing: 0;
  }

  .labo-intro__body,
  .labo-promise__card > div,
  .labo-photo__copy > div,
  .labo-update .section-text {
    font-size: 14px;
    line-height: 2.06;
    letter-spacing: .005em;
  }
}

@media (max-width: 360px) {
  .personal-labo__copy .section-title,
  .single-menu-list__head .section-title,
  .single-service__title,
  .labo-intro .section-title,
  .labo-program .section-title,
  .labo-story .section-title,
  .labo-update .section-title,
  .labo-promise__card .section-title,
  .labo-photo .section-title { font-size: 28px; }

  .labo-hero__title { font-size: 33px; }
  .personal-menu-item__name h3,
  .labo-program__name h3 { font-size: 20px; }
}


/* =========================================================
   v0.2.64 — Mobile service-title consistency and card-height repair
   Keep the formal diagnosis name at one typographic size and remove
   the desktop min-height that leaked into the five mobile journey cards.
========================================================= */
@media (max-width: 900px) {
  .personal-menu-item__name h3 .service-title__keep,
  .single-service__title .service-title__keep {
    display: inline;
    color: inherit;
    font: inherit;
    line-height: inherit;
    letter-spacing: inherit;
    white-space: nowrap;
  }

  .personal-program__grid--five .personal-program__item,
  .personal-program__grid--five .personal-program__item:last-child {
    min-height: 0;
    padding: 34px 28px 42px;
  }
}


/* =========================================================
   v0.2.65 — 414px mobile phrase composition
   Prevent mid-word wraps in the single-session hero, Argyle Make title,
   and ABOUT closing message while preserving desktop and saved WP copy.
========================================================= */
@media (max-width: 900px) {
  .single-menu-hero__title,
  .single-service__title,
  .single-service__tagline,
  .about-message__title {
    word-break: normal;
    overflow-wrap: normal;
    line-break: strict;
  }

  .single-menu-hero__title {
    text-wrap: balance;
  }

  .single-menu-hero__lead .responsive-copy--mobile,
  .about-message .section-text .responsive-copy--mobile {
    line-height: inherit;
    letter-spacing: inherit;
  }

  .single-service__title .responsive-copy--mobile,
  .single-service__tagline .responsive-copy--mobile,
  .about-message__title .responsive-copy--mobile {
    text-wrap: balance;
  }
}

/* =========================================================
   v0.2.66 — Mobile conversion paths and scan-first information order
   Editorial tone is preserved while next actions become unambiguous.
========================================================= */
.top-paths,
.business-scope-quick {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  background: var(--color-paper);
}
.top-paths a,
.business-scope-quick a {
  min-width: 0;
  color: inherit;
  padding: 24px clamp(24px, 5vw, 72px);
}
.top-paths a + a,
.business-scope-quick a + a { border-left: 1px solid var(--color-line); }
.top-paths span,
.business-scope-quick span {
  display: block;
  margin-bottom: 10px;
  color: var(--color-accent);
  font: 400 10px/1.2 Arial, sans-serif;
  letter-spacing: .18em;
}
.top-paths strong,
.business-scope-quick strong {
  display: block;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(16px, 1.8vw, 23px);
  font-weight: 400;
  line-height: 1.6;
}
.business-scope-quick { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.business-scope-quick a { padding-top: 28px; padding-bottom: 28px; }

.works-client-name { white-space: nowrap; }

.mobile-sticky-cta { display: none; }

@media (max-width: 900px) {
  .top-paths {
    position: relative;
    z-index: 4;
    grid-template-columns: 1fr;
  }
  .top-paths a {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
  }
  .top-paths a + a { border-left: 0; border-top: 1px solid var(--color-line); }
  .top-paths span { margin: 0; }
  .top-paths strong { font-size: 16px; }

  .business-scope-quick {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .business-scope-quick a {
    padding: 20px 18px;
    border-bottom: 1px solid var(--color-line);
  }
  .business-scope-quick a:nth-child(odd) { border-left: 0; }
  .business-scope-quick a:nth-child(3),
  .business-scope-quick a:nth-child(4) { border-bottom: 0; }
  .business-scope-quick strong { font-size: 14px; line-height: 1.55; }

  /* PERSONAL: decision-making information precedes philosophy on mobile. */
  .personal-page { display: flex; flex-direction: column; }
  .personal-page > .personal-hero { order: 1; }
  .personal-page > .personal-problem { order: 2; }
  .personal-page > .personal-routes { order: 3; }
  .personal-page > .personal-menu { order: 4; }
  .personal-page > .personal-labo { order: 5; }
  .personal-page > .personal-gain { order: 6; }
  .personal-page > .personal-case { order: 7; }
  .personal-page > .personal-philosophy { order: 8; }
  .personal-page > .personal-voice { order: 9; }
  .personal-page > .personal-message { order: 10; }
  .personal-page > .personal-cta { order: 11; }

  /* BUSINESS: services and proof appear before long-form philosophy. */
  .lapaix-page-business .site-main { display: flex; flex-direction: column; }
  .lapaix-page-business .site-main > .business-hero { order: 1; }
  .lapaix-page-business .site-main > .business-question { order: 3; }
  .lapaix-page-business .site-main > .business-services { order: 4; }
  .lapaix-page-business .site-main > .business-works { order: 5; }
  .lapaix-page-business .site-main > .business-process { order: 6; }
  .lapaix-page-business .site-main > .business-approach { order: 7; }
  .lapaix-page-business .site-main > .business-team { order: 8; }
  .lapaix-page-business .site-main > .business-cta { order: 9; }

  .mobile-sticky-cta {
    position: fixed;
    z-index: 90;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    left: 12px;
    display: block;
    pointer-events: none;
    opacity: 0;
    transform: translateY(calc(100% + 24px));
    transition: opacity .26s ease, transform .34s cubic-bezier(.2,.75,.2,1);
  }
  .mobile-sticky-cta.is-visible {
    pointer-events: auto;
    opacity: 1;
    transform: translateY(0);
  }
  .mobile-sticky-cta.has-reduced-motion { transition: none; }
  .mobile-sticky-cta a {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    min-height: 58px;
    padding: 10px 18px;
    border: 1px solid rgba(255,255,255,.42);
    background: rgba(20,18,16,.96);
    box-shadow: 0 12px 38px rgba(15,13,11,.22);
    color: #fff;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  .mobile-sticky-cta span {
    color: #c7af93;
    font: 400 8px/1.2 Arial, sans-serif;
    letter-spacing: .17em;
  }
  .mobile-sticky-cta strong {
    min-width: 0;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: .035em;
    text-align: right;
  }
}

@media (max-width: 360px) {
  .mobile-sticky-cta { right: 8px; left: 8px; }
  .mobile-sticky-cta a { grid-template-columns: 74px minmax(0, 1fr); padding-right: 14px; padding-left: 14px; }
  .mobile-sticky-cta strong { font-size: 12px; }
}

/* =========================================================
   v0.2.67 — BUSINESS service choices and mobile CTA clarity
   Three distinct service paths now lead to matching sections.
========================================================= */
.business-scope {
  scroll-margin-top: 96px;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  background: var(--color-paper);
}
.business-scope__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 28px;
  padding: 34px clamp(28px, 5vw, 72px) 28px;
  border-bottom: 1px solid var(--color-line);
}
.business-scope__head .section-label { margin: 0; }
.business-scope__head h2 {
  margin: 0;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(22px, 2.35vw, 34px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: .055em;
}
.business-scope-quick {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 0;
}
.business-scope-quick a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 20px;
  align-items: start;
  gap: 18px;
  min-height: 176px;
  padding: 30px clamp(22px, 3.2vw, 48px) 34px;
  transition: background-color .25s ease;
}
.business-scope-quick a:hover { background: rgba(176, 147, 113, .08); }
.business-scope-quick__number {
  margin: 5px 0 0 !important;
  color: var(--color-accent) !important;
  font: 400 10px/1.2 Arial, sans-serif !important;
  letter-spacing: .18em !important;
}
.business-scope-quick__copy {
  margin: 0 !important;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: normal !important;
}
.business-scope-quick__copy strong {
  margin: 0 0 13px;
  font-size: clamp(18px, 1.65vw, 24px);
  line-height: 1.55;
  letter-spacing: .035em;
}
.business-scope-quick__copy small {
  display: block;
  color: var(--color-muted);
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: .035em;
}
.business-scope-quick__arrow {
  align-self: center;
  margin: 0 !important;
  color: inherit !important;
  font: 400 18px/1 Arial, sans-serif !important;
  letter-spacing: 0 !important;
}
.business-service { scroll-margin-top: 96px; }

@media (max-width: 900px) {
  .business-scope { scroll-margin-top: 76px; }
  .business-scope__head {
    display: block;
    padding: 34px 20px 26px;
  }
  .business-scope__head .section-label { margin-bottom: 14px; }
  .business-scope__head h2 { font-size: 27px; }

  .business-scope-quick { grid-template-columns: 1fr; }
  .business-scope-quick a,
  .business-scope-quick a + a {
    grid-template-columns: 34px minmax(0, 1fr) 20px;
    gap: 16px;
    min-height: 0;
    padding: 25px 20px 27px;
    border-left: 0;
    border-top: 1px solid var(--color-line);
    border-bottom: 0;
  }
  .business-scope-quick a:first-child { border-top: 0; }
  .business-scope-quick__copy strong {
    margin-bottom: 8px;
    font-size: 19px;
    line-height: 1.55;
  }
  .business-scope-quick__copy small {
    font-size: 12px;
    line-height: 1.75;
  }
  .business-service { scroll-margin-top: 78px; }

  .mobile-sticky-cta a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 10px 18px;
  }
  .mobile-sticky-cta span { display: none; }
  .mobile-sticky-cta strong {
    width: 100%;
    font-size: 14px;
    line-height: 1.35;
    text-align: center;
    white-space: nowrap;
  }
  .mobile-sticky-cta strong::after {
    content: "  →";
    font-family: Arial, sans-serif;
    font-size: .9em;
  }
}

@media (max-width: 360px) {
  .business-scope-quick a,
  .business-scope-quick a + a { padding-right: 16px; padding-left: 16px; }
  .business-scope-quick__copy strong { font-size: 17px; }
  .business-scope-quick__copy small { font-size: 11px; }
  .mobile-sticky-cta a { display: flex; padding-right: 12px; padding-left: 12px; }
  .mobile-sticky-cta strong { font-size: 12px; }
}

@media (max-width: 900px) {
  .lapaix-page-business .site-main > .business-scope { order: 2; }
}


/* =========================================================
   v0.2.68 — Mobile Japanese line composition and contact gutters
   Preserve desktop layouts while preventing cramped or accidental wraps.
========================================================= */
.personal-labo__availability .personal-labo__availability-copy {
  min-width: 0;
  color: var(--color-soft-ink);
  font-family: inherit;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: normal;
}

@media (max-width: 900px) {
  .personal-routes__head .section-text,
  .personal-cta .section-text {
    max-width: 34em;
  }

  .personal-routes__head .section-text p,
  .personal-cta .section-text p {
    line-height: 2.05;
  }

  .personal-labo__availability p {
    align-items: start;
  }

  .personal-labo__availability-copy .responsive-copy--mobile,
  .personal-program__grid--five .responsive-copy--mobile,
  .personal-routes__head .responsive-copy--mobile,
  .personal-cta .responsive-copy--mobile {
    line-height: inherit;
    letter-spacing: inherit;
  }

  .personal-program__grid--five .personal-program__item,
  .personal-program__grid--five .personal-program__item:last-child {
    padding-right: 24px;
    padding-left: 24px;
  }

  .personal-program__grid--five .personal-program__item div {
    font-size: 14px;
    line-height: 2.05;
    letter-spacing: .015em;
  }

  .contact-hero {
    overflow: hidden;
  }

  .contact-hero .section__inner {
    box-sizing: border-box;
    padding-right: 20px;
    padding-left: 20px;
  }

  .contact-hero__grid {
    min-width: 0;
  }

  .contact-hero__title,
  .contact-hero__copy {
    min-width: 0;
    max-width: 100%;
  }

  .contact-hero__copy {
    padding-top: 28px;
    font-size: 14px;
    line-height: 2.05;
  }

  .contact-hero__lead {
    font-size: clamp(21px, 6.2vw, 27px);
    line-height: 1.75;
  }
}

@media (max-width: 767px) {
  .contact-hero__title {
    font-size: clamp(48px, 15vw, 66px);
    line-height: .9;
    letter-spacing: -.055em;
  }

  .contact-hero__lead br {
    display: initial;
  }

  .contact-hero__copy .responsive-copy--mobile {
    line-height: inherit;
  }
}


/* =========================================================
   v0.2.69 — Mobile copy isolation and contact lead composition
   Prevent responsive body copy inside program cards from inheriting the
   direct-child step-label style, and keep the two intended CONTACT lead
   lines intact on 360–430px smartphones.
========================================================= */
@media (max-width: 900px) {
  .personal-program__grid--five .personal-program__item .responsive-copy--desktop {
    display: none;
  }

  .personal-program__grid--five .personal-program__item .responsive-copy--mobile {
    display: inline;
    margin: 0;
    color: inherit;
    font: inherit;
    line-height: inherit;
    letter-spacing: inherit;
  }

  .contact-hero__lead {
    font-size: clamp(18px, 5vw, 20px);
    line-height: 1.8;
    letter-spacing: .02em;
  }

  .contact-hero__lead .responsive-copy--mobile {
    white-space: nowrap;
  }
}


/* =========================================================
   v0.2.71 — Approachable mobile inquiry surface and scannable concerns
   Desktop presentation remains unchanged.
========================================================= */
.personal-problem__copy--desktop { display: block; }
.personal-problem__copy--mobile { display: none; }

.personal-problem__list {
  display: grid;
  gap: 12px;
  margin: 0 0 42px;
  padding: 0;
  list-style: none;
}
.personal-problem__list li {
  position: relative;
  margin: 0;
  padding-left: 1.35em;
  color: var(--color-soft-ink);
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .015em;
}
.personal-problem__list li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--color-accent);
}
.personal-problem__solution {
  margin: 0;
  color: var(--color-ink);
  font-size: clamp(18px, 4.9vw, 21px);
  line-height: 2;
  letter-spacing: .015em;
}

@media (max-width: 900px) {
  .personal-problem__copy--desktop { display: none; }
  .personal-problem__copy--mobile { display: block; }

  .contact-form-section {
    background: #e3dcd2;
    color: #1a1917;
  }
  .contact-form-section__note {
    border-top-color: rgba(26,25,23,.22);
    color: rgba(26,25,23,.66);
  }
  .contact-form-section .contact-section-title {
    max-width: 100%;
    font-size: clamp(32px, 8.7vw, 38px);
    line-height: 1.55;
    letter-spacing: .005em;
  }
  .lp-contact-form__field > span,
  .lp-contact-form__field legend {
    color: rgba(26,25,23,.72);
  }
  .lp-contact-form__field b,
  .lp-contact-form__field legend span {
    color: #8f755b;
  }
  .lp-contact-form input[type="text"],
  .lp-contact-form input[type="email"],
  .lp-contact-form input[type="tel"],
  .lp-contact-form textarea {
    border-bottom-color: rgba(26,25,23,.34);
    color: #1a1917;
  }
  .lp-contact-form input:focus,
  .lp-contact-form textarea:focus {
    border-color: #1a1917;
  }
  .lp-contact-form input::placeholder,
  .lp-contact-form textarea::placeholder {
    color: rgba(26,25,23,.42);
  }
  .lp-contact-form__choices span {
    border-color: rgba(26,25,23,.28);
  }
  .lp-contact-form__choices input:checked + span {
    color: #f4f1eb;
    background: #1a1917;
    border-color: #1a1917;
  }
  .lp-contact-form__choices input:focus-visible + span {
    outline-color: #1a1917;
  }
  .lp-contact-form__privacy {
    color: rgba(26,25,23,.68);
  }
  .lp-contact-form__privacy input {
    accent-color: #1a1917;
  }
  .lp-contact-form__submit {
    border-color: #1a1917;
    color: #f4f1eb;
    background: #1a1917;
  }
  .lp-contact-form__submit:hover {
    color: #1a1917;
    background: transparent;
  }
  .contact-notice {
    border-color: rgba(26,25,23,.28);
  }
  .contact-notice--error {
    border-color: rgba(140,58,49,.65);
    color: #74332c;
  }
  .personal-problem__solution .responsive-copy--mobile {
    display: inline;
  }
}

/* =========================================================
   v0.2.72 — Mobile Japanese line composition refinements
   PERSONAL lead and concern copy only; desktop remains unchanged.
========================================================= */
@media (max-width: 900px) {
  .personal-hero__lead .responsive-copy--mobile {
    white-space: nowrap;
    font-size: clamp(13.5px, 3.68vw, 15px);
    line-height: 2.05;
    letter-spacing: .005em;
  }

  .personal-problem__list li {
    font-size: clamp(13.5px, 3.68vw, 15px);
    line-height: 1.95;
    letter-spacing: .005em;
  }

  .personal-problem__list li .responsive-copy--mobile {
    white-space: nowrap;
  }

  .personal-problem__solution {
    font-size: clamp(14px, 4.35vw, 18px);
    line-height: 2;
    letter-spacing: .005em;
  }

  .personal-problem__solution .responsive-copy--mobile {
    white-space: nowrap;
  }
}

@media (max-width: 360px) {
  .personal-hero__lead .responsive-copy--mobile {
    font-size: 13px;
  }

  .personal-problem__list li {
    font-size: 13px;
  }

  .personal-problem__solution {
    font-size: 14px;
  }
}



/* =========================================================
   v0.2.73 — Mobile copy composition and unmistakable sticky CTA
   Explicit Japanese phrase breaks; desktop remains unchanged.
========================================================= */
@media (max-width: 900px) {
  .mobile-copy-precise .responsive-copy--mobile {
    display: inline-block;
    white-space: nowrap;
    font-size: clamp(12.5px, 3.55vw, 14.5px);
    line-height: 2.02;
    letter-spacing: 0;
  }

  .mobile-copy-precise .responsive-copy--mobile br {
    display: initial;
  }

  .personal-route .mobile-copy-precise .responsive-copy--mobile,
  .personal-menu-item .mobile-copy-precise .responsive-copy--mobile,
  .works-case__intro .mobile-copy-precise .responsive-copy--mobile,
  .works-meta .mobile-copy-precise .responsive-copy--mobile,
  .selected-visuals__head .mobile-copy-precise .responsive-copy--mobile,
  .works-message .mobile-copy-precise .responsive-copy--mobile,
  .about-page .mobile-copy-precise .responsive-copy--mobile {
    font-size: clamp(12px, 3.35vw, 14px);
  }

  .mobile-sticky-cta {
    right: 16px;
    left: 16px;
  }

  .mobile-sticky-cta a {
    min-height: 60px;
    padding: 9px 12px 9px 20px;
    border: 1px solid #b79c7d;
    background: #171513;
    box-shadow: 0 12px 34px rgba(15,13,11,.28), 0 0 0 3px rgba(244,241,235,.55);
  }

  .mobile-sticky-cta strong {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 14px;
    text-align: left;
  }

  .mobile-sticky-cta strong::after {
    content: "→";
    display: inline-flex;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.7);
    border-radius: 50%;
    font-family: Arial, sans-serif;
    font-size: 13px;
  }
}

@media (max-width: 360px) {
  .mobile-sticky-cta { right: 10px; left: 10px; }
  .mobile-sticky-cta strong { font-size: 12.5px; }
  .mobile-copy-precise .responsive-copy--mobile { font-size: 12px; }
}

/* =========================================================
   v0.2.74 — Mobile alignment, ROLE spacing, and service-copy consistency
   Keep desktop composition and WordPress-saved content unchanged.
========================================================= */
@media (max-width: 900px) {
  /* CONTACT: the explanatory copy is editorial body text, not a centered slogan. */
  .contact-hero__copy,
  .contact-hero__summary,
  .contact-hero__summary .responsive-copy--mobile {
    text-align: left;
  }

  .contact-hero__summary {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }

  /* TOP ROLE: remove the unused mobile minimum height and excess closing band. */
  .role.section {
    padding-bottom: 48px;
  }

  .role-card {
    min-height: 0;
  }

  .role-card:last-child {
    padding-bottom: 34px;
  }

  /* PERSONAL menu: all service descriptions share one mobile type scale,
     even when an owner-edited value bypasses the precise-copy matcher. */
  .personal-menu-item__body,
  .personal-menu-item__body p,
  .personal-menu-item__body .responsive-copy--mobile {
    font-size: clamp(12px, 3.35vw, 14px) !important;
    line-height: 2.02 !important;
    letter-spacing: 0 !important;
  }
}

/* =========================================================
   v0.2.75 — Centered three-line CONTACT summary on smartphones
   Keep desktop composition and saved WordPress content unchanged.
========================================================= */
@media (max-width: 900px) {
  .contact-hero__summary,
  .contact-hero__summary .responsive-copy--mobile {
    width: 100%;
    text-align: center;
  }

  .contact-hero__summary .responsive-copy--mobile {
    font-size: clamp(12px, 3.3vw, 14px);
    line-height: 2.05;
    white-space: nowrap;
  }
}

/* =========================================================
   v0.2.76 — TOP CONTACT summary fixed to three smartphone lines
   Correct the homepage composition; desktop and saved content unchanged.
========================================================= */


/* =========================================================
   BRAND ME LABO — v0.2.77 value architecture
   Add work/life scene design and the PERSONAL IMAGE DIRECTION BOOK while
   protecting the established desktop/mobile rhythm.
========================================================= */
.labo-scenes { background:#ded5c8; }
.labo-section-head--scenes { align-items:start; }
.labo-scenes__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:clamp(60px,8vw,105px); border:1px solid rgba(30,29,27,.15); background:rgba(30,29,27,.15); gap:1px; }
.labo-scenes__card { min-height:520px; padding:clamp(44px,5vw,72px); background:#f7f3ed; }
.labo-scenes__card > p { margin:0 0 clamp(48px,7vw,92px); color:var(--color-accent); font:400 10px/1.4 Arial,sans-serif; letter-spacing:.18em; }
.labo-scenes__card h3 { max-width:520px; margin:0 0 32px; font-size:clamp(28px,3.2vw,48px); line-height:1.55; font-weight:400; }
.labo-scenes__card > div { max-width:620px; color:var(--color-soft-ink); font-size:15px; line-height:2.08; }
.labo-scenes__card > div p { margin:0 0 1.2em; }
.labo-scenes__card--dark { background:var(--color-deep); color:#fff; }
.labo-scenes__card--dark > p { color:#c7af93; }
.labo-scenes__card--dark > div { color:rgba(255,255,255,.72); }

.labo-book { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(430px,.85fr); min-height:90svh; background:#e6ded2; }
.labo-book__visual { display:flex; align-items:center; justify-content:center; min-height:90svh; margin:0; padding:7vw 4vw 7vw 6vw; overflow:hidden; background:#d9d0c4; }
.labo-book__visual img { width:min(100%,980px); height:auto; display:block; }
.labo-book__copy { display:flex; flex-direction:column; justify-content:center; padding:9vw 7vw 9vw 6vw; }
.labo-book__body { max-width:620px; color:var(--color-soft-ink); font-size:16px; line-height:2.08; }
.labo-book__body p { margin:0 0 1.25em; }
.labo-book__list { margin-top:32px; border-top:1px solid var(--color-line); }
.labo-book__list p { position:relative; margin:0; padding:18px 0 18px 24px; border-bottom:1px solid var(--color-line); font-size:14px; line-height:1.7; }
.labo-book__list p:before { content:""; position:absolute; left:0; top:29px; width:10px; height:1px; background:var(--color-accent); }

@media (max-width:820px) {
  .labo-scenes__grid { grid-template-columns:1fr; margin-top:50px; }
  .labo-scenes__card { min-height:0; padding:58px 24px 64px; }
  .labo-scenes__card > p { margin-bottom:44px; }
  .labo-scenes__card h3 { font-size:clamp(25px,6.7vw,29px); line-height:1.6; }
  .labo-scenes__card > div { font-size:14px; line-height:2.06; }
  .labo-book { grid-template-columns:1fr; min-height:0; }
  .labo-book__visual { min-height:0; padding:70px 14px 48px; }
  .labo-book__copy { padding:72px 20px 88px; }
  .labo-book__body { font-size:14px; line-height:2.06; }
  .labo-book .section-title { max-width:100%; font-size:clamp(29px,7.7vw,32px); line-height:1.62; letter-spacing:0; }
}

@media (max-width:360px) {
  .labo-scenes__card h3,
  .labo-book .section-title { font-size:28px; }
}


/* Brand Me Labo v0.2.78 — exact three-month support */
.labo-program-support { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1fr); gap:7vw; margin-top:64px; padding:42px 0; border-top:1px solid var(--color-line); border-bottom:1px solid var(--color-line); }
.labo-program-support__label { margin:0 0 18px; color:var(--color-accent); font:400 10px/1.4 Arial,sans-serif; letter-spacing:.18em; }
.labo-program-support h3 { max-width:520px; margin:0; font-size:clamp(24px,2.4vw,34px); line-height:1.55; font-weight:400; }
.labo-program-support__items { border-top:1px solid var(--color-line); }
.labo-program-support__items p { margin:0; padding:16px 0; border-bottom:1px solid var(--color-line); font-size:14px; line-height:1.7; }
.labo-offer__extra { margin-top:26px; padding:22px 24px; border:1px solid var(--color-line); background:rgba(255,255,255,.38); }
.labo-offer__extra > p { margin:0 0 10px; color:var(--color-accent); font:400 10px/1.4 Arial,sans-serif; letter-spacing:.16em; }
.labo-offer__extra > div { color:var(--color-soft-ink); font-size:12px; line-height:1.85; }
.labo-offer__extra > div p { margin:0; }

/* THE FINAL PORTRAIT is intentionally compact: special, but not a required pillar. */
.labo-photo { display:block; grid-template-columns:none; min-height:0; background:var(--color-deep); color:#fff; }
.labo-photo__inner { display:grid; grid-template-columns:minmax(300px,.76fr) minmax(0,1.24fr); gap:clamp(48px,7vw,110px); align-items:center; }
.labo-photo__image { min-height:0; margin:0; aspect-ratio:4/3; overflow:hidden; background:#282522; }
.labo-photo__image img { width:100%; height:100%; object-fit:cover; object-position:center center; opacity:.9; }
.labo-photo__copy { padding:0; }
.labo-photo__copy .section-label { color:#c7af93; }
.labo-photo__copy > div { max-width:680px; color:rgba(255,255,255,.78); font-size:15px; line-height:2.05; }
.labo-photo__copy > div p { margin:0 0 1.25em; }

.contact-service-context { background:#eee7dd; border-top:1px solid rgba(30,29,27,.08); border-bottom:1px solid rgba(30,29,27,.12); }
.contact-service-context__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.62fr); gap:8vw; align-items:end; }
.contact-service-context__copy { color:var(--color-soft-ink); font-size:15px; line-height:2; }
.contact-service-context__copy p { margin:0 0 24px; }

@media (max-width: 900px) {
  .labo-program-support { grid-template-columns:1fr; gap:32px; margin-top:48px; padding:34px 0; }
  .labo-photo__inner { grid-template-columns:1fr; gap:44px; }
  .labo-photo__image { height:auto; min-height:0; aspect-ratio:1.12/1; }
  .labo-photo__copy { padding-bottom:8px; }
  .contact-service-context__grid { grid-template-columns:1fr; gap:30px; }
}

.contact-service-fixed { padding:22px 24px; border:1px solid var(--color-line); background:#f6f1e9; }
.contact-service-fixed > span { display:block; margin-bottom:8px; color:var(--color-accent); font:400 10px/1.4 Arial,sans-serif; letter-spacing:.16em; }
.contact-service-fixed strong { display:block; margin-bottom:6px; font-size:18px; font-weight:400; }
.contact-service-fixed small { display:block; color:var(--color-soft-ink); font-size:12px; line-height:1.7; }


/* =========================================================
   BRAND ME LABO — v0.2.81 pain → promise → benefits
   Promote the core promise immediately after the pain section, while
   reducing its visual scale and keeping the five benefits editorial.
========================================================= */
.labo-page .labo-promise {
  min-height: 64svh;
}
.labo-page .labo-promise__image:after {
  background: linear-gradient(90deg,rgba(13,12,10,.12),rgba(13,12,10,.56));
}
.labo-page .labo-promise__card {
  width: min(720px,52vw);
  padding: 8vw 7vw 8vw 6vw;
}
.labo-page .labo-promise__card .section-title {
  max-width: 680px;
  font-size: clamp(34px,4vw,56px);
  line-height: 1.48;
}
.labo-page .labo-promise__card > div {
  max-width: 610px;
  font-size: 15px;
  line-height: 2.04;
}

/* v81 no longer uses the oversized fifth benefit. */
.labo-page .labo-results__item--closing {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 90px minmax(0,1fr);
  align-items: start;
  min-height: 0;
  padding: clamp(48px,6vw,80px) 0 0;
  border: 0;
}
.labo-page .labo-results__item--closing > p {
  max-width: 900px;
  font-size: clamp(28px,3.4vw,48px);
  line-height: 1.58;
}

@media (max-width: 820px) {
  .labo-page .labo-promise {
    min-height: 0;
  }
  .labo-page .labo-promise__image {
    height: 43svh;
    min-height: 300px;
  }
  .labo-page .labo-promise__card {
    width: 100%;
    padding: 58px 20px 68px;
  }
  .labo-page .labo-promise__card .section-title {
    max-width: 100%;
    font-size: clamp(28px,7.7vw,34px);
    line-height: 1.58;
  }
  .labo-page .labo-promise__card > div {
    font-size: 14px;
    line-height: 2.02;
  }
  .labo-page .labo-results__item--closing {
    display: block;
    padding-top: 44px !important;
  }
  .labo-page .labo-results__item--closing > span {
    margin: 0 0 24px;
  }
  .labo-page .labo-results__item--closing > p {
    font-size: clamp(26px,7vw,34px);
    line-height: 1.62;
  }
}


/* =========================================================
   BRAND ME LABO — v0.2.83 hero readability + balanced benefits
   The hero uses authored phrase breaks rather than browser-led Japanese wraps.
========================================================= */
@media (min-width: 1181px) {
  .labo-page .labo-hero {
    grid-template-columns: minmax(0,.96fr) minmax(0,1.04fr);
  }
  .labo-page .labo-hero__copy {
    padding: 136px 4vw 82px 5.5vw;
  }
  .labo-page .labo-hero__title {
    max-width: none;
    font-size: clamp(40px,3.3vw,56px);
    line-height: 1.34;
    letter-spacing: .025em;
  }
  .labo-page .labo-hero__title .responsive-copy {
    white-space: nowrap;
  }
  .labo-page .labo-hero__lead {
    max-width: 580px;
    margin-top: 30px;
    font-size: 15px;
    line-height: 1.95;
  }
}

/* The two-column hero becomes visually cramped before the rest of the page does. */
@media (min-width: 821px) and (max-width: 1180px) {
  .labo-page .labo-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .labo-page .labo-hero__image {
    order: 1;
    min-height: 0;
    height: 58svh;
    padding-top: var(--header-height);
  }
  .labo-page .labo-hero__copy {
    order: 2;
    padding: 72px 6vw 88px;
  }
  .labo-page .labo-hero__title {
    max-width: none;
    font-size: clamp(38px,5.2vw,52px);
    line-height: 1.38;
    letter-spacing: .018em;
  }
  .labo-page .labo-hero__title .responsive-copy {
    white-space: nowrap;
  }
  .labo-page .labo-hero__side {
    display: none;
  }
  .labo-page .labo-hero__lead {
    max-width: 640px;
    margin-top: 30px;
  }
}

@media (max-width: 820px) {
  .labo-page .labo-hero__copy {
    padding: 64px 20px 82px;
  }
  .labo-page .labo-hero__title {
    max-width: none;
    font-size: clamp(30px,8vw,34px);
    line-height: 1.48;
    letter-spacing: .005em;
  }
  .labo-page .labo-hero__title .responsive-copy {
    white-space: nowrap;
  }
  .labo-page .labo-hero__lead {
    margin-top: 28px;
  }
}

@media (max-width: 360px) {
  .labo-page .labo-hero__title {
    font-size: 26px;
  }
}


/* =========================================================
   PERSONAL / BRAND ME LABO — v0.2.84
   delayed consultation, 10-session schedule, Argyle bridge
========================================================= */
.labo-schedule { display:grid; grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr); gap:clamp(42px,7vw,100px); align-items:stretch; margin-top:clamp(72px,9vw,120px); padding-top:clamp(54px,7vw,88px); border-top:1px solid var(--color-line); }
.labo-schedule__image { min-height:620px; margin:0; overflow:hidden; background:#d8d2c9; }
.labo-schedule__image img { width:100%; height:100%; object-fit:cover; object-position:center; }
.labo-schedule__content { align-self:center; }
.labo-schedule__title { max-width:620px; margin:20px 0 24px; font-family:var(--font-serif); font-size:clamp(32px,3.4vw,52px); font-weight:400; line-height:1.45; letter-spacing:.035em; }
.labo-schedule__lead { max-width:680px; color:var(--color-soft-ink); font-size:14px; line-height:2; }
.labo-schedule__lead p { margin:0; }
.labo-schedule__list { margin-top:40px; border-top:1px solid var(--color-line); }
.labo-schedule__list p { display:grid; grid-template-columns:52px 1fr; gap:18px; margin:0; padding:15px 0; border-bottom:1px solid var(--color-line); }
.labo-schedule__list span { padding-top:3px; color:var(--color-accent); font:400 10px/1.4 Arial,sans-serif; letter-spacing:.14em; }
.labo-schedule__list strong { font-weight:400; font-size:14px; line-height:1.75; }
.labo-offer__discount { margin-top:30px; padding:28px 26px; border:1px solid var(--color-line); background:rgba(255,255,255,.62); }
.labo-offer__discount > p { margin:0 0 10px; color:var(--color-accent); font:400 9px/1.4 Arial,sans-serif; letter-spacing:.16em; }
.labo-offer__discount h3 { margin:0 0 20px; font-size:20px; line-height:1.65; font-weight:400; }
.labo-offer__discount > div { border-top:1px solid var(--color-line); }
.labo-offer__discount > div p { display:grid; gap:7px; margin:0; padding:15px 0; border-bottom:1px solid var(--color-line); }
.labo-offer__discount strong { font-size:13px; line-height:1.7; font-weight:400; }
.labo-offer__discount span { color:var(--color-soft-ink); font-size:11px; line-height:1.7; }
.single-service__bridge { margin-top:34px; padding:30px 30px 28px; border-top:1px solid var(--color-line); border-bottom:1px solid var(--color-line); background:rgba(255,255,255,.38); }
.single-service__bridge-label { margin:0 0 12px; color:var(--color-accent); font:500 9px/1.4 var(--font-sans); letter-spacing:.17em; }
.single-service__bridge h4 { margin:0 0 15px; font-family:var(--font-serif); font-size:clamp(21px,2vw,29px); font-weight:400; line-height:1.55; }
.single-service__bridge > div { max-width:620px; color:var(--color-soft-ink); font-size:12px; line-height:1.9; }
.single-service__bridge > div p { margin:0; }
.single-service__bridge .text-link { display:inline-flex; margin-top:20px; }

@media (max-width: 820px) {
  .labo-schedule { grid-template-columns:1fr; gap:36px; margin-top:64px; padding-top:48px; }
  .labo-schedule__image { min-height:0; height:58svh; max-height:560px; }
  .labo-schedule__title { margin-top:16px; font-size:clamp(28px,8vw,40px); }
  .labo-schedule__list { margin-top:30px; }
  .labo-schedule__list p { grid-template-columns:42px 1fr; gap:12px; padding:13px 0; }
  .labo-offer__discount { padding:24px 20px; }
  .single-service__bridge { padding:26px 22px 24px; }
}

/* v0.2.84 image focal points for newly assigned photography */
.labo-page .labo-hero__image img { object-position: 66% center; }
.labo-schedule__image img { object-position: 62% center; }
.personal-page .personal-hero__media img { object-position: 46% center; }
.single-menu-page .single-menu-hero__media img { object-position: 50% 42%; }
@media (max-width: 820px) {
  .labo-page .labo-hero__image img { object-position: 68% center; }
  .labo-schedule__image img { object-position: 61% center; }
  .personal-page .personal-hero__media img { object-position: 44% center; }
}


/* v0.2.85 PERSONAL: hero consultation actions removed; mobile consultation begins after the routes section. */

/* v0.2.86 Brand Me Labo inquiry: mandatory past-session check before pricing. */
.bml-history-check { margin: 8px 0 42px; padding: clamp(26px,4vw,42px); border: 1px solid rgba(244,241,235,.22); background: rgba(255,255,255,.035); }
.bml-history-check__label { margin: 0 0 12px; color: #c8b7a0; font: 500 9px/1.4 var(--font-sans); letter-spacing: .18em; }
.bml-history-check h3 { margin: 0; font-family: var(--font-serif); font-size: clamp(21px,2.2vw,31px); font-weight: 400; line-height: 1.55; }
.bml-history-check__lead { max-width: 660px; margin: 16px 0 32px; color: rgba(244,241,235,.72); font-size: 12px; line-height: 1.9; }
.bml-history-check__field { margin-bottom: 30px; }
.lp-contact-form__choices--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.bml-history-check__note { display: block; margin-top: 10px; color: rgba(244,241,235,.58); font-size: 10px; line-height: 1.8; }
.bml-history-check__closing { margin: 2px 0 0; padding-top: 18px; border-top: 1px solid rgba(244,241,235,.14); color: #c8b7a0; font-size: 11px; line-height: 1.8; }

@media (max-width: 760px) {
  .bml-history-check { margin-bottom: 34px; padding: 25px 18px; }
  .lp-contact-form__choices--three { grid-template-columns: 1fr; }
  .bml-history-check__lead { margin-bottom: 26px; }
}

/* v0.2.86 CONTACT fallback privacy notice: avoids a broken privacy-policy link. */
.contact-privacy-notice { background: #f3f0ea; }
.contact-privacy-notice__inner { max-width: 980px; }
.contact-privacy-notice__body { max-width: 760px; margin-top: 28px; color: var(--color-soft-ink); font-size: 12px; line-height: 2; }
.contact-privacy-notice__body p { margin: 0 0 1.4em; }

/* v0.2.86 CONTACT: dedicated Brand Me Labo inquiry shortcut. */
.contact-bml-shortcut { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:32px; align-items:end; margin-top:28px; padding:28px 30px; border:1px solid var(--color-line); background:#f6f1e9; }
.contact-bml-shortcut p { margin:0 0 8px; color:var(--color-accent); font:500 9px/1.4 var(--font-sans); letter-spacing:.17em; }
.contact-bml-shortcut strong { display:block; font-family:var(--font-serif); font-size:18px; font-weight:400; line-height:1.6; }
.contact-bml-shortcut > div > span { display:block; max-width:680px; margin-top:7px; color:var(--color-soft-ink); font-size:11px; line-height:1.8; }
.contact-bml-shortcut .text-link { white-space:nowrap; }
@media (max-width:760px) {
  .contact-bml-shortcut { grid-template-columns:1fr; gap:20px; padding:24px 20px; }
  .contact-bml-shortcut .text-link { white-space:normal; }
}

/* =========================================================
   v0.2.89 — business routing / inquiry resilience / brand visual
========================================================= */
.contact-form-business-note {
  margin:0 0 28px; padding:12px 14px; border-left:2px solid rgba(30,29,27,.32);
  color:rgba(30,29,27,.7); font-size:12px; line-height:1.8;
}

.works-next-path {
  margin-top:clamp(54px,8vw,110px); padding:clamp(28px,4vw,52px);
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr); gap:clamp(30px,6vw,90px); align-items:end;
  border-top:1px solid rgba(30,29,27,.24); border-bottom:1px solid rgba(30,29,27,.24);
}
.works-next-path > div > p { margin:0 0 15px; font:500 10px/1.4 Arial,sans-serif; letter-spacing:.18em; }
.works-next-path h3 { margin:0 0 18px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:400; font-size:clamp(25px,3.1vw,46px); line-height:1.45; letter-spacing:.025em; }
.works-next-path > div > span { display:block; max-width:690px; font-size:14px; line-height:2; color:rgba(30,29,27,.75); }
.works-next-path__actions { display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.works-next-path--corporate { background:#ebe6dd; }
.works-next-path--visual { background:#f0ece6; }
.business-service__content .text-link { display:inline-flex; margin-top:20px; }

.brand-visual-page { background:#f2eee8; color:#1e1d1b; }
.brand-visual-hero { position:relative; min-height:min(900px,92svh); display:grid; grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr); overflow:hidden; background:#161513; color:#f5f1eb; }
.brand-visual-hero__media { margin:0; min-height:760px; overflow:hidden; }
.brand-visual-hero__media img { width:100%; height:100%; object-fit:cover; display:block; }
.brand-visual-hero__copy { padding:clamp(140px,14vw,210px) clamp(42px,7vw,110px) 80px; display:flex; flex-direction:column; justify-content:flex-end; }
.brand-visual-hero__title { margin:0 0 32px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:400; font-size:clamp(44px,5.7vw,86px); line-height:1.27; letter-spacing:.015em; }
.brand-visual-hero__lead { margin:0 0 32px; max-width:590px; font-size:14px; line-height:2.15; color:rgba(245,241,235,.82); }
.brand-visual-hero .text-link { color:#f5f1eb; }

.brand-visual-intro__grid, .brand-visual-estimate__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.72fr); gap:clamp(46px,8vw,120px); align-items:start; }
.brand-visual-services { border-top:1px solid rgba(30,29,27,.16); }
.brand-visual-services__grid { margin-top:clamp(45px,6vw,80px); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid rgba(30,29,27,.18); }
.brand-visual-service { position:relative; padding:clamp(30px,4vw,58px); border-bottom:1px solid rgba(30,29,27,.18); }
.brand-visual-service:nth-child(odd) { border-right:1px solid rgba(30,29,27,.18); }
.brand-visual-service > span { display:block; margin-bottom:38px; font:400 11px/1 Arial,sans-serif; letter-spacing:.18em; opacity:.5; }
.brand-visual-service > p { margin:0 0 12px; font:500 10px/1.4 Arial,sans-serif; letter-spacing:.16em; }
.brand-visual-service h3 { margin:0 0 18px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(23px,2.4vw,34px); line-height:1.45; font-weight:400; }
.brand-visual-service div { font-size:14px; line-height:2; color:rgba(30,29,27,.72); }
.brand-visual-service div p { margin:0; }

.brand-visual-gallery { display:grid; grid-template-columns:1.15fr .85fr .85fr 1.15fr; gap:8px; padding:8px; background:#161513; }
.brand-visual-gallery figure { margin:0; aspect-ratio:3/4; overflow:hidden; }
.brand-visual-gallery figure:nth-child(2), .brand-visual-gallery figure:nth-child(3) { margin-top:12%; margin-bottom:12%; }
.brand-visual-gallery img { width:100%; height:100%; object-fit:cover; display:block; }

.brand-visual-process { background:#e8e1d7; }
.brand-visual-process__grid { margin-top:clamp(45px,6vw,78px); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid rgba(30,29,27,.2); }
.brand-visual-process article { padding:34px 24px 12px 0; border-right:1px solid rgba(30,29,27,.18); min-height:270px; }
.brand-visual-process article + article { padding-left:24px; }
.brand-visual-process article:last-child { border-right:0; }
.brand-visual-process article span { font:400 11px/1 Arial,sans-serif; letter-spacing:.18em; opacity:.52; }
.brand-visual-process article h3 { margin:50px 0 16px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:400; font-size:21px; line-height:1.55; }
.brand-visual-process article p { margin:0; font-size:13px; line-height:1.95; color:rgba(30,29,27,.7); }

.brand-visual-estimate { padding:clamp(80px,11vw,160px) 0; }
.brand-visual-estimate__grid > div:last-child { font-size:15px; line-height:2.15; }
.brand-visual-estimate__grid > div:last-child p { margin:0 0 28px; }
.brand-visual-cta { padding:clamp(90px,13vw,180px) 0; background:#171614; color:#f3eee7; text-align:center; }
.brand-visual-cta .section-text { margin:28px auto 35px; max-width:720px; color:rgba(243,238,231,.74); }

@media (max-width: 900px) {
  .works-next-path { grid-template-columns:1fr; padding:28px 0; }
  .works-next-path__actions { align-items:stretch; }
  .works-next-path__actions .button { width:100%; text-align:center; justify-content:center; }
  .brand-visual-hero { min-height:0; grid-template-columns:1fr; }
  .brand-visual-hero__media { min-height:0; aspect-ratio:4/5; order:2; }
  .brand-visual-hero__copy { padding:130px 22px 48px; order:1; }
  .brand-visual-hero__title { font-size:clamp(38px,11vw,58px); line-height:1.3; }
  .brand-visual-intro__grid, .brand-visual-estimate__grid { grid-template-columns:1fr; gap:32px; }
  .brand-visual-services__grid { grid-template-columns:1fr; }
  .brand-visual-service:nth-child(odd) { border-right:0; }
  .brand-visual-gallery { grid-template-columns:1fr 1fr; }
  .brand-visual-gallery figure:nth-child(2), .brand-visual-gallery figure:nth-child(3) { margin:0; }
  .brand-visual-process__grid { grid-template-columns:1fr; }
  .brand-visual-process article, .brand-visual-process article + article { min-height:0; padding:28px 0; border-right:0; border-bottom:1px solid rgba(30,29,27,.18); }
  .brand-visual-process article h3 { margin:22px 0 12px; }
}

/* v0.2.89 PHOTO / MOVIE inquiry outline */
.visual-request-check { margin: 8px 0 42px; padding: clamp(26px,4vw,42px); border: 1px solid rgba(244,241,235,.22); background: rgba(255,255,255,.035); }
.visual-request-check h3 { margin: 0; font-family: var(--font-serif); font-size: clamp(21px,2.2vw,31px); font-weight: 400; line-height: 1.55; }
.visual-request-check .lp-contact-form__grid { margin-top: 22px; }
.lp-contact-form__choices--four { grid-template-columns: repeat(4,minmax(0,1fr)); }
@media (max-width: 900px) {
  .lp-contact-form__choices--four { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .visual-request-check { margin-bottom: 34px; padding: 25px 18px; }
  .lp-contact-form__choices--four { grid-template-columns: 1fr; }
}


/* =========================================================
   v0.2.90 — direct booking / production pricing / mail safety
========================================================= */
.brand-visual-price{background:#f3f0ea;color:#191816}
.brand-visual-price__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);gap:clamp(36px,8vw,120px);align-items:end;margin-bottom:clamp(42px,6vw,82px)}
.brand-visual-price__head .section-text{margin:0;max-width:590px}
.brand-visual-price__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid rgba(25,24,22,.24)}
.brand-visual-price__item{position:relative;padding:34px clamp(20px,3vw,44px) 38px 0;border-bottom:1px solid rgba(25,24,22,.24)}
.brand-visual-price__item:nth-child(even){padding-left:clamp(20px,3vw,44px);border-left:1px solid rgba(25,24,22,.24)}
.brand-visual-price__item span{display:block;margin-bottom:26px;font:400 10px/1 Arial,sans-serif;letter-spacing:.18em;opacity:.5}
.brand-visual-price__item h3{margin:0 0 14px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(19px,2vw,27px);font-weight:400;line-height:1.5}
.brand-visual-price__item strong{display:block;margin-bottom:18px;font-family:"Times New Roman","Yu Mincho",serif;font-size:clamp(25px,2.7vw,38px);font-weight:400;line-height:1.2}
.brand-visual-price__item p{max-width:520px;margin:0;font-size:13px;line-height:1.9;opacity:.72}
.brand-visual-price__item:last-child{grid-column:1/-1;border-left:0;padding-left:0}
.brand-visual-usage{padding:clamp(82px,11vw,160px) 0;background:#171715;color:#f4f0e7}
.brand-visual-usage__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(48px,9vw,150px);align-items:start}
.brand-visual-usage .section-text{margin:0;max-width:650px;color:inherit}
.brand-visual-usage .section-text p{margin:0;line-height:2.15}
@media(max-width:760px){
  .brand-visual-price__head,.brand-visual-usage__grid{grid-template-columns:1fr;gap:28px}
  .brand-visual-price__grid{grid-template-columns:1fr}
  .brand-visual-price__item,.brand-visual-price__item:nth-child(even){padding:28px 0;border-left:0}
  .brand-visual-price__item:last-child{grid-column:auto}
  .brand-visual-price__item strong{font-size:29px}
}


/* =========================================================
   v0.2.91 — 2026 mobile motion / accessibility / navigation polish
   Motion is subtle and progressive: content remains usable without it.
========================================================= */
:root {
  --motion-fast: 200ms;
  --motion-medium: 520ms;
  --motion-slow: 780ms;
  --ease-editorial: cubic-bezier(.22, 1, .36, 1);
}

.js-reveal { opacity: 1; transform: none; }
html.has-js .js-reveal {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition-property: opacity, transform;
  transition-duration: var(--motion-medium), var(--motion-medium);
  transition-timing-function: var(--ease-editorial), var(--ease-editorial);
  transition-delay: var(--reveal-delay, 0ms);
}
html.has-js .js-reveal.is-visible { opacity: 1; transform: translate3d(0, 0, 0); }
.hero.is-ready .hero__title .js-reveal:nth-child(1) { --reveal-delay: 80ms; transition-delay: var(--reveal-delay); }
.hero.is-ready .hero__title .js-reveal:nth-child(2) { --reveal-delay: 160ms; transition-delay: var(--reveal-delay); }
.hero.is-ready .hero__title .js-reveal:nth-child(3) { --reveal-delay: 240ms; transition-delay: var(--reveal-delay); }
.hero.is-ready .hero__lead { --reveal-delay: 300ms; transition-delay: var(--reveal-delay); }

:where(a, button, input, textarea, select, summary):focus-visible {
  outline: 2px solid #b79c7d;
  outline-offset: 4px;
}
.skip-link:focus {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 9999;
  width: auto;
  height: auto;
  clip: auto;
  overflow: visible;
  padding: 10px 14px;
  background: #fffdf8;
  color: #1e1d1b;
  border: 1px solid rgba(30,29,27,.18);
  font-size: 13px;
  letter-spacing: .06em;
}
.site-brand > a,
.site-brand .custom-logo-link { display: inline-flex; align-items: center; color: inherit; }
.site-brand .custom-logo { width: auto; max-height: 34px; }

@view-transition { navigation: auto; }
@keyframes aya-page-out { to { opacity: 0; } }
@keyframes aya-page-in { from { opacity: 0; } }
@media (prefers-reduced-motion: no-preference) {
  ::view-transition-old(root) { animation: aya-page-out 180ms ease-out both; }
  ::view-transition-new(root) { animation: aya-page-in 240ms var(--ease-editorial) both; }
}

@keyframes aya-editorial-drift {
  from { translate: 0 6px; scale: 1.012; }
  to { translate: 0 -4px; scale: 1.004; }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .js-image-drift { overflow: hidden; }
    .js-image-drift > img {
      animation-name: aya-editorial-drift;
      animation-duration: auto;
      animation-timing-function: linear;
      animation-fill-mode: both;
      animation-timeline: view(block);
      animation-range: entry 0% cover 78%;
    }
  }
}

.button,
.mobile-sticky-cta a { transition-timing-function: var(--ease-editorial); }
@media (hover: none) and (pointer: coarse) {
  .button:active,
  .mobile-sticky-cta a:active { transform: scale(.985); }
}

@media (max-width: 900px) {
  body.has-open-menu { overflow: hidden; }
  html:not(.has-js) .site-nav {
    position: static;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
  .site-nav {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate3d(0, -8px, 0);
    transition: opacity var(--motion-fast) ease-out, transform 260ms var(--ease-editorial), visibility 0s linear 260ms;
  }
  .site-nav.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate3d(0, 0, 0);
    transition-delay: 0s;
  }
  .site-menu-button span:not(.screen-reader-text) {
    transform-origin: center;
    transition: transform 240ms var(--ease-editorial), opacity 160ms ease-out;
  }
  .site-menu-button[aria-expanded="true"] span:nth-child(1) { transform: translateY(4px) rotate(45deg); }
  .site-menu-button[aria-expanded="true"] span:nth-child(2) { transform: translateY(-4px) rotate(-45deg); }

  html.has-js .js-reveal {
    transform: translate3d(0, 11px, 0);
    transition-duration: 500ms, 500ms;
  }
  html.has-js .js-reveal.is-visible { transform: translate3d(0, 0, 0); }
  .hero.is-ready .hero__title .js-reveal:nth-child(1) { --reveal-delay: 0ms; }
  .hero.is-ready .hero__title .js-reveal:nth-child(2) { --reveal-delay: 55ms; }
  .hero.is-ready .hero__title .js-reveal:nth-child(3) { --reveal-delay: 110ms; }
  .hero.is-ready .hero__lead { --reveal-delay: 150ms; }
  .mobile-sticky-cta { transition: opacity var(--motion-fast) ease-out, transform 300ms var(--ease-editorial); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.has-js .js-reveal,
  html.has-js .js-reveal.is-visible { opacity: 1; transform: none; transition: none; }
  .js-image-drift > img { animation: none !important; translate: 0 0 !important; scale: 1 !important; }
  .site-nav,
  .site-menu-button span:not(.screen-reader-text),
  .mobile-sticky-cta,
  .button { transition: none !important; }
  ::view-transition-old(root),
  ::view-transition-new(root) { animation-duration: .001ms !important; }
}


/* =========================================================
   v0.2.92 — Japan smartphone viewport hardening / clear aftercare / selected works
   Primary QA widths: 375, 390, 393, 412, 414, 430, 440 CSS px.
========================================================= */
.update-eligibility { padding-top: clamp(58px,8vw,92px); padding-bottom: 0; background:#f3eee7; }
.update-eligibility__inner { padding: clamp(30px,4vw,46px); border-top:1px solid var(--color-line); border-bottom:1px solid var(--color-line); }
.update-eligibility__inner h2 { max-width:780px; margin:0 0 18px; font-family:var(--font-serif); font-size:clamp(24px,2.6vw,38px); font-weight:400; line-height:1.55; }
.update-eligibility__inner > div { max-width:760px; color:var(--color-soft-ink); font-size:14px; line-height:2; }

.brand-visual-price__works { margin-top:34px; }
.brand-visual-selected { scroll-margin-top:90px; padding: clamp(82px,10vw,140px) 0 8px; background:#161513; color:#f4f0e7; }
.brand-visual-selected__head { padding-bottom:clamp(44px,6vw,78px); }
.brand-visual-selected__head .section-title { max-width:760px; }
.brand-visual-selected__head .section-text { max-width:680px; color:rgba(244,240,231,.72); }

@media (max-width: 440px) {
  :root { --mobile-gutter: clamp(20px, 5.6vw, 24px); }
  html, body { max-width:100%; overflow-x:clip; }

  /* A little more breathing room than the old 20px fixed gutter. */
  .section { padding-left:var(--mobile-gutter); padding-right:var(--mobile-gutter); }
  .section__inner, .section__inner--narrow { min-width:0; max-width:100%; }
  .hero__content, .personal-hero__content, .business-hero__content,
  .works-hero__content, .about-hero__content, .contact-hero__content,
  .single-menu-hero__content, .labo-page .labo-hero__copy,
  .brand-visual-hero__copy {
    min-width:0; max-width:100%; padding-left:var(--mobile-gutter); padding-right:var(--mobile-gutter);
  }

  /* Japanese headings: preserve meaning first, then visual balance. */
  .section-title, .page-title, .contact-section-title,
  .personal-problem .section-title, .personal-philosophy__copy .section-title,
  .personal-routes .section-title, .personal-menu .section-title,
  .personal-labo__copy .section-title, .personal-gain .section-title,
  .personal-voice .section-title, .personal-message .section-title, .personal-cta .section-title,
  .business-approach .section-title, .business-message .section-title,
  .works-case .section-title, .selected-visuals .section-title, .works-message .section-title,
  .about-manifesto__title, .about-message__title, .about-together .section-title,
  .single-menu-list__head .section-title, .single-menu-faq .section-title, .single-menu-cta .section-title,
  .labo-intro .section-title, .labo-program .section-title, .labo-story .section-title,
  .labo-update .section-title, .labo-promise__card .section-title, .labo-photo .section-title,
  .brand-visual-page .section-title, .update-page .section-title {
    max-width:100%;
    font-size:clamp(27px,7.2vw,30px);
    line-height:1.62;
    letter-spacing:0;
    white-space:normal;
    word-break:normal;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:balance;
  }

  .hero__title, .personal-page .personal-hero__title, .business-hero__title,
  .works-hero__title, .single-menu-hero__title, .labo-page .labo-hero__title,
  .brand-visual-hero__title, .update-hero__title {
    max-width:100%;
    font-size:clamp(31px,8.5vw,35px);
    line-height:1.52;
    letter-spacing:0;
    word-break:normal;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:balance;
  }

  /* Old nowrap fixes solved one device but could clip on another. Allow fallback wrapping. */
  .hero__title span, .hero__nowrap,
  .personal-case .section-title, .business-service__content h3, .business-process__title,
  .about-manifesto__title, .journal-masthead__title, .works-client-name,
  .personal-menu-item__name h3 .service-title__keep, .single-service__title .service-title__keep,
  .mobile-sticky-cta strong, .contact-hero__lead .responsive-copy--mobile,
  .personal-hero__lead .responsive-copy--mobile, .personal-problem__list li .responsive-copy--mobile,
  .personal-problem__solution .responsive-copy--mobile, .mobile-copy-precise .responsive-copy--mobile,
  .contact-hero__summary .responsive-copy--mobile, .labo-page .labo-hero__title .responsive-copy {
    max-width:100%;
    white-space:normal !important;
  }

  .responsive-copy--mobile { max-width:100%; }
  .mobile-copy-precise .responsive-copy--mobile { display:inline; font-size:inherit; line-height:inherit; }
  .mobile-copy-precise .responsive-copy--mobile br { display:initial; }

  .section-text, .section-text p, .content-body p,
  .personal-page p, .business-page p, .works-page p, .about-page p,
  .brand-visual-page p, .update-page p {
    max-width:100%;
    line-break:strict;
    word-break:normal;
    overflow-wrap:normal;
    text-wrap:pretty;
  }

  .personal-hero__lead, .business-hero__lead, .works-hero__lead,
  .single-menu-hero__lead, .labo-hero__lead, .brand-visual-hero__lead,
  .contact-hero__summary, .update-hero__lead {
    max-width:100%;
    font-size:14px;
    line-height:2;
    letter-spacing:0;
  }

  .business-service__content h3, .update-theme h3, .update-plan h2,
  .brand-visual-service h3, .brand-visual-process article h3 {
    max-width:100%; font-size:clamp(23px,6.3vw,26px); line-height:1.65; letter-spacing:0;
    white-space:normal; word-break:normal; line-break:strict; text-wrap:balance;
  }
  .update-trigger-list p { font-size:15px; line-height:1.9; }
  .contact-closing__ja { width:auto; max-width:100%; margin-left:0; font-size:clamp(22px,6vw,25px); text-wrap:balance; }

  .personal-message__content { width:calc(100% - (var(--mobile-gutter) * 2)); }
  .brand-visual-selected { scroll-margin-top:72px; padding-top:74px; }
  .brand-visual-selected__head { padding-left:var(--mobile-gutter); padding-right:var(--mobile-gutter); }
  .brand-visual-gallery { grid-template-columns:1fr 1fr; gap:6px; padding:6px; }
  .brand-visual-gallery figure { aspect-ratio:3/4; }
  .brand-visual-price__item strong { font-size:clamp(25px,7.1vw,29px); }
  .update-eligibility__inner { padding:30px var(--mobile-gutter); }
  .update-eligibility__inner h2 { font-size:clamp(24px,6.6vw,27px); line-height:1.7; text-wrap:balance; }
}

@media (max-width: 374px) {
  :root { --mobile-gutter: 18px; }
  .section-title, .page-title,
  .brand-visual-page .section-title, .update-page .section-title { font-size:26px; }
  .hero__title, .personal-page .personal-hero__title, .business-hero__title,
  .works-hero__title, .single-menu-hero__title, .labo-page .labo-hero__title,
  .brand-visual-hero__title, .update-hero__title { font-size:30px; }
}

/* =========================================================
   v0.2.93 — Japanese desktop typography / signature motion / gallery discovery
   Desktop QA targets: 1280x720, 1366x768, 1536x864, 1920x1080, 2560x1440.
   Mobile portfolio: editorial preview first, immersive full gallery second.
========================================================= */

/* Japanese line breaking: strict punctuation rules everywhere; where supported,
   Chrome's auto-phrase keeps short Japanese copy together by bunsetsu. */
:where(
  .hero__title, .section-title, .page-title,
  .personal-hero__title, .business-hero__title, .works-hero__title,
  .single-menu-hero__title, .labo-hero__title, .brand-visual-hero__title,
  .update-hero__title, .about-manifesto__title, .about-message__title,
  .contact-hero h1, .faq-hero h1,
  .single-service__title, .brand-visual-service h3,
  .brand-visual-process article h3, .works-case h2, .works-case h3
) {
  line-break: strict;
  word-break: normal;
  overflow-wrap: normal;
  text-wrap: balance;
}
@supports (word-break: auto-phrase) {
  :where(
    .hero__title, .section-title, .page-title,
    .personal-hero__title, .business-hero__title, .works-hero__title,
    .single-menu-hero__title, .labo-hero__title, .brand-visual-hero__title,
    .update-hero__title, .about-manifesto__title, .about-message__title,
    .contact-hero h1, .faq-hero h1,
    .single-service__title, .brand-visual-service h3,
    .brand-visual-process article h3, .works-case h2, .works-case h3
  ) { word-break: auto-phrase; }
}
:where(
  .section-text, .content-body p, .personal-page p, .business-page p,
  .single-menu-page p, .labo-page p, .brand-visual-page p, .update-page p,
  .works-page p, .about-page p, .faq-page p
) {
  line-break: strict;
  word-break: normal;
  text-wrap: pretty;
}

/* Shooting page — confirmed inclusions, expenses and pre-shoot styling path. */
.brand-visual-price__note {
  max-width: 920px;
  margin: 34px 0 0;
  padding-top: 22px;
  border-top: 1px solid rgba(25,24,22,.18);
  color: rgba(25,24,22,.68);
  font-size: 12px;
  line-height: 2;
}
.brand-visual-prep {
  padding: clamp(86px, 11vw, 160px) 32px;
  background: #e7ded2;
  color: #191816;
  border-top: 1px solid rgba(25,24,22,.12);
  border-bottom: 1px solid rgba(25,24,22,.12);
}
.brand-visual-prep__grid {
  display: grid;
  grid-template-columns: minmax(0,.92fr) minmax(320px,.78fr);
  gap: clamp(48px,8vw,126px);
  align-items: start;
}
.brand-visual-prep__body { max-width: 620px; }
.brand-visual-prep__body p { margin: 0 0 30px; color: rgba(25,24,22,.72); font-size: 15px; line-height: 2.12; }
.brand-visual-prep__body .text-link { display: inline-flex; }

/* Full-screen work viewing now feels intentionally designed rather than a utility modal. */
.selected-visuals__mobile-invite { display: none; }
.visual-lightbox {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 220ms ease, visibility 0s linear 220ms;
}
.visual-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}
.visual-lightbox__figure { position: relative; }
.visual-lightbox__figure img {
  transform: scale(.982);
  opacity: .86;
  transition: transform 420ms var(--ease-editorial), opacity 260ms ease;
}
.visual-lightbox.is-open .visual-lightbox__figure img { transform: scale(1); opacity: 1; }
.visual-lightbox__figure img.is-changing { animation: aya-lightbox-image-in 320ms var(--ease-editorial) both; }
@keyframes aya-lightbox-image-in {
  from { opacity: .35; transform: translate3d(10px,0,0) scale(.985); }
  to { opacity: 1; transform: translate3d(0,0,0) scale(1); }
}
.visual-lightbox__counter {
  position: absolute;
  left: 0;
  top: -30px;
  display: flex;
  gap: 8px;
  align-items: baseline;
  font: 400 10px/1 Arial,sans-serif;
  letter-spacing: .18em;
  color: rgba(255,255,255,.62);
}
.visual-lightbox__counter i { font-style: normal; opacity: .45; }

/* Signature desktop motion. No scroll hijacking; all movement stays under 8px. */
@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
  .button {
    transform: translate3d(var(--magnet-x,0px), var(--magnet-y,0px), 0);
    transition: transform 180ms var(--ease-editorial), background .35s ease, color .35s ease;
    will-change: transform;
  }
  [data-pointer-depth] { --pointer-x: 0; --pointer-y: 0; }
  [data-pointer-depth] img {
    transform: translate3d(calc(var(--pointer-x) * 5px), calc(var(--pointer-y) * 4px), 0) scale(1.012);
    transition: transform 420ms var(--ease-editorial), filter 420ms ease;
    will-change: transform;
  }
  [data-pointer-depth]:hover img { filter: saturate(1.025) contrast(1.01); }

  .site-nav a { position: relative; }
  .site-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -7px;
    width: 100%;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform 380ms var(--ease-editorial);
  }
  .site-nav a:hover::after, .site-nav a:focus-visible::after {
    transform: scaleX(1);
    transform-origin: left center;
  }

  html.is-motion-boot:not(.is-motion-ready) :where(
    .hero__image-wrap, .personal-hero__media, .business-hero__media,
    .works-hero__media, .single-menu-hero__media, .labo-hero__media, .labo-hero__image,
    .brand-visual-hero__media, .update-hero__media, .about-hero__media
  ) {
    clip-path: inset(0 0 10% 0);
    opacity: .72;
    transform: scale(.992);
  }
  html.is-motion-ready :where(
    .hero__image-wrap, .personal-hero__media, .business-hero__media,
    .works-hero__media, .single-menu-hero__media, .labo-hero__media, .labo-hero__image,
    .brand-visual-hero__media, .update-hero__media, .about-hero__media
  ) {
    clip-path: inset(0 0 0 0);
    opacity: 1;
    transform: scale(1);
    transition: clip-path 920ms var(--ease-editorial), opacity 620ms ease, transform 920ms var(--ease-editorial);
  }

  @supports (animation-timeline: view()) {
    .brand-visual-service,
    .brand-visual-process article,
    .role-card {
      animation: aya-desktop-section-float linear both;
      animation-timeline: view(block);
      animation-range: entry 5% cover 52%;
    }
    @keyframes aya-desktop-section-float {
      from { translate: 0 16px; opacity: .82; }
      to { translate: 0 0; opacity: 1; }
    }
  }
}

/* Desktop viewport calibration around Japan's common monitor resolutions. */
@media (min-width: 901px) and (max-width: 1279px) {
  :root { --container: calc(100vw - 96px); }
  .site-header { padding-inline: 24px; }
  .site-nav ul { gap: 15px; }
  .site-nav a { font-size: 10.5px; letter-spacing: .12em; }
  .menu-label__ja { letter-spacing: .045em; }
  .section { padding-inline: 48px; }
  .section-title, .page-title { font-size: clamp(34px,4.15vw,53px); }
  .hero__title { font-size: clamp(46px,5.1vw,65px); }
  .brand-visual-hero__title { font-size: clamp(42px,4.8vw,62px); }
}
@media (min-width: 1280px) and (max-width: 1439px) {
  :root { --container: 1120px; }
  .section-title, .page-title { font-size: clamp(38px,4vw,58px); }
}
@media (min-width: 1440px) and (max-width: 1799px) {
  :root { --container: 1180px; }
}
@media (min-width: 1800px) {
  :root { --container: 1280px; }
  .section { padding-inline: 48px; }
  .section-text { max-width: 760px; }
  .selected-visuals__track { grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: clamp(34px,3vw,64px); row-gap: clamp(70px,6vw,116px); }
  .selected-visuals__float:nth-child(even) { margin-top: 0; }
  .selected-visuals__float:nth-child(3n+2) { margin-top: 84px; }
  .selected-visuals__float:nth-child(3n) { margin-top: 28px; }
}
@media (min-width: 901px) and (max-height: 820px) {
  .hero__image-wrap { min-height: 460px; }
  .brand-visual-hero__media { min-height: clamp(590px,82svh,680px); }
  .hero__content { padding-top: 11svh; padding-bottom: 7svh; }
  .section { padding-top: 98px; padding-bottom: 98px; }
  .brand-visual-hero__copy { padding-top: 110px; padding-bottom: 54px; }
}

/* Brand visual page's own four-photo sample: a magazine rhythm on phone, not four tiny tiles. */
@media (max-width: 767px) {
  .brand-visual-prep { padding: 72px var(--mobile-gutter); }
  .brand-visual-prep__grid { grid-template-columns: 1fr; gap: 25px; }
  .brand-visual-prep__body p { font-size: 14px; line-height: 2.05; }
  .brand-visual-price__note { margin-top: 26px; padding-top: 18px; font-size: 11px; line-height: 1.9; }

  .brand-visual-gallery {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 7px;
    padding: 7px;
  }
  .brand-visual-gallery figure { margin: 0 !important; aspect-ratio: 3/4; }
  .brand-visual-gallery figure:nth-child(1),
  .brand-visual-gallery figure:nth-child(4) { grid-column: 1/-1; aspect-ratio: 4/5; }

  /* SELECTED BRAND VISUALS: vertical discovery first. The rail is intentionally
     removed because hidden sideways content was too easy to miss. */
  .selected-visuals { overflow: visible; }
  .selected-visuals__stage {
    width: 100%;
    margin: 0;
    padding: 10px 0 20px;
    overflow: visible;
    cursor: default;
    touch-action: auto;
  }
  .selected-visuals__track {
    display: grid;
    grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
    gap: 13px 10px;
    width: 100%;
    min-height: 0;
    padding: 0;
    align-items: start;
  }
  .selected-visuals__float,
  .selected-visuals__float:nth-child(3n),
  .selected-visuals__float:nth-child(5n),
  .selected-visuals__float:nth-child(10),
  .selected-visuals__float:nth-child(20) {
    width: 100%;
    margin: 0;
    transform: none !important;
    scroll-snap-align: none;
  }
  .selected-visuals__float:nth-child(n+7) { display: none; }
  .selected-visuals__float:nth-child(1) { grid-column: 1/-1; width: 92%; justify-self: start; }
  .selected-visuals__float:nth-child(2) { grid-column: 2; margin-top: -20px; }
  .selected-visuals__float:nth-child(3) { grid-column: 1; margin-top: 38px; }
  .selected-visuals__float:nth-child(4) { grid-column: 1/-1; width: 82%; justify-self: end; margin-top: 18px; }
  .selected-visuals__float:nth-child(5) { grid-column: 1; margin-top: 28px; }
  .selected-visuals__float:nth-child(6) { grid-column: 2; margin-top: 0; }
  .selected-visuals__frame { box-shadow: 0 18px 42px rgba(28,24,20,.11); }
  .selected-visuals__frame img { width: 100%; height: auto; transform: none !important; }
  .selected-visuals__caption { gap: 8px; margin-top: 9px; }
  .selected-visuals__caption small {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 9px;
    line-height: 1.55;
  }
  .selected-visuals__guide { display: none; }
  .selected-visuals__mobile-invite {
    display: grid;
    gap: 18px;
    margin-top: 36px;
    padding: 26px 0 0;
    border-top: 1px solid rgba(23,22,21,.2);
  }
  .selected-visuals__mobile-invite p { margin: 0; font-size: 12px; line-height: 1.9; color: #5f5a54; }
  .selected-visuals__mobile-invite p span {
    display: block;
    margin-bottom: 8px;
    font: 400 9px/1 Arial,sans-serif;
    letter-spacing: .19em;
    color: #171615;
  }
  .selected-visuals__open-all {
    width: 100%;
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    border: 1px solid #171615;
    background: #171615;
    color: #fff;
    font-family: inherit;
    font-size: 12px;
    letter-spacing: .08em;
  }
  .selected-visuals__open-all i { font-style: normal; font-size: 17px; }

  .visual-lightbox {
    grid-template-columns: 44px minmax(0,1fr) 44px;
    padding: 64px 4px 24px;
    background: rgba(11,10,9,.985);
  }
  .visual-lightbox__figure { gap: 13px; max-height: calc(100svh - 92px); touch-action: pan-y; }
  .visual-lightbox__figure img { max-width: calc(100vw - 24px); max-height: 78svh; }
  .visual-lightbox__figure figcaption { max-width: calc(100vw - 56px); font-size: 9px; line-height: 1.6; }
  .visual-lightbox__counter { left: 10px; top: -29px; }
  .visual-lightbox__close { top: 16px; right: 17px; }
  .visual-lightbox__nav { align-self: end; margin-bottom: 14px; font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  html.is-motion-boot :where(
    .hero__image-wrap, .personal-hero__media, .business-hero__media,
    .works-hero__media, .single-menu-hero__media, .labo-hero__media, .labo-hero__image,
    .brand-visual-hero__media, .update-hero__media, .about-hero__media
  ) { clip-path: none !important; opacity: 1 !important; transform: none !important; }
  [data-pointer-depth] img, .button { transform: none !important; }
  .visual-lightbox, .visual-lightbox__figure img { transition: none !important; animation: none !important; }
}

@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
  .selected-visuals__float::after {
    content: "VIEW";
    position: absolute;
    left: 50%;
    top: 45%;
    z-index: 4;
    width: 66px;
    height: 66px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(20,19,17,.88);
    color: #fff;
    font: 400 9px/1 Arial,sans-serif;
    letter-spacing: .16em;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(calc(-50% + var(--pointer-x,0) * 26px), calc(-50% + var(--pointer-y,0) * 22px), 0) scale(.82);
    transition: opacity 220ms ease, transform 360ms var(--ease-editorial);
    backdrop-filter: blur(7px);
  }
  .selected-visuals__float:hover::after,
  .selected-visuals__float:focus-visible::after {
    opacity: 1;
    transform: translate3d(calc(-50% + var(--pointer-x,0) * 26px), calc(-50% + var(--pointer-y,0) * 22px), 0) scale(1);
  }
}

/* =========================================================
   v0.2.94 — PERSONAL PHOTO / contextual styling / curated works
========================================================= */
.brand-visual-price__portrait-group {
  margin-bottom: clamp(44px, 6vw, 78px);
  padding-bottom: clamp(38px, 5vw, 62px);
  border-bottom: 0;
}
.brand-visual-price__grid--portrait .brand-visual-price__item:last-child {
  grid-column: auto;
  padding-left: clamp(20px,3vw,44px);
  border-left: 1px solid rgba(25,24,22,.24);
}
.brand-visual-price__prep {
  margin-top: 18px;
  padding: clamp(24px,3vw,38px);
  display: grid;
  grid-template-columns: minmax(220px,.7fr) minmax(0,1.3fr);
  gap: clamp(26px,5vw,76px);
  align-items: start;
  background: #e8e1d7;
}
.brand-visual-price__prep .section-label { margin-bottom: 13px; }
.brand-visual-price__prep h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(21px,2vw,30px);
  line-height: 1.55;
  font-weight: 400;
}
.brand-visual-price__prep > div:last-child > p {
  margin: 0 0 16px;
  max-width: 690px;
  font-size: 13px;
  line-height: 2;
  color: rgba(25,24,22,.72);
}

.brand-visual-personal-photo {
  padding: clamp(88px,11vw,158px) 0;
  background: #ddd5ca;
  color: #191816;
}
.brand-visual-personal-photo__head {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(300px,.72fr);
  gap: clamp(46px,8vw,120px);
  align-items: end;
  margin-bottom: clamp(48px,7vw,88px);
}
.brand-visual-personal-photo__head .section-text { margin: 0; max-width: 620px; }
.brand-visual-personal-photo__grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  border-top: 1px solid rgba(25,24,22,.28);
}
.brand-visual-personal-photo__card {
  padding: clamp(30px,4vw,52px) clamp(24px,4vw,56px) 12px 0;
  border-bottom: 1px solid rgba(25,24,22,.28);
}
.brand-visual-personal-photo__card + .brand-visual-personal-photo__card {
  padding-left: clamp(24px,4vw,56px);
  border-left: 1px solid rgba(25,24,22,.28);
}
.brand-visual-personal-photo__card > p:first-child {
  margin: 0 0 30px;
  font: 500 9px/1.4 var(--font-sans);
  letter-spacing: .2em;
}
.brand-visual-personal-photo__card h3 {
  margin: 0 0 15px;
  font-family: var(--font-serif);
  font-size: clamp(24px,2.5vw,36px);
  font-weight: 400;
  line-height: 1.45;
}
.brand-visual-personal-photo__card strong {
  display: block;
  margin-bottom: 22px;
  font-family: "Times New Roman",var(--font-serif);
  font-size: clamp(24px,2.3vw,34px);
  font-weight: 400;
  line-height: 1.3;
}
.brand-visual-personal-photo__card div { max-width: 650px; }
.brand-visual-personal-photo__card div p {
  margin: 0 0 18px;
  font-size: 13px;
  line-height: 2;
  color: rgba(25,24,22,.72);
}
.brand-visual-personal-photo__card .text-link { margin-top: 10px; }

/* Photo / movie selected works: intentionally curated rather than duplicating
   the complete BRANDING WORKS portfolio. Core works remain visible in vertical
   page flow; fullscreen viewing is an optional second layer. */
.brand-visual-gallery {
  display: grid;
  grid-template-columns: repeat(12,minmax(0,1fr));
  gap: 10px;
  padding: 10px;
  background: #161513;
  overflow: visible;
}
.brand-visual-gallery__item {
  position: relative;
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #f5f1eb;
  text-align: left;
  cursor: zoom-in;
  overflow: hidden;
}
.brand-visual-gallery__item:nth-child(1) { grid-column: span 7; }
.brand-visual-gallery__item:nth-child(2) { grid-column: span 5; margin-top: 12%; }
.brand-visual-gallery__item:nth-child(3) { grid-column: span 4; }
.brand-visual-gallery__item:nth-child(4) { grid-column: span 8; }
.brand-visual-gallery__item:nth-child(5) { grid-column: span 7; }
.brand-visual-gallery__item:nth-child(6) { grid-column: span 5; margin-top: 8%; }
.brand-visual-gallery__frame {
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: #24221f;
}
.brand-visual-gallery__item:nth-child(3) .brand-visual-gallery__frame,
.brand-visual-gallery__item:nth-child(4) .brand-visual-gallery__frame { aspect-ratio: 4 / 3; }
.brand-visual-gallery__frame img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 850ms cubic-bezier(.2,.7,.2,1), filter 450ms ease;
}
.brand-visual-gallery__caption {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px 4px 18px;
}
.brand-visual-gallery__caption > span {
  font: 400 9px/1.4 var(--font-sans);
  letter-spacing: .16em;
  opacity: .55;
}
.brand-visual-gallery__caption small {
  font-size: 10px;
  line-height: 1.7;
  letter-spacing: .04em;
  color: rgba(245,241,235,.72);
}
@media (hover:hover) and (pointer:fine) {
  .brand-visual-gallery__item:hover .brand-visual-gallery__frame img { transform: scale(1.028); }
  .brand-visual-gallery__item:focus-visible .brand-visual-gallery__frame img { transform: scale(1.018); }
}
.brand-visual-gallery__actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 24px clamp(18px,3vw,38px) 0;
  background: #161513;
  color: #f5f1eb;
}
.brand-visual-gallery__open {
  appearance: none;
  border: 1px solid rgba(245,241,235,.45);
  border-radius: 999px;
  padding: 13px 19px;
  background: transparent;
  color: inherit;
  font: 500 10px/1.3 var(--font-sans);
  letter-spacing: .12em;
  cursor: pointer;
}
.brand-visual-gallery__open span { margin-left: 7px; }
.brand-visual-gallery__actions .text-link { color: inherit; }

.personal-photo-path {
  display: grid;
  grid-template-columns: minmax(0,1.08fr) minmax(380px,.92fr);
  min-height: 640px;
  background: #1b1a18;
  color: #f3eee7;
}
.personal-photo-path__image { margin: 0; min-height: 640px; overflow: hidden; }
.personal-photo-path__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.personal-photo-path__content {
  padding: clamp(70px,8vw,126px) clamp(38px,7vw,100px);
  align-self: center;
}
.personal-photo-path__content .section-title { color: inherit; }
.personal-photo-path__content .section-text { margin: 26px 0; max-width: 590px; color: rgba(243,238,231,.76); }
.personal-photo-path__content .text-link { color: inherit; }

.single-menu-photo-path {
  padding: clamp(84px,10vw,145px) 0;
  background: #e7e0d6;
}
.single-menu-photo-path__grid {
  display: grid;
  grid-template-columns: minmax(0,.9fr) minmax(350px,.72fr);
  gap: clamp(46px,8vw,120px);
  align-items: center;
}
.single-menu-photo-path__image { margin: 0; aspect-ratio: 4/5; overflow: hidden; }
.single-menu-photo-path__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.single-menu-photo-path__content .section-text { margin: 24px 0 14px; }
.single-menu-photo-path__wedding {
  margin: 0 0 22px;
  padding-top: 15px;
  border-top: 1px solid rgba(25,24,22,.2);
  font-size: 12px;
  line-height: 1.9;
  color: rgba(25,24,22,.7);
}

@media (max-width: 900px) {
  .brand-visual-price__grid--portrait .brand-visual-price__item:last-child {
    padding-left: 0;
    border-left: 0;
  }
  .brand-visual-price__prep,
  .brand-visual-personal-photo__head,
  .personal-photo-path,
  .single-menu-photo-path__grid { grid-template-columns: 1fr; }
  .brand-visual-price__prep { gap: 18px; }
  .brand-visual-personal-photo__grid { grid-template-columns: 1fr; }
  .brand-visual-personal-photo__card,
  .brand-visual-personal-photo__card + .brand-visual-personal-photo__card {
    padding: 30px 0;
    border-left: 0;
  }
  .personal-photo-path__image { min-height: 0; aspect-ratio: 4/5; }
  .personal-photo-path__content { padding: 56px 22px 68px; }
}

@media (max-width: 760px) {
  .brand-visual-price__portrait-group { margin-bottom: 36px; padding-bottom: 34px; }
  .brand-visual-price__prep { margin-top: 12px; padding: 23px 18px; }
  .brand-visual-price__prep h3 { font-size: 21px; line-height: 1.55; }
  .brand-visual-personal-photo { padding: 78px 0; }
  .brand-visual-personal-photo__head { gap: 24px; margin-bottom: 42px; }
  .brand-visual-personal-photo__card strong { font-size: 24px; line-height: 1.45; }

  .brand-visual-gallery {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
    overflow: visible;
    touch-action: pan-y;
  }
  .brand-visual-gallery__item { margin: 0 !important; }
  .brand-visual-gallery__item:nth-child(1),
  .brand-visual-gallery__item:nth-child(5) { width: 100%; }
  .brand-visual-gallery__item:nth-child(2) { width: 74%; margin-left: auto !important; }
  .brand-visual-gallery__item:nth-child(3) { width: 86%; }
  .brand-visual-gallery__item:nth-child(4) { width: 78%; margin-left: auto !important; }
  .brand-visual-gallery__item:nth-child(6) { width: 84%; }
  .brand-visual-gallery__item:nth-child(3) .brand-visual-gallery__frame,
  .brand-visual-gallery__item:nth-child(4) .brand-visual-gallery__frame { aspect-ratio: 4/5; }
  .brand-visual-gallery__caption { padding: 10px 2px 18px; }
  .brand-visual-gallery__caption small { font-size: 9px; }
  .brand-visual-gallery__actions { flex-direction: column; align-items: stretch; padding: 18px 10px 26px; }
  .brand-visual-gallery__open { width: 100%; min-height: 46px; }
  .brand-visual-gallery__actions .text-link { align-self: flex-start; }

  .single-menu-photo-path { padding: 72px 0; }
  .single-menu-photo-path__grid { gap: 32px; }
  .single-menu-photo-path__image { aspect-ratio: 4/5; }
}

@media (prefers-reduced-motion: reduce) {
  .brand-visual-gallery__frame img { transition: none !important; transform: none !important; }
}


/* =========================================================
   v0.2.95 — TOP HERO / cinematic editorial video
   Copy + media are editable; framing and typography remain theme-controlled.
========================================================= */
.home .site-header {
  color: #f3f0e8;
  background: transparent;
  mix-blend-mode: normal;
  padding: clamp(22px, 3vw, 42px) clamp(22px, 4.25vw, 70px);
  min-height: 0;
  transition: color 260ms ease, background 260ms ease;
}
.home .site-brand { position: relative; z-index: 3; font-family: "Times New Roman", serif; font-size: clamp(14px, 1.25vw, 20px); letter-spacing: .2em; text-transform: uppercase; }
.home .site-brand .custom-logo { max-height: 27px; filter: brightness(0) invert(1); }
.home .site-menu-button {
  position: relative; z-index: 3; display: grid; grid-template-columns: auto 27px; width: auto; height: auto;
  align-items: center; justify-content: end; column-gap: 13px;
  padding: 4px 0; color: inherit; border: 0; background: transparent; cursor: pointer;
}
.home .site-menu-button::before { content: "MENU"; grid-column: 1; grid-row: 1; font: 400 9px/1 Arial, sans-serif; letter-spacing: .22em; }
.home .site-menu-button[aria-expanded="true"]::before { content: "CLOSE"; }
.home .site-menu-button > span:not(.screen-reader-text) { grid-column: 2; grid-row: 1; justify-self: end; width: 27px; height: 1px; background: currentColor; display: block; transform-origin: center; transition: transform 240ms var(--ease-editorial), opacity 160ms ease-out; }
.home .site-menu-button > span:nth-child(1) { transform: translateY(-3px); }
.home .site-menu-button > span:nth-child(2) { width: 17px; transform: translateY(4px); }
.home .site-menu-button[aria-expanded="true"] > span:nth-child(1) { width: 24px; transform: rotate(45deg); }
.home .site-menu-button[aria-expanded="true"] > span:nth-child(2) { width: 24px; transform: rotate(-45deg); }
.home.has-open-menu { overflow: hidden; }
.home .site-nav {
  position: fixed; inset: 0; z-index: 2; display: grid; align-items: center;
  padding: clamp(110px, 12vw, 170px) clamp(28px, 7vw, 110px) clamp(60px, 7vw, 100px);
  background: rgba(9, 9, 8, .985); color: #f3f0e8;
  opacity: 0; visibility: hidden; pointer-events: none; transform: translate3d(0,-8px,0);
  transition: opacity 260ms ease-out, transform 420ms var(--ease-editorial), visibility 0s linear 420ms;
}
.home .site-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translate3d(0,0,0); transition-delay: 0s; }
.home .site-nav ul { width: min(100%, 980px); margin: 0 0 0 auto; display: grid; gap: clamp(16px, 2.4svh, 30px); text-align: right; }
.home .site-nav li { overflow: hidden; }
.home .site-nav a { display: inline-flex; justify-content: flex-end; color: inherit; font-family: "Times New Roman", "Yu Mincho", serif; font-size: clamp(28px, 4.2vw, 66px); line-height: 1.05; letter-spacing: .02em; }
.home .site-nav .menu-label--desktop { display: inline-flex; align-items: baseline; justify-content: flex-end; gap: 18px; }
.home .site-nav .menu-label--mobile { display: none; }
.home .site-nav .menu-label__en { font-family: "Times New Roman", serif; font-size: 1em; }
.home .site-nav .menu-label__ja { font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: .28em; letter-spacing: .08em; opacity: .62; }
html:not(.has-js) body.home .site-nav { position: static; opacity: 1; visibility: visible; pointer-events: auto; transform: none; background: #0a0a09; }

.hero.hero--video {
  position: relative; display: block; width: 100%; height: 100svh; min-height: 650px;
  overflow: hidden; isolation: isolate; background: #000; color: #f3f0e8;
}
.hero.hero--video::before { content: none; }
.hero--video .hero__media { position: absolute; inset: 0; z-index: -4; min-height: 0; padding: 0; background: #000; }
.hero--video .hero__video,
.hero--video .hero__motion-still,
.hero--video .hero__motion-still img { width: 100%; height: 100%; display: block; }
.hero--video .hero__video { object-fit: cover; object-position: 50% 50%; background: #000; }
.hero--video .hero__motion-still { position: absolute; inset: 0; display: none; }
.hero--video .hero__motion-still img { object-fit: cover; object-position: 50% 50%; }
.hero--video .hero__veil {
  position: absolute; inset: 0; z-index: -3; pointer-events: none;
  background: linear-gradient(90deg, rgba(0,0,0,.29) 0%, rgba(0,0,0,.10) 38%, rgba(0,0,0,.02) 67%), linear-gradient(0deg, rgba(0,0,0,.16) 0%, transparent 34%);
}
.hero--video .hero__content {
  position: absolute; z-index: 2; left: clamp(34px, 7vw, 118px); top: 51.5%;
  width: min(780px, 59vw); min-height: 0; padding: 0; display: block; transform: translateY(-6%);
}
.hero--video .hero__eyebrow {
  margin: 0 0 19px; color: inherit; font-family: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
  font-size: clamp(13px, 1.05vw, 17px); font-weight: 400; line-height: 1.5; letter-spacing: .10em;
  opacity: 0; transform: translateY(7px); transition: opacity 850ms ease-out .42s, transform 850ms var(--ease-editorial) .42s;
}
.hero--video .hero__title { margin: 0; color: inherit; font-family: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif; font-size: clamp(48px, 5.25vw, 86px); font-weight: 400; line-height: 1.16; letter-spacing: .012em; text-shadow: 0 1px 18px rgba(0,0,0,.12); }
.hero--video .hero__title span { display: block; opacity: 0; transform: translateY(12px); transition: opacity 1s ease-out, transform 1s var(--ease-editorial); }
.hero--video .hero__title span:nth-child(1) { transition-delay: .68s; }
.hero--video .hero__title span:nth-child(2) { transition-delay: .94s; }
.hero--video .hero__disciplines { margin: 27px 0 0; color: rgba(243,240,232,.73); font: 400 9px/1.7 Arial, sans-serif; letter-spacing: .19em; opacity: 0; transition: opacity 900ms ease-out 1.28s; }
.hero--video .hero__footer {
  position: absolute; z-index: 2; left: clamp(22px,4.25vw,70px); right: clamp(22px,4.25vw,70px); bottom: clamp(26px, 4svh, 50px);
  display: grid; grid-template-columns: 1fr auto; align-items: end;
}
.hero--video .hero__cta { display: inline-flex; justify-self: start; align-items: center; gap: 14px; color: inherit; font: 400 10px/1 Arial,sans-serif; letter-spacing: .12em; opacity: 0; transition: opacity 850ms ease-out 1.5s; }
.hero--video .hero__cta span { width: 38px; height: 1px; background: currentColor; transition: width .35s ease; }
.hero--video .hero__cta:hover span { width: 54px; }
.hero--video .hero__scroll { position: static; margin: 0; display: flex; align-items: center; gap: 13px; writing-mode: initial; color: rgba(243,240,232,.72); font: 400 8px/1 Arial,sans-serif; letter-spacing: .25em; }
.hero--video .hero__scroll i { position: relative; display: block; width: 1px; height: 31px; overflow: hidden; background: rgba(243,240,232,.34); }
.hero--video .hero__scroll i::after { content: ""; position: absolute; left: 0; top: -45%; width: 1px; height: 45%; background: #f3f0e8; animation: ayaHeroScroll 2.1s 1.4s cubic-bezier(.4,0,.2,1) infinite; }
.hero--video.is-ready .hero__eyebrow,
.hero--video.is-ready .hero__title span { opacity: 1; transform: translateY(0); }
.hero--video.is-ready .hero__disciplines,
.hero--video.is-ready .hero__cta { opacity: 1; }
@keyframes ayaHeroScroll { 0% { transform: translateY(0); } 70%,100% { transform: translateY(320%); } }

@media (max-width: 900px) {
  .home .site-header { padding: max(20px, env(safe-area-inset-top)) 20px 16px; color: #f3f0e8; background: transparent; backdrop-filter: none; }
  .home .site-brand { font-size: 13px; }
  .home .site-menu-button { color: inherit; }
  .home .site-nav { inset: 0; padding: 110px 24px 52px; background: rgba(9,9,8,.988); border: 0; }
  .home .site-nav ul { display: grid; gap: 20px; }
  .home .site-nav a { font-size: clamp(29px, 9vw, 44px); }
  .home .site-nav .menu-label--desktop { display: none; }
  .home .site-nav .menu-label--mobile { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 5px; }
  .home .site-nav .menu-label__ja { font-size: .42em; }
  .home .site-menu-button > span:not(.screen-reader-text) { height: 1px; }

  .hero.hero--video { height: 100svh; min-height: 560px; }
  .hero--video .hero__veil { background: linear-gradient(0deg, rgba(0,0,0,.39) 0%, rgba(0,0,0,.08) 47%, transparent 70%); }
  .hero--video .hero__content { left: clamp(20px,6.4vw,32px); right: clamp(20px,6.4vw,32px); top: auto; bottom: clamp(116px,15.5svh,160px); width: auto; transform: none; }
  .hero--video .hero__eyebrow { margin-bottom: 12px; font-size: 11px; }
  .hero--video .hero__title { font-size: clamp(34px,10.4vw,46px); line-height: 1.22; letter-spacing: 0; }
  .hero--video .hero__disciplines { max-width: 92%; margin-top: 18px; font-size: 7px; letter-spacing: .13em; line-height: 1.7; }
  .hero--video .hero__footer { left: clamp(20px,6.4vw,32px); right: clamp(20px,6.4vw,32px); bottom: max(24px, env(safe-area-inset-bottom)); }
  .hero--video .hero__cta { font-size: 9px; gap: 11px; }
  .hero--video .hero__cta span { width: 27px; }
  .hero--video .hero__scroll span { display: none; }
  .hero--video .hero__scroll i { height: 27px; }
}
@media (max-width: 390px) {
  .hero--video .hero__title { font-size: clamp(32px,10vw,39px); }
  .hero--video .hero__content { bottom: clamp(108px,14.5svh,142px); }
}
@media (prefers-reduced-motion: reduce) {
  .hero--video .hero__video { display: none; }
  .hero--video .hero__motion-still { display: block; }
  .hero--video .hero__eyebrow,
  .hero--video .hero__title span,
  .hero--video .hero__disciplines,
  .hero--video .hero__cta { opacity: 1; transform: none; transition: none; }
  .hero--video .hero__scroll i::after { display: none; }
  .home .site-nav, .home .site-menu-button > span:not(.screen-reader-text) { transition: none; }
}

/* =========================================================
   v0.2.96 — Full-screen mobile hero + Japan viewport typography calibration
   QA widths: 375 / 390 / 393 / 402 / 412 / 414 / 430 / 440 CSS px
   Desktop QA: 1280x720 / 1366x768 / 1536x864 / 1920x1080 / 2560x1440
========================================================= */
:root {
  --font-latin-display: "Bodoni 72", "Didot", "Bodoni MT", "Baskerville", "Times New Roman", serif;
  --font-latin-ui: "Avenir Next", "Helvetica Neue", "Segoe UI", Arial, sans-serif;
  --font-ja-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
}

/* Latin typography: high-contrast editorial display + restrained UI sans.
   No remote font request: fast, private and stable on staging. */
.site-brand,
.home .site-brand,
.home .site-nav .menu-label__en,
.journal-masthead__title,
.journal-empty h2,
.contact-hero__title,
.faq-hero__title,
.contact-path__en,
.contact-closing__en,
.contact-notice__en,
.journal-placeholder,
.business-service__number,
.works-index span,
.works-index strong {
  font-family: var(--font-latin-display);
}
.site-nav a,
.home .site-menu-button::before,
.hero--video .hero__disciplines,
.hero--video .hero__cta,
.hero--video .hero__scroll,
.section-label,
.menu-label__en,
.journal-kicker,
.journal-meta,
.journal-read,
.journal-back,
.journal-pagination .nav-links {
  font-family: var(--font-latin-ui);
}
.home .site-brand { letter-spacing: .235em; font-weight: 400; }
.home .site-menu-button::before { font-size: 9px; font-weight: 500; letter-spacing: .26em; }
.hero--video .hero__disciplines { font-weight: 450; letter-spacing: .18em; }
.section-label { font-weight: 500; letter-spacing: .20em; }

/* TOP HERO: old mobile 50svh media rule from the photo hero must never constrain video. */
.hero.hero--video {
  height: 100svh;
  min-height: 100svh;
}
.hero--video .hero__media {
  height: 100%;
  min-height: 100%;
  bottom: 0;
}
.hero--video .hero__video,
.hero--video .hero__motion-still,
.hero--video .hero__motion-still img { min-height: 100%; }

/* Generic utility/legal pages: Japanese titles should read as titles, not campaign headlines. */
.page-hero .section__inner--narrow { width: min(100%, 820px); }
.page-hero .page-title {
  max-width: 820px;
  font-family: var(--font-ja-serif);
  font-size: clamp(46px, 3.15vw, 60px);
  line-height: 1.42;
  letter-spacing: .015em;
  text-wrap: balance;
}
.page-content .content-body { width: min(100%, 780px); }
.page-content .content-body p,
.page-content .content-body li { font-size: 15px; line-height: 2.08; }
.page-content .content-body h2 { font-size: clamp(27px,2.1vw,34px); line-height:1.58; }
.page-content .content-body h3 { font-size: clamp(21px,1.65vw,26px); line-height:1.65; }

@media (min-width: 901px) {
  /* Common desktop monitor calibration: reduce Japanese H1 scale and keep phrases intact. */
  .page-hero { padding: clamp(142px, 9.2vw, 176px) 32px clamp(62px, 5vw, 86px); }
  .page-content { padding-top: clamp(58px, 4.7vw, 78px); }

  .personal-hero__title,
  .business-hero__title,
  .works-hero__title,
  .single-menu-hero__title,
  .labo-hero__title,
  .brand-visual-hero__title,
  .update-hero__title {
    font-family: var(--font-ja-serif);
    font-size: clamp(46px, 4.0vw, 68px);
    line-height: 1.34;
    letter-spacing: .025em;
  }

  .about-hero__title { font-size: clamp(54px,5vw,88px); line-height:1.06; }
  .about-manifesto__title,
  .about-message__title { font-size: clamp(40px,4.4vw,70px); line-height:1.3; letter-spacing:0; }

  /* English editorial H1 can be larger, but no longer overwhelms Japanese content. */
  .contact-hero__title,
  .faq-hero__title {
    font-size: clamp(72px, 6.8vw, 128px);
    line-height: .88;
    letter-spacing: -.045em;
  }
  .journal-masthead__title { font-size: clamp(66px,6.8vw,120px); letter-spacing:-.045em; }

  /* The form-side message in the supplied screenshot was oversized at 1920-class widths. */
  .contact-section-title {
    max-width: 680px;
    margin-bottom: clamp(46px,5vw,78px);
    font-size: clamp(40px, 3.0vw, 56px);
    line-height: 1.38;
    letter-spacing: .005em;
    text-wrap: balance;
  }
  .contact-form-section__inner { grid-template-columns: minmax(360px,.78fr) minmax(0,1.22fr); gap: clamp(64px,7vw,124px); }
  .contact-form-section__intro { top: 110px; }
}

@media (min-width: 901px) and (max-width: 1439px) {
  .page-hero .page-title { font-size: clamp(44px,3.7vw,53px); }
  .personal-hero__title,
  .business-hero__title,
  .works-hero__title,
  .single-menu-hero__title,
  .labo-hero__title,
  .brand-visual-hero__title,
  .update-hero__title { font-size: clamp(43px,4.4vw,62px); }
  .contact-section-title { font-size: clamp(38px,3.5vw,50px); }
}

@media (max-width: 900px) {
  /* iOS/Safari: one visible viewport, video and copy layered together. */
  .hero.hero--video { height: 100svh; min-height: 100svh; }
  .hero--video .hero__media { height: 100% !important; min-height: 100% !important; padding: 0; inset: 0; }
  .hero--video .hero__video { object-fit: cover; object-position: 50% 50%; }
  .hero--video .hero__veil {
    background:
      linear-gradient(0deg, rgba(0,0,0,.56) 0%, rgba(0,0,0,.30) 30%, rgba(0,0,0,.09) 59%, rgba(0,0,0,.015) 78%),
      linear-gradient(90deg, rgba(0,0,0,.08), transparent 55%);
  }
  .hero--video .hero__content {
    left: var(--mobile-gutter, 22px);
    right: var(--mobile-gutter, 22px);
    bottom: clamp(112px, 14.2svh, 142px);
  }
  .hero--video .hero__eyebrow { margin-bottom: 11px; font-size: 10.5px; line-height:1.5; letter-spacing:.08em; }
  .hero--video .hero__title {
    max-width: 12.8em;
    font-size: clamp(31px, 8.45vw, 35px);
    line-height: 1.48;
    letter-spacing: 0;
    text-shadow: 0 1px 16px rgba(0,0,0,.24);
  }
  .hero--video .hero__disciplines { max-width:100%; margin-top:16px; font-size:6.8px; line-height:1.75; letter-spacing:.12em; white-space:nowrap; }
  .hero--video .hero__footer { bottom: max(22px, env(safe-area-inset-bottom)); }
  .hero--video .hero__cta { font-size: 9px; letter-spacing:.10em; }

  /* Generic/legal pages on the widths most common in Japan. */
  .page-hero { padding: 118px var(--mobile-gutter,22px) 54px; }
  .page-hero .section__inner--narrow { width:100%; }
  .page-hero .page-title {
    max-width: 100%;
    font-size: clamp(27px,7.25vw,30px);
    line-height: 1.62;
    letter-spacing: 0;
  }
  .page-content { padding-top: 52px; }
  .page-content.section { padding-left:var(--mobile-gutter,22px); padding-right:var(--mobile-gutter,22px); padding-bottom:80px; }
  .page-content .content-body p,
  .page-content .content-body li { font-size:14px; line-height:2.05; }
  .page-content .content-body h2 { font-size:25px; line-height:1.65; }
  .page-content .content-body h3 { font-size:21px; line-height:1.7; }

  .personal-hero__title,
  .business-hero__title,
  .works-hero__title,
  .single-menu-hero__title,
  .labo-hero__title,
  .brand-visual-hero__title,
  .update-hero__title {
    font-size: clamp(31px,8.4vw,35px);
    line-height:1.52;
    letter-spacing:0;
  }
  .about-hero__title { font-size:clamp(34px,9.3vw,40px); line-height:1.35; letter-spacing:0; }
  .about-manifesto__title,
  .about-message__title { font-size:clamp(27px,7.25vw,30px); line-height:1.62; letter-spacing:0; }
  .contact-form-section .contact-section-title { font-size:clamp(29px,7.8vw,33px); line-height:1.62; letter-spacing:0; }
}

@media (max-width: 374px) {
  .hero--video .hero__title { font-size:30px; }
  .hero--video .hero__disciplines { font-size:6.2px; letter-spacing:.095em; }
  .page-hero .page-title { font-size:26px; }
}

/* Avoid single-character Japanese line endings where modern Chromium supports phrase breaking. */
@supports (word-break: auto-phrase) {
  .page-hero .page-title,
  .contact-section-title,
  .personal-hero__title,
  .business-hero__title,
  .works-hero__title,
  .single-menu-hero__title,
  .labo-hero__title,
  .brand-visual-hero__title,
  .update-hero__title,
  .about-manifesto__title,
  .about-message__title { word-break:auto-phrase; }
}

/* =========================================================
   v0.2.97 — wayfinding / Japanese line integrity / photo-only works
   Secondary routes stay secondary; first-time visitors see what they can do
   before who we are, while admin-editable content remains untouched.
========================================================= */

/* CONTACT: each Japanese phrase is an intentional line, never a mid-word wrap. */
.contact-section-title__line { display: block; }

@media (min-width: 1200px) {
  .contact-form-section__inner {
    grid-template-columns: minmax(440px, .92fr) minmax(0, 1.08fr);
    gap: clamp(58px, 5.8vw, 104px);
  }
  .contact-section-title {
    max-width: none;
    font-size: clamp(40px, 2.5vw, 48px);
    line-height: 1.48;
    letter-spacing: 0;
  }
  .contact-section-title__line { white-space: nowrap; }
}

@media (min-width: 901px) and (max-width: 1199px) {
  .contact-form-section__inner {
    grid-template-columns: minmax(350px, .9fr) minmax(0, 1.1fr);
    gap: clamp(44px, 5vw, 66px);
  }
  .contact-section-title {
    max-width: none;
    font-size: clamp(35px, 3.25vw, 40px);
    line-height: 1.5;
    letter-spacing: 0;
  }
  .contact-section-title__line { white-space: nowrap; }
}

/* Current location is visible without adding another navigation layer. */
.site-nav .current-menu-item > a::after,
.site-nav .current_page_item > a::after,
.site-nav .current-menu-ancestor > a::after {
  transform: scaleX(1);
  transform-origin: left center;
  opacity: .42;
}

/* Cross-sell photography stays visually concise on the single-session page. */
.single-menu-photo-path__content .section-title {
  max-width: 11em;
  text-wrap: balance;
}
@media (min-width: 901px) {
  .single-menu-photo-path__content .section-title {
    font-size: clamp(38px, 3vw, 52px);
    line-height: 1.5;
    letter-spacing: .01em;
  }
}

@media (max-width: 900px) {
  /* PERSONAL mobile hierarchy: secondary photography must never become the first view. */
  .personal-page > .personal-hero { order: 1; }
  .personal-page > .personal-problem { order: 2; }
  .personal-page > .personal-routes { order: 3; }
  .personal-page > .personal-menu { order: 4; }
  .personal-page > .personal-labo { order: 5; }
  .personal-page > .personal-gain { order: 6; }
  .personal-page > .personal-case { order: 7; }
  .personal-page > .personal-philosophy { order: 8; }
  .personal-page > .personal-voice { order: 9; }
  .personal-page > .personal-photo-path { order: 10; }
  .personal-page > .personal-message { order: 11; }
  .personal-page > .personal-cta { order: 12; }

  /* Every mobile menu item is Japanese-first; English is the editorial sub-label. */
  .site-nav .menu-label--mobile {
    display: grid;
    gap: 5px;
    text-align: left;
  }
  .site-nav .menu-label--mobile .menu-label__ja {
    font-family: var(--font-ja-serif);
    font-size: 15px;
    line-height: 1.45;
    letter-spacing: .035em;
    opacity: 1;
  }
  .site-nav .menu-label--mobile .menu-label__en {
    font-family: var(--font-latin-ui);
    font-size: 8.5px;
    line-height: 1.2;
    letter-spacing: .18em;
    opacity: .58;
  }

  .home .site-nav .menu-label--mobile {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 7px;
  }
  .home .site-nav .menu-label--mobile .menu-label__ja {
    font-family: var(--font-ja-serif);
    font-size: clamp(20px, 5.9vw, 27px);
    line-height: 1.25;
    letter-spacing: .025em;
    opacity: 1;
  }
  .home .site-nav .menu-label--mobile .menu-label__en {
    font-family: var(--font-latin-ui);
    font-size: 8.5px;
    line-height: 1.2;
    letter-spacing: .19em;
    opacity: .55;
  }

  .contact-section-title__line { white-space: nowrap; }
  .contact-form-section .contact-section-title {
    font-size: clamp(28px, 7.45vw, 31px);
    line-height: 1.62;
  }

  .single-menu-photo-path__content .section-title {
    max-width: 100%;
    font-size: clamp(28px, 7.4vw, 31px);
    line-height: 1.62;
  }
}

@media (max-width: 374px) {
  .contact-form-section .contact-section-title { font-size: 27px; }
  .single-menu-photo-path__content .section-title { font-size: 27px; }
}

/* =========================================================
   v0.2.98 — editorial personal photography / one portfolio home
   ========================================================= */
.brand-visual-personal-photo {
  background:#e3ddd4;
  padding:clamp(88px,10vw,150px) 0 clamp(104px,12vw,178px);
}
.brand-visual-personal-photo__head {
  margin-bottom:clamp(54px,7vw,96px);
}
.personal-photo-editorial {
  display:grid;
  gap:clamp(90px,11vw,170px);
}
.personal-photo-feature {
  display:grid;
  align-items:end;
  gap:clamp(34px,6vw,92px);
}
.personal-photo-feature--family {
  grid-template-columns:minmax(0,1.18fr) minmax(300px,.72fr);
}
.personal-photo-feature--wedding {
  grid-template-columns:minmax(0,1fr);
}
.personal-photo-feature__media {
  position:relative;
  margin:0;
  overflow:hidden;
  background:#d1cbc3;
}
.personal-photo-feature--family .personal-photo-feature__media {
  aspect-ratio:2 / 3;
  max-width:760px;
}
.personal-photo-feature--wedding .personal-photo-feature__media {
  aspect-ratio:16 / 9;
  width:100%;
}
.personal-photo-feature__media img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.personal-photo-feature--family .personal-photo-feature__media img { object-position:center 58%; }
.personal-photo-feature--wedding .personal-photo-feature__media img { object-position:center 50%; }
.personal-photo-feature__overlay {
  position:absolute;
  z-index:2;
  left:clamp(20px,4vw,58px);
  top:clamp(22px,4vw,58px);
  max-width:min(70%,560px);
  color:#171614;
  text-shadow:0 1px 16px rgba(244,241,235,.24);
}
.personal-photo-feature__overlay p {
  margin:0 0 16px;
  font:500 9px/1.3 var(--font-sans);
  letter-spacing:.22em;
}
.personal-photo-feature__overlay h3 {
  margin:0;
  font-family:var(--font-serif);
  font-size:clamp(28px,3.2vw,48px);
  line-height:1.28;
  font-weight:400;
  letter-spacing:.02em;
}
.personal-photo-feature--wedding .personal-photo-feature__overlay {
  top:50%;
  transform:translateY(-50%);
  max-width:42%;
}
.personal-photo-feature--wedding .personal-photo-feature__overlay h3 {
  font-size:clamp(32px,4vw,62px);
}
.personal-photo-feature__details {
  max-width:520px;
  padding:0 0 clamp(8px,2vw,26px);
}
.personal-photo-feature--wedding .personal-photo-feature__details {
  justify-self:end;
  width:min(100%,620px);
  padding-top:clamp(24px,3vw,44px);
}
.personal-photo-feature__details strong {
  display:block;
  margin:0 0 18px;
  font-family:var(--font-serif);
  font-size:clamp(21px,2.1vw,31px);
  line-height:1.45;
  font-weight:400;
}
.personal-photo-feature__details p {
  margin:0 0 18px;
  font-size:13px;
  line-height:2;
  color:rgba(25,24,22,.72);
}
.personal-photo-feature__details .text-link { margin-top:8px; }

/* The dedicated photo / movie page is now the single visual portfolio.
   BRANDING WORKS keeps case studies only; this gallery covers personal and commercial work. */
.brand-visual-selected__head .section-title { max-width:980px; }
.brand-visual-gallery__item:nth-child(2) .brand-visual-gallery__frame,
.brand-visual-gallery__item:nth-child(6) .brand-visual-gallery__frame { aspect-ratio:4 / 3; }
.brand-visual-gallery__item:nth-child(1) .brand-visual-gallery__frame img { object-position:center 58%; }
.brand-visual-gallery__item:nth-child(2) .brand-visual-gallery__frame img { object-position:center center; }

@media (max-width:900px) {
  .personal-photo-feature--family,
  .personal-photo-feature--wedding { grid-template-columns:1fr; }
  .personal-photo-feature--family .personal-photo-feature__media { max-width:none; width:100%; }
  .personal-photo-feature__details,
  .personal-photo-feature--wedding .personal-photo-feature__details { justify-self:stretch; width:auto; max-width:none; }
}

/* Desktop preserves the approved vertical service sequence; it is the same
   editorial layout as mobile, widened rather than recast into a new grid. */
@media (min-width:901px) {
  .home .top-paths { display:block; background:transparent; }
  .home .top-paths__heading {
    margin-inline:calc(-1 * max(32px,calc((100% - var(--container))/2)));
    padding-inline:max(32px,calc((100% - var(--container))/2));
    background:#f5f3ef;
  }
  .home .top-paths a.top-paths__item--personal,
  .home .top-paths a.top-paths__item--business {
    inline-size:100%;
    min-height:clamp(520px,42vw,620px);
    margin:0;
    padding:clamp(62px,6vw,92px) clamp(48px,5vw,80px);
    grid-template-columns:minmax(0,1fr) minmax(300px,37%);
    grid-template-rows:auto 1fr auto;
    column-gap:clamp(48px,6vw,96px);
    row-gap:26px;
  }
  .home .top-paths__item--personal .top-paths__media,
  .home .top-paths__item--business .top-paths__media {
    grid-column:2;
    grid-row:1 / -1;
    inline-size:100%;
    aspect-ratio:1;
    align-self:center;
  }
  .home .top-paths__item--personal .top-paths__number,
  .home .top-paths__item--business .top-paths__number {
    grid-column:1;
    grid-row:1;
    align-self:end;
    color:rgba(30,29,27,.62) !important;
    font:400 11px/1 var(--font-latin-sans,Arial,sans-serif) !important;
    letter-spacing:.17em !important;
  }
  .home .top-paths__item--personal .top-paths__copy,
  .home .top-paths__item--business .top-paths__copy {
    grid-column:1;
    grid-row:2;
    align-self:center;
  }
  .home .top-paths__item--personal .top-paths__copy strong,
  .home .top-paths__item--business .top-paths__copy strong {
    font-family:var(--font-latin-display, "Times New Roman", serif);
    font-size:clamp(50px,5.1vw,78px);
    font-weight:400;
    line-height:.9;
    letter-spacing:-.045em;
  }
  .home .top-paths__item--personal .top-paths__copy small,
  .home .top-paths__item--business .top-paths__copy small { margin-top:15px; font-size:16px; }
  .home .top-paths__item--personal .top-paths__copy em,
  .home .top-paths__item--business .top-paths__copy em { max-width:17em; margin-top:34px; font-size:16px; line-height:1.8; }
  .home .top-paths__item--personal .top-paths__cta,
  .home .top-paths__item--business .top-paths__cta { grid-column:1; grid-row:3; }
  .home .top-paths__item--personal .top-paths__arrow,
  .home .top-paths__item--business .top-paths__arrow { right:clamp(48px,5vw,80px); bottom:clamp(62px,6vw,92px); }

  .home .top-paths a.top-paths__item--photography {
    inline-size:100%;
    min-height:clamp(610px,48vw,720px);
    margin:0;
    padding:clamp(60px,6vw,92px) clamp(48px,5vw,80px);
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto 1fr auto;
    overflow:hidden;
    background:transparent;
  }
  .home .top-paths__item--photography::before {
    content:"";
    inset:0;
    z-index:0;
    background:#f5f3ef;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__number {
    position:relative;
    z-index:1;
    color:rgba(30,29,27,.72) !important;
    font:400 11px/1 var(--font-latin-sans,Arial,sans-serif) !important;
    letter-spacing:.17em !important;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__copy {
    position:absolute;
    z-index:1;
    top:auto;
    right:clamp(48px,5vw,80px);
    bottom:clamp(146px,13vw,190px);
    left:auto;
    align-self:auto;
    max-width:none;
    margin:0 !important;
    padding:0;
    background:transparent;
  }
  .home .top-paths__item--photography .top-paths__copy strong,
  .home .top-paths__item--photography .top-paths__cta { display:none; }
  .home .top-paths__item--photography .top-paths__copy small { color:var(--color-ink); font-size:15px; letter-spacing:.08em; }
  body.home .top-paths a.top-paths__item--photography .top-paths__arrow {
    position:absolute;
    z-index:1;
    top:auto;
    right:clamp(48px,5vw,80px);
    bottom:clamp(88px,8vw,118px);
    left:auto;
    margin:0 !important;
    padding:0;
    background:transparent;
  }
}

/* v0.2.208 — only the PHOTO / GRAPHY mask uses the approved Didone family. */
@media (max-width:900px) {
  .home .top-paths__item--photography::before {
  }
}

@media (min-width:901px) {
  .home .top-paths__item--photography::before {
  }
}
@media (max-width:760px) {
  .brand-visual-personal-photo { padding:76px 0 96px; }
  .brand-visual-personal-photo__head { margin-bottom:44px; }
  .personal-photo-editorial { gap:78px; }
  .personal-photo-feature { gap:24px; }
  .personal-photo-feature--family .personal-photo-feature__media { aspect-ratio:2 / 3; }
  .personal-photo-feature--wedding .personal-photo-feature__media { aspect-ratio:4 / 3; }
  .personal-photo-feature--wedding .personal-photo-feature__media img { object-position:62% center; }
  .personal-photo-feature__overlay { left:20px; top:24px; max-width:76%; }
  .personal-photo-feature__overlay p { margin-bottom:10px; font-size:8px; }
  .personal-photo-feature__overlay h3 { font-size:clamp(24px,7vw,31px); line-height:1.35; }
  .personal-photo-feature--wedding .personal-photo-feature__overlay {
    top:24px;
    transform:none;
    max-width:56%;
  }
  .personal-photo-feature--wedding .personal-photo-feature__overlay h3 { font-size:clamp(26px,7.6vw,34px); }
  .personal-photo-feature__details { padding:0; }
  .personal-photo-feature__details strong { font-size:22px; }
  .personal-photo-feature__details p { font-size:12px; line-height:1.9; }
  .brand-visual-gallery__item:nth-child(2) .brand-visual-gallery__frame,
  .brand-visual-gallery__item:nth-child(6) .brand-visual-gallery__frame { aspect-ratio:4 / 3; }
}



/* =========================================================
   v0.2.99 — ABOUT desktop rhythm / editorial mobile index / Latin type refinement
   Desktop QA: 1280 / 1366 / 1536 / 1920 / 2560 CSS px.
   Mobile menu remains Japanese-first while gaining an editorial index structure.
========================================================= */
:root {
  --font-latin-display: "Instrument Serif", "Bodoni 72", "Didot", "Bodoni MT", "Times New Roman", serif;
  --font-latin-ui: "Manrope", "Avenir Next", "Helvetica Neue", "Segoe UI", Arial, sans-serif;
}

/* The display serif is for identity/editorial moments; utility text stays quiet sans. */
.site-brand,
.home .site-brand,
.home .site-nav .menu-label__en,
.journal-masthead__title,
.contact-hero__title,
.faq-hero__title,
.contact-path__en,
.contact-closing__en,
.contact-notice__en {
  font-family: var(--font-latin-display);
}
.site-nav a,
.site-menu-button::before,
.home .site-menu-button::before,
.menu-label__en,
.section-label,
.hero--video .hero__disciplines,
.hero--video .hero__cta,
.hero--video .hero__scroll {
  font-family: var(--font-latin-ui);
}

@media (min-width: 901px) {
  /* Site-wide desktop audit: section headings are information hierarchy, not hero copy. */
  .section-title {
    font-size: clamp(36px, 2.9vw, 50px);
    line-height: 1.52;
    letter-spacing: .008em;
  }
  .single-service__title,
  .labo-promise__card .section-title,
  .labo-photo .section-title,
  .labo-intro .section-title,
  .labo-program .section-title,
  .labo-story .section-title,
  .labo-update .section-title,
  .faq-contact__inner h2,
  .update-plan h2 {
    font-size: clamp(36px, 2.8vw, 50px);
    line-height: 1.52;
    letter-spacing: .008em;
  }
  .brand-visual-service h3,
  .brand-visual-process article h3,
  .business-process__title {
    font-size: clamp(30px, 2.25vw, 40px);
    line-height: 1.58;
    letter-spacing: .008em;
  }

  /* ABOUT: preserve the authored two-line compositions on desktop. */
  .about-manifesto__title {
    max-width: 900px;
    font-size: clamp(42px, 3.45vw, 54px);
    line-height: 1.46;
    letter-spacing: .005em;
  }
  .about-company__grid,
  .about-together__grid {
    gap: clamp(54px, 6vw, 96px);
  }
  .about-company .section-title,
  .about-together .section-title {
    max-width: none;
    font-size: clamp(31px, 1.95vw, 37px);
    line-height: 1.68;
    letter-spacing: .005em;
    text-wrap: initial;
  }
  .about-company .section-title .responsive-copy--desktop,
  .about-together .section-title .responsive-copy--desktop {
    white-space: nowrap;
  }
  .about-people__intro { max-width: 840px; }
  .about-people__intro .section-title {
    font-size: clamp(38px, 2.8vw, 48px);
    line-height: 1.56;
  }
  .about-person__copy h3 {
    font-size: clamp(28px, 2.05vw, 38px);
    line-height: 1.5;
    letter-spacing: .005em;
  }
  .about-message .section__inner--narrow { width: min(100%, 960px); }
  .about-message__title {
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    font-size: clamp(40px, 3.15vw, 50px);
    line-height: 1.52;
    letter-spacing: .005em;
    text-wrap: initial;
  }
  .about-message__title .responsive-copy--desktop { white-space: nowrap; }
}

/* 901–1199 behaves like a wide tablet: stacking protects Japanese line integrity. */
@media (min-width: 901px) and (max-width: 1199px) {
  .about-company__grid,
  .about-together__grid {
    grid-template-columns: 1fr;
    gap: 44px;
  }
  .about-company__image { order: -1; }
  .about-company__copy,
  .about-together__copy { max-width: 760px; }
  .about-company .section-title,
  .about-together .section-title {
    font-size: clamp(31px, 3.2vw, 36px);
  }
}

/* v0.2.100: mobile navigation returned to the clearer six-entry structure used before the editorial-index experiment. */

/* =========================================================
   v0.2.99 — PHOTO WORKS: restore the fuller BRANDING WORKS editorial rhythm.
   Personal Photo remains a service block; this is the single portfolio gallery.
========================================================= */
.brand-visual-photo-works {
  padding-top: clamp(118px, 10vw, 168px);
  padding-bottom: clamp(124px, 11vw, 182px);
  background: #ece5da;
  color: #171615;
  overflow: hidden;
}
.brand-visual-photo-works__head {
  display: block;
  margin-bottom: clamp(42px, 5vw, 72px);
}
.brand-visual-photo-works__head .section-title {
  max-width: 760px;
  margin-bottom: 0;
}
.brand-visual-photo-works__context {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(42px, 5vw, 72px);
}
.brand-visual-photo-works__context .text-link { color: #171615; }

@media (min-width: 1280px) {
  .brand-visual-photo-works .selected-visuals__stage {
    width: 100%;
    margin: 0;
    padding-top: 18px;
    overflow: visible;
  }
  .brand-visual-photo-works .selected-visuals__track {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: clamp(24px, 2.3vw, 44px);
    row-gap: clamp(62px, 5.4vw, 98px);
    width: 100%;
    padding: 0;
    min-height: 0;
    align-items: start;
  }
  .brand-visual-photo-works .selected-visuals__float,
  .brand-visual-photo-works .selected-visuals__float:nth-child(n) {
    width: 100%;
    margin: 0;
    transform: none;
  }
  .brand-visual-photo-works .selected-visuals__float:nth-child(3n+2) { margin-top: clamp(42px, 4.5vw, 82px); }
  .brand-visual-photo-works .selected-visuals__float:nth-child(3n) { margin-top: clamp(16px, 2vw, 36px); }
  .brand-visual-photo-works .selected-visuals__float:hover,
  .brand-visual-photo-works .selected-visuals__float:focus-visible { transform: translateY(-4px); }
  .brand-visual-photo-works .selected-visuals__frame {
    box-shadow: 0 22px 54px rgba(28,24,20,.11);
  }
  .brand-visual-photo-works .selected-visuals__guide {
    display: flex;
    margin-top: 52px;
  }
  .brand-visual-photo-works .selected-visuals__guide span::after { content: none; }
}

@media (min-width: 901px) and (max-width: 1279px) {
  .brand-visual-photo-works .selected-visuals__track {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 64px 42px;
  }
}

@media (max-width: 767px) {
  .brand-visual-photo-works {
    padding: 88px var(--mobile-gutter) 104px;
    overflow: visible;
  }
  .brand-visual-photo-works__head { margin-bottom: 42px; }
  .brand-visual-photo-works__head .section-title {
    font-size: clamp(30px, 8.2vw, 35px);
    line-height: 1.45;
  }
  .brand-visual-photo-works .selected-visuals__stage {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
  }
  .brand-visual-photo-works .selected-visuals__track {
    display: grid;
    grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
    gap: 18px 10px;
    width: 100%;
    padding: 0;
  }
  .brand-visual-photo-works .selected-visuals__float,
  .brand-visual-photo-works .selected-visuals__float:nth-child(n) {
    display: block;
    width: 100%;
    margin: 0;
    transform: none !important;
  }
  .brand-visual-photo-works .selected-visuals__float:nth-child(1) { grid-column: 1/-1; width: 94%; justify-self: start; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(2) { grid-column: 2; margin-top: -12px; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(3) { grid-column: 1; margin-top: 34px; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(4) { grid-column: 1/-1; width: 84%; justify-self: end; margin-top: 8px; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(5) { grid-column: 1; margin-top: 30px; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(6) { grid-column: 2; margin-top: 0; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(7) { grid-column: 1/-1; width: 88%; justify-self: start; margin-top: 22px; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(8) { grid-column: 2; margin-top: -8px; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(9) { grid-column: 1; margin-top: 34px; }
  .brand-visual-photo-works .selected-visuals__float:nth-child(10) { grid-column: 1/-1; width: 82%; justify-self: end; margin-top: 12px; }
  .brand-visual-photo-works .selected-visuals__caption { margin-top: 9px; }
  .brand-visual-photo-works .selected-visuals__caption small { font-size: 9px; line-height: 1.55; }
  .brand-visual-photo-works .selected-visuals__mobile-invite { margin-top: 44px; }
  .brand-visual-photo-works__context {
    justify-content: flex-start;
    margin-top: 38px;
  }
}


/* =========================================================
   v0.2.100 — FIRST-VISIT UX / THREE-LINE DESKTOP TITLES / MENU RESTORE
   Reading model:
   10 sec  = what La paix does + FOR YOU / FOR BUSINESS
   30 sec  = service route + representative work
   2 min   = method, people, process, proof, details
   No service facts, prices or durations are changed here.
========================================================= */

/* ---------------------------------------------------------
   01. Japanese title integrity
   Editorial line breaks are phrase boundaries, not decoration.
--------------------------------------------------------- */
@media (min-width: 901px) {
  .section-title,
  .page-title,
  .personal-hero__title,
  .business-hero__title,
  .works-hero__title,
  .single-menu-hero__title,
  .labo-hero__title,
  .brand-visual-hero__title,
  .update-hero__title,
  .about-hero__title,
  .about-manifesto__title,
  .about-message__title,
  .contact-section-title,
  .faq-hero__title {
    line-break: strict;
    overflow-wrap: normal;
    text-wrap: balance;
    word-break: normal;
  }

  /* Lines authored through responsive-copy stay intact on desktop. */
  :is(
    .section-title,
    .page-title,
    .personal-hero__title,
    .business-hero__title,
    .works-hero__title,
    .single-menu-hero__title,
    .labo-hero__title,
    .brand-visual-hero__title,
    .update-hero__title,
    .about-hero__title,
    .about-manifesto__title,
    .about-message__title,
    .contact-section-title,
    .faq-hero__title
  ) .responsive-copy--desktop .responsive-copy__line {
    white-space: nowrap;
  }

  /* Section copy is not a hero. Keep it elegant, readable and normally <=3 lines. */
  .section-title {
    max-width: 18em;
    font-size: clamp(34px, 2.55vw, 46px);
    line-height: 1.55;
    letter-spacing: .005em;
  }

  /* Page-openers have more presence, but stay below billboard scale. */
  .personal-hero__title,
  .single-menu-hero__title,
  .brand-visual-hero__title,
  .update-hero__title,
  .about-hero__title {
    font-size: clamp(44px, 3.8vw, 62px);
    line-height: 1.42;
    letter-spacing: .005em;
  }
  .business-hero__title,
  .works-hero__title {
    font-size: clamp(46px, 4vw, 66px);
    line-height: 1.4;
  }
  .labo-hero__title {
    font-size: clamp(40px, 3.45vw, 56px);
    line-height: 1.48;
  }

  /* ABOUT: the intended two/three line compositions must not fragment. */
  .about-manifesto__title {
    max-width: 960px;
    font-size: clamp(38px, 3vw, 48px);
    line-height: 1.58;
  }
  .about-company .section-title,
  .about-together .section-title {
    max-width: 1000px;
    font-size: clamp(30px, 2.15vw, 38px);
    line-height: 1.68;
  }
  .about-people__intro .section-title {
    max-width: 900px;
    font-size: clamp(34px, 2.45vw, 44px);
    line-height: 1.6;
  }
  .about-message__title {
    max-width: 1000px;
    font-size: clamp(34px, 2.6vw, 44px);
    line-height: 1.62;
  }
  .about-person__copy h3 {
    font-size: clamp(26px, 1.9vw, 34px);
    line-height: 1.55;
  }

  /* CONTACT/legal titles should read like information, not campaign headlines. */
  .contact-section-title {
    font-size: clamp(34px, 2.25vw, 44px);
    line-height: 1.55;
  }
  #privacy-notice-title {
    max-width: none;
    font-size: clamp(31px, 2vw, 40px);
    line-height: 1.55;
    white-space: nowrap;
  }

}

/* Narrow desktop/laptop widths: shrink before allowing awkward Japanese fragmentation. */
@media (min-width: 901px) and (max-width: 1366px) {
  .section-title { font-size: clamp(32px, 2.7vw, 40px); }
  .about-company .section-title,
  .about-together .section-title { font-size: clamp(28px, 2.45vw, 34px); }
  .about-message__title { font-size: clamp(31px, 2.65vw, 38px); }
  .contact-section-title { font-size: clamp(31px, 2.5vw, 38px); }
}

@supports (word-break: auto-phrase) {
  .section-title,
  .page-title,
  .personal-hero__title,
  .business-hero__title,
  .works-hero__title,
  .single-menu-hero__title,
  .labo-hero__title,
  .brand-visual-hero__title,
  .update-hero__title,
  .about-hero__title,
  .about-manifesto__title,
  .about-message__title,
  .contact-section-title { word-break: auto-phrase; }
}

/* ---------------------------------------------------------
   02. First-visit hierarchy
   Visual atmosphere is retained, but decision routes appear earlier.
--------------------------------------------------------- */
.home .site-main {
  display: flex;
  flex-direction: column;
}
.home .hero--video { order: 1; }
.home .top-paths { order: 2; }
.home .entrances { order: 3; }
.home .works-preview { order: 4; }
.home .visual-rhythm { order: 5; }
.home .statement { order: 6; }
.home .role { order: 7; }
.home .about-preview { order: 8; }
.home .journal-preview { order: 9; }
.home .cta { order: 10; }

/* PERSONAL uses the same decision-first order on desktop and mobile. */
.personal-page { display: flex; flex-direction: column; }
.personal-page > .personal-hero { order: 1; }
.personal-page > .personal-problem { order: 2; }
.personal-page > .personal-routes { order: 3; }
.personal-page > .personal-menu { order: 4; }
.personal-page > .personal-labo { order: 5; }
.personal-page > .personal-gain { order: 6; }
.personal-page > .personal-case { order: 7; }
.personal-page > .personal-philosophy { order: 8; }
.personal-page > .personal-voice { order: 9; }
.personal-page > .personal-photo-path { order: 10; }
.personal-page > .personal-message { order: 11; }
.personal-page > .personal-cta { order: 12; }

/* ---------------------------------------------------------
   03. Mobile navigation — restore the clearer pre-v99 structure.
   Six entries are protected in header.php if WP menu setup is incomplete.
--------------------------------------------------------- */
@media (max-width: 900px) {
  .site-header {
    z-index: 60;
    padding: 18px var(--mobile-gutter, 20px);
  }
  .site-menu-button {
    position: relative;
    z-index: 63;
  }
  .site-menu-button::before {
    content: "MENU";
    position: absolute;
    right: 52px;
    top: 50%;
    transform: translateY(-50%);
    font: 500 8px/1 var(--font-latin-ui);
    letter-spacing: .22em;
    white-space: nowrap;
  }
  .site-menu-button[aria-expanded="true"]::before { content: "CLOSE"; }

  /* Normal pages: compact editorial sheet beneath the header. */
  .site-nav {
    position: fixed !important;
    inset: var(--header-height, 72px) 0 auto 0 !important;
    z-index: 61 !important;
    display: block !important;
    max-height: calc(100svh - var(--header-height, 72px));
    overflow-y: auto;
    padding: 28px var(--mobile-gutter, 20px) max(34px, env(safe-area-inset-bottom)) !important;
    background: rgba(247,244,238,.985);
    color: #1d1b19;
    border-top: 1px solid rgba(29,27,25,.08);
    border-bottom: 1px solid rgba(29,27,25,.14);
    box-shadow: 0 24px 50px rgba(20,18,15,.08);
    backdrop-filter: blur(16px);
    transform: translate3d(0,-115%,0) !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform 380ms cubic-bezier(.22,.78,.25,1), opacity 180ms ease-out, visibility 0s linear 380ms !important;
  }
  .site-nav.is-open {
    transform: translate3d(0,0,0) !important;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s !important;
  }
  .site-nav::after { display: none !important; }
  .site-nav ul {
    width: 100%;
    margin: 0;
    display: grid;
    gap: 0 !important;
    text-align: left;
  }
  .site-nav li {
    border-top: 1px solid rgba(29,27,25,.11);
  }
  .site-nav li:last-child { border-bottom: 1px solid rgba(29,27,25,.11); }
  .site-nav a {
    width: 100%;
    min-height: 62px;
    display: flex !important;
    align-items: center;
    padding: 10px 2px;
    color: inherit;
  }
  .site-nav a::before { display: none !important; }
  .site-nav a::after { display: none !important; }
  .site-nav .menu-label--desktop { display: none !important; }
  .site-nav .menu-label--mobile {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: baseline;
    gap: 16px;
    width: 100%;
    text-align: left;
  }
  .site-nav .menu-label--mobile .menu-label__ja {
    font-family: var(--font-ja-serif);
    font-size: 16px;
    line-height: 1.42;
    letter-spacing: .035em;
    opacity: 1;
  }
  .site-nav .menu-label--mobile .menu-label__en {
    font-family: var(--font-latin-ui);
    font-size: 8px;
    line-height: 1.2;
    letter-spacing: .17em;
    opacity: .48;
    white-space: nowrap;
  }
  .site-nav .current-menu-item .menu-label__ja::after,
  .site-nav .current_page_item .menu-label__ja::after,
  .site-nav .current-menu-ancestor .menu-label__ja::after {
    content: "  —";
    font-family: var(--font-latin-ui);
    opacity: .42;
  }

  /* TOP: keep the cinematic dark full-screen menu, but start items below CLOSE. */
  .home .site-header {
    z-index: 64;
    padding: max(20px, env(safe-area-inset-top)) 20px 16px;
    background: transparent;
  }
  .home .site-menu-button { z-index: 66; }
  .home .site-nav {
    position: fixed !important;
    inset: 0 !important;
    z-index: 65 !important;
    display: flex !important;
    align-items: center;
    max-height: none;
    overflow-y: auto;
    padding: max(126px, calc(env(safe-area-inset-top) + 112px)) 24px max(54px, calc(env(safe-area-inset-bottom) + 34px)) !important;
    background: rgba(9,9,8,.99);
    color: #f3f0e8;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
    transform: translate3d(0,-105%,0) !important;
  }
  .home .site-nav.is-open { transform: translate3d(0,0,0) !important; }
  .home .site-nav ul {
    width: 100%;
    max-width: 560px;
    margin: 0 0 0 auto;
    display: grid;
    gap: 0 !important;
    text-align: right;
  }
  .home .site-nav li {
    border-top: 1px solid rgba(243,240,232,.14);
  }
  .home .site-nav li:last-child { border-bottom: 1px solid rgba(243,240,232,.14); }
  .home .site-nav a {
    min-height: clamp(64px, 8.5svh, 78px);
    justify-content: flex-end;
    padding: 10px 0;
  }
  .home .site-nav .menu-label--mobile {
    display: flex !important;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
  }
  .home .site-nav .menu-label--mobile .menu-label__ja {
    font-size: clamp(20px, 5.5vw, 25px);
    line-height: 1.28;
    color: inherit;
  }
  .home .site-nav .menu-label--mobile .menu-label__en {
    font-size: 8px;
    letter-spacing: .19em;
    color: inherit;
    opacity: .52;
  }
  .home .site-menu-button::before {
    right: 52px;
    font-size: 8px;
    letter-spacing: .22em;
  }
}

@media (max-width: 374px), (max-height: 720px) and (max-width: 900px) {
  .site-nav a { min-height: 56px; }
  .home .site-nav { padding-top: max(110px, calc(env(safe-area-inset-top) + 98px)) !important; }
  .home .site-nav a { min-height: 58px; }
  .home .site-nav .menu-label--mobile .menu-label__ja { font-size: 18px; }
}

/* ---------------------------------------------------------
   04. Photo portfolio rhythm
   Personal family/pre-wedding imagery belongs to the service block only.
   The portfolio uses a distinct 22-image editorial sequence.
--------------------------------------------------------- */
.brand-visual-photo-works .selected-visuals__float:nth-child(3n+2) {
  transition-delay: 20ms;
}
.brand-visual-photo-works .selected-visuals__float:nth-child(3n) {
  transition-delay: 45ms;
}

/* A consistent frame system prepares ABOUT for a future matched portrait shoot. */
@media (min-width: 901px) {
  .about-person__image {
    aspect-ratio: 4 / 5;
    background: #ddd8d0;
  }
  .about-person__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }
}

/* =========================================================
   v0.2.101 — phrase-safe Japanese / business-first photography hierarchy
   Goal: authored Japanese phrase boundaries must win over browser wrapping.
========================================================= */

/* PERSONAL desktop opener: preserve comfortable right-side breathing room. */
@media (min-width: 901px) {
  .personal-page .personal-hero {
    grid-template-columns: minmax(0, 1.04fr) minmax(0, .96fr);
  }
  .personal-page .personal-hero__content {
    min-width: 0;
    padding-left: clamp(48px, 5.2vw, 94px);
    padding-right: clamp(74px, 7vw, 132px);
  }
  .personal-page .personal-hero__title {
    width: min(100%, 11.2em);
    max-width: 100%;
    font-size: clamp(39px, 3.25vw, 54px);
    line-height: 1.48;
    letter-spacing: 0;
  }
  .personal-page .personal-hero__title .responsive-copy__line {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
  }
  .personal-page .personal-hero__lead {
    width: min(100%, 610px);
  }
}

@media (min-width: 901px) and (max-width: 1366px) {
  .personal-page .personal-hero__content {
    padding-left: clamp(38px, 4.4vw, 62px);
    padding-right: clamp(50px, 5.2vw, 76px);
  }
  .personal-page .personal-hero__title {
    font-size: clamp(36px, 3.35vw, 46px);
  }
}

/* Smartphone phrase integrity for the PERSONAL decision path. */
@media (max-width: 900px) {
  .personal-page .personal-hero__lead .responsive-copy--mobile .responsive-copy__line,
  .personal-page .personal-problem__solution .responsive-copy--mobile .responsive-copy__line,
  .personal-page .personal-problem__list .responsive-copy--mobile .responsive-copy__line,
  .personal-page .personal-route h3 .responsive-copy--mobile .responsive-copy__line,
  .personal-page .personal-route .mobile-copy-precise .responsive-copy--mobile .responsive-copy__line,
  .personal-page .personal-menu-item .mobile-copy-precise .responsive-copy--mobile .responsive-copy__line,
  .personal-page .personal-cta .mobile-copy-precise .responsive-copy--mobile .responsive-copy__line {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap !important;
  }

  .personal-page .personal-hero__lead .responsive-copy--mobile {
    white-space: normal !important;
    font-size: clamp(13px, 3.45vw, 14.5px);
  }

  .personal-route h3 {
    font-size: clamp(22px, 5.85vw, 25px);
    line-height: 1.68;
  }

  /* Formal service names are proper nouns. Scale them rather than splitting them. */
  .personal-menu-item__name h3,
  .single-service__title {
    font-size: clamp(20px, 5.35vw, 23px);
    line-height: 1.55;
    letter-spacing: -.015em;
  }
  .personal-menu-item__name h3 .service-title__keep--full,
  .single-service__title .service-title__keep--full {
    display: inline-block;
    max-width: 100%;
    white-space: nowrap !important;
  }

  .personal-page .personal-menu-item .mobile-copy-precise .responsive-copy--mobile {
    white-space: normal !important;
    font-size: clamp(12.5px, 3.35vw, 14px);
  }
}

@media (max-width: 374px) {
  .personal-menu-item__name h3,
  .single-service__title { font-size: 19px; }
  .personal-route h3 { font-size: 21px; }
}

/* Photography page: commercial work is the primary proof; personal milestones are secondary. */
.brand-visual-photo-works {
  position: relative;
  z-index: 1;
}
.brand-visual-personal-photo {
  background: #eee9e1;
  padding: clamp(78px, 8vw, 122px) 0 clamp(92px, 9vw, 138px);
  border-top: 1px solid rgba(29,27,25,.10);
}
.brand-visual-personal-photo__head {
  display: grid;
  grid-template-columns: minmax(0,.8fr) minmax(360px,1.2fr);
  gap: clamp(48px,6vw,96px);
  align-items: end;
  margin-bottom: clamp(46px,5vw,72px);
}
.brand-visual-personal-photo__head .section-title {
  max-width: 11em;
  font-size: clamp(31px,2.2vw,40px);
}
.personal-photo-editorial {
  display: grid;
  grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr);
  gap: clamp(28px,4vw,64px);
  align-items: start;
}
.personal-photo-feature,
.personal-photo-feature--family,
.personal-photo-feature--wedding {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  align-items: start;
}
.personal-photo-feature--family { padding-top: clamp(28px,4vw,64px); }
.personal-photo-feature--family .personal-photo-feature__media,
.personal-photo-feature--wedding .personal-photo-feature__media {
  width: 100%;
  max-width: none;
}
.personal-photo-feature--family .personal-photo-feature__media { aspect-ratio: 4 / 5; }
.personal-photo-feature--wedding .personal-photo-feature__media { aspect-ratio: 16 / 10; }
.personal-photo-feature__overlay { display: none !important; }
.personal-photo-feature__details,
.personal-photo-feature--wedding .personal-photo-feature__details {
  width: min(100%, 600px);
  max-width: 100%;
  justify-self: start;
  padding: 0;
}
.personal-photo-feature__eyebrow {
  margin: 0 0 10px !important;
  font: 500 8px/1.35 var(--font-latin-ui) !important;
  letter-spacing: .20em !important;
  color: rgba(25,24,22,.50) !important;
}
.personal-photo-feature__details h3 {
  margin: 0 0 12px;
  font-family: var(--font-ja-serif);
  font-size: clamp(22px,1.7vw,29px);
  line-height: 1.55;
  font-weight: 400;
  letter-spacing: .01em;
}
.personal-photo-feature__details strong {
  margin-bottom: 14px;
  font-size: clamp(18px,1.45vw,24px);
}

@media (max-width: 900px) {
  .brand-visual-personal-photo { padding: 72px 0 88px; }
  .brand-visual-personal-photo__head {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-bottom: 38px;
  }
  .brand-visual-personal-photo__head .section-title {
    max-width: 100%;
    font-size: clamp(27px,7vw,30px);
  }
  .personal-photo-editorial {
    grid-template-columns: 1fr;
    gap: 58px;
  }
  .personal-photo-feature--family { padding-top: 0; }
  .personal-photo-feature--family .personal-photo-feature__media { aspect-ratio: 4 / 5; }
  .personal-photo-feature--wedding .personal-photo-feature__media { aspect-ratio: 4 / 3; }
  .personal-photo-feature__details h3 { font-size: 23px; }
}

/* Argyle -> Brand Me Labo bridge: long title is supporting information, not a hero. */
@media (min-width: 901px) {
  .single-service__bridge h3 {
    max-width: 16em;
    font-size: clamp(28px,2vw,38px);
    line-height: 1.55;
  }
}
@media (max-width: 900px) {
  .single-service__bridge h3 {
    font-size: clamp(24px,6.2vw,28px);
    line-height: 1.65;
  }
}

/* =========================================================
   v0.2.103 — desktop safe edge / deliberate portfolio opening
========================================================= */
@media (min-width: 901px) {
  /* A title may be semantically line-broken, but it must never visually kiss or cross
     the monitor edge. JS uses the same viewport-safe principle to reduce type first. */
  :where(
    .hero__title, .personal-hero__title, .business-hero__title, .works-hero__title,
    .single-menu-hero__title, .labo-hero__title, .brand-visual-hero__title,
    .update-hero__title, .about-hero__title, .about-manifesto__title,
    .about-message__title, .contact-hero__title, .faq-hero__title,
    .journal-masthead__title, .section-title, .page-title
  ) {
    box-sizing: border-box;
    max-inline-size: 100%;
  }

  :where(
    .hero__content, .personal-hero__content, .business-hero__content,
    .works-hero__content, .single-menu-hero__copy, .labo-hero__copy,
    .brand-visual-hero__copy, .update-hero__copy
  ) {
    min-width: 0;
  }

  /* 01–04 read as an intentional opening sequence: portrait / mono / Kumano pair. */
  .brand-visual-photo-works .selected-visuals__float:nth-child(1),
  .brand-visual-photo-works .selected-visuals__float:nth-child(2),
  .brand-visual-photo-works .selected-visuals__float:nth-child(3),
  .brand-visual-photo-works .selected-visuals__float:nth-child(4) {
    margin-top: 0;
  }
  .brand-visual-photo-works .selected-visuals__float:nth-child(3),
  .brand-visual-photo-works .selected-visuals__float:nth-child(4) {
    align-self: start;
  }
}


/* =========================================================
   v0.2.104 — compact PERSONAL opener / stronger desktop safe edge
   Japanese phrase boundaries are preserved; type scales before clipping.
========================================================= */
@media (min-width: 901px) {
  /* Keep a visible editorial gutter at the monitor edge on all split heroes. */
  .personal-page .personal-hero__content,
  .single-menu-hero__copy,
  .business-hero__content,
  .works-hero__content,
  .brand-visual-hero__copy,
  .labo-hero__copy,
  .update-hero__copy {
    box-sizing: border-box;
    padding-right: max(clamp(64px, 6vw, 120px), 4.2vw);
  }

  /* PERSONAL: two-line desktop statement; tighter rhythm than supporting titles. */
  .personal-page .personal-hero__title {
    width: min(100%, 13.4em);
    font-size: clamp(38px, 3.05vw, 50px);
    line-height: 1.28;
    letter-spacing: 0;
    margin-bottom: clamp(28px, 2.5vw, 42px);
  }
  .personal-page .personal-hero__title .responsive-copy--desktop .responsive-copy__line + .responsive-copy__line {
    margin-top: .12em;
  }

  /* SINGLE SESSIONS: long Japanese sentence is deliberately three lines on PC. */
  .single-menu-hero__copy {
    padding-left: clamp(54px, 6vw, 102px);
  }
  .single-menu-hero__title {
    width: min(100%, 12.8em);
    max-width: 100%;
    margin: 24px 0 30px;
    font-size: clamp(38px, 3.15vw, 52px);
    line-height: 1.38;
    letter-spacing: 0;
  }
  .single-menu-hero__title .responsive-copy--desktop .responsive-copy__line {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
  }

  /* Never allow an authored title to sit flush against the viewport edge. */
  :where(
    .personal-hero__title, .business-hero__title, .works-hero__title,
    .single-menu-hero__title, .labo-hero__title, .brand-visual-hero__title,
    .update-hero__title, .about-hero__title, .about-manifesto__title,
    .about-message__title, .contact-hero__title, .faq-hero__title,
    .journal-masthead__title, .section-title, .page-title
  ) {
    margin-right: 0;
    overflow: visible;
  }
}

@media (min-width: 901px) and (max-width: 1366px) {
  .personal-page .personal-hero__title {
    font-size: clamp(35px, 3vw, 42px);
    line-height: 1.3;
  }
  .single-menu-hero__title {
    font-size: clamp(34px, 3vw, 43px);
    line-height: 1.4;
  }
  .single-menu-hero__copy {
    padding-left: clamp(42px, 4.2vw, 60px);
    padding-right: clamp(58px, 5vw, 76px);
  }
}


/* =========================================================
   v0.2.106 — ABOUT people: user-selected portraits / editorial typography
   Photos remain editable; the framing, hierarchy and graphic marks are protected.
========================================================= */
.about-person {
  position: relative;
}

@media (min-width: 1200px) {
  .about-person {
    grid-template-columns: minmax(0, 1.04fr) minmax(360px, .76fr);
    gap: clamp(64px, 7vw, 118px);
    align-items: center;
    margin-bottom: clamp(132px, 15vw, 220px);
  }
  .about-person--kazuya {
    grid-template-columns: minmax(360px, .76fr) minmax(0, 1.04fr);
  }
  .about-person__image {
    aspect-ratio: 4 / 5;
    background: #ded9d1;
    overflow: hidden;
  }
  .about-person__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }
  .about-person__copy {
    width: min(100%, 620px);
    max-width: 620px;
  }
  .about-person--kazuya .about-person__copy {
    justify-self: end;
  }
  .about-person__number {
    margin: 0 0 clamp(34px, 3vw, 48px);
    font-size: clamp(64px, 5.8vw, 96px);
    line-height: .92;
    color: rgba(140,130,118,.42);
  }
  .about-person__copy > .section-label {
    margin-bottom: 24px;
    font-family: var(--font-latin-ui);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .26em;
  }
  .about-person__copy h3 {
    margin: 0 0 34px;
    font-family: var(--font-latin-ui);
    font-size: clamp(13px, .95vw, 16px);
    font-weight: 500;
    line-height: 1.85;
    letter-spacing: .13em;
    text-transform: uppercase;
  }
  .about-person__copy p:not(.about-person__number):not(.section-label) {
    max-width: 610px;
    margin-top: 0;
    margin-bottom: 22px;
    font-size: clamp(14px, .98vw, 16px);
    line-height: 2.05;
    color: #514c46;
    text-wrap: pretty;
  }
}

@media (min-width: 901px) and (max-width: 1199px) {
  .about-person,
  .about-person--kazuya {
    grid-template-columns: minmax(0, 1fr) minmax(330px, .82fr);
    gap: 48px;
  }
  .about-person--kazuya {
    grid-template-columns: minmax(330px, .82fr) minmax(0, 1fr);
  }
  .about-person__number {
    font-size: 60px;
    margin-bottom: 28px;
  }
  .about-person__copy h3 {
    font-family: var(--font-latin-ui);
    font-size: 13px;
    line-height: 1.8;
    letter-spacing: .11em;
    text-transform: uppercase;
  }
  .about-person__copy p:not(.about-person__number):not(.section-label) {
    font-size: 14px;
    line-height: 2;
  }
}

@media (max-width: 900px) {
  .about-person,
  .about-person--kazuya {
    gap: 30px;
    margin-bottom: 96px;
  }
  .about-person__image {
    aspect-ratio: 4 / 5;
  }
  .about-person__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }
  .about-person__number {
    margin-bottom: 20px;
    font-size: clamp(52px, 15vw, 68px);
    color: rgba(140,130,118,.44);
  }
  .about-person__copy > .section-label {
    margin-bottom: 18px;
    letter-spacing: .22em;
  }
  .about-person__copy h3 {
    margin: 0 0 26px;
    font-family: var(--font-latin-ui);
    font-size: 12px;
    line-height: 1.8;
    letter-spacing: .10em;
    text-transform: uppercase;
  }
  .about-person__copy p:not(.about-person__number):not(.section-label) {
    margin-bottom: 18px;
    font-size: 14px;
    line-height: 1.95;
    text-wrap: pretty;
  }
}


/* =========================================================
   v0.2.107 — ABOUT profile copy integrity
   Keep authored Japanese phrase units intact; remove decorative name overlays.
========================================================= */
.about-person__mark { display: none !important; }

.about-copy__term { white-space: nowrap; }

@media (max-width: 900px) {
  .about-person__copy .mobile-copy-precise .responsive-copy--mobile {
    display: inline;
    white-space: normal !important;
  }
  .about-person__copy .mobile-copy-precise .responsive-copy--mobile .responsive-copy__line {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap !important;
  }
}


/* =========================================================
   v0.2.108 — ABOUT / IN NUMBERS
   A darker editorial interlude, clearer Japanese labels and
   motion-ready tabular figures. Copy terms keep La paix intact.
========================================================= */
.about-numbers {
  position: relative;
  overflow: hidden;
  background: #191816;
  color: #f4f0e9;
  padding-block: clamp(104px, 11vw, 176px);
}
.about-numbers::after {
  content: "";
  position: absolute;
  inset: auto -8vw -28vw auto;
  width: 48vw;
  aspect-ratio: 1;
  border: 1px solid rgba(244,240,233,.055);
  border-radius: 50%;
  pointer-events: none;
}
.about-numbers .section__inner { position: relative; z-index: 1; }
.about-numbers .section-label { color: #b9aa96; }
.about-numbers__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .62fr);
  align-items: end;
  gap: clamp(48px, 7vw, 110px);
  padding-bottom: clamp(44px, 5vw, 72px);
  border-bottom: 1px solid rgba(244,240,233,.22);
}
.about-numbers__title {
  margin: 18px 0 0;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(38px, 3.6vw, 58px);
  line-height: 1.32;
  letter-spacing: .005em;
}
.about-numbers__lead {
  max-width: 420px;
  margin: 0 0 5px auto;
  color: rgba(244,240,233,.72);
  font-size: clamp(14px, 1.05vw, 16px);
  line-height: 1.95;
  letter-spacing: .035em;
}
.about-numbers__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 0;
  background: transparent;
  border: 0;
}
.about-number {
  position: relative;
  min-height: clamp(310px, 25vw, 400px);
  padding: clamp(44px, 4.6vw, 72px) clamp(28px, 3.6vw, 56px) clamp(36px, 4vw, 58px);
  background: transparent;
  border-left: 1px solid rgba(244,240,233,.16);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.about-number:first-child { border-left: 0; padding-left: 0; }
.about-number:last-child { padding-right: 0; }
.about-number__index {
  margin: 0 0 auto;
  color: rgba(244,240,233,.38);
  font-family: var(--font-latin-ui);
  font-size: 9px;
  line-height: 1;
  letter-spacing: .22em;
}
.about-number__value {
  margin-top: clamp(54px, 6vw, 88px);
  color: #f4f0e9;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(62px, 6.4vw, 104px);
  line-height: .92;
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}
.about-number__suffix {
  display: inline-block;
  margin-left: .08em;
  font-size: .32em;
  line-height: 1;
  vertical-align: top;
  transform: translateY(.12em);
  color: #c8b79f;
}
.about-number__caption {
  margin-top: clamp(28px, 3vw, 42px);
  padding-top: 19px;
  border-top: 1px solid rgba(244,240,233,.18);
}
.about-number__ja {
  margin: 0;
  color: #f4f0e9;
  font-family: var(--font-serif);
  font-size: clamp(16px, 1.2vw, 19px);
  line-height: 1.7;
  letter-spacing: .04em;
  text-transform: none;
}
.about-number__en {
  margin: 8px 0 0;
  color: rgba(244,240,233,.48);
  font-family: var(--font-latin-ui);
  font-size: 9px;
  line-height: 1.6;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.about-copy__term { white-space: nowrap; }

@media (max-width: 900px) {
  .about-numbers { padding-block: 88px 96px; }
  .about-numbers::after { width: 110vw; right: -50vw; bottom: -38vw; }
  .about-numbers__head {
    grid-template-columns: 1fr;
    gap: 22px;
    padding-bottom: 38px;
  }
  .about-numbers__title {
    margin-top: 14px;
    font-size: clamp(30px, 8.5vw, 36px);
    line-height: 1.45;
  }
  .about-numbers__lead {
    max-width: none;
    margin: 0;
    font-size: 14px;
    line-height: 1.85;
  }
  .about-numbers__grid { grid-template-columns: 1fr; }
  .about-number,
  .about-number:first-child,
  .about-number:last-child {
    min-height: 0;
    padding: 36px 0 38px;
    border-left: 0;
    border-bottom: 1px solid rgba(244,240,233,.16);
  }
  .about-number:last-child { border-bottom: 0; padding-bottom: 4px; }
  .about-number__index { margin-bottom: 26px; }
  .about-number__value {
    margin-top: 0;
    font-size: clamp(62px, 18.5vw, 84px);
  }
  .about-number__caption {
    margin-top: 24px;
    padding-top: 16px;
  }
  .about-number__ja { font-size: 16px; line-height: 1.7; }
  .about-number__en { font-size: 9px; }
}

/* v0.2.108 specificity guards against the legacy IN NUMBERS card rules. */
.about-number__value .about-number__count {
  font-size: 1em;
  line-height: inherit;
  vertical-align: baseline;
}
.about-number .about-number__index {
  margin: 0 0 auto;
  color: rgba(244,240,233,.38);
  font-size: 9px;
  line-height: 1;
  letter-spacing: .22em;
  text-transform: none;
}
.about-number .about-number__ja {
  margin: 0;
  color: #f4f0e9;
  font-size: clamp(16px, 1.2vw, 19px);
  line-height: 1.7;
  letter-spacing: .04em;
  text-transform: none;
}
.about-number .about-number__en {
  margin: 8px 0 0;
  color: rgba(244,240,233,.48);
  font-size: 9px;
  line-height: 1.6;
  letter-spacing: .17em;
  text-transform: uppercase;
}
@media (max-width: 900px) {
  .about-number .about-number__ja { font-size: 16px; }
}
.about-number .about-number__value {
  margin-top: clamp(54px, 6vw, 88px);
  color: #f4f0e9;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(62px, 6.4vw, 104px);
  line-height: .92;
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}
.about-number__value .about-number__suffix {
  display: inline-block;
  margin-left: .08em;
  font-size: .32em;
  line-height: 1;
  vertical-align: top;
  transform: translateY(.12em);
  color: #c8b79f;
}
@media (max-width: 900px) {
  .about-number .about-number__value {
    margin-top: 0;
    font-size: clamp(62px, 18.5vw, 84px);
  }
}

/* =========================================================
   v0.2.109 — ABOUT safe-area / company identity / quieter numbers
   Full-bleed imagery can touch the viewport; readable copy never does.
========================================================= */
@media (min-width: 901px) {
  .about-hero__content.section__inner {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-left: clamp(64px, 5vw, 104px);
    padding-right: clamp(64px, 5vw, 104px);
  }
  .about-hero__title {
    max-width: min(14em, calc(100vw - 168px));
  }
  .about-hero__lead {
    max-width: calc(100vw - 168px);
  }
  .about-hero__side {
    right: clamp(18px, 1.4vw, 28px);
  }
}

/* The circle remains a barely-there editorial trace, never a competing motif. */
.about-numbers::after {
  right: -17vw;
  bottom: -36vw;
  width: 46vw;
  border-color: rgba(244,240,233,.026);
}
@media (max-width: 900px) {
  .about-numbers::after {
    width: 105vw;
    right: -64vw;
    bottom: -44vw;
    border-color: rgba(244,240,233,.024);
  }
}

/* Quiet corporate signature: legal clarity without turning ABOUT into a company brochure. */
.about-company-signature {
  background: #f3eee7;
  border-top: 1px solid rgba(30,29,27,.10);
  padding: clamp(42px, 4.6vw, 72px) 32px;
}
.about-company-signature__inner {
  display: grid;
  grid-template-columns: minmax(120px,.45fr) minmax(0,1.25fr) auto;
  gap: clamp(28px, 4vw, 68px);
  align-items: end;
}
.about-company-signature p { margin: 0; }
.about-company-signature__label,
.about-company-signature__location {
  font-family: var(--font-latin-ui);
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #8f816e;
}
.about-company-signature__names {
  display: flex;
  align-items: baseline;
  gap: clamp(14px, 1.6vw, 26px);
  min-width: 0;
}
.about-company-signature__ja {
  font-family: var(--font-ja-serif);
  font-size: clamp(20px, 1.75vw, 28px);
  line-height: 1.5;
  letter-spacing: .04em;
  white-space: nowrap;
}
.about-company-signature__en {
  font-family: var(--font-latin-ui);
  font-size: 11px;
  line-height: 1.5;
  letter-spacing: .16em;
  color: #726b62;
  white-space: nowrap;
}
.about-company-signature__location { text-align: right; white-space: nowrap; }

/* Footer legal identity is deliberately secondary to the brand statement. */
.site-footer__inner {
  grid-template-columns: minmax(120px,.55fr) minmax(240px,1fr) minmax(230px,.9fr) auto;
  gap: clamp(24px, 3vw, 48px);
}
.site-footer__legal {
  display: grid;
  gap: 5px;
  color: rgba(255,255,255,.72);
  font-size: 12px;
  line-height: 1.7;
}
.site-footer__legal span { white-space: nowrap; }
.site-footer__legal small {
  color: rgba(255,255,255,.45);
  font-family: var(--font-latin-ui);
  font-size: 9px;
  line-height: 1.6;
  letter-spacing: .13em;
  text-transform: uppercase;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .about-company-signature { padding: 38px var(--mobile-gutter, 24px) 42px; }
  .about-company-signature__inner {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .about-company-signature__names {
    display: grid;
    gap: 6px;
  }
  .about-company-signature__ja { font-size: 20px; }
  .about-company-signature__location { text-align: left; margin-top: 4px; }
  .site-footer__inner { grid-template-columns: 1fr; gap: 18px; }
  .site-footer__legal { margin-top: 4px; }
}


/* =========================================================
   v0.2.110 — ABOUT information hierarchy / Japanese body copy
   Remove the now-redundant philosophy block from the page flow and
   keep the company introduction on authored phrase boundaries on PC.
========================================================= */
@media (min-width: 901px) {
  .about-company .section-text .mobile-copy-precise {
    margin: 0 0 24px;
    font-size: clamp(15px, 1.02vw, 17px);
    line-height: 2.05;
    letter-spacing: .018em;
  }
  .about-company .section-text .mobile-copy-precise:last-child { margin-bottom: 0; }
  .about-company .section-text .responsive-copy--desktop .responsive-copy__line {
    white-space: nowrap;
  }
}
@media (min-width: 901px) and (max-width: 1199px) {
  .about-company .section-text .responsive-copy--desktop .responsive-copy__line {
    white-space: normal;
  }
}


/* =========================================================
   v0.2.111 — PC Japanese composition / footer simplification / story image
   Author phrase breaks are treated as design constraints on desktop. When a
   phrase does not fit, typography scales before the browser is allowed to
   split Japanese words at arbitrary character positions.
========================================================= */

@media (min-width: 901px) {
  /* TOP VISUAL DIRECTION: exactly two authored lines on PC. */
  .visual-rhythm__track {
    grid-template-columns: minmax(0,1.17fr) minmax(190px,.56fr) minmax(410px,.94fr);
    gap: clamp(20px,1.8vw,30px);
  }
  .visual-rhythm__copy { min-width: 0; }
  .visual-rhythm__copy .visual-rhythm__quote {
    font-size: clamp(16px,1.45vw,24px);
    line-height: 1.72;
    letter-spacing: .015em;
  }
  .visual-rhythm__quote .responsive-copy--desktop .responsive-copy__line,
  .statement__lead .responsive-copy--desktop .responsive-copy__line,
  .desktop-copy-precise .responsive-copy--desktop .responsive-copy__line {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
  }

  /* TOP statement / CTA: preserve requested two-line sentence rhythm. */
  .statement .section__inner--narrow,
  .cta .section__inner--narrow { width: min(100%, 1080px); max-width: 1080px; }
  .statement__lead { font-size: clamp(14px,1.05vw,17px); letter-spacing: .008em; }
  .cta .desktop-copy-precise { font-size: clamp(14px,1.05vw,17px); }

  /* PERSONAL opening copy and concern list. */
  .personal-page .personal-hero__lead { max-width: 760px; }
  .personal-page .personal-hero__lead p { font-size: clamp(14px,1.02vw,16px); line-height: 2.02; }
  .personal-problem__body { max-width: 820px; }
  .personal-problem__concerns {
    color: var(--color-soft-ink);
    font-size: clamp(14px,.98vw,16px);
    line-height: 2.12;
  }
  .personal-problem__solution-desktop {
    margin: 30px 0 0 !important;
    color: var(--color-ink) !important;
    font-size: clamp(17px,1.45vw,22px) !important;
    line-height: 1.88 !important;
  }
  .personal-menu-item__name h3 .responsive-copy--desktop .responsive-copy__line,
  .single-service__title .responsive-copy--desktop .responsive-copy__line {
    display:block;
    width:max-content;
    max-width:100%;
    white-space:nowrap;
  }

  /* SINGLE SESSIONS: compact three-line hero and clean two-line guide title. */
  .single-menu-hero__title { line-height: 1.20 !important; }
  .single-menu-hero__lead { max-width: 720px; }
  .single-menu-hero__lead p { font-size: clamp(14px,1vw,16px); line-height: 2.05; }
  .single-menu-guide__lead { display: none !important; }
  .single-menu-guide__head { grid-template-columns: 1fr !important; }
  .single-menu-guide__head > div:first-child { max-width: 900px; }
  .single-menu-guide .section-title .responsive-copy--desktop .responsive-copy__line {
    display:block;
    width:max-content;
    max-width:100%;
    white-space:nowrap;
  }

  /* PERSONAL long, intentional support copy. */
  .personal-photo-path .desktop-copy-precise,
  .personal-voice__note .desktop-copy-precise,
  .personal-cta .desktop-copy-precise {
    font-size: clamp(14px,1.02vw,16px);
    line-height: 2.05;
  }

  /* Brand Me Labo quote: three stable Japanese lines. */
  .labo-story__quote .responsive-copy--desktop .responsive-copy__line {
    display:block;
    width:max-content;
    max-width:100%;
    white-space:nowrap;
  }
}

@media (min-width: 1200px) {
  .personal-photo-path { grid-template-columns: minmax(420px,.78fr) minmax(760px,1.22fr); }
  .personal-photo-path__content { padding-left: clamp(40px,4vw,70px); padding-right: clamp(40px,4vw,70px); }
  .personal-photo-path__content .section-text { max-width: none; }
}
@media (min-width: 901px) and (max-width: 1199px) {
  .personal-photo-path .desktop-copy-precise .responsive-copy--desktop .responsive-copy__line {
    width:auto;
    white-space:normal;
  }
}

/* Footer now carries the legal identity once; ABOUT no longer repeats it. */
.site-footer { padding: clamp(58px,5vw,78px) 32px; }
.site-footer__inner {
  grid-template-columns: minmax(280px,1.25fr) minmax(260px,.8fr) auto !important;
  gap: clamp(30px,5vw,76px) !important;
  align-items: end;
}
.site-footer__identity { display:grid; gap:12px; }
.site-footer__copy { max-width: 420px; }
.site-footer__legal { justify-self:start; }
.site-footer__copyright { justify-self:end; white-space:nowrap; }

/* Existing Brand Me Labo before/after composite: present it as an editorial
   print plate rather than cropping it into an unrelated portrait ratio. */
.labo-story__image {
  aspect-ratio: auto !important;
  padding: clamp(10px,1.25vw,18px);
  background: #ece5da;
  border: 1px solid rgba(30,29,27,.11);
  overflow: visible !important;
}
.labo-story__image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  display: block;
}

@media (max-width: 900px) {
  .site-footer { padding: 54px var(--mobile-gutter,24px) 46px; }
  .site-footer__inner { grid-template-columns: 1fr !important; gap: 26px !important; align-items:start; }
  .site-footer__identity { gap:10px; }
  .site-footer__legal,
  .site-footer__copyright { justify-self:start; }
  .single-menu-guide__lead { display:block; }
  .labo-story__image { padding: 8px; }
}


/* =========================================================
   v0.2.112 — REAL STORY split photography / ABOUT team visual
   ========================================================= */
.labo-story__visual {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(18px,2.2vw,34px);
  align-items:end;
  padding:clamp(18px,2.2vw,30px);
  background:#f3eee7;
  border:1px solid rgba(30,29,27,.12);
}
.labo-story__portrait { margin:0; min-width:0; }
.labo-story__portrait-frame { overflow:hidden; background:#ddd5ca; }
.labo-story__portrait-frame img { width:100%; height:auto; display:block; }
.labo-story__portrait figcaption { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:16px; padding-top:13px; border-top:1px solid rgba(30,29,27,.18); }
.labo-story__portrait figcaption span { color:var(--color-accent); font:400 9px/1 Arial,sans-serif; letter-spacing:.18em; }
.labo-story__portrait figcaption strong { font:400 11px/1 Arial,sans-serif; letter-spacing:.22em; }
@media (min-width:901px) {
  .labo-story--with-image .labo-story__grid { grid-template-columns:minmax(430px,.92fr) minmax(0,1.08fr); gap:clamp(60px,6vw,110px); }
  .labo-story__quote p { font-size:clamp(25px,2.45vw,36px); line-height:1.48; }
  .labo-story__quote .responsive-copy--desktop { display:block; }
  .labo-story__quote .responsive-copy--desktop .responsive-copy__line { display:block; width:max-content; max-width:100%; white-space:nowrap; }
  .about-together__image { background:#d8d0c5; }
  .about-together__image img { aspect-ratio:4/5; object-fit:cover; }
}
@media (max-width:900px) {
  .labo-story__visual { gap:12px; padding:12px; }
  .labo-story__portrait figcaption { margin-top:11px; padding-top:10px; }
  .labo-story__portrait figcaption strong { font-size:9px; letter-spacing:.16em; }
  .about-together__image img { aspect-ratio:4/5; object-fit:cover; }
}

/* =========================================================
   v0.2.113 — MOBILE READING / FOCAL POINT / GALLERY AFFORDANCE
   Mobile-first refinement after iPhone 16 Pro screen-recording review.
   Editable copy remains in WordPress; rhythm and line handling stay protected.
========================================================= */

.jp-keep { white-space: nowrap; }

@media (max-width: 900px) {
  /* ABOUT hero: the source photograph's subject lives on the right side.
     Crop around the person instead of letting the narrow viewport show scenery only. */
  .about-page .about-hero__media img {
    object-fit: cover;
    object-position: 74% 50% !important;
  }

  /* ABOUT profiles: slightly denser editorial leading. The previous 1.95–2.0
     made short Japanese paragraphs feel detached and lengthened the page. */
  .about-person__copy h3 {
    margin-bottom: 20px;
    line-height: 1.62;
  }
  .about-person__copy p:not(.about-person__number):not(.section-label) {
    margin-bottom: 14px;
    font-size: clamp(13px, 3.45vw, 14px);
    line-height: 1.78;
    letter-spacing: .012em;
    line-break: strict;
    overflow-wrap: normal;
    word-break: normal;
  }
  .about-person__copy .mobile-copy-precise .responsive-copy--mobile .responsive-copy__line {
    line-height: inherit;
  }

  /* TOP purpose navigation: the Japanese action is the primary label.
     Gain room from the English column before shrinking or splitting Japanese. */
  .top-paths a {
    grid-template-columns: 76px minmax(0,1fr);
    gap: 12px;
    padding: 18px 20px;
  }
  .top-paths strong {
    font-size: clamp(14px, 3.75vw, 15px);
    line-height: 1.55;
    letter-spacing: 0;
    white-space: nowrap;
  }

  /* PERSONAL concern block: make the four moments instantly scannable.
     No authored hard breaks inside sentences; let Japanese wrap naturally. */
  .personal-problem__list {
    display: block;
    margin: 2px 0 30px;
    border-top: 1px solid rgba(30,29,27,.18);
  }
  .personal-problem__list li {
    display: grid;
    grid-template-columns: 30px minmax(0,1fr);
    gap: 10px;
    align-items: start;
    padding: 15px 0 16px;
    border-bottom: 1px solid rgba(30,29,27,.14);
    font-size: clamp(13.5px,3.55vw,14.5px);
    line-height: 1.72;
    letter-spacing: .005em;
    color: #3f3b36;
  }
  .personal-problem__list li::before { content: none; }
  .personal-problem__index {
    padding-top: .35em;
    color: var(--color-accent);
    font: 500 8px/1 var(--font-latin-ui, Arial, sans-serif);
    letter-spacing: .14em;
  }
  .personal-problem__item-text {
    min-width: 0;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }
  .personal-problem__solution {
    display: grid;
    gap: 9px;
    margin: 0;
    padding: 26px 0 0;
    font-size: inherit;
    line-height: normal;
  }
  .personal-problem__solution-lead {
    display: block;
    font-family: "Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
    font-size: clamp(17px,4.55vw,19px);
    line-height: 1.65;
    color: var(--color-ink);
  }
  .personal-problem__solution-copy {
    display: block;
    font-size: clamp(13.5px,3.55vw,14.5px);
    line-height: 1.8;
    color: var(--color-soft-ink);
    line-break: strict;
    text-wrap: pretty;
  }

  /* Long explanatory text: Japanese Mincho headings remain, but body copy gets
     a calmer sans face, tighter leading and natural wrapping on phones. */
  .personal-labo__body p,
  .personal-menu-item__body,
  .personal-menu-item__body p,
  .personal-routes__head .section-text,
  .personal-routes__head .section-text p,
  .personal-route > div,
  .personal-route > div p,
  .personal-menu__head .section-text,
  .personal-menu__head .section-text p,
  .personal-photo-path__content .section-text,
  .personal-photo-path__content .section-text p,
  .personal-message__body,
  .personal-message__body p {
    font-family: "Hiragino Sans","Yu Gothic","YuGothic",sans-serif;
    font-size: clamp(13px,3.45vw,14px) !important;
    line-height: 1.82 !important;
    letter-spacing: .012em !important;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }
  .personal-labo__body p { margin: 0 0 1.25em; color: #59544e; }
  .personal-labo__body p:last-child { margin-bottom: 0; }

  /* Old precise mobile maps were useful for titles, but body paragraphs became
     seven or eight short lines. Collapse those manual <br>s into natural body flow. */
  .personal-menu-item__body .responsive-copy--mobile .responsive-copy__line,
  .personal-routes__head .responsive-copy--mobile .responsive-copy__line,
  .personal-route > div .responsive-copy--mobile .responsive-copy__line,
  .personal-menu__head .responsive-copy--mobile .responsive-copy__line,
  .personal-photo-path__content .responsive-copy--mobile .responsive-copy__line {
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    white-space: normal !important;
  }
  .personal-menu-item__body .responsive-copy--mobile br,
  .personal-routes__head .responsive-copy--mobile br,
  .personal-route > div .responsive-copy--mobile br,
  .personal-menu__head .responsive-copy--mobile br,
  .personal-photo-path__content .responsive-copy--mobile br {
    display: none !important;
  }

  /* Keep each service compact: less dead vertical space without reducing legibility. */
  .personal-menu-item { padding-top: 34px; padding-bottom: 36px; }
  .personal-menu-item__body { margin-top: 18px; }
  .personal-menu-item__name h3 { margin-bottom: 10px; }

  /* PRIVACY: deliberately two-line title and comfortable body measure. */
  .contact-privacy-notice { padding-top: 76px; padding-bottom: 82px; }
  .contact-privacy-notice__inner { width: 100%; }
  .contact-privacy-notice__title {
    margin: 22px 0 34px;
    max-width: 100%;
    font-size: clamp(27px,7.2vw,31px) !important;
    line-height: 1.52 !important;
    letter-spacing: 0 !important;
  }
  .contact-privacy-notice__title .responsive-copy--mobile .responsive-copy__line {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
  }
  .contact-privacy-notice__body {
    max-width: none;
    margin-top: 0;
    font-family: "Hiragino Sans","Yu Gothic","YuGothic",sans-serif;
    font-size: clamp(12.5px,3.35vw,13.5px);
    line-height: 1.86;
    letter-spacing: .008em;
    color: #5a554f;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }
  .contact-privacy-notice__body p { margin-bottom: 1.25em; }

  /* Photo work browsing: the persistent consultation CTA should not cover a
     visual browsing surface. It returns automatically after the gallery. */
  .mobile-sticky-cta.is-gallery-suppressed,
  body.has-lightbox .mobile-sticky-cta {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(0,14px,0) !important;
  }

  .selected-visuals__mobile-invite p {
    font-size: 12.5px;
    line-height: 1.75;
  }
  .selected-visuals__open-all { min-height: 60px; }

  /* Full gallery: make the next action self-evident before the first swipe. */
  .visual-lightbox__swipe-hint {
    position: fixed;
    left: 50%;
    bottom: max(20px, env(safe-area-inset-bottom));
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 9px 13px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 999px;
    background: rgba(12,11,10,.58);
    color: rgba(255,255,255,.82);
    font-size: 10px;
    line-height: 1;
    letter-spacing: .08em;
    backdrop-filter: blur(10px);
    transform: translateX(-50%);
    transition: opacity 220ms ease, transform 220ms ease;
    pointer-events: none;
    white-space: nowrap;
  }
  .visual-lightbox__swipe-hint span {
    font: 500 8px/1 var(--font-latin-ui, Arial, sans-serif);
    letter-spacing: .17em;
    color: #cbb79d;
  }
  .visual-lightbox__swipe-hint i { font-style: normal; font-size: 14px; }
  .visual-lightbox__swipe-hint.is-hidden {
    opacity: 0;
    transform: translate(-50%, 8px);
  }
  .visual-lightbox__nav {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
    background: rgba(12,11,10,.24);
    opacity: .88;
  }
}

@media (max-width: 374px) {
  .top-paths a { grid-template-columns: 68px minmax(0,1fr); gap: 10px; padding-inline: 18px; }
  .top-paths strong { font-size: 13.5px; }
  .about-page .about-hero__media img { object-position: 77% 50% !important; }
}


/* =========================================================
   v0.2.114 — MOBILE TAP / BRAND ME LABO READING RHYTHM
   - Full-gallery action gets an explicit, reliable touch target on iPhone.
   - Brand Me Labo body returns to the site's Mincho voice; readability comes
     from sentence structure, measure and leading rather than a different font.
========================================================= */
@media (max-width: 900px) {
  .personal-labo__body p {
    font-family: inherit !important;
    font-size: clamp(13px, 3.45vw, 14px) !important;
    line-height: 1.78 !important;
    letter-spacing: .018em !important;
    margin: 0 0 1.35em;
    color: #59544e;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }
  .personal-labo__body p:last-child { margin-bottom: 0; }

  .selected-visuals__open-all {
    position: relative;
    z-index: 12;
    min-height: 68px;
    padding: 0 20px;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(255,255,255,.10);
    -webkit-user-select: none;
    user-select: none;
    cursor: pointer;
    pointer-events: auto !important;
  }
  .selected-visuals__open-all::after {
    content: "";
    position: absolute;
    inset: -7px 0;
  }
  .selected-visuals__open-all:active {
    transform: translateY(1px);
    background: #272421;
  }
}


/* =========================================================
   v0.2.115 — MOBILE PERSONAL READING / FINAL PORTRAIT FRAME
   - PERSONAL consultation copy uses a denser editorial leading.
   - Personal-photo description returns to the surrounding Mincho voice.
   - THE FINAL PORTRAIT shows the complete source photograph on phones.
========================================================= */
@media (max-width: 900px) {
  /* Consultation CTA: the five intentional lines should read as one thought,
     not five detached rows. */
  .personal-page .personal-cta .section-text,
  .personal-page .personal-cta .section-text p,
  .personal-page .personal-cta .section-text .responsive-copy--mobile {
    font-family: inherit !important;
    line-height: 1.72 !important;
    letter-spacing: .012em !important;
  }
  .personal-page .personal-cta .section-text {
    font-size: clamp(13px, 3.45vw, 14px);
  }

  /* The personal-photo paragraph should not switch to the sans body treatment.
     Keep the site's Mincho texture while retaining the tighter mobile measure. */
  .personal-photo-path__content .section-text,
  .personal-photo-path__content .section-text p,
  .personal-photo-path__content .section-text .responsive-copy--mobile {
    font-family: inherit !important;
    font-size: clamp(13px, 3.45vw, 14px) !important;
    line-height: 1.82 !important;
    letter-spacing: .012em !important;
  }

  /* Do not crop THE FINAL PORTRAIT into a near-square frame on phones.
     Preserve the complete photograph so the neck / shoulders are never cut. */
  .labo-photo__image {
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: hidden;
    background: #282522;
  }
  .labo-photo__image img {
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    object-position: center top !important;
    display: block;
  }
}

/* =========================================================
   v0.2.136 — Brand Me Labo editorial UNDERSTAND → APPLY map
========================================================= */
.personal-labo-map {
  display: grid;
  grid-template-columns: minmax(0,1fr) 58px minmax(0,1fr);
  align-items: stretch;
  margin: 30px 0 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}
.personal-labo-map__stage {
  min-width: 0;
  padding: 26px 0 24px;
}
.personal-labo-map__stage--understand { padding-right: 18px; }
.personal-labo-map__stage--apply { padding-left: 18px; }
.personal-labo-map__label {
  margin: 0 0 11px;
  color: var(--color-accent);
  font-family: var(--font-latin-ui, Manrope, sans-serif);
  font-size: 9px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .2em;
}
.personal-labo-map__stage h3 {
  margin: 0 0 14px;
  font-family: var(--font-serif);
  font-size: clamp(21px,1.8vw,27px);
  font-weight: 400;
  line-height: 1.42;
  letter-spacing: .015em;
}
.personal-labo-map__items {
  margin: 0;
  color: var(--color-soft-ink);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: .025em;
  font-feature-settings: "palt" 1;
}
.personal-labo-map__arrow {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.personal-labo-map__arrow::before {
  content: "";
  width: 32px;
  height: 1px;
  background: rgba(155,131,105,.72);
}
.personal-labo-map__arrow::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-left: -7px;
  border-top: 1px solid rgba(155,131,105,.9);
  border-right: 1px solid rgba(155,131,105,.9);
  transform: rotate(45deg);
}
.personal-labo-map__loop,
.personal-labo-map__note {
  grid-column: 1 / -1;
}
.personal-labo-map__loop {
  margin: 0;
  padding: 16px 0 14px;
  border-top: 1px solid var(--color-line);
  color: var(--color-accent);
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: .08em;
  text-align: center;
  font-feature-settings: "palt" 1;
}
.personal-labo-map__note {
  margin: 0;
  padding: 0 0 22px;
  color: var(--color-soft-ink);
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.78;
  letter-spacing: .015em;
  text-align: center;
  font-feature-settings: "palt" 1;
}


/* =========================================================
   v0.2.183 — CONTACT contrast + Japanese phrase-safe wrapping
   - Mobile contact form must retain clear contrast on the light inquiry surface.
   - Japanese wraps follow the project rule: never break awkwardly at particles,
     punctuation or inside semantic phrases where the browser can avoid it.
   - Headings use authored/phrase-aware composition; body copy wraps naturally.
========================================================= */
@media (max-width: 900px) {
  /* CONTACT / Brand Me Labo history block was still carrying its former
     dark-surface palette after the inquiry area changed to a light background. */
  .contact-page .bml-history-check {
    border-color: rgba(26,25,23,.22);
    background: rgba(255,255,255,.28);
  }
  .contact-page .bml-history-check__label {
    color: #725f4d;
  }
  .contact-page .bml-history-check h3 {
    color: #1a1917;
  }
  .contact-page .bml-history-check__lead {
    color: #4f4a44;
  }
  .contact-page .bml-history-check__note {
    color: #5b554e;
  }
  .contact-page .bml-history-check__closing {
    border-top-color: rgba(26,25,23,.18);
    color: #6d5a49;
  }
  .contact-page .contact-service-fixed {
    border-color: rgba(26,25,23,.20);
    background: rgba(255,255,255,.40);
  }
  .contact-page .contact-service-fixed > span {
    color: #725f4d;
  }
  .contact-page .contact-service-fixed strong {
    color: #1a1917;
  }
  .contact-page .contact-service-fixed small {
    color: #514c46;
  }
  .contact-page .contact-form-business-note {
    border-left-color: rgba(26,25,23,.42);
    color: #4f4a44;
  }

  /* Japanese body copy: natural wrapping only. Do not balance ordinary prose. */
  :where(
    .contact-page p,
    .contact-page small,
    .contact-page legend,
    .contact-page .lp-contact-form__privacy span,
    .contact-page .lp-contact-form__choices span,
    .contact-page .contact-service-fixed strong,
    .contact-page .contact-path__description,
    .labo-page p,
    .labo-page li,
    .labo-page small,
    .labo-page .section-text,
    .labo-page .labo-intro__body,
    .labo-page .labo-program__body,
    .labo-page .labo-online__body,
    .labo-page .labo-book__body,
    .labo-page .labo-schedule__lead,
    .labo-page .labo-story__change div,
    .labo-page .labo-promise__card > div,
    .labo-page .labo-scenes__card > div
  ) {
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }

  /* Japanese headings: meaning first. Earlier broad `balance` rules could create
     visually even but linguistically awkward breaks on narrow iPhone widths. */
  :where(
    .contact-page .contact-section-title,
    .contact-page .contact-hero__lead,
    .contact-page .bml-history-check h3,
    .labo-page .section-title,
    .labo-page .labo-hero__title,
    .labo-page .labo-schedule__title,
    .labo-page .labo-program__name h3,
    .labo-page .labo-program-support h3,
    .labo-page .labo-scenes__card h3,
    .labo-page .labo-journey__item h3
  ) {
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }
}

/* Phrase-aware Japanese line breaking is the preferred path in browsers that
   support it. The strict/pretty rules above remain the safe fallback. */
@supports (word-break: auto-phrase) {
  @media (max-width: 900px) {
    :where(
      .contact-page p,
      .contact-page small,
      .contact-page legend,
      .contact-page .contact-section-title,
      .contact-page .contact-hero__lead,
      .contact-page .contact-hero__summary,
      .contact-page .contact-service-fixed strong,
      .contact-page .contact-path__description,
      .contact-page .bml-history-check h3,
      .contact-page .lp-contact-form__privacy span,
      .labo-page p,
      .labo-page li,
      .labo-page .section-title,
      .labo-page .labo-hero__title,
      .labo-page .labo-schedule__title,
      .labo-page .labo-program__name h3,
      .labo-page .labo-program-support h3,
      .labo-page .labo-scenes__card h3,
      .labo-page .labo-journey__item h3
    ) {
      word-break: auto-phrase;
    }
  }
}

/* =========================================================
   v0.2.199 — information architecture: three service entrances
   The existing photography page and its editable content stay intact; these
   rules only make its personal/business routes immediately discoverable.
========================================================= */
.top-paths { grid-template-columns:repeat(3,minmax(0,1fr)); }
.brand-visual-audiences {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-top:1px solid rgba(30,29,27,.18);
  border-bottom:1px solid rgba(30,29,27,.18);
  background:#f3f0ea;
}
.brand-visual-audiences a { min-width:0; padding:clamp(22px,3vw,42px) clamp(24px,5vw,76px); color:inherit; }
.brand-visual-audiences a + a { border-left:1px solid rgba(30,29,27,.18); }
.brand-visual-audiences span { display:block; margin-bottom:10px; color:var(--color-accent); font:400 10px/1.2 var(--font-latin-ui,Arial,sans-serif); letter-spacing:.18em; }
.brand-visual-audiences strong { display:block; font-family:var(--font-serif); font-size:clamp(17px,1.75vw,23px); font-weight:400; line-height:1.55; }
@media (min-width:901px) { .site-nav ul { gap:clamp(16px,1.8vw,28px); } }
@media (max-width:900px) {
  .top-paths { grid-template-columns:1fr; }
  .top-paths strong { white-space:normal; }
  .brand-visual-audiences { grid-template-columns:1fr; }
  .brand-visual-audiences a { padding:20px var(--mobile-gutter,22px); }
  .brand-visual-audiences a + a { border-left:0; border-top:1px solid rgba(30,29,27,.18); }
  .brand-visual-audiences strong { font-size:16px; }
  .site-nav .menu-label--mobile { display:grid; gap:5px; text-align:left; }
  .site-nav .menu-label--mobile .menu-label__en { order:1; font-size:15px; line-height:1.35; letter-spacing:.12em; opacity:1; }
  .site-nav .menu-label--mobile .menu-label__ja { order:2; font-size:9px; line-height:1.35; letter-spacing:.07em; opacity:.62; }
  .home .site-nav .menu-label--mobile { align-items:flex-end; }
  .home .site-nav .menu-label--mobile .menu-label__en { font-size:clamp(20px,5.5vw,25px); }
  .home .site-nav .menu-label--mobile .menu-label__ja { font-size:9px; }
}

/* =========================================================
   v0.2.200 — HOME service index / photography editorial polish
   The hero remains a complete visual statement. Its three destinations begin
   only after it as one continuous contents section, never as floating CTA bars.
========================================================= */
.home .top-paths {
  width:100%;
  max-width:none;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  padding:clamp(46px,6vw,88px) max(32px,calc((100% - var(--container))/2));
  border:0;
  background:#f3f0ea;
}
.top-paths__heading {
  grid-column:1 / -1;
  margin:0 0 clamp(20px,3vw,36px);
  color:var(--color-accent);
  font:400 10px/1 var(--font-latin-sans,Arial,sans-serif);
  letter-spacing:.2em;
}
.home .top-paths a {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:end;
  gap:clamp(12px,1.5vw,22px);
  min-height:124px;
  padding:clamp(22px,2.5vw,36px) clamp(16px,2.2vw,34px);
  border:0;
  border-top:1px solid rgba(30,29,27,.17);
  background:transparent;
}
.home .top-paths a + a { border-left:1px solid rgba(30,29,27,.17); }
.home .top-paths .top-paths__number,
.home .top-paths .top-paths__copy,
.home .top-paths .top-paths__arrow { margin:0 !important; }
.home .top-paths .top-paths__number {
  align-self:start;
  color:rgba(30,29,27,.52) !important;
  font:400 9px/1 var(--font-latin-sans,Arial,sans-serif) !important;
  letter-spacing:.16em !important;
}
.home .top-paths .top-paths__copy { min-width:0; }
.home .top-paths .top-paths__copy strong {
  color:var(--color-ink);
  font-family:var(--font-latin-sans,Arial,sans-serif);
  font-size:clamp(18px,1.85vw,27px);
  font-weight:400;
  line-height:1.12;
  letter-spacing:.035em;
  white-space:nowrap;
}
.home .top-paths .top-paths__copy small {
  display:block;
  margin-top:9px;
  color:var(--color-soft-ink);
  font:400 12px/1.55 var(--font-sans);
  letter-spacing:.035em;
}
.home .top-paths .top-paths__arrow {
  align-self:center;
  color:var(--color-ink) !important;
  font:400 18px/1 var(--font-latin-sans,Arial,sans-serif) !important;
  letter-spacing:0 !important;
}

.home .entrances { grid-template-columns:minmax(0,1fr) minmax(0,.82fr) minmax(0,1fr); }
.home .entrance-card { min-height:clamp(610px,68svh,820px); }
.home .entrance-card__body { padding:clamp(44px,4vw,72px); }
.home .entrance-card h2 { font-size:clamp(28px,2.15vw,35px); line-height:1.45; }
.home .entrance-card p:not(.section-label) { font-size:14px; line-height:1.9; }
.home .entrance-card--photography {
  color:var(--color-ink);
  background:#e6e0d6;
}
.home .entrance-card--photography::after { display:none; }
.home .entrance-card--photography .entrance-card__image { background:#c8c0b4; }
.home .entrance-card--photography .entrance-card__image img {
  filter:none;
  -webkit-filter:none;
  object-fit:contain;
  transform:none;
}
.home .entrance-card--photography .entrance-card__body { padding-inline:clamp(28px,4.2vw,64px); }
.home .entrance-card--photography .section-label,
.home .entrance-card--photography p:not(.section-label) { color:rgba(30,29,27,.72); }
.home .entrance-card--photography .text-link { color:var(--color-ink); }
.home .entrance-card--business { border-left:1px solid rgba(255,255,255,.18); }
.home .works-preview { background:#f1ede6; }
.home .works-preview .section-title { max-width:680px; }

@media (max-width:900px) {
  .home .top-paths {
    display:grid !important;
    grid-template-columns:1fr;
    padding:38px 28px 42px;
    background:#f3f0ea;
  }
  .top-paths__heading { margin-bottom:21px; font-size:9px; }
  .home .top-paths a {
    grid-template-columns:26px minmax(0,1fr) 18px;
    gap:12px;
    min-height:0;
    padding:18px 0 19px;
  }
  .home .top-paths a + a { border-left:0; }
  .home .top-paths .top-paths__number { padding-top:4px; font-size:8px !important; }
  .home .top-paths .top-paths__copy strong {
    font-size:clamp(19px,5.2vw,21px);
    line-height:1.13;
    letter-spacing:.018em;
  }
  .home .top-paths .top-paths__copy small { margin-top:6px; font-size:12px; line-height:1.45; }
  .home .top-paths .top-paths__arrow { font-size:16px !important; }

  .home .entrances { grid-template-columns:1fr; }
  .home .entrance-card { min-height:clamp(500px,68svh,630px); }
  .home .entrance-card__body { padding:62px 28px; }
  .home .entrance-card h2 { font-size:clamp(32px,8.5vw,38px); line-height:1.4; }
  body.home .entrance-card.entrance-card--photography {
    display:grid;
    grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);
    min-height:390px !important;
  }
  .home .entrance-card--photography .entrance-card__image {
    position:relative;
    inset:auto;
    min-height:390px;
  }
  .home .entrance-card--photography .entrance-card__body {
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding:38px 24px 36px;
  }
  .home .entrance-card--photography .entrance-card__audience-mobile {
    display:block !important;
  }
  .home .entrance-card--photography .entrance-card__audience-mobile > span {
    display:block;
    white-space:nowrap;
    font-size:10px !important;
    letter-spacing:.16em !important;
  }
  .home .entrance-card--photography .entrance-card__audience-mobile small {
    display:block;
    margin-top:6px;
  }
  .home .entrance-card--photography h2 { font-size:clamp(27px,7.4vw,34px); line-height:1.4; }
  .home .entrance-card--photography .entrance-card__image img { object-position:center; }
  .home .entrance-card--business { border-left:0; }
  .home .works-preview { padding-top:86px; padding-bottom:86px; }
  .home .works-preview .section-title { font-size:clamp(33px,8.5vw,38px); line-height:1.45; }
  .home .statement .section-title { font-size:clamp(31px,8vw,36px); line-height:1.5; }
}

/* Keep Photography's editorial margins local to its page; global mobile
   gutter and the Safari scroll-stability system stay untouched. */
@media (max-width:900px) {
  .brand-visual-page .brand-visual-hero__copy { padding-inline:28px; }
  .brand-visual-page .brand-visual-audiences a { padding:24px 28px; }
  .brand-visual-page .section { padding-inline:28px; }
  .brand-visual-page .section__inner,
  .brand-visual-page .brand-visual-hero__copy { min-width:0; max-width:100%; }
}

/* =========================================================
   v0.2.201 — HOME editorial redesign
   TOP only: photo-led sections, a restrained service index, and no global
   scroll or responsive-system changes.
========================================================= */
.home .hero__disciplines { font-size:clamp(9px,.72vw,11px); letter-spacing:.13em; opacity:.9; }
.home-editorial { order:3; background:#f7f6f3; color:var(--color-ink); overflow:hidden; }
.home-editorial a { color:inherit; text-decoration:none; }
.home-editorial figure { margin:0; }
.home-editorial img { display:block; width:100%; height:100%; object-fit:cover; filter:none; -webkit-filter:none; }
.home-editorial-services { display:grid; grid-template-columns:1fr 1fr; }
.home-service { grid-column:1 / -1; display:grid; grid-template-columns:1.15fr .85fr; min-height:clamp(560px,52vw,760px); background:#f7f6f3; }
.home-service figure { min-width:0; overflow:hidden; }
.home-service__copy { align-self:end; padding:clamp(38px,5vw,86px); }
.home-service__copy > p,
.home-editorial-works header > p,
.home-editorial-statement > p:first-child,
.home-editorial-about > div > p,
.home-editorial-contact > p { margin:0 0 22px; font:400 10px/1 var(--font-latin-sans,Arial,sans-serif); letter-spacing:.18em; }
.home-service h2,
.home-editorial-works h2,
.home-editorial-statement h2,
.home-editorial-about h2,
.home-editorial-contact h2 { margin:0; font-family:var(--font-serif); font-weight:400; }
.home-service h2 { font-size:clamp(29px,3.1vw,47px); line-height:1.42; }
.home-service span,
.home-editorial-works header > a,
.home-editorial-about a,
.home-editorial-contact a { display:inline-flex; gap:15px; align-items:center; margin-top:38px; padding-bottom:10px; border-bottom:1px solid currentColor; font:400 11px/1.2 var(--font-sans); letter-spacing:.05em; }
.home-service i,
.home-editorial-works i,
.home-editorial-about i,
.home-editorial-contact i { font-style:normal; font-size:16px; }
.home-service--photography { grid-column:1 / -1; grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr); min-height:clamp(620px,58vw,880px); background:#ebe9e4; }
.home-service--photography figure { grid-column:1; }
.home-service--photography .home-service__copy { grid-column:2; align-self:center; max-width:460px; }
.home-service--photography h2 { font-size:clamp(34px,4.2vw,62px); line-height:1.22; }
.home-service--business { grid-template-columns:.92fr 1.08fr; background:#232322; color:#fff; }
.home-service--business .home-service__copy { grid-column:1; grid-row:1; }
.home-service--business figure { grid-column:2; grid-row:1; }
.home-service--business .home-service__copy,
.home-service--business .home-service__copy > p,
.home-service--business .home-service__copy h2,
.home-service--business .home-service__copy span { color:#fff; }
.home-editorial-works { padding:clamp(84px,11vw,166px) max(28px,calc((100vw - var(--container))/2)); background:#f2f0eb; }
.home-editorial-works header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:24px; margin-bottom:clamp(48px,7vw,90px); }
.home-editorial-works header > p { grid-column:1 / -1; }
.home-editorial-works h2 { font-size:clamp(34px,4.1vw,60px); line-height:1.26; }
.home-editorial-works__grid { display:grid; grid-template-columns:1.12fr .76fr 1.12fr; gap:clamp(18px,3vw,52px); align-items:start; }
.home-editorial-works__grid figure:nth-child(2) { padding-top:clamp(38px,8vw,130px); }
.home-editorial-works__grid a { display:block; aspect-ratio:3 / 4; overflow:hidden; }
.home-editorial-works__grid figure:nth-child(2) a { aspect-ratio:1 / 1.15; }
.home-editorial-works__grid figcaption { margin-top:13px; color:var(--color-soft-ink); font:400 10px/1.3 var(--font-latin-sans,Arial,sans-serif); letter-spacing:.12em; }
.home-editorial-statement { padding:clamp(110px,17vw,250px) max(28px,calc((100vw - min(var(--container),1120px))/2)); background:#f7f6f3; }
.home-editorial-statement h2 { max-width:1080px; font-size:clamp(35px,5vw,76px); line-height:1.42; }
.home-editorial-statement__body { max-width:480px; margin:clamp(38px,5vw,74px) 0 0 !important; color:var(--color-soft-ink); font:400 15px/2 var(--font-sans); letter-spacing:.025em; }
.home-editorial-about { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr); background:#e7e3dc; }
.home-editorial-about figure { min-height:clamp(560px,50vw,760px); }
.home-editorial-about > div { align-self:center; padding:clamp(48px,7vw,110px); }
.home-editorial-about h2 { font-size:clamp(34px,4vw,58px); line-height:1.35; }
.home-editorial-about dl { margin:clamp(42px,5vw,68px) 0 0; }
.home-editorial-about dl > div { padding:16px 0; border-top:1px solid rgba(30,29,27,.23); }
.home-editorial-about dt { margin:0 0 8px; font:400 11px/1 var(--font-latin-sans,Arial,sans-serif); letter-spacing:.14em; }
.home-editorial-about dd { margin:0; color:var(--color-soft-ink); font:400 13px/1.6 var(--font-sans); }
.home-editorial-contact { display:flex; min-height:clamp(300px,34vw,480px); align-items:center; justify-content:center; flex-direction:column; padding:64px 28px; background:#20201f; color:#fff; text-align:center; }
.home-editorial-contact h2 { font-size:clamp(40px,5vw,70px); line-height:1.1; }

@media (max-width:900px) {
  .home .hero__disciplines { max-width:290px; font-size:9px; line-height:1.7; letter-spacing:.12em; opacity:.9; }
  .home-editorial-services { display:block; }
  .home-service,
  .home-service--photography,
  .home-service--business { display:block; min-height:0; background:#f7f6f3; color:var(--color-ink); }
  .home-service figure,
  .home-service--photography figure,
  .home-service--business figure { width:100%; height:clamp(390px,110vw,480px); min-height:0; }
  .home-service--photography figure { height:clamp(440px,123vw,540px); }
  .home-service--business figure { height:clamp(390px,106vw,465px); }
  .home-service__copy,
  .home-service--photography .home-service__copy { max-width:none; padding:44px 28px 62px; }
  .home-service h2,
  .home-service--photography h2 { font-size:clamp(31px,8.6vw,38px); line-height:1.4; }
  .home-service span { margin-top:31px; font-size:12px; }
  .home-service--business .home-service__copy { background:#222220; color:#fff; padding-bottom:66px; }
  .home-editorial-works { padding:78px 28px 92px; }
  .home-editorial-works header { display:block; margin-bottom:44px; }
  .home-editorial-works h2 { font-size:clamp(33px,9vw,40px); line-height:1.38; }
  .home-editorial-works header > a { margin-top:30px; }
  .home-editorial-works__grid { grid-template-columns:1fr 1fr; gap:22px 14px; }
  .home-editorial-works__grid figure:nth-child(2) { padding-top:72px; }
  .home-editorial-works__grid figure:nth-child(3) { grid-column:1 / -1; width:68%; }
  .home-editorial-works__grid figcaption { font-size:9px; line-height:1.5; }
  .home-editorial-statement { padding:112px 28px 118px; }
  .home-editorial-statement h2 { font-size:clamp(31px,8.5vw,38px); line-height:1.52; }
  .home-editorial-statement h2 br { display:none; }
  .home-editorial-statement__body { margin-top:36px !important; font-size:14px; line-height:2; }
  .home-editorial-about { display:block; }
  .home-editorial-about figure { min-height:0; height:clamp(420px,108vw,500px); }
  .home-editorial-about > div { padding:54px 28px 72px; }
  .home-editorial-about h2 { font-size:clamp(32px,8.5vw,38px); line-height:1.45; }
  .home-editorial-about dd { font-size:12px; }
  .home-editorial-contact { min-height:300px; padding:72px 28px; }
  .home-editorial-contact h2 { font-size:44px; }
}

/* =========================================================
   v0.2.201 — HOME editorial final refinement
   The 202 prototype keeps the v201 sequence and media, while giving the
   existing whitespace a clearer editorial job: safer hero copy, a more
   deliberate index, and denser WORKS / ABOUT anchors.
========================================================= */
.home .hero__veil {
  background:linear-gradient(90deg,rgba(0,0,0,.46) 0%,rgba(0,0,0,.25) 38%,rgba(0,0,0,.04) 68%,rgba(0,0,0,0) 100%);
  opacity:1;
}
.home .hero__content { max-width:min(760px,72vw); }
.home .hero__eyebrow,
.home .hero__disciplines { text-shadow:0 1px 14px rgba(0,0,0,.62); }
.home .hero__title { text-shadow:0 2px 18px rgba(0,0,0,.42); }
.home .hero__cta { font-size:11px; opacity:1; }
.home .top-paths { background:#f5f3ef; }
.home .top-paths__heading { color:#806d5d; }
.home .top-paths a { transition:background-color .25s ease; }
.home .top-paths a:hover { background:rgba(255,255,255,.26); }
.home-service--personal .home-service__copy { padding-bottom:clamp(54px,6vw,104px); }
.home-service--personal .home-service__copy > p { color:#806d5d; }
.home-service--photography { background:#efede8; }
.home-service--photography .home-service__copy { padding-block:clamp(54px,7vw,108px); }
.home-service--photography .home-service__copy > p { color:#806d5d; }
.home-service--photography .home-service__copy span { margin-top:44px; }
.home-service--business { background:#242321; }
.home-service--business .home-service__copy { padding-bottom:clamp(54px,6vw,104px); }
.home-editorial-works { padding-bottom:clamp(78px,9vw,132px); }
.home-editorial-works header { padding-bottom:clamp(28px,3vw,44px); border-bottom:1px solid rgba(30,29,27,.18); }
.home-editorial-works__grid { margin-top:clamp(10px,2vw,28px); }
.home-editorial-works__grid figcaption { color:#635f59; }
.home-editorial-statement { position:relative; }
.home-editorial-statement::before { content:""; display:block; width:52px; height:1px; margin-bottom:34px; background:rgba(30,29,27,.36); }
.home-editorial-statement > p:first-child { color:#806d5d; }
.home-editorial-about > div > p { color:#806d5d; }
.home-editorial-about dl > div { padding-block:19px; }
.home-editorial-about dt { font-size:12px; }
.home-editorial-about dd { font-size:14px; line-height:1.65; }

/* Final TOP editorial polish: labels remain subordinate, but are readable on a phone. */
.home-service__copy > p,
.home-editorial-works header > p,
.home-editorial-statement > p:first-child,
.home-editorial-about > div > p { opacity:1; }
.home-editorial-works__grid figcaption { opacity:1; letter-spacing:.1em; }
.home-editorial-statement { padding-block:clamp(105px,15vw,220px); }
.home-editorial-statement h2 { max-width:7.5em; }

@media (max-width:900px) {
  .home .hero__veil { background:linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.08) 37%,rgba(0,0,0,.56) 100%); }
  .home .hero__content { max-width:calc(100% - 56px); }
  .home .hero__eyebrow { font-size:11px; opacity:1; }
  .home .hero__disciplines { max-width:320px; font-size:10px; line-height:1.65; opacity:1; }
  .home .hero__cta { font-size:11px; }
  .home .top-paths { padding:42px 28px 40px; }
  .home .top-paths__heading { margin-bottom:25px; font-size:10px; letter-spacing:.23em; }
  .home .top-paths a { grid-template-columns:30px minmax(0,1fr) 20px; gap:8px; padding:20px 0; }
  .home .top-paths .top-paths__number { padding-top:5px; color:#806d5d !important; font-size:9px !important; }
  .home .top-paths .top-paths__copy strong { font-size:22px; line-height:1.08; letter-spacing:.01em; }
  .home .top-paths .top-paths__copy small { margin-top:7px; font-size:12px; letter-spacing:.05em; }
  .home .top-paths .top-paths__arrow { font-size:18px !important; }
  .home-service--personal .home-service__copy { padding:50px 28px 64px; }
  .home-service--personal h2 { font-size:clamp(33px,8.8vw,39px); }
  .home-service--personal span { margin-top:36px; }
  .home-service--photography figure { height:clamp(405px,109vw,470px); }
  .home-service--photography .home-service__copy { padding:52px 28px 58px; }
  .home-service--photography h2 { font-size:clamp(36px,9.4vw,42px); line-height:1.25; }
  .home-service--photography .home-service__copy span { margin-top:37px; }
  .home-service--business figure { height:clamp(360px,98vw,420px); }
  .home-service--business .home-service__copy { padding:54px 28px 66px; }
  .home-service--business h2 { font-size:clamp(32px,8.6vw,39px); }
  .home-editorial-works { padding:78px 28px 76px; }
  .home-editorial-works header { margin-bottom:38px; padding-bottom:31px; }
  .home-editorial-works h2 { font-size:clamp(34px,9.1vw,41px); }
  .home-editorial-works__grid { gap:26px 16px; margin-top:0; }
  .home-editorial-works__grid figure:nth-child(2) { padding-top:62px; }
  .home-editorial-works__grid figure:nth-child(3) { width:74%; }
  .home-editorial-works__grid figcaption { margin-top:11px; color:#4f4b46; font-size:10px; letter-spacing:.08em; }
  .home-editorial-statement { padding:90px 28px 94px; }
  .home-editorial-statement::before { margin-bottom:28px; }
  .home-editorial-statement h2 { font-size:clamp(33px,8.8vw,40px); line-height:1.47; }
  .home-editorial-statement__body { max-width:330px; margin-top:32px !important; }
  .home-editorial-about > div { padding:58px 28px 76px; }
  .home-editorial-about h2 { font-size:clamp(34px,8.9vw,40px); }
  .home-editorial-about dl { margin-top:46px; }
  .home-editorial-about dl > div { border-top:0; padding-block:0; }
  .home-editorial-about dl > div + div { margin-top:18px; }
  .home-editorial-about dt { font-size:11px; }
  .home-editorial-about dd { font-size:13px; }
}

/* =========================================================
   v0.2.204 — HOME SERVICES editorial window
   The index is deliberately quiet / live film / quiet. The mobile film is
   the one existing fixed backdrop; this rule never creates another video.
========================================================= */
.home .top-paths {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:auto minmax(248px,1fr) minmax(150px,.62fr);
  align-items:stretch;
  padding:clamp(58px,7vw,108px) max(32px,calc((100% - var(--container))/2));
  background:#f5f3ef;
}
.home .top-paths__heading {
  grid-column:1 / 5;
  grid-row:1;
  align-self:end;
  margin:0;
  padding:0 0 clamp(25px,3vw,42px);
  border-bottom:1px solid rgba(30,29,27,.22);
}
.home .top-paths a {
  position:relative;
  min-height:0;
  padding:clamp(26px,3vw,46px) clamp(16px,2.3vw,38px);
  border-top:0;
  border-bottom:1px solid rgba(30,29,27,.22);
  transition:background-color .25s ease;
}
.home .top-paths a:nth-of-type(1) {
  grid-column:1 / 7;
  grid-row:2 / 4;
  border-left:1px solid rgba(30,29,27,.22);
}
.home .top-paths a:nth-of-type(2) {
  grid-column:7 / -1;
  grid-row:2;
  align-items:center;
  border-left:1px solid rgba(30,29,27,.22);
}
.home .top-paths a:nth-of-type(3) {
  grid-column:8 / -1;
  grid-row:3;
  border-left:1px solid rgba(30,29,27,.22);
  border-right:1px solid rgba(30,29,27,.22);
}
.home .top-paths a:nth-of-type(2) .top-paths__copy strong { font-size:clamp(20px,2.2vw,31px); }
.home .top-paths a:hover { background:rgba(255,255,255,.38); }

@media (max-width:900px) {
  .home .top-paths {
    position:relative;
    z-index:4;
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(300px,1fr) minmax(510px,1.55fr) minmax(300px,1fr);
    min-height:clamp(1435px,175svh,1640px);
    padding:0 28px;
    background:transparent;
  }
  .home .top-paths__heading {
    grid-column:1;
    grid-row:1;
    align-self:stretch;
    display:flex;
    align-items:end;
    margin:0;
    padding:48px 0 25px;
    border-bottom:1px solid rgba(30,29,27,.22);
    background:#f5f3ef;
  }
  .home .top-paths a,
  .home .top-paths a + a {
    grid-column:1;
    grid-template-columns:30px minmax(0,1fr) 20px;
    gap:8px;
    min-height:0;
    padding:28px 22px;
    border:0;
    border-bottom:1px solid rgba(30,29,27,.22);
    border-left:1px solid rgba(30,29,27,.22);
    border-right:1px solid rgba(30,29,27,.22);
    background:#f5f3ef;
  }
  .home .top-paths a:nth-of-type(1) { grid-column:1 / -1; grid-row:2; align-items:end; }
  .home .top-paths a:nth-of-type(2) {
    grid-column:1 / -1;
    grid-row:3;
    align-items:start;
    overflow:hidden;
    border-color:rgba(255,255,255,.48);
    background:rgba(17,16,14,.10);
    color:#fff;
  }
  .home .top-paths a:nth-of-type(2) .top-paths__number,
  .home .top-paths a:nth-of-type(2) .top-paths__arrow {
    color:rgba(255,255,255,.9) !important;
    text-shadow:0 1px 8px rgba(0,0,0,.35);
  }
  .home .top-paths a:nth-of-type(2) .top-paths__copy {
    align-self:end;
    padding:16px 17px 15px;
    background:#f5f3ef;
  }
  .home .top-paths a:nth-of-type(2) .top-paths__copy strong { font-size:clamp(22px,6vw,25px); }
  .home .top-paths a:nth-of-type(3) { grid-column:1 / -1; grid-row:4; align-items:start; }
  .home .top-paths a:hover { background:#f5f3ef; }
  .home .top-paths a:nth-of-type(2):hover { background:rgba(17,16,14,.10); }
}

/* =========================================================
   v0.2.206 — mobile HOME density and stable film window
   A single transparent, clipped PHOTOGRAPHY row reveals the existing fixed
   film. All static rows are ordinary full-bleed paper surfaces.
========================================================= */
@media (max-width:900px) {
  body.home .top-paths {
    position:static;
    z-index:auto;
    display:block !important;
    min-height:0;
    padding:0;
    background:transparent;
  }
  .home .top-paths__heading {
    position:static;
    z-index:auto;
    display:flex;
    min-height:54px;
    align-items:center;
    padding:0 28px;
    border-bottom:1px solid rgba(30,29,27,.22);
    background:#f5f3ef;
  }
  .home .top-paths__heading::before,
  .home .top-paths a:nth-of-type(1)::before,
  .home .top-paths a:nth-of-type(3)::before { display:none; }
  .home .top-paths a,
  .home .top-paths a + a {
    width:100%;
    min-height:clamp(260px,72vw,300px);
    padding:28px;
    border:0;
    border-bottom:1px solid rgba(30,29,27,.22);
    background:#f5f3ef;
    z-index:auto;
  }
  .home .top-paths a:nth-of-type(1),
  .home .top-paths a:nth-of-type(3) {
    width:100%;
    padding-inline:28px;
    border:0;
    border-bottom:1px solid rgba(30,29,27,.22);
    background:#f5f3ef;
  }
  .home .top-paths a:nth-of-type(1) .top-paths__copy {
    margin-bottom:18%;
  }
  .home .top-paths a:nth-of-type(1) .top-paths__arrow {
    margin-bottom:calc(18% + 19px) !important;
  }
  .home .top-paths a:nth-of-type(2) {
    width:auto;
    height:clamp(420px,115vw,470px);
    min-height:0;
    margin:0 28px;
    padding:28px 22px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.48);
    background:transparent;
  }
  .home .top-paths a:nth-of-type(2) .top-paths__copy {
    margin-bottom:24px;
    z-index:1;
  }
  .home .top-paths a:nth-of-type(2) .top-paths__arrow {
    margin-bottom:24px !important;
    z-index:2;
    color:var(--color-ink) !important;
    text-shadow:none;
  }
  .home .top-paths a:nth-of-type(3) .top-paths__copy {
    margin-top:18%;
  }
  .home .top-paths a:nth-of-type(3) .top-paths__arrow {
    margin-top:calc(18% + 19px) !important;
  }

  .home-editorial-works { padding:56px 28px; }
  .home-editorial-works header { margin-bottom:30px; padding-bottom:24px; }
  .home-editorial-works__grid { gap:20px 14px; }
  .home-editorial-works__grid figure:nth-child(2) { padding-top:48px; }
  .home-editorial-statement { padding:64px 28px 66px; }
  .home-editorial-statement::before { margin-bottom:21px; }
  .home-editorial-statement__body { margin-top:25px !important; }
  .home-editorial-about > div { padding:44px 28px 54px; }
  .home-editorial-about dl { margin-top:34px; }
  .home-editorial-about dl > div + div { margin-top:14px; }
  .home-editorial-contact { min-height:0; padding:54px 28px; }
}

/* PERSONAL is a decision page: concise routes, compact menus, BML summary,
   one real story, and consultation. Saved fields remain available in admin. */
.personal-menu-item { grid-template-columns:55px minmax(260px,1fr) minmax(210px,.56fr); }
.personal-page .personal-labo__intro { min-height:clamp(650px,78svh,900px); }
.personal-page .personal-labo__image { min-height:clamp(650px,78svh,900px); }
.personal-page .personal-labo__copy { padding:clamp(64px,7vw,108px) clamp(42px,7vw,105px); }

@media (max-width:900px) {
  .personal-page .personal-routes__grid { margin-top:38px; }
  .personal-page .personal-route { min-height:300px; padding:32px 28px; }
  .personal-page .personal-route__label { margin-bottom:28px; }
  .personal-page .personal-route .text-link { padding-top:28px; }
  .personal-page .personal-menu__list { margin-top:38px; }
  .personal-page .personal-menu-item { grid-template-columns:36px minmax(0,1fr); gap:16px; padding:26px 0; }
  .personal-page .personal-menu-item__name,
  .personal-page .personal-menu-item__action { grid-column:2; }
  .personal-page .personal-menu-item__action { display:grid; justify-items:start; gap:14px; text-align:left; }
  .personal-page .personal-menu-item__action .text-link { margin-top:0; max-width:100%; white-space:nowrap; }
  .personal-page .personal-labo__intro { min-height:0; }
  .personal-page .personal-labo__image { min-height:0; height:42svh; }
  .personal-page .personal-labo__copy { padding:56px 28px 62px; }
  .personal-page .personal-labo__price { margin-top:26px; }
  .personal-page .personal-labo__availability { margin-top:26px; }
  .personal-page .personal-actions { margin-top:30px; }
}

/* =========================================================
   v0.2.207 — HOME SERVICES typographic film window
   The sole mask is static and limited to the PHOTOGRAPHY row. It punches the
   row's paper surface, exposing the existing fixed film without a new layer.
========================================================= */
@media (max-width:900px) {
  .home .top-paths a:nth-of-type(1),
  .home .top-paths a:nth-of-type(3) {
    min-height:clamp(240px,67vw,280px);
    overflow:hidden;
  }
  .home .top-paths a:nth-of-type(1) .top-paths__number,
  .home .top-paths a:nth-of-type(3) .top-paths__number {
    color:rgba(30,29,27,.13) !important;
    font-size:clamp(62px,19vw,82px) !important;
    letter-spacing:-.08em !important;
    line-height:.78 !important;
  }
  .home .top-paths a:nth-of-type(1) .top-paths__copy,
  .home .top-paths a:nth-of-type(3) .top-paths__copy {
    align-self:end;
    margin:0 0 20px !important;
  }
  .home .top-paths a:nth-of-type(1) .top-paths__copy strong,
  .home .top-paths a:nth-of-type(3) .top-paths__copy strong {
    font-size:clamp(31px,8.2vw,37px);
    letter-spacing:-.055em;
    line-height:.98;
  }
  .home .top-paths a:nth-of-type(1) .top-paths__arrow {
    align-self:end;
    margin:0 0 23px !important;
  }
  .home .top-paths a:nth-of-type(3) .top-paths__copy {
    position:absolute;
    left:28px;
    bottom:27px;
    margin:0 !important;
  }
  .home .top-paths a:nth-of-type(3) .top-paths__number { position:absolute; top:30px; right:28px; }
  .home .top-paths a:nth-of-type(3) .top-paths__arrow {
    position:absolute;
    right:28px;
    bottom:31px;
    margin:0 !important;
  }

  .home .top-paths a:nth-of-type(2) {
    height:clamp(510px,133vw,570px);
    margin:0;
    padding:24px 28px;
    border-color:rgba(30,29,27,.22);
    background:transparent;
    color:var(--color-ink);
  }
  .home .top-paths a:nth-of-type(2)::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:#f5f3ef;
  }
  .home .top-paths a:nth-of-type(2) > span { position:relative; z-index:1; }
  .home .top-paths a:nth-of-type(2) .top-paths__number,
  .home .top-paths a:nth-of-type(2) .top-paths__copy strong { color:transparent !important; text-shadow:none; }
  .home .top-paths a:nth-of-type(2) .top-paths__copy {
    align-self:end;
    inline-size:auto;
    margin:0 0 18px !important;
    padding:10px 14px 9px;
    background:#f5f3ef;
  }
  .home .top-paths a:nth-of-type(2) .top-paths__copy strong { font-size:1px; line-height:0; }
  .home .top-paths a:nth-of-type(2) .top-paths__copy small { display:block; color:var(--color-ink); font-size:10px; letter-spacing:.08em; }
  .home .top-paths a:nth-of-type(2) .top-paths__arrow {
    align-self:end;
    margin:0 48px 18px 0 !important;
    padding:10px 14px 9px;
    background:#f5f3ef;
  }
}

@media (min-width:901px) {
  .home .top-paths a { overflow:hidden; }
  .home .top-paths .top-paths__number { font-size:clamp(40px,4.6vw,76px) !important; line-height:.8 !important; color:rgba(30,29,27,.13) !important; }
  .home .top-paths .top-paths__copy strong { font-size:clamp(24px,2.7vw,42px); letter-spacing:-.055em; }
  /* Desktop retains the v204 asymmetric editorial grid without video masking. */
  .home .top-paths a:nth-of-type(2) { background:#efebe4; }
}

/* =========================================================
   v0.2.208 — HOME SERVICES final editorial introductions
   The three paths now carry the TOP-level service introduction. The existing
   fixed film remains untouched: only the static PHOTOGRAPHY text mask exposes
   it; PERSONAL and FOR BUSINESS stay fully opaque, image-led paper spreads.
========================================================= */
.home .top-paths {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:0;
  padding:clamp(76px,8vw,132px) max(32px,calc((100% - var(--container))/2));
  background:#f5f3ef;
}
.home .top-paths__heading {
  grid-column:1 / -1;
  display:block;
  margin:0;
  padding:0 0 clamp(28px,3vw,46px);
  border-bottom:1px solid rgba(30,29,27,.22);
}
.home .top-paths a.top-paths__item {
  position:relative;
  display:grid;
  min-width:0;
  padding:clamp(38px,4vw,72px);
  overflow:hidden;
  border:0;
  border-bottom:1px solid rgba(30,29,27,.22);
  color:var(--color-ink);
  background:#f5f3ef;
}
.home .top-paths a.top-paths__item + a.top-paths__item { border-left:0; }
.top-paths__media { margin:0; min-width:0; overflow:hidden; background:#e6e1d9; }
.top-paths__media img { display:block; inline-size:100%; block-size:100%; object-fit:cover; filter:none; -webkit-filter:none; transform:none; }
.home .top-paths .top-paths__number,
.home .top-paths .top-paths__copy,
.home .top-paths .top-paths__cta,
.home .top-paths .top-paths__arrow { min-width:0; margin:0 !important; }
.home .top-paths .top-paths__number {
  color:rgba(30,29,27,.42) !important;
  font:400 10px/1 var(--font-latin-sans,Arial,sans-serif) !important;
  letter-spacing:.17em !important;
}
.home .top-paths .top-paths__copy strong {
  display:block;
  color:var(--color-ink);
  font:400 clamp(32px,3.6vw,60px)/.94 var(--font-latin-sans,Arial,sans-serif);
  letter-spacing:-.055em;
  white-space:normal;
}
.home .top-paths .top-paths__copy small {
  display:block;
  margin-top:13px;
  color:var(--color-soft-ink);
  font:400 13px/1.55 var(--font-sans);
  letter-spacing:.04em;
}
.home .top-paths .top-paths__copy em {
  display:block;
  max-width:26em;
  margin-top:20px;
  color:var(--color-ink);
  font:400 15px/1.8 var(--font-sans);
  font-style:normal;
}
.home .top-paths .top-paths__cta {
  color:var(--color-ink);
  font:400 11px/1.4 var(--font-sans);
  letter-spacing:.04em;
}
.home .top-paths .top-paths__arrow {
  color:var(--color-ink) !important;
  font:400 22px/1 var(--font-latin-sans,Arial,sans-serif) !important;
}

@media (min-width:901px) {
  .home .top-paths { display:block; }
  .home .top-paths a.top-paths__item--personal {
    inline-size:58.333%;
    margin-right:auto;
    grid-template-columns:minmax(240px,.74fr) minmax(0,1fr);
    grid-template-rows:auto 1fr auto;
    gap:clamp(24px,3vw,56px);
    min-height:clamp(590px,46vw,740px);
  }
  .home .top-paths__item--personal .top-paths__media {
    grid-column:1;
    grid-row:1 / -1;
    align-self:center;
    aspect-ratio:1;
  }
  .home .top-paths__item--personal .top-paths__number { grid-column:2; grid-row:1; }
  .home .top-paths__item--personal .top-paths__copy { grid-column:2; grid-row:2; align-self:end; }
  .home .top-paths__item--personal .top-paths__cta { grid-column:2; grid-row:3; }
  .home .top-paths__item--personal .top-paths__arrow { position:absolute; right:clamp(38px,4vw,72px); bottom:clamp(38px,4vw,72px); }

  .home .top-paths a.top-paths__item--photography {
    inline-size:100%;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto 1fr auto;
    min-height:clamp(580px,45vw,720px);
    margin:0;
    padding:clamp(48px,5vw,88px);
    border-color:rgba(30,29,27,.22);
    background:#ebe7df;
  }
  .home .top-paths__item--photography::before {
    content:none;
    position:absolute;
    inset:0;
    z-index:0;
    background:#f5f3ef;
  }
  .home .top-paths__item--photography > span { position:relative; z-index:1; }
  .home .top-paths__item--photography .top-paths__number { color:rgba(30,29,27,.16) !important; font-size:clamp(110px,16vw,250px) !important; line-height:.78 !important; }
  .home .top-paths__item--photography .top-paths__copy { align-self:center; inline-size:100%; max-width:min(100%,1000px); }
  .home .top-paths__item--photography .top-paths__copy strong { color:var(--color-ink) !important; font-size:clamp(74px,9vw,150px) !important; line-height:.78; }
  .home .top-paths__item--photography .top-paths__copy small { margin-top:20px; }
  .home .top-paths__item--photography .top-paths__cta { align-self:end; justify-self:end; padding:13px 17px 12px; background:#f5f3ef; }
  .home .top-paths__item--photography .top-paths__arrow { position:absolute; right:clamp(48px,6vw,104px); bottom:clamp(48px,5vw,88px); z-index:2; padding:13px 17px 12px; background:#f5f3ef; }

  .home .top-paths a.top-paths__item--business {
    inline-size:58.333%;
    margin-left:auto;
    grid-template-columns:minmax(0,1fr) minmax(240px,.74fr);
    grid-template-rows:auto 1fr auto;
    gap:clamp(24px,3vw,56px);
    min-height:clamp(590px,46vw,740px);
  }
  .home .top-paths__item--business .top-paths__media { grid-column:2; grid-row:1 / -1; align-self:center; aspect-ratio:1; }
  .home .top-paths__item--business .top-paths__number { grid-column:1; grid-row:1; }
  .home .top-paths__item--business .top-paths__copy { grid-column:1; grid-row:2; align-self:end; }
  .home .top-paths__item--business .top-paths__cta { grid-column:1; grid-row:3; }
  .home .top-paths__item--business .top-paths__arrow { position:absolute; right:clamp(38px,4vw,72px); bottom:clamp(38px,4vw,72px); }
}

@media (max-width:900px) {
  body.home .top-paths {
    display:block !important;
    min-height:0;
    padding:0;
    background:transparent;
  }
  .home .top-paths__heading {
    display:flex;
    min-height:64px;
    align-items:center;
    padding:0 28px;
    border-bottom:1px solid rgba(30,29,27,.22);
    background:#f5f3ef;
  }
  .home .top-paths a.top-paths__item {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:0;
    padding:38px 28px 42px;
    border:0;
    border-bottom:1px solid rgba(30,29,27,.22);
    background:#f5f3ef;
  }
  .home .top-paths .top-paths__number { align-self:start; font-size:9px !important; }
  .home .top-paths .top-paths__copy strong { font-size:clamp(34px,9vw,40px); line-height:.96; }
  .home .top-paths .top-paths__copy small { margin-top:10px; font-size:12px; }
  .home .top-paths .top-paths__copy em { max-width:18em; margin-top:18px; font-size:13px; line-height:1.75; }
  .home .top-paths .top-paths__cta { align-self:end; margin-top:32px !important; font-size:11px; }
  .home .top-paths .top-paths__arrow { align-self:end; margin:0 0 1px 22px !important; font-size:20px !important; }

  .home .top-paths a.top-paths__item--personal,
  .home .top-paths a.top-paths__item--business {
    grid-template-rows:auto auto auto auto;
    align-content:start;
    row-gap:22px;
  }
  .home .top-paths a.top-paths__item--personal { min-height:clamp(689px,calc(95vw + 319px),728px); }
  .home .top-paths a.top-paths__item--business { min-height:clamp(620px,160vw,700px); }
  .home .top-paths__item--personal .top-paths__media,
  .home .top-paths__item--business .top-paths__media {
    grid-column:1 / -1;
    inline-size:min(72vw,310px);
    aspect-ratio:1;
  }
  .home .top-paths__item--personal .top-paths__media { grid-row:4; justify-self:end; margin:28px 0 0; }
  .home .top-paths__item--business .top-paths__media { grid-row:4; justify-self:start; margin:28px 0 0; }
  .home .top-paths__item--personal .top-paths__number,
  .home .top-paths__item--business .top-paths__number { grid-column:1; grid-row:1; position:relative; z-index:1; }
  .home .top-paths__item--personal .top-paths__copy,
  .home .top-paths__item--business .top-paths__copy { grid-column:1 / -1; grid-row:2; }
  .home .top-paths__item--personal .top-paths__cta,
  .home .top-paths__item--business .top-paths__cta { grid-column:1; grid-row:3; }
  .home .top-paths__item--personal .top-paths__arrow,
  .home .top-paths__item--business .top-paths__arrow { grid-column:2; grid-row:3; }
  body.home .top-paths a.top-paths__item--personal .top-paths__copy,
  body.home .top-paths a.top-paths__item--business .top-paths__copy {
    position:static;
    inset:auto;
    margin:0 !important;
  }
  body.home .top-paths a.top-paths__item--personal .top-paths__arrow,
  body.home .top-paths a.top-paths__item--business .top-paths__arrow {
    position:static;
    inset:auto;
  }
  body.home .top-paths a.top-paths__item--personal .top-paths__number,
  body.home .top-paths a.top-paths__item--business .top-paths__number {
    position:static;
    inset:auto;
    grid-column:1;
    grid-row:1;
    color:rgba(30,29,27,.58) !important;
    font:400 10px/1 var(--font-latin-sans,Arial,sans-serif) !important;
    letter-spacing:.17em !important;
  }

  .home .top-paths a.top-paths__item--photography {
    min-height:clamp(760px,195vw,840px);
    margin:0;
    padding:28px;
    overflow:hidden;
    border-color:rgba(30,29,27,.22);
    background:transparent;
  }
  .home .top-paths__item--photography::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:#f5f3ef;
  }
  .home .top-paths__item--photography > span { position:relative; z-index:1; }
  .home .top-paths__item--photography .top-paths__number,
  .home .top-paths__item--photography .top-paths__copy strong { color:transparent !important; text-shadow:none; }
  .home .top-paths__item--photography .top-paths__copy { align-self:end; max-width:max-content; margin-bottom:18px !important; padding:10px 14px 9px; background:#f5f3ef; }
  .home .top-paths__item--photography .top-paths__copy strong { font-size:1px; line-height:0; }
  .home .top-paths__item--photography .top-paths__copy small { display:block; color:var(--color-ink); font-size:10px; letter-spacing:.08em; }
  .home .top-paths__item--photography .top-paths__cta { align-self:end; margin:0 44px 18px 0 !important; padding:10px 14px 9px; background:#f5f3ef; }
  .home .top-paths__item--photography .top-paths__arrow { position:absolute; right:28px; bottom:37px; z-index:2; margin:0 !important; padding:10px 14px 9px; background:#f5f3ef; }
}

/* v0.2.208 — PHOTOGRAPHY is a fixed-film text window, not a poster numeral.
   The opaque paper plane remains the only layer above the v203 backdrop; its
   static serif-letter cut-out exposes the existing single video underneath. */
@media (max-width:900px) {
  .home .top-paths__item--photography::before {
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__number {
    color:rgba(30,29,27,.72) !important;
    font:400 10px/1 var(--font-latin-sans,Arial,sans-serif) !important;
    letter-spacing:.17em !important;
  }
  .home .top-paths__item--photography .top-paths__copy {
    position:absolute;
    right:28px;
    bottom:112px;
    max-width:none;
    margin:0 !important;
    padding:0;
    background:transparent;
  }
  .home .top-paths__item--photography .top-paths__copy strong {
    display:none;
  }
  .home .top-paths__item--photography .top-paths__copy small {
    color:var(--color-ink);
    font:400 11px/1.4 var(--font-sans);
    letter-spacing:.08em;
  }
  .home .top-paths__item--photography .top-paths__cta,
  .home .top-paths__item--photography .top-paths__arrow {
    bottom:31px;
    padding:0;
    background:transparent;
  }
  .home .top-paths__item--photography .top-paths__cta {
    position:absolute;
    left:28px;
    right:auto;
    margin:0 !important;
  }
  .home .top-paths__item--photography .top-paths__arrow {
    right:28px;
    font-size:21px !important;
  }
  .home .top-paths__item--personal .top-paths__copy strong,
  .home .top-paths__item--business .top-paths__copy strong {
    font-family:var(--font-latin-display, "Times New Roman", serif);
    font-size:clamp(54px,14.9vw,62px);
    font-weight:400;
    line-height:.9;
    letter-spacing:-.045em;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__copy {
    position:absolute;
    right:28px;
    bottom:122px;
    left:auto;
    top:auto;
    align-self:auto;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__cta {
    position:absolute;
    top:auto;
    right:auto;
    bottom:31px;
    left:28px;
    z-index:2;
    align-self:auto;
    margin:0 !important;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__arrow {
    position:absolute;
    top:auto;
    right:28px;
    bottom:31px;
    left:auto;
    z-index:2;
    align-self:auto;
    margin:0 !important;
  }
}

/* v0.2.208 — desktop is the approved vertical editorial sequence, widened. */
@media (min-width:901px) {
  .home .top-paths { display:block; background:transparent; }
  .home .top-paths__heading {
    margin-inline:calc(-1 * max(32px,calc((100% - var(--container))/2)));
    padding-inline:max(32px,calc((100% - var(--container))/2));
    background:#f5f3ef;
  }
  .home .top-paths a.top-paths__item--personal,
  .home .top-paths a.top-paths__item--business {
    inline-size:100%;
    min-height:clamp(520px,42vw,620px);
    margin:0;
    padding:clamp(62px,6vw,92px) clamp(48px,5vw,80px);
    grid-template-columns:minmax(0,1fr) minmax(300px,37%);
    grid-template-rows:auto 1fr auto;
    column-gap:clamp(48px,6vw,96px);
    row-gap:26px;
  }
  .home .top-paths__item--personal .top-paths__media,
  .home .top-paths__item--business .top-paths__media {
    grid-column:2;
    grid-row:1 / -1;
    inline-size:100%;
    aspect-ratio:1;
    align-self:center;
  }
  .home .top-paths__item--personal .top-paths__number,
  .home .top-paths__item--business .top-paths__number {
    grid-column:1;
    grid-row:1;
    align-self:end;
    color:rgba(30,29,27,.62) !important;
    font:400 11px/1 var(--font-latin-sans,Arial,sans-serif) !important;
    letter-spacing:.17em !important;
  }
  .home .top-paths__item--personal .top-paths__copy,
  .home .top-paths__item--business .top-paths__copy { grid-column:1; grid-row:2; align-self:center; }
  .home .top-paths__item--personal .top-paths__copy strong,
  .home .top-paths__item--business .top-paths__copy strong {
    font-family:var(--font-latin-display, "Times New Roman", serif);
    font-size:clamp(50px,5.1vw,78px);
    font-weight:400;
    line-height:.9;
    letter-spacing:-.045em;
  }
  .home .top-paths__item--personal .top-paths__copy small,
  .home .top-paths__item--business .top-paths__copy small { margin-top:15px; font-size:16px; }
  .home .top-paths__item--personal .top-paths__copy em,
  .home .top-paths__item--business .top-paths__copy em { max-width:17em; margin-top:34px; font-size:16px; line-height:1.8; }
  .home .top-paths__item--personal .top-paths__cta,
  .home .top-paths__item--business .top-paths__cta { grid-column:1; grid-row:3; }
  .home .top-paths__item--personal .top-paths__arrow,
  .home .top-paths__item--business .top-paths__arrow { right:clamp(48px,5vw,80px); bottom:clamp(62px,6vw,92px); }

  .home .top-paths a.top-paths__item--photography {
    inline-size:100%;
    min-height:clamp(610px,48vw,720px);
    margin:0;
    padding:clamp(60px,6vw,92px) clamp(48px,5vw,80px);
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto 1fr auto;
    overflow:hidden;
    background:transparent;
  }
  .home .top-paths__item--photography::before {
    content:"";
    inset:0;
    z-index:0;
    background:#f5f3ef;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__number {
    position:relative;
    z-index:1;
    color:rgba(30,29,27,.72) !important;
    font:400 11px/1 var(--font-latin-sans,Arial,sans-serif) !important;
    letter-spacing:.17em !important;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__copy {
    position:absolute;
    z-index:1;
    top:auto;
    right:clamp(48px,5vw,80px);
    bottom:clamp(146px,13vw,190px);
    left:auto;
    align-self:auto;
    max-width:none;
    margin:0 !important;
    padding:0;
    background:transparent;
  }
  .home .top-paths__item--photography .top-paths__copy strong,
  .home .top-paths__item--photography .top-paths__cta { display:none; }
  .home .top-paths__item--photography .top-paths__copy small { color:var(--color-ink); font-size:15px; letter-spacing:.08em; }
  body.home .top-paths a.top-paths__item--photography .top-paths__arrow {
    position:absolute;
    z-index:1;
    top:auto;
    right:clamp(48px,5vw,80px);
    bottom:clamp(88px,8vw,118px);
    left:auto;
    margin:0 !important;
    padding:0;
    background:transparent;
  }
}

@media (max-width:900px) {
  /* Mobile keeps the v203 fixed backdrop visible only through the text mask. */
  .home .top-paths a.top-paths__item--photography {
    background:transparent !important;
  }
  .home .top-paths__item--photography::before {
    background:#f5f3ef !important;
  }
}

@media (min-width:901px) {
  /* The supplied original photograph is exposed only through PHOTO / GRAPHY. */
  .home .top-paths a.top-paths__item--photography {
  }
  .home .top-paths__item--photography::before {
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__copy {
    top:54%;
    right:clamp(82px,7vw,116px);
    bottom:auto;
    inline-size:auto !important;
    width:auto !important;
  }
  .home .top-paths__item--photography .top-paths__copy small {
    display:block;
    white-space:nowrap;
    color:var(--color-ink) !important;
    font-size:15px !important;
    letter-spacing:.08em !important;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__arrow {
    top:54%;
    right:clamp(48px,4vw,72px);
    bottom:auto;
  }
}

/* v0.2.208 — only the PHOTO / GRAPHY mask uses the approved Didone family. */
@media (max-width:900px) {
  .home .top-paths__item--photography::before {
  }
}

@media (min-width:901px) {
  .home .top-paths__item--photography::before {
  }
}

/* ===== SOURCE: legacy-fixes.css ===== */
/*
 * La paix legacy visual refinements (v0.2.116–v0.2.133)
 *
 * Isolated in v0.2.134 so the foundational stylesheet is no longer the place
 * where every late-stage correction accumulates. These rules intentionally
 * retain their historical order. The authoritative smartphone typography and
 * spacing layer is assets/css/mobile-system.css, loaded after this file.
 */

/* =========================================================
   v0.2.116 — BRAND SITE / FOR BUSINESS integration
   Mobile-first conversion path, protected typography and a deliberately
   asymmetrical price hierarchy: 550,000円〜 is the recommended route while
   330,000円〜 is shown for clients whose copy, structure and visual materials are already prepared.
========================================================= */

/* FOR BUSINESS: four clear service entrances. */
.business-scope-quick { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.business-service__image--brand-site { background:#171614; }
.business-service__image--brand-site img { object-position:center center; }

.brand-site-page { background:#f3efe8; color:#1b1a18; }
.brand-site-page .responsive-copy--desktop { display:inline; }
.brand-site-page .responsive-copy--mobile { display:none; }

.brand-site-hero {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr);
  min-height:min(920px,94svh);
  overflow:hidden;
  background:#171614;
  color:#f4efe7;
}
.brand-site-hero__copy {
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:clamp(150px,14vw,220px) clamp(48px,6.2vw,104px) clamp(74px,8vw,118px);
}
.brand-site-hero__copy .section-label { margin-bottom:28px; color:rgba(244,239,231,.62); }
.brand-site-hero__title {
  margin:0 0 34px;
  max-width:720px;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(42px,4.25vw,72px);
  line-height:1.38;
  font-weight:400;
  letter-spacing:.015em;
}
.brand-site-hero__title .responsive-copy__line { white-space:nowrap; }
.brand-site-hero__lead {
  margin:0 0 34px;
  max-width:610px;
  color:rgba(244,239,231,.76);
  font-size:14px;
  line-height:2.08;
}
.brand-site-hero .text-link { color:#f4efe7; align-self:flex-start; }
.brand-site-hero__media { margin:0; min-height:760px; overflow:hidden; background:#0d0d0c; }
.brand-site-hero__media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center center; }
.brand-site-hero__side {
  position:absolute;
  z-index:3;
  right:18px;
  bottom:38px;
  margin:0;
  color:rgba(244,239,231,.42);
  writing-mode:vertical-rl;
  font:500 9px/1.2 Manrope,Arial,sans-serif;
  letter-spacing:.22em;
}

.brand-site-intro { padding-top:clamp(92px,11vw,164px); padding-bottom:clamp(94px,11vw,165px); }
.brand-site-intro__grid,
.brand-site-extension__grid,
.brand-site-faq__inner {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.76fr);
  gap:clamp(52px,9vw,136px);
  align-items:start;
}
.brand-site-prose { max-width:620px; color:rgba(27,26,24,.73); font-size:15px; line-height:2.15; }
.brand-site-prose p { margin:0 0 26px; }
.brand-site-prose p:last-child { margin-bottom:0; }

.brand-site-section-head { margin-bottom:clamp(48px,6vw,82px); }
.brand-site-section-head--split {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);
  gap:clamp(48px,8vw,120px);
  align-items:end;
}
.brand-site-section-head .section-title { margin-bottom:0; }
.brand-site-section-head .section-text { margin:0; max-width:620px; color:rgba(27,26,24,.68); }

.brand-site-fit { padding-top:clamp(80px,9vw,126px); padding-bottom:clamp(86px,10vw,142px); background:#e9e2d8; }
.brand-site-fit__grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid rgba(27,26,24,.18); }
.brand-site-fit__item { min-width:0; padding:30px 24px 34px 0; border-bottom:1px solid rgba(27,26,24,.18); }
.brand-site-fit__item + .brand-site-fit__item { padding-left:24px; border-left:1px solid rgba(27,26,24,.14); }
.brand-site-fit__item span { display:block; margin-bottom:44px; color:rgba(27,26,24,.42); font:500 10px/1 Manrope,Arial,sans-serif; letter-spacing:.18em; }
.brand-site-fit__item p { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(16px,1.55vw,21px); line-height:1.8; letter-spacing:.02em; }

.brand-site-scope { padding-top:clamp(94px,11vw,162px); padding-bottom:clamp(100px,12vw,176px); }
.brand-site-scope__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid rgba(27,26,24,.18); }
.brand-site-scope__item { position:relative; min-height:360px; padding:34px clamp(28px,4vw,58px) 44px 0; border-bottom:1px solid rgba(27,26,24,.18); }
.brand-site-scope__item:nth-child(even) { padding-left:clamp(28px,4vw,58px); border-left:1px solid rgba(27,26,24,.16); }
.brand-site-scope__item > span { display:block; margin-bottom:42px; color:rgba(27,26,24,.38); font:500 10px/1 Manrope,Arial,sans-serif; letter-spacing:.18em; }
.brand-site-scope__item > p { margin:0 0 15px; color:#a78560; font:500 10px/1.4 Manrope,Arial,sans-serif; letter-spacing:.14em; }
.brand-site-scope__item h3 { margin:0 0 18px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(23px,2.15vw,33px); line-height:1.55; font-weight:400; }
.brand-site-scope__item div { max-width:570px; color:rgba(27,26,24,.69); font-size:14px; line-height:2.05; }
.brand-site-scope__item div p { margin:0; }

.brand-site-visual { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); background:#171614; color:#f3eee7; }
.brand-site-visual__image { margin:0; min-height:720px; overflow:hidden; }
.brand-site-visual__image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center center; }
.brand-site-visual__copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(82px,9vw,138px) clamp(46px,7vw,112px); }
.brand-site-visual__copy .section-label { color:rgba(243,238,231,.56); }
.brand-site-visual__copy .section-title { margin-bottom:34px; }
.brand-site-visual__copy .brand-site-prose { color:rgba(243,238,231,.75); }
.brand-site-visual__note { margin:30px 0 26px; padding-top:24px; border-top:1px solid rgba(243,238,231,.18); color:rgba(243,238,231,.66); font-size:12px; line-height:1.9; }
.brand-site-visual__copy .text-link { color:#f3eee7; align-self:flex-start; }

.brand-site-price { padding-top:clamp(98px,12vw,176px); padding-bottom:clamp(96px,12vw,176px); background:#f5f1eb; }
.brand-site-price__main { margin-top:8px; background:#1a1917; color:#f3eee8; }
.brand-site-price__main-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:36px; align-items:end; padding:clamp(34px,4.8vw,68px); border-bottom:1px solid rgba(243,238,232,.18); }
.brand-site-price__main-head p,
.brand-site-price__secondary > div > p { margin:0 0 16px; color:#b9946d; font:500 10px/1.3 Manrope,Arial,sans-serif; letter-spacing:.16em; }
.brand-site-price__main-head h3,
.brand-site-price__secondary h3 { margin:0; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:400; line-height:1.55; }
.brand-site-price__main-head h3 { font-size:clamp(25px,2.7vw,39px); }
.brand-site-price__main-head strong { white-space:nowrap; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(31px,3.5vw,52px); font-weight:400; letter-spacing:.02em; }
.brand-site-price__main-body { display:grid; grid-template-columns:minmax(0,.82fr) minmax(330px,1.18fr); gap:clamp(40px,8vw,118px); padding:clamp(36px,4.8vw,68px); }
.brand-site-price__main-body > p { margin:0; color:rgba(243,238,232,.74); font-size:14px; line-height:2.05; }
.brand-site-price__main-body ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 34px; margin:0; padding:0; list-style:none; border-top:1px solid rgba(243,238,232,.18); }
.brand-site-price__main-body li { position:relative; padding:17px 0 17px 18px; border-bottom:1px solid rgba(243,238,232,.14); color:rgba(243,238,232,.82); font-size:12px; line-height:1.75; }
.brand-site-price__main-body li::before { content:""; position:absolute; left:0; top:25px; width:5px; height:5px; border-radius:50%; background:#b9946d; }
.brand-site-price__secondary { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(300px,.95fr); gap:clamp(30px,5vw,76px); align-items:center; margin-top:28px; padding:34px 0; border-top:1px solid rgba(27,26,24,.22); border-bottom:1px solid rgba(27,26,24,.22); }
.brand-site-price__secondary h3 { font-size:clamp(20px,2vw,28px); }
.brand-site-price__secondary strong { white-space:nowrap; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(25px,2.65vw,38px); font-weight:400; }
.brand-site-price__secondary > p { margin:0; color:rgba(27,26,24,.67); font-size:13px; line-height:2; }
.brand-site-price__note { max-width:860px; margin:32px 0 0; color:rgba(27,26,24,.6); font-size:12px; line-height:1.95; }

.brand-site-extension { padding-top:clamp(88px,10vw,148px); padding-bottom:clamp(92px,11vw,154px); background:#e8e0d5; }
.brand-site-extension__body { color:rgba(27,26,24,.71); font-size:15px; line-height:2.08; }
.brand-site-extension__body > p { margin:0 0 30px; }
.brand-site-extension__note { padding-top:26px; border-top:1px solid rgba(27,26,24,.18); font-size:13px; }

.brand-site-process { padding-top:clamp(94px,11vw,160px); padding-bottom:clamp(100px,12vw,176px); }
.brand-site-process .section-title { margin-bottom:clamp(48px,6vw,82px); }
.brand-site-process__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid rgba(27,26,24,.2); }
.brand-site-process__grid article { min-height:315px; padding:30px 30px 34px 0; border-bottom:1px solid rgba(27,26,24,.18); }
.brand-site-process__grid article:not(:nth-child(3n+1)) { padding-left:30px; border-left:1px solid rgba(27,26,24,.15); }
.brand-site-process__grid article > span { display:block; margin-bottom:38px; color:rgba(27,26,24,.38); font:500 10px/1 Manrope,Arial,sans-serif; letter-spacing:.18em; }
.brand-site-process__grid article > p { margin:0 0 14px; color:#a78560; font:500 10px/1.35 Manrope,Arial,sans-serif; letter-spacing:.14em; }
.brand-site-process__grid h3 { margin:0 0 16px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(20px,1.9vw,27px); line-height:1.55; font-weight:400; }
.brand-site-process__grid article div { color:rgba(27,26,24,.67); font-size:13px; line-height:1.95; }
.brand-site-process__grid article div p { margin:0; }

.brand-site-case { display:grid; grid-template-columns:minmax(0,.86fr) minmax(470px,1.14fr); min-height:820px; background:#151412; color:#f2ede6; scroll-margin-top:90px; }
.brand-site-case__image { margin:0; overflow:hidden; min-height:720px; background:#090908; }
.brand-site-case__image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center center; }
.brand-site-case__content { display:flex; flex-direction:column; justify-content:center; padding:clamp(80px,9vw,138px) clamp(46px,7vw,110px); }
.brand-site-case__content .section-label { color:rgba(242,237,230,.5); }
.brand-site-case__title { margin:0 0 10px; font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:clamp(36px,4.3vw,66px); line-height:1.35; font-weight:400; }
.brand-site-case__subtitle { margin:0 0 48px; color:rgba(242,237,230,.55); font-size:12px; letter-spacing:.08em; }
.brand-site-case__facts { border-top:1px solid rgba(242,237,230,.18); }
.brand-site-case__facts article { display:grid; grid-template-columns:120px minmax(0,1fr); gap:30px; padding:26px 0; border-bottom:1px solid rgba(242,237,230,.16); }
.brand-site-case__facts article > p { margin:3px 0 0; color:#b9946d; font:500 9px/1.4 Manrope,Arial,sans-serif; letter-spacing:.16em; }
.brand-site-case__facts article div { color:rgba(242,237,230,.74); font-size:13px; line-height:1.95; }
.brand-site-case__facts article div p { margin:0; }
.brand-site-case__note { margin:28px 0 0; color:rgba(242,237,230,.52); font-size:12px; line-height:1.9; }

.brand-site-faq { padding-top:clamp(94px,11vw,160px); padding-bottom:clamp(100px,12vw,174px); background:#f4f0ea; }
.brand-site-faq__list { border-top:1px solid rgba(27,26,24,.2); }
.brand-site-faq__item { border-bottom:1px solid rgba(27,26,24,.18); }
.brand-site-faq__item summary { display:grid; grid-template-columns:34px minmax(0,1fr) 24px; gap:16px; align-items:start; padding:25px 0; cursor:pointer; list-style:none; }
.brand-site-faq__item summary::-webkit-details-marker { display:none; }
.brand-site-faq__item summary span { margin-top:5px; color:rgba(27,26,24,.38); font:500 9px/1 Manrope,Arial,sans-serif; letter-spacing:.16em; }
.brand-site-faq__item summary strong { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-size:17px; line-height:1.75; font-weight:400; }
.brand-site-faq__item summary i { position:relative; display:block; inline-size:18px; block-size:18px; font-style:normal; font-size:0; line-height:0; transform:none; }
.brand-site-faq__item summary i::before,
.brand-site-faq__item summary i::after { content:""; position:absolute; inset-inline-start:50%; inset-block-start:50%; inline-size:16px; block-size:1px; background:currentColor; transform:translate(-50%,-50%); transition:opacity .2s ease; }
.brand-site-faq__item summary i::after { transform:translate(-50%,-50%) rotate(90deg); }
.brand-site-faq__item[open] summary i::after { opacity:0; }
.brand-site-faq__item > div { padding:0 40px 26px 50px; color:rgba(27,26,24,.67); font-size:13px; line-height:2; }
.brand-site-faq__item > div p { margin:0; }

.brand-site-cta { padding:clamp(100px,13vw,186px) 0; background:#171614; color:#f4efe8; text-align:center; }
.brand-site-cta .section-title { margin-left:auto; margin-right:auto; max-width:920px; }
.brand-site-cta .section-text { margin:28px auto 36px; max-width:760px; color:rgba(244,239,232,.72); }

@media (max-width: 1100px) and (min-width: 901px) {
  .brand-site-hero { grid-template-columns:minmax(0,1fr) minmax(420px,.9fr); }
  .brand-site-hero__copy { padding-left:54px; padding-right:48px; }
  .brand-site-fit__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .brand-site-fit__item:nth-child(4) { border-left:0; padding-left:0; }
  .brand-site-fit__item:nth-child(4), .brand-site-fit__item:nth-child(5) { padding-top:34px; }
  .brand-site-price__secondary { grid-template-columns:minmax(0,1fr) auto; }
  .brand-site-price__secondary > p { grid-column:1/-1; }
}

@media (max-width: 900px) {
  .brand-site-page .responsive-copy--desktop { display:none; }
  .brand-site-page .responsive-copy--mobile { display:inline; }

  .business-scope-quick { grid-template-columns:1fr; }

  .brand-site-hero { display:flex; flex-direction:column; min-height:0; }
  .brand-site-hero__copy { order:1; padding:124px 22px 48px; }
  .brand-site-hero__copy .section-label { margin-bottom:20px; }
  .brand-site-hero__title { margin-bottom:25px; max-width:none; font-size:clamp(34px,9.5vw,48px); line-height:1.43; letter-spacing:0; }
  .brand-site-hero__title .responsive-copy__line { white-space:nowrap; }
  .brand-site-hero__lead { margin-bottom:26px; font-size:13px; line-height:2.02; }
  .brand-site-hero__media { order:2; min-height:0; aspect-ratio:4/5; }
  .brand-site-hero__media img { object-position:center center; }
  .brand-site-hero__side { display:none; }

  .brand-site-intro { padding:78px 0 84px; }
  .brand-site-intro__grid,
  .brand-site-extension__grid,
  .brand-site-faq__inner,
  .brand-site-section-head--split { grid-template-columns:1fr; gap:30px; }
  .brand-site-prose { font-size:14px; line-height:2.05; }
  .brand-site-section-head { margin-bottom:40px; }
  .brand-site-section-head--split { align-items:start; }

  .brand-site-fit { padding:72px 0 80px; }
  .brand-site-fit__grid { grid-template-columns:1fr; }
  .brand-site-fit__item,
  .brand-site-fit__item + .brand-site-fit__item { display:grid; grid-template-columns:36px minmax(0,1fr); gap:14px; padding:22px 0; border-left:0; }
  .brand-site-fit__item span { margin:5px 0 0; }
  .brand-site-fit__item p { font-size:17px; line-height:1.75; }

  .brand-site-scope { padding:78px 0 88px; }
  .brand-site-scope__grid { grid-template-columns:1fr; }
  .brand-site-scope__item,
  .brand-site-scope__item:nth-child(even) { min-height:0; padding:28px 0 32px; border-left:0; }
  .brand-site-scope__item > span { margin-bottom:25px; }
  .brand-site-scope__item h3 { font-size:23px; }
  .brand-site-scope__item div { font-size:13px; line-height:2; }

  .brand-site-visual { grid-template-columns:1fr; }
  .brand-site-visual__image { min-height:0; aspect-ratio:4/5; }
  .brand-site-visual__copy { padding:72px 22px 78px; }
  .brand-site-visual__copy .section-title { margin-bottom:27px; }

  .brand-site-price { padding:80px 0 88px; }
  .brand-site-price__main-head { grid-template-columns:1fr; gap:26px; padding:30px 22px 32px; }
  .brand-site-price__main-head strong { font-size:34px; }
  .brand-site-price__main-body { grid-template-columns:1fr; gap:30px; padding:30px 22px 34px; }
  .brand-site-price__main-body ul { grid-template-columns:1fr; }
  .brand-site-price__secondary { grid-template-columns:1fr; gap:18px; margin-top:24px; padding:28px 0; }
  .brand-site-price__secondary strong { font-size:29px; }
  .brand-site-price__secondary > p { font-size:13px; }
  .brand-site-price__note { margin-top:26px; }

  .brand-site-extension { padding:76px 0 82px; }
  .brand-site-extension__body { font-size:14px; line-height:2; }

  .brand-site-process { padding:80px 0 88px; }
  .brand-site-process .section-title { margin-bottom:42px; }
  .brand-site-process__grid { grid-template-columns:1fr; }
  .brand-site-process__grid article,
  .brand-site-process__grid article:not(:nth-child(3n+1)) { min-height:0; padding:26px 0 30px; border-left:0; }
  .brand-site-process__grid article > span { margin-bottom:23px; }
  .brand-site-process__grid h3 { font-size:21px; }

  .brand-site-case { grid-template-columns:1fr; min-height:0; scroll-margin-top:72px; }
  .brand-site-case__image { min-height:0; aspect-ratio:4/5; }
  .brand-site-case__content { padding:70px 22px 78px; }
  .brand-site-case__title { font-size:38px; }
  .brand-site-case__subtitle { margin-bottom:34px; }
  .brand-site-case__facts article { grid-template-columns:1fr; gap:11px; padding:23px 0; }
  .brand-site-case__facts article > p { margin:0; }

  .brand-site-faq { padding:80px 0 88px; }
  .brand-site-faq__item summary { grid-template-columns:30px minmax(0,1fr) 20px; gap:10px; padding:22px 0; }
  .brand-site-faq__item summary strong { font-size:16px; line-height:1.7; }
  .brand-site-faq__item > div { padding:0 0 24px 40px; }

  .brand-site-cta { padding:84px 0 96px; }
  .brand-site-cta .section-text { margin-top:22px; }
}

@media (max-width: 430px) {
  .brand-site-hero__copy { padding-left:20px; padding-right:20px; }
  .brand-site-hero__title { font-size:clamp(31px,8.9vw,40px); }
  .brand-site-fit__item p { font-size:16px; }
  .brand-site-price__main-head,
  .brand-site-price__main-body { padding-left:20px; padding-right:20px; }
  .brand-site-case__content,
  .brand-site-visual__copy { padding-left:20px; padding-right:20px; }
}

/* =========================================================
   v0.2.120 — BRAND SITE value / subsidy / mobile width fix
   Screen recording QA: prevent horizontal drift and preserve readable
   Japanese line length on 375–430px smartphones.
========================================================= */
.brand-site-page {
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
.brand-site-page .section__inner,
.brand-site-page .section__inner--narrow {
  min-width:0;
  max-width:100%;
}

.brand-site-value {
  padding-top:clamp(94px,11vw,160px);
  padding-bottom:clamp(98px,12vw,172px);
  background:#1a1917;
  color:#f3eee8;
}
.brand-site-value__head {
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(360px,.72fr);
  gap:clamp(48px,8vw,120px);
  align-items:end;
  margin-bottom:clamp(50px,7vw,88px);
}
.brand-site-value__head .section-label { color:rgba(243,238,232,.48); }
.brand-site-value__head .section-title { margin:0; max-width:760px; }
.brand-site-value__lead {
  margin:0;
  max-width:640px;
  color:rgba(243,238,232,.72);
  font-size:14px;
  line-height:2.08;
}
.brand-site-value__grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-top:1px solid rgba(243,238,232,.18);
}
.brand-site-value__item {
  min-width:0;
  min-height:220px;
  padding:28px 24px 32px 0;
  border-bottom:1px solid rgba(243,238,232,.16);
}
.brand-site-value__item:not(:nth-child(4n+1)) {
  padding-left:24px;
  border-left:1px solid rgba(243,238,232,.13);
}
.brand-site-value__item span {
  display:block;
  margin-bottom:44px;
  color:rgba(243,238,232,.3);
  font:500 9px/1 Manrope,Arial,sans-serif;
  letter-spacing:.18em;
}
.brand-site-value__item > p {
  margin:0 0 12px;
  color:#b9946d;
  font:500 9px/1.45 Manrope,Arial,sans-serif;
  letter-spacing:.13em;
}
.brand-site-value__item h3 {
  margin:0;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(17px,1.55vw,22px);
  line-height:1.72;
  font-weight:400;
}
.brand-site-value__item:nth-child(5) { border-left:0; padding-left:0; }

.brand-site-subsidy {
  padding-top:clamp(74px,9vw,124px);
  padding-bottom:clamp(78px,9vw,128px);
  background:#f1ebe3;
}
.brand-site-subsidy__inner {
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(360px,.7fr);
  gap:clamp(48px,8vw,120px);
  align-items:start;
}
.brand-site-subsidy .section-title { margin-bottom:0; }
.brand-site-subsidy__body {
  color:rgba(27,26,24,.7);
  font-size:14px;
  line-height:2.05;
}
.brand-site-subsidy__body > p { margin:0 0 24px; }
.brand-site-subsidy__note {
  padding-top:22px;
  border-top:1px solid rgba(27,26,24,.17);
  color:rgba(27,26,24,.54);
  font-size:12px;
  line-height:1.9;
}

@media (max-width:900px) {
  /* The previous nowrap could make the whole page wider than the viewport. */
  .brand-site-page .responsive-copy__line,
  .brand-site-hero__title .responsive-copy__line {
    max-width:100%;
    white-space:normal !important;
    word-break:normal;
    overflow-wrap:normal;
    line-break:strict;
  }
  .brand-site-page .section-title,
  .brand-site-page h1,
  .brand-site-page h2,
  .brand-site-page h3,
  .brand-site-page p,
  .brand-site-page li {
    min-width:0;
    max-width:100%;
  }
  .brand-site-value { padding:76px 22px 82px; }
  .brand-site-value__head { grid-template-columns:1fr; gap:26px; margin-bottom:42px; }
  .brand-site-value__lead { font-size:13px; line-height:2; }
  .brand-site-value__grid { grid-template-columns:1fr; }
  .brand-site-value__item,
  .brand-site-value__item:not(:nth-child(4n+1)),
  .brand-site-value__item:nth-child(5) {
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:6px 14px;
    min-height:0;
    padding:22px 0 24px;
    border-left:0;
  }
  .brand-site-value__item span { grid-row:1/3; margin:5px 0 0; }
  .brand-site-value__item > p { margin:0; }
  .brand-site-value__item h3 { font-size:18px; line-height:1.65; }

  .brand-site-subsidy { padding:70px 22px 76px; }
  .brand-site-subsidy__inner { grid-template-columns:1fr; gap:28px; }
  .brand-site-subsidy__body { font-size:13px; line-height:2; }
}

@media (max-width:440px) {
  .brand-site-page { overflow-x:clip; }
  .brand-site-hero__copy { padding-left:var(--mobile-gutter); padding-right:var(--mobile-gutter); }
  .brand-site-hero__title {
    max-width:100%;
    font-size:clamp(29px,7.8vw,34px);
    line-height:1.5;
    text-wrap:balance;
  }
  .brand-site-intro,
  .brand-site-fit,
  .brand-site-scope,
  .brand-site-price,
  .brand-site-extension,
  .brand-site-process,
  .brand-site-faq,
  .brand-site-cta {
    padding-left:var(--mobile-gutter);
    padding-right:var(--mobile-gutter);
  }
  .brand-site-intro__grid,
  .brand-site-section-head,
  .brand-site-section-head--split,
  .brand-site-extension__grid,
  .brand-site-faq__inner {
    width:100%;
    max-width:100%;
  }
  .brand-site-page .section-title {
    font-size:clamp(29px,7.7vw,34px);
    line-height:1.55;
    letter-spacing:0;
    text-wrap:balance;
  }
  .brand-site-prose,
  .brand-site-section-head .section-text,
  .brand-site-extension__body,
  .brand-site-process__grid article div,
  .brand-site-subsidy__body {
    max-width:31em;
    font-size:13px;
    line-height:2.08;
  }
  .brand-site-scope__item div { max-width:31em; }
  .business-service#business-service-brand-site .business-service__content {
    padding-left:30px;
    padding-right:30px;
  }
  .business-service#business-service-brand-site .business-service__content > p:not(.section-label) {
    font-size:15px;
    line-height:2.08;
  }
}

/* =========================================================
   v0.2.121 — TOP ABOUT portrait + SEO foundation
   Use the supplied wide two-person portrait in a tall editorial frame while
   keeping both people's feet inside the crop. The source is much wider than
   the frame, so the crop is biased left rather than centered.
========================================================= */
.home .about-preview__image {
  aspect-ratio: 21 / 25;
  overflow: hidden;
  background: #d8d9d7;
}
.home .about-preview__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 30% center;
}
@media (max-width: 900px) {
  .home .about-preview__image {
    aspect-ratio: 4 / 3;
  }
  .home .about-preview__image img {
    object-position: center center;
  }
}

/* =========================================================
   v0.2.123 — BRAND SITE Japanese typography QA
   Screen-recording review: widen Japanese copy, reduce multi-column pressure,
   preserve authored semantic breaks and prevent orphan-like 1–2 character wraps.
========================================================= */
.brand-site-page p,
.brand-site-page li,
.brand-site-page .brand-site-prose,
.brand-site-page .brand-site-section-head .section-text,
.brand-site-page .brand-site-extension__body,
.brand-site-page .brand-site-subsidy__body,
.brand-site-page .brand-site-faq__item > div {
  line-break: strict;
  word-break: normal;
  overflow-wrap: normal;
  text-wrap: pretty;
}

.brand-site-hero__lead p {
  margin:0 0 10px;
}
.brand-site-hero__lead p:last-child {
  margin-bottom:0;
  color:rgba(244,239,231,.92);
  word-break:keep-all;
  line-height:1.95;
}
.brand-site-value__lead p { margin:0 0 14px; }
.brand-site-value__lead p:last-child { margin-bottom:0; }

@media (min-width: 901px) {
  /* BEFORE DESIGN: give the headline enough room so it never enters body copy. */
  .brand-site-intro__grid {
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
    gap:clamp(48px,5vw,82px);
  }
  .brand-site-intro .section-title {
    max-width:13.5em;
    font-size:clamp(34px,2.55vw,46px);
    line-height:1.58;
  }

  /* Five narrow columns made Japanese copy look cramped. Use a calm 2-column rhythm. */
  .brand-site-fit__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .brand-site-fit__item,
  .brand-site-fit__item + .brand-site-fit__item {
    min-height:210px;
    padding:32px 36px 36px 0;
    border-left:0;
  }
  .brand-site-fit__item:nth-child(even) {
    padding-left:36px;
    border-left:1px solid rgba(27,26,24,.14);
  }
  .brand-site-fit__item:nth-child(5) {
    grid-column:1 / -1;
    min-height:0;
    padding-right:0;
    border-left:0;
  }
  .brand-site-fit__item span { margin-bottom:30px; }
  .brand-site-fit__item p {
    max-width:30em;
    font-size:clamp(17px,1.42vw,20px);
    line-height:1.85;
  }

  /* WHAT WE DO copy keeps explicit semantic line breaks. */
  .brand-site-scope__item h3,
  .brand-site-value__item h3,
  .brand-site-process__grid h3 {
    white-space:nowrap;
  }
  .brand-site-scope__item div {
    max-width:39em;
    font-size:13.5px;
    line-height:2.1;
  }

  /* VALUE: 4 columns were visually premium but too tight for Japanese. */
  .brand-site-value__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .brand-site-value__item,
  .brand-site-value__item:not(:nth-child(4n+1)),
  .brand-site-value__item:nth-child(5) {
    min-height:205px;
    padding:30px 36px 34px 0;
    border-left:0;
  }
  .brand-site-value__item:nth-child(even) {
    padding-left:36px;
    border-left:1px solid rgba(243,238,232,.13);
  }
  .brand-site-value__item span { margin-bottom:30px; }
  .brand-site-value__item h3 {
    font-size:clamp(19px,1.6vw,24px);
    line-height:1.7;
  }

  /* PROCESS: two wide columns prevent particles/verbs being stranded. */
  .brand-site-process__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .brand-site-process__grid article,
  .brand-site-process__grid article:not(:nth-child(3n+1)) {
    min-height:270px;
    padding:30px 36px 34px 0;
    border-left:0;
  }
  .brand-site-process__grid article:nth-child(even) {
    padding-left:36px;
    border-left:1px solid rgba(27,26,24,.15);
  }
  .brand-site-process__grid article > span { margin-bottom:30px; }
  .brand-site-process__grid article div {
    max-width:38em;
    font-size:13px;
    line-height:2.05;
  }
}

@media (max-width: 900px) {
  .brand-site-hero__lead p { margin-bottom:8px; }
  .brand-site-hero__lead p:last-child { line-height:2; }
  .brand-site-scope__item h3,
  .brand-site-value__item h3,
  .brand-site-process__grid h3 {
    white-space:normal;
    text-wrap:pretty;
  }
}

@media (max-width: 440px) {
  /* The longest authored BEFORE DESIGN line stays intact at common iPhone widths. */
  .brand-site-intro .section-title {
    font-size:clamp(26px,7.05vw,30px);
    line-height:1.62;
  }
  .brand-site-hero__lead {
    font-size:12.5px;
    line-height:2;
  }
  .brand-site-hero__lead p:last-child {
    font-size:12.5px;
    word-break:keep-all;
  }
}

/* v0.2.123 photo-role crop: the cinematic water frame carries PHOTO / FILM. */
.brand-site-visual__image img { object-position:72% center; }
@media (max-width:900px) {
  .brand-site-visual__image img { object-position:72% center; }
}


/* =========================================================
   v0.2.124 — BRAND SITE photo identification
   Small editorial credits identify the people shown without implying that
   they are BRAND SITE production clients. Keep the credit secondary to the image.
========================================================= */
.brand-site-hero__media,
.brand-site-visual__image {
  position:relative;
}
.brand-site-photo-credit {
  position:absolute;
  z-index:4;
  right:20px;
  bottom:18px;
  max-width:calc(100% - 40px);
  margin:0;
  color:rgba(255,255,255,.88);
  font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  font-size:10px;
  font-weight:400;
  line-height:1.65;
  letter-spacing:.035em;
  text-align:right;
  text-shadow:0 1px 8px rgba(0,0,0,.58), 0 1px 2px rgba(0,0,0,.5);
  pointer-events:none;
}
.brand-site-photo-credit--visual {
  right:auto;
  left:20px;
  text-align:left;
}
@media (max-width:900px) {
  .brand-site-photo-credit {
    right:14px;
    bottom:12px;
    max-width:calc(100% - 28px);
    font-size:9px;
    line-height:1.6;
  }
  .brand-site-photo-credit--visual {
    right:auto;
    left:14px;
  }
}


/* =========================================================
   v0.2.125 — BRAND SITE photo-credit safety + price hierarchy
========================================================= */
/* Keep the hero credit away from the vertical art-direction label. */
.brand-site-photo-credit--hero {
  right:auto;
  left:20px;
  bottom:18px;
  max-width:min(440px,calc(100% - 86px));
  text-align:left;
}
.brand-site-hero__side {
  top:50%;
  bottom:auto;
  transform:translateY(-50%);
}

/* The 330k plan is shown first as the qualified production-only option.
   The recommended 550k plan follows with stronger visual emphasis. */
.brand-site-price__secondary--first {
  margin-top:8px;
  margin-bottom:28px;
}
.brand-site-price__main--recommended {
  position:relative;
  margin-top:0;
}
.brand-site-price__recommended {
  position:absolute;
  z-index:2;
  top:0;
  right:clamp(24px,4.8vw,68px);
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 12px;
  background:#b9946d;
  color:#171614;
  font:600 9px/1 Manrope,Arial,sans-serif;
  letter-spacing:.17em;
}

@media (max-width:900px) {
  .brand-site-photo-credit--hero {
    right:auto;
    left:14px;
    bottom:12px;
    max-width:calc(100% - 28px);
  }
  .brand-site-price__secondary--first {
    margin-top:6px;
    margin-bottom:30px;
  }
  .brand-site-price__recommended {
    right:20px;
    min-height:24px;
    font-size:8px;
  }
}

/* =========================================================
   v0.2.126 — concise mobile editorial layer + service-first navigation
========================================================= */
.brand-site-copy--mobile { display:none; }
.brand-site-copy > p:first-child { margin-top:0; }
.brand-site-copy > p:last-child { margin-bottom:0; }
.brand-site-responsive-prose > .brand-site-copy { margin:0; }
.brand-site-cta__body { max-width:900px !important; }

@media (max-width:900px) {
  .brand-site-copy--desktop { display:none; }
  .brand-site-copy--mobile { display:block; }
  .brand-site-copy--mobile p { margin-bottom:10px; }
  .brand-site-copy--mobile p:last-child { margin-bottom:0; }
  .brand-site-cta__body { max-width:34em !important; }
}

/* Desktop: keep the six clear top-level destinations, but expose the actual
   services one level below FOR YOU / FOR BUSINESS instead of making visitors
   hunt through category pages. */
@media (min-width:901px) {
  .site-nav > ul.menu { align-items:center; }
  .site-nav > ul.menu > li { position:relative; }
  .site-nav > ul.menu > li > .sub-menu {
    position:absolute;
    top:calc(100% + 14px);
    left:50%;
    z-index:80;
    width:max-content;
    min-width:285px;
    display:grid;
    gap:0;
    padding:12px 14px;
    background:rgba(18,17,15,.97);
    color:#f5f1ea;
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 18px 44px rgba(0,0,0,.18);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate(-50%,8px);
    transition:opacity .18s ease, transform .24s ease, visibility 0s linear .24s;
  }
  .site-nav > ul.menu > li:hover > .sub-menu,
  .site-nav > ul.menu > li:focus-within > .sub-menu {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate(-50%,0);
    transition-delay:0s;
  }
  .site-nav .sub-menu li { border:0; }
  .site-nav .sub-menu a {
    min-height:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:18px;
    align-items:baseline;
    padding:10px 10px;
    color:inherit;
    white-space:nowrap;
  }
  .site-nav .sub-menu a::after { display:none !important; }
  .menu-child__ja {
    font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
    font-size:12px;
    line-height:1.45;
    letter-spacing:.04em;
  }
  .menu-child__en {
    font-family:Manrope,Arial,sans-serif;
    font-size:7px;
    line-height:1.2;
    letter-spacing:.13em;
    opacity:.56;
  }
  .site-nav > ul.menu > .menu-item--contact > a {
    min-height:34px;
    padding:7px 12px;
    border:1px solid currentColor;
  }
}

/* Mobile: second-level services stay visible inside the drawer. One menu open
   should be enough to reach Brand Me Labo, BRAND SITE, PHOTO / FILM, etc. */
@media (max-width:900px) {
  .site-nav > ul.menu > li { border-top:1px solid rgba(29,27,25,.11); }
  .site-nav > ul.menu > li:last-child { border-bottom:1px solid rgba(29,27,25,.11); }
  .site-nav > ul.menu > li > a { min-height:58px; }
  .site-nav .sub-menu {
    position:static !important;
    width:100% !important;
    min-width:0 !important;
    display:grid !important;
    gap:0 !important;
    margin:0 0 14px !important;
    padding:0 0 0 14px !important;
    background:transparent !important;
    color:inherit !important;
    border:0 !important;
    box-shadow:none !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transform:none !important;
  }
  .site-nav .sub-menu li,
  .site-nav .sub-menu li:last-child { border:0 !important; }
  .site-nav .sub-menu a {
    min-height:42px !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    gap:14px;
    align-items:baseline;
    padding:7px 4px 7px 14px !important;
    border-left:1px solid rgba(29,27,25,.16);
  }
  .site-nav .sub-menu .menu-child__ja {
    font-family:var(--font-ja-serif);
    font-size:13px;
    line-height:1.45;
    letter-spacing:.025em;
  }
  .site-nav .sub-menu .menu-child__en {
    font-family:var(--font-latin-ui);
    font-size:7px;
    line-height:1.25;
    letter-spacing:.12em;
    opacity:.44;
    text-align:right;
  }
  .site-nav > ul.menu > .menu-item--contact > a {
    min-height:54px !important;
    margin-top:18px;
    padding:9px 14px !important;
    background:#1d1b19;
    color:#f7f4ee;
  }
  .site-nav > ul.menu > .menu-item--contact .menu-label__en { opacity:.62; }

  .home .site-nav > ul.menu > li { border-top:1px solid rgba(243,240,232,.14); }
  .home .site-nav .sub-menu {
    margin-bottom:12px !important;
    padding-left:0 !important;
    text-align:right;
  }
  .home .site-nav .sub-menu a {
    min-height:36px !important;
    grid-template-columns:minmax(0,1fr);
    justify-items:end;
    gap:2px;
    padding:5px 0 !important;
    border-left:0;
  }
  .home .site-nav .sub-menu .menu-child__ja {
    font-size:12px;
    color:inherit;
  }
  .home .site-nav .sub-menu .menu-child__en {
    font-size:6.5px;
    color:inherit;
    opacity:.44;
  }
  .home .site-nav > ul.menu > .menu-item--contact > a {
    background:#f3f0e8;
    color:#11100f;
  }
}

/* =========================================================
   v0.2.128 — PC Japanese typography regression repair
   Keep mobile-specific authored breaks on mobile only. On desktop, body copy
   wraps inside its own column while headings use explicit phrase boundaries.
========================================================= */
@media (min-width: 901px) {
  /* TOP / CONTACT: the approved two-line sentence was visually too loose. */
  .home .cta .section-text.desktop-copy-precise,
  .contact-hero__summary.desktop-copy-precise {
    line-height: 1.68;
    letter-spacing: .006em;
  }

  /* PERSONAL: both decision cards use exactly the same title scale. */
  .personal-route h3 {
    width: 100%;
    max-width: 560px;
    min-height: 4.5em;
    margin-bottom: 24px;
    font-size: clamp(34px, 2.2vw, 40px);
    line-height: 1.5;
    letter-spacing: 0;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: balance;
  }
  .personal-route h3 .responsive-copy--desktop .responsive-copy__line {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
  }
  .personal-route > div,
  .personal-route > div p {
    min-width: 0;
    font-size: 15px;
    line-height: 1.92;
    letter-spacing: .012em;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }

  /* SINGLE SESSIONS: reserve real width for prose and price instead of
     allowing a mobile-only precise line to spill across adjacent columns. */
  .personal-menu-item {
    grid-template-columns: 48px minmax(250px, .82fr) minmax(350px, 1.12fr) minmax(190px, .58fr);
    gap: clamp(22px, 2.6vw, 44px);
  }
  .personal-menu-item__name,
  .personal-menu-item__body,
  .personal-menu-item__action {
    min-width: 0;
  }
  .personal-menu-item__name h3 {
    font-size: clamp(28px, 2vw, 34px);
    line-height: 1.5;
  }
  .personal-menu-item__body,
  .personal-menu-item__body p,
  .personal-menu-item__body .responsive-copy--desktop {
    max-width: 100%;
    font-size: 14.5px;
    line-height: 1.92;
    letter-spacing: .01em;
    white-space: normal !important;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }
  .personal-menu-item__action > p {
    font-size: 13px;
    line-height: 1.75;
    text-wrap: pretty;
  }

  /* HOW IT WORKS: all five titles are authored as two semantic lines and
     all five explanatory paragraphs share one type size / leading. */
  .personal-program__grid--five .personal-program__item {
    min-width: 0;
    padding: 36px 22px 40px;
  }
  .personal-program__grid--five .personal-program__item h3 {
    min-height: 3.2em;
    margin-bottom: 24px;
    font-size: 20px;
    line-height: 1.6;
    letter-spacing: 0;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: balance;
  }
  .personal-program__grid--five .personal-program__item h3 .responsive-copy--desktop .responsive-copy__line {
    display: block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap;
  }
  .personal-program__grid--five .personal-program__item div,
  .personal-program__grid--five .personal-program__item div p,
  .personal-program__grid--five .personal-program__item div .responsive-copy--desktop {
    max-width: 100%;
    font-size: 14px;
    line-height: 1.9;
    letter-spacing: .008em;
    white-space: normal !important;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: pretty;
  }
}

@media (min-width: 901px) and (max-width: 1240px) {
  /* At laptop widths, four content columns plus price are too tight. The
     action moves below the copy before Japanese phrases become cramped. */
  .personal-menu-item {
    grid-template-columns: 42px minmax(230px, .78fr) minmax(0, 1fr);
  }
  .personal-menu-item__action {
    grid-column: 2 / -1;
    display: flex;
    justify-content: space-between;
    gap: 28px;
    align-items: center;
    text-align: left;
  }
  .personal-menu-item__action .text-link { margin-top: 0; }
}

/* =========================================================
   v0.2.129 — SINGLE SESSIONS PC readability + CTA + Argyle bridge
   Keep formal service names intact, use phrase-safe copy width, and turn the
   Brand Me Labo bridge into a scannable comparison block.
========================================================= */
.desktop-only-break { display: none; }

@media (min-width: 1101px) {
  .single-menu-page .single-service__content {
    padding-left: clamp(48px, 5vw, 78px);
    padding-right: clamp(48px, 5vw, 78px);
  }
  .single-menu-page .single-service__title {
    max-width: none;
    margin-top: 44px;
    font-size: clamp(32px, 2.45vw, 44px);
    line-height: 1.25;
    letter-spacing: -.025em;
    white-space: nowrap;
  }
  .single-menu-page .single-service__title .service-title__keep--full {
    display: inline-block;
    width: max-content;
    max-width: 100%;
    white-space: nowrap !important;
  }
  .single-menu-page .single-service__tagline {
    max-width: 720px;
    margin-bottom: 28px;
    font-size: clamp(18px, 1.3vw, 22px);
    line-height: 1.72;
    letter-spacing: 0;
    white-space: nowrap;
  }
  .single-menu-page .single-service__body {
    max-width: 720px;
    font-size: clamp(13.5px, .9vw, 15px);
    line-height: 2.02;
    line-break: strict;
    text-wrap: pretty;
    letter-spacing: 0;
  }
  .single-menu-page .single-service__body p {
    margin-bottom: 1.18em;
  }
  .single-menu-page .desktop-only-break { display: block; }
}

.single-service__bridge {
  margin-top: 38px;
  padding: clamp(28px, 3vw, 38px);
  background: rgba(255,255,255,.54);
  border: 1px solid var(--color-line);
}
.single-service__bridge h4 {
  max-width: 620px;
  margin-bottom: 13px;
}
.single-service__bridge-intro {
  max-width: 670px;
  color: var(--color-soft-ink);
  font-size: 12px;
  line-height: 1.95;
}
.single-service__bridge-intro p { margin: 0; }
.single-service__bridge-summary {
  margin-top: 25px;
  border-top: 1px solid var(--color-line);
}
.single-service__bridge-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  margin: 0;
}
.single-service__bridge-facts > div {
  min-width: 0;
  padding: 18px 18px 18px 0;
  border-bottom: 1px solid var(--color-line);
}
.single-service__bridge-facts > div:nth-child(even) {
  padding-left: 18px;
  border-left: 1px solid var(--color-line);
}
.single-service__bridge-facts > .single-service__bridge-facts--wide {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 112px minmax(0,1fr);
  gap: 18px;
  padding-left: 0;
  border-left: 0;
}
.single-service__bridge-facts dt {
  margin: 0 0 8px;
  color: var(--color-accent);
  font: 500 9px/1.4 var(--font-sans);
  letter-spacing: .15em;
}
.single-service__bridge-facts dd {
  margin: 0;
  font-size: 13px;
  line-height: 1.8;
}
.single-service__bridge-facts--wide dt { margin: 2px 0 0; }
.single-service__bridge-discount {
  display: grid;
  grid-template-columns: minmax(180px,.9fr) auto minmax(210px,1.1fr);
  gap: 18px 24px;
  align-items: center;
  padding: 22px 0 4px;
}
.single-service__bridge-discount p {
  margin: 0;
  font-size: 12px;
  line-height: 1.7;
}
.single-service__bridge-discount strong {
  font-family: var(--font-serif);
  font-size: clamp(25px, 2vw, 32px);
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
}
.single-service__bridge-discount span {
  color: var(--color-soft-ink);
  font-size: 11px;
  line-height: 1.7;
}
.single-service__bridge .text-link { margin-top: 24px; }

/* Final choice CTA: one clear action, one clear way back. */
.single-menu-cta .personal-cta__inner {
  width: min(100% - 64px, 900px);
  margin: 0 auto;
  padding-top: clamp(72px, 8vw, 112px);
  padding-bottom: clamp(72px, 8vw, 112px);
  text-align: center;
}
.single-menu-cta .personal-cta__inner > div:first-child,
.single-menu-cta .personal-cta__body {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.single-menu-cta .section-title {
  margin-top: 20px;
  margin-bottom: 0;
  line-height: 1.48;
}
.single-menu-cta .personal-cta__body {
  margin-top: 30px;
  color: rgba(255,255,255,.76);
  font-size: 14px;
  line-height: 1.9;
}
.single-menu-cta .personal-cta__body > p { margin: 0; }
.single-menu-cta .personal-actions {
  justify-content: center;
  margin-top: 30px;
  gap: 16px 28px;
}
.single-menu-cta .personal-actions .button--light {
  min-width: 250px;
}
.single-menu-cta .personal-actions .text-link {
  color: rgba(255,255,255,.82);
}

@media (max-width: 1100px) {
  .single-menu-page .single-service__title {
    font-size: clamp(22px, 4.6vw, 34px);
    line-height: 1.45;
  }
  .single-menu-page .single-service__title .service-title__keep--full {
    display: inline-block;
    max-width: 100%;
    white-space: nowrap !important;
  }
  .single-menu-page .single-service__tagline {
    line-break: strict;
    text-wrap: pretty;
  }
  .single-service__bridge-discount {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .single-service__bridge-discount strong { margin: 2px 0 4px; }
}

@media (max-width: 620px) {
  .single-service__bridge { padding: 24px 20px; }
  .single-service__bridge-facts { grid-template-columns: 1fr; }
  .single-service__bridge-facts > div,
  .single-service__bridge-facts > div:nth-child(even) {
    padding: 15px 0;
    border-left: 0;
  }
  .single-service__bridge-facts > .single-service__bridge-facts--wide {
    display: block;
    grid-column: auto;
  }
  .single-service__bridge-facts--wide dt { margin-bottom: 7px; }
  .single-menu-cta .personal-cta__inner { width: min(100% - 40px, 900px); }
  .single-menu-cta .personal-actions { display: grid; grid-template-columns: 1fr; gap: 20px; }
  .single-menu-cta .personal-actions .button--light { width: 100%; min-width: 0; }
  .single-menu-cta .personal-actions .text-link { justify-self: center; }
}

/* =========================================================
   v0.2.130 — desktop submenu hover bridge + single-session hierarchy
========================================================= */
@media (min-width:901px) {
  /* The former 14px visual gap between the top-level item and its submenu
     also became a hover gap. This invisible bridge belongs to the parent LI,
     so moving the pointer downward keeps :hover active until the submenu. */
  .site-nav > ul.menu > li.menu-item-has-children::after {
    content:"";
    position:absolute;
    z-index:79;
    left:-18px;
    right:-18px;
    top:100%;
    height:16px;
    background:transparent;
  }
  .site-nav > ul.menu > li > .sub-menu {
    top:calc(100% + 12px);
  }
}

/* Single-session service hierarchy: title -> editorial promise band -> body.
   The band is intentionally square and restrained rather than a rounded pill,
   keeping the La paix editorial tone while making the subhead unmistakable. */
.single-menu-page .single-service__tagline {
  display:table;
  width:auto;
  max-width:100%;
  margin:0 0 30px;
  padding:9px 14px 10px;
  background:var(--color-deep);
  color:#fff;
  font-family:var(--font-serif);
  font-size:clamp(14px,1.08vw,17px);
  line-height:1.62;
  letter-spacing:.015em;
  text-wrap:pretty;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.single-menu-page .single-service__tagline .responsive-copy,
.single-menu-page .single-service__tagline .responsive-copy__line {
  color:inherit;
  font:inherit;
  letter-spacing:inherit;
}

@media (min-width:1101px) {
  .single-menu-page .single-service__tagline {
    font-size:clamp(14px,1vw,16px);
    line-height:1.55;
    white-space:normal;
  }
}

@media (max-width:900px) {
  .single-menu-page .single-service__tagline {
    margin-bottom:24px;
    padding:8px 11px 9px;
    font-size:13px;
    line-height:1.6;
  }
}

/* =========================================================
   v0.2.131 — smartphone QA / calmer navigation / stronger service hierarchy
========================================================= */

/* Brand Me Labo graduate support CTA: the section is pale, so inherited
   white text from .personal-cta was low-contrast on mobile. */
.update-page .update-cta {
  color: var(--color-ink);
  background: #e8e1d5;
}
.update-page .update-cta .section-label { color: #9b7b58; }
.update-page .update-cta .personal-cta__body,
.update-page .update-cta .personal-cta__body p { color: rgba(30,29,27,.76); }
.update-page .update-cta .text-link { color: var(--color-ink); }

/* Mobile navigation: the first view shows only the six destinations. FOR YOU
   and FOR BUSINESS disclose service shortcuts on demand rather than showing
   seven extra lines immediately. Desktop remains unchanged. */
.submenu-toggle { display:none; }

@media (max-width:900px) {
  .site-nav > ul.menu > li.menu-item-has-children { position:relative; }
  .site-nav > ul.menu > li.menu-item-has-children > a { padding-right:58px !important; }
  .site-nav .submenu-toggle {
    position:absolute;
    z-index:2;
    top:9px;
    right:0;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    cursor:pointer;
  }
  .site-nav .submenu-toggle span,
  .site-nav .submenu-toggle span::after {
    content:"";
    display:block;
    width:15px;
    height:1px;
    background:currentColor;
    transition:transform .24s ease, opacity .18s ease;
  }
  .site-nav .submenu-toggle span::after { transform:rotate(90deg); }
  .site-nav .submenu-toggle[aria-expanded="true"] span::after { transform:rotate(0deg); }

  .site-nav .sub-menu {
    display:grid !important;
    overflow:hidden;
    max-height:0;
    margin:0 !important;
    padding:0 0 0 14px !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:max-height .34s cubic-bezier(.22,.78,.25,1), opacity .2s ease, visibility 0s linear .34s;
  }
  .site-nav .sub-menu > li { min-height:0; }
  .site-nav .menu-item-has-children.is-submenu-open > .sub-menu {
    max-height:360px;
    margin:0 0 16px !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transition-delay:0s;
  }
  .site-nav .sub-menu a {
    min-height:44px !important;
    padding-top:9px !important;
    padding-bottom:9px !important;
  }
  .site-nav .sub-menu .menu-child__ja { font-size:13px; }

  /* HOME retains the cinematic drawer, but its first frame is now a simple
     editorial index instead of a wall of service links. */
  .home .site-nav { align-items:flex-start; }
  .home .site-nav > ul.menu > li.menu-item-has-children > a { padding-right:52px !important; }
  .home .site-nav .submenu-toggle { top:12px; right:0; }
  .home .site-nav .sub-menu {
    padding-left:0 !important;
    text-align:right;
  }
  .home .site-nav .menu-item-has-children.is-submenu-open > .sub-menu { margin-bottom:18px !important; }
  .home .site-nav .sub-menu a {
    min-height:40px !important;
    padding:7px 0 !important;
  }
  .home .site-nav .sub-menu .menu-child__ja { font-size:13px; }
}

/* TOP ABOUT supplied art already contains its intended composition. On a
   smartphone, cropping that artwork into 4:3 changes the framing, so display
   the source at its native aspect ratio. */
@media (max-width:900px) {
  .home .about-preview__image {
    aspect-ratio:auto;
    overflow:visible;
    background:transparent;
  }
  .home .about-preview__image img {
    width:100%;
    height:auto;
    object-fit:contain;
    object-position:center;
    transform:none;
  }
}

/* Single-session hierarchy: CTA buttons stay solid black; the promise line is
   now an editorial note, not a button-shaped black band. */
.single-menu-page .single-service__tagline {
  display:block;
  width:100%;
  max-width:720px;
  margin:0 0 30px;
  padding:16px 20px 17px;
  background:rgba(190,164,134,.12);
  color:var(--color-ink);
  border-top:1px solid rgba(153,119,82,.42);
  border-bottom:1px solid rgba(153,119,82,.24);
  border-left:3px solid #a88560;
  font-family:var(--font-serif);
  font-size:clamp(17px,1.2vw,21px);
  line-height:1.62;
  letter-spacing:.015em;
  text-wrap:pretty;
}
.single-menu-page .single-service__tagline .responsive-copy,
.single-menu-page .single-service__tagline .responsive-copy__line {
  color:inherit;
  font:inherit;
  letter-spacing:inherit;
}

@media (max-width:900px) {
  /* More breathing room across the site. This changes the reading measure,
     not the content, and keeps full-bleed media outside .section unaffected. */
  :root { --mobile-gutter: clamp(25px, 7vw, 30px); }
  .site-header { padding-left:var(--mobile-gutter); padding-right:var(--mobile-gutter); }

  .single-menu-page .single-service__content {
    padding-left:var(--mobile-gutter);
    padding-right:var(--mobile-gutter);
  }
  .single-menu-page .single-service__title {
    margin-top:34px;
    margin-bottom:18px;
    font-size:clamp(27px,7.4vw,33px);
    line-height:1.38;
    letter-spacing:-.015em;
  }
  .single-menu-page .single-service__tagline {
    width:100%;
    margin-bottom:25px;
    padding:14px 15px 15px 17px;
    font-size:clamp(16px,4.35vw,18px);
    line-height:1.65;
  }
  .single-menu-page .single-service__body {
    max-width:31em;
    font-size:14px;
    line-height:2;
  }
  .single-menu-page .single-service__body p { margin-bottom:1.35em; }

  .update-page .update-cta .personal-cta__inner {
    width:min(100% - (var(--mobile-gutter) * 2), 760px);
  }
  .update-page .update-cta .section-title {
    font-size:clamp(26px,7.2vw,31px);
    line-height:1.55;
  }
  .update-page .update-cta .personal-cta__body {
    font-size:14px;
    line-height:1.95;
  }

  /* Common long-form blocks get a readable measure rather than stretching to
     the last available pixel. */
  .section-text,
  .personal-page .section-text,
  .business-page .section-text,
  .about-page .section-text,
  .brand-site-page .brand-site-prose,
  .brand-visual-page .section-text,
  .update-page .section-text {
    max-width:32em;
  }
}

@media (max-width:374px) {
  :root { --mobile-gutter:22px; }
  .single-menu-page .single-service__title { font-size:26px; }
  .single-menu-page .single-service__tagline { font-size:15px; }
}

/* =========================================================
   v0.2.132 — mobile production hardening / Japanese reading rhythm
   Final layer intentionally overrides legacy one-device nowrap patches.
   QA widths: 360 / 375 / 390 / 393 / 412 / 414 / 430 / 440 CSS px.
========================================================= */
.labo-result-copy--mobile,
.single-service__bridge-mobile { display:none; }

@media (max-width: 900px) {
  :root { --mobile-gutter: clamp(26px, 7.2vw, 32px); }
  html, body { width:100%; max-width:100%; overflow-x:clip; }
  .site-main { width:100%; max-width:100%; overflow-x:clip; }
  .site-main *, .site-footer * { min-width:0; }
  img, video, iframe, svg { max-width:100%; }

  /* One mobile type rule wins over historical nowrap patches. Authored lines
     remain lines, but a line may wrap safely on a narrower phone instead of
     clipping outside the viewport. */
  .responsive-copy--mobile { display:inline; max-width:100%; white-space:normal !important; }
  .responsive-copy--mobile .responsive-copy__line,
  .mobile-copy-precise .responsive-copy--mobile .responsive-copy__line,
  .personal-page .responsive-copy--mobile .responsive-copy__line,
  .business-page .responsive-copy--mobile .responsive-copy__line,
  .about-page .responsive-copy--mobile .responsive-copy__line,
  .labo-page .responsive-copy--mobile .responsive-copy__line,
  .brand-visual-page .responsive-copy--mobile .responsive-copy__line,
  .single-menu-page .responsive-copy--mobile .responsive-copy__line {
    display:block;
    width:auto !important;
    max-width:100% !important;
    white-space:normal !important;
    line-break:strict;
    word-break:normal;
    overflow-wrap:normal;
    text-wrap:pretty;
  }
  @supports (word-break: auto-phrase) {
    .site-main h1, .site-main h2, .site-main h3, .site-main h4,
    .site-main p, .site-main li, .site-main dd {
      word-break:auto-phrase;
    }
  }

  /* Safe measure and edge protection for non-.section full-bleed components. */
  .section { padding-left:var(--mobile-gutter); padding-right:var(--mobile-gutter); }
  .section__inner, .section__inner--narrow { width:100%; max-width:100%; }
  .personal-photo-path__content,
  .single-menu-photo-path__content,
  .personal-message__content,
  .labo-promise__card,
  .labo-online__copy,
  .labo-photo__copy,
  .brand-visual-hero__copy,
  .update-hero__copy {
    padding-left:var(--mobile-gutter) !important;
    padding-right:var(--mobile-gutter) !important;
  }
  .site-main p, .site-main li, .site-main dd {
    line-break:strict;
    word-break:normal;
    overflow-wrap:normal;
    text-wrap:pretty;
  }

  /* Shared Japanese headings: no edge hugging and no oversized editorial type
     that forces one- or two-character orphan lines. */
  .section-title,
  .labo-page .section-title,
  .personal-page .section-title,
  .brand-visual-page .section-title,
  .single-menu-page .section-title {
    max-width:100%;
    font-size:clamp(27px,7.05vw,31px);
    line-height:1.58;
    letter-spacing:0;
    white-space:normal !important;
    line-break:strict;
    word-break:normal;
    text-wrap:balance;
  }

  /* TOP VISUAL DIRECTION: use the four authored mobile phrases at a size that
     actually fits the longest phrase on 375–430px screens. */
  .visual-rhythm__copy { padding-left:var(--mobile-gutter); padding-right:var(--mobile-gutter); }
  .visual-rhythm__quote,
  .visual-rhythm__copy .visual-rhythm__quote {
    max-width:100%;
    font-size:clamp(22px,6.15vw,25px) !important;
    line-height:1.72 !important;
    letter-spacing:0 !important;
  }
  .visual-rhythm__quote .responsive-copy--mobile .responsive-copy__line {
    display:block;
    white-space:nowrap !important;
  }

  /* PERSONAL photo path was a full-bleed exception and could visually start at
     x=0. Restore the same safe gutter as the rest of the reading flow. */
  .personal-photo-path__content .section-title,
  .single-menu-photo-path__content .section-title {
    font-size:clamp(29px,7.7vw,34px);
    line-height:1.55;
  }
  .personal-photo-path__content .section-text,
  .single-menu-photo-path__content .section-text {
    max-width:31em;
    font-size:clamp(13.5px,3.55vw,14.5px) !important;
    line-height:1.86 !important;
  }

  /* SINGLE SESSIONS: formal names stay one line by scaling to the viewport,
     while the promise panel remains a supporting element—not a CTA. */
  .single-menu-page .single-service__content {
    padding-left:var(--mobile-gutter) !important;
    padding-right:var(--mobile-gutter) !important;
  }
  .single-menu-page .single-service__title {
    width:100%;
    max-width:100%;
    margin-top:30px;
    margin-bottom:16px;
    padding-bottom:13px;
    position:relative;
    font-size:clamp(20px,5.25vw,23px) !important;
    line-height:1.42 !important;
    letter-spacing:-.025em !important;
    white-space:nowrap !important;
  }
  .single-menu-page .single-service__title::after {
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:44px;
    height:1px;
    background:#9b8369;
  }
  .single-menu-page .single-service__title .service-title__keep--full,
  .single-menu-page .single-service__title .responsive-copy__line {
    display:inline !important;
    width:auto !important;
    max-width:none !important;
    white-space:nowrap !important;
  }
  .single-menu-page .single-service__tagline {
    width:100%;
    margin-bottom:24px;
    padding:13px 15px 14px;
    background:rgba(155,131,105,.085);
    border:0;
    border-left:2px solid rgba(155,131,105,.7);
    color:var(--color-ink);
    font-size:clamp(14px,3.8vw,16px) !important;
    line-height:1.7 !important;
  }
  .single-menu-page .single-service__body {
    max-width:30em;
    font-size:clamp(13.5px,3.55vw,14.5px) !important;
    line-height:1.9 !important;
  }

  /* Argyle trial -> Brand Me Labo: mobile is a decision card, not another long
     article. Desktop keeps the fuller comparison table. */
  .single-service__bridge {
    margin-top:34px;
    padding:26px 20px 28px;
    background:#f3eee6;
    border:1px solid rgba(30,29,27,.11);
  }
  .single-service__bridge > h4 {
    margin:10px 0 18px;
    max-width:100%;
    font-size:clamp(22px,5.8vw,25px);
    line-height:1.58;
    letter-spacing:0;
  }
  .single-service__bridge-intro,
  .single-service__bridge-summary--desktop { display:none !important; }
  .single-service__bridge-mobile {
    display:grid;
    gap:0;
    margin-top:8px;
    border-top:1px solid rgba(30,29,27,.12);
  }
  .single-service__bridge-mobile > p { margin:0; }
  .single-service__bridge-mobile-program {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:18px;
    padding:18px 0;
    border-bottom:1px solid rgba(30,29,27,.10);
  }
  .single-service__bridge-mobile-program span {
    font:500 9px/1.3 var(--font-sans);
    letter-spacing:.16em;
    color:var(--color-accent);
  }
  .single-service__bridge-mobile-program strong {
    font-family:var(--font-serif);
    font-size:20px;
    font-weight:400;
    line-height:1.3;
  }
  .single-service__bridge-mobile-copy,
  .single-service__bridge-mobile-scope {
    padding:16px 0;
    border-bottom:1px solid rgba(30,29,27,.10);
    font-size:13px;
    line-height:1.8;
    color:#514c46;
  }
  .single-service__bridge-mobile-discount {
    display:grid;
    grid-template-columns:1fr auto;
    gap:5px 14px;
    align-items:end;
    margin-top:18px;
    padding:17px 16px;
    background:#171513;
    color:#f7f2ea;
  }
  .single-service__bridge-mobile-discount span {
    font-size:11px;
    line-height:1.5;
    color:rgba(247,242,234,.68);
  }
  .single-service__bridge-mobile-discount strong {
    grid-row:1 / 3;
    grid-column:2;
    align-self:center;
    font-family:var(--font-serif);
    font-size:21px;
    font-weight:400;
    white-space:nowrap;
  }
  .single-service__bridge-mobile-discount small {
    font-size:10px;
    line-height:1.55;
    color:rgba(247,242,234,.62);
  }
  .single-service__bridge .text-link {
    display:inline-flex;
    margin-top:20px;
    font-size:12px;
  }

  /* Brand Me Labo: turn the long page into short, scannable mobile beats. */
  .labo-page .labo-hero__copy { padding-left:var(--mobile-gutter); padding-right:var(--mobile-gutter); }
  .labo-intro__grid,
  .labo-section-head,
  .labo-story__grid,
  .labo-results__head { gap:26px; }
  .labo-intro__body,
  .labo-promise__card > div,
  .labo-section-head .section-text,
  .labo-program__body,
  .labo-story__change article > div,
  .labo-online__copy > div,
  .labo-photo__copy > div {
    max-width:30em;
    font-size:clamp(13.5px,3.55vw,14.5px) !important;
    line-height:1.88 !important;
    letter-spacing:.005em !important;
  }
  .labo-intro__body p,
  .labo-promise__card > div p,
  .labo-program__body p { margin-bottom:1.15em; }

  .labo-results__item { padding:30px 0 34px !important; }
  .labo-results__item > span { margin-bottom:18px; }
  .labo-results__item > p {
    max-width:100%;
    font-size:clamp(24px,6.35vw,28px) !important;
    line-height:1.62 !important;
    letter-spacing:0 !important;
  }
  .labo-result-copy--desktop { display:none; }
  .labo-result-copy--mobile { display:block; }
  .labo-result-copy--mobile .responsive-copy__line {
    display:block;
    width:100%;
    white-space:normal !important;
  }

  .labo-story .section-title,
  .labo-journey .section-title,
  .labo-program .section-title,
  .labo-program-support h3 {
    font-size:clamp(26px,6.9vw,30px) !important;
    line-height:1.62 !important;
    letter-spacing:0 !important;
  }
  .labo-journey .section-title .responsive-copy--mobile .responsive-copy__line,
  .labo-program-support h3 .responsive-copy--mobile .responsive-copy__line {
    white-space:normal !important;
  }
  .labo-program-support { gap:22px; margin-top:44px; padding:30px 0; }
  .labo-program-support__items p {
    padding:14px 0;
    font-size:13.5px;
    line-height:1.75;
  }

  /* Full-width program body: the former number + text column made paragraphs
     only ~250px wide on a 390px phone. */
  .labo-program__item {
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:34px 0 !important;
  }
  .labo-program__number,
  .labo-program__name,
  .labo-program__body { grid-column:1 !important; }
  .labo-program__number { margin-bottom:4px; }
  .labo-program__name h3 {
    max-width:100%;
    font-size:clamp(23px,6.1vw,27px);
    line-height:1.62;
    letter-spacing:0;
  }
  .labo-program__body { margin-top:8px; }

  /* Editorial cards need enough inner measure but not huge type. */
  .labo-promise__card { padding-top:64px !important; padding-bottom:70px !important; }
  .labo-promise__card .section-title { font-size:clamp(28px,7.3vw,32px) !important; }
  .labo-story__content .section-title { font-size:clamp(28px,7.3vw,32px) !important; }

  /* The persistent conversion CTA remains visible but no longer consumes a
     quarter of the viewport. Footer gets reserved space so its last links are
     never hidden behind the CTA. */
  .mobile-sticky-cta { right:18px !important; left:18px !important; bottom:max(10px, env(safe-area-inset-bottom)) !important; }
  .mobile-sticky-cta a {
    min-height:54px !important;
    padding:8px 10px 8px 16px !important;
    box-shadow:0 9px 24px rgba(15,13,11,.22),0 0 0 2px rgba(244,241,235,.50) !important;
  }
  .mobile-sticky-cta strong { gap:10px; font-size:clamp(12px,3.35vw,13.5px) !important; }
  .mobile-sticky-cta strong::after { flex-basis:28px; width:28px; height:28px; }
  .site-footer { padding-bottom:max(118px, calc(env(safe-area-inset-bottom) + 98px)) !important; }
}

@media (max-width: 390px) {
  :root { --mobile-gutter:24px; }
  .single-menu-page .single-service__title { font-size:20px !important; letter-spacing:-.035em !important; }
  .visual-rhythm__quote, .visual-rhythm__copy .visual-rhythm__quote { font-size:22px !important; }
  .labo-results__item > p { font-size:24px !important; }
  .labo-story .section-title,
  .labo-journey .section-title,
  .labo-program .section-title,
  .labo-program-support h3 { font-size:26px !important; }
}

@media (max-width: 360px) {
  :root { --mobile-gutter:22px; }
  .single-menu-page .single-service__title { font-size:18.5px !important; }
  .single-menu-page .single-service__tagline { font-size:14px !important; }
  .mobile-sticky-cta { right:12px !important; left:12px !important; }
}

@media (max-width: 900px) {
  /* Additional surfaces from the full smartphone walkthrough. */
  .personal-labo__copy {
    padding:68px var(--mobile-gutter) 74px !important;
  }
  .personal-labo__copy .section-title {
    font-size:clamp(28px,7.25vw,32px) !important;
    line-height:1.58 !important;
  }
  .personal-labo__body,
  .personal-labo__body p {
    max-width:30em;
    font-size:clamp(13.5px,3.55vw,14.5px) !important;
    line-height:1.88 !important;
    letter-spacing:.005em !important;
  }
  .personal-labo__availability p {
    grid-template-columns:1fr !important;
    gap:6px !important;
    font-size:13px !important;
    line-height:1.78 !important;
  }

  .labo-scenes__grid { margin-top:42px; }
  .labo-scenes__card {
    padding:52px var(--mobile-gutter) 58px !important;
  }
  .labo-scenes__card > p { margin-bottom:34px !important; }
  .labo-scenes__card h3 {
    max-width:100%;
    margin-bottom:24px;
    font-size:clamp(25px,6.55vw,28px) !important;
    line-height:1.62 !important;
    letter-spacing:0;
    text-wrap:balance;
  }
  .labo-scenes__card > div {
    max-width:30em;
    font-size:13.5px !important;
    line-height:1.88 !important;
  }

  .personal-gain__list p {
    padding:20px 0 20px 28px !important;
    font-size:clamp(15px,4vw,16px) !important;
    line-height:1.78 !important;
  }

  /* Avoid visual collisions with the fixed header when an in-page anchor is
     opened directly from a menu or CTA. */
  [id] { scroll-margin-top:calc(var(--header-height) + 22px); }
}

/* ===== SOURCE: mobile-system.css ===== */
/*
 * La paix mobile reading system — v0.2.135
 * ------------------------------------------------------------
 * One authoritative smartphone layer. It is intentionally loaded after the
 * historical refinements so mobile typography, gutters and Japanese wrapping
 * no longer depend on dozens of page-by-page hotfixes.
 */

:root {
  --lp-mobile-gutter: 26px;
  --lp-mobile-body: 16px;
  --lp-mobile-body-line: 1.74;
  --lp-mobile-small: 13.5px;
  --lp-mobile-small-line: 1.68;
  --lp-mobile-lead: clamp(17px, 4.45vw, 19px);
  --lp-mobile-h4: clamp(20px, 5.25vw, 23px);
  --lp-mobile-h3: clamp(23px, 6vw, 27px);
  --lp-mobile-h2: clamp(28px, 7.3vw, 33px);
  --lp-mobile-h1: clamp(33px, 8.7vw, 39px);
}

/* v0.2.197 — WebKit phrase containment and Japanese composition.
   This is the authoritative smartphone layer, loaded after legacy fixes. */
@media (max-width: 900px) {
  .contact-privacy-notice__body .jp-keep {
    display: inline-block;
    min-inline-size: 0;
    max-inline-size: 100%;
    white-space: normal;
    overflow-wrap: break-word;
    line-break: strict;
  }
  .contact-privacy-notice__body .jp-keep .ja-phrase {
    white-space: normal !important;
  }

  .brand-site-process .section-title,
  .brand-site-process .section-title .responsive-copy,
  .brand-site-process .section-title .responsive-copy__line {
    display: block;
    min-inline-size: 0;
    max-inline-size: 100%;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word;
  }
  .brand-site-process .section-title .responsive-copy__line .ja-phrase {
    white-space: normal !important;
  }

  /* A small mobile cap keeps the authored Japanese line intact without
     creating a 370px intrinsic run inside a 342px column. */
  .brand-site-process .section-title .responsive-copy__line {
    font-size: clamp(24px, 6.67vw, 26px) !important;
  }

  .labo-faq__question,
  .labo-faq__item > div,
  .labo-faq__item > div p {
    min-inline-size: 0;
    max-inline-size: 100%;
    white-space: normal;
    word-break: normal !important;
    overflow-wrap: break-word;
  }
  .labo-faq__question .ja-phrase,
  .labo-faq__item > div .ja-phrase {
    white-space: normal !important;
  }

  .update-page .update-hero__title .responsive-copy__line,
  .update-page .update-cta .section-title .responsive-copy__line {
    display: block;
    min-inline-size: 0;
    max-inline-size: 100%;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word;
  }
  .update-page .responsive-copy__line .ja-phrase {
    white-space: normal !important;
  }

  .update-page .update-hero__title .responsive-copy__line {
    font-size: clamp(26px, 6.9vw, 27px) !important;
  }
  .update-page .update-cta .section-title .responsive-copy__line {
    font-size: clamp(24px, 6.67vw, 26px) !important;
  }

  .faq-contact__inner h2 {
    display: block;
    inline-size: 100%;
    width: 100%;
    min-inline-size: 0;
    max-inline-size: 100%;
    white-space: normal;
    word-break: normal;
    line-break: strict;
    overflow-wrap: anywhere;
    font-size: clamp(32px, 8.37vw, 33px) !important;
  }

  /* WebKit keeps the authored <br> run intrinsic at the two narrowest
     widths. Let the heading wrap naturally there while preserving the
     authored break at wider mobile sizes. */
  @media (max-width: 400px) {
    .faq-contact__inner h2 br { display: none; }
  }

  .faq-item summary,
  .labo-faq__item summary,
  .single-menu-faq__item summary,
  .update-faq__item summary,
  .brand-site-faq__item summary {
    min-width: 0;
    grid-template-columns: 28px minmax(0, 1fr) 20px;
    gap: 10px;
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
    text-wrap: pretty;
  }

  .faq-item__question,
  .labo-faq__question,
  .labo-faq__item summary,
  .single-menu-faq__item summary,
  .update-faq__item summary,
  .brand-site-faq__item summary strong,
  .faq-item__answer,
  .labo-faq__item > div,
  .single-menu-faq__item > div,
  .update-faq__item > div,
  .brand-site-faq__item > div {
    min-width: 0;
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
    text-wrap: pretty;
  }

  /* Keep the protected BML answer phrase inside its grid column on WebKit. */
  .labo-faq__item > div,
  .labo-faq__item > div p {
    min-inline-size: 0;
    max-inline-size: 100%;
    inline-size: 100%;
    overflow-wrap: break-word;
  }

  .faq-item__answer { grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding-right: 0; }
  .labo-faq__item > div,
  .single-menu-faq__item > div,
  .update-faq__item > div,
  .brand-site-faq__item > div { padding-right: 0; padding-left: 38px; }

  .labo-faq__number { grid-column: 1; }
  .labo-faq__question { grid-column: 2; }
  .labo-faq__item summary i { grid-column: 3; }

  .faq-item__toggle,
  .labo-faq__item summary i,
  .single-menu-faq__item summary i,
  .update-faq__item summary i,
  .brand-site-faq__item summary i { justify-self: end; }

  .labo-faq__grid > :first-child,
  .labo-faq__list { min-width: 0; margin-left: 0; padding-left: 0; transform: none; }

  @supports (word-break: auto-phrase) {
    .faq-item summary,
    .labo-faq__item summary,
    .single-menu-faq__item summary,
    .update-faq__item summary,
    .brand-site-faq__item summary,
    .faq-item__answer,
    .labo-faq__item > div,
    .single-menu-faq__item > div,
    .update-faq__item > div,
    .brand-site-faq__item > div { word-break: auto-phrase; }
  }
}

/* WebKit keeps a protected phrase at its intrinsic width on the narrowest
   phones. Keep the semantic phrase unit, but provide a local fallback only
   where the measured phrase can exceed the available column. */
@media (max-width: 400px) {
  .site-main .labo-page .ja-phrase,
  .site-main .contact-page .ja-phrase {
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    letter-spacing: -.05em;
    min-inline-size: 0;
    max-inline-size: 100%;
  }
}

@media (max-width: 900px) {
  :root {
    --mobile-gutter: var(--lp-mobile-gutter);
  }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    font-family: var(--font-sans);
    letter-spacing: .01em;
  }

  /* Editorial Japanese stays Mincho; explanatory copy becomes Sans. */
  .site-main h1,
  .site-main h2,
  .site-main h3,
  .site-main h4,
  .site-main .section-title,
  .site-main .page-title,
  .site-main .hero__title,
  .site-main .statement__lead,
  .site-main .visual-rhythm__quote,
  .site-main .personal-gain__list p,
  .site-main .labo-results__item > p,
  .site-main .brand-site-price__main strong,
  .site-main .about-number__value,
  .site-main .about-number strong {
    font-family: var(--font-serif);
  }

  .section-label,
  .site-main [class*="__label"],
  .site-main [class*="__eyebrow"],
  .site-main [class*="__number"],
  .site-main dt,
  .site-main small {
    font-family: var(--font-sans);
  }

  /* Japanese line composition: meaning first, visual balance second. */
  .site-main :is(h1,h2,h3,h4,p,li,dd,summary) {
    line-break: strict;
    word-break: normal;
    overflow-wrap: break-word;
    hanging-punctuation: allow-end;
  }

  .site-main :is(h1,h2,h3,h4),
  .site-main .section-title,
  .site-main .page-title {
    text-wrap: wrap !important;
  }

  /* Authored responsive lines remain semantic blocks, but never force overflow. */
  .responsive-copy--mobile,
  .responsive-copy--mobile .responsive-copy__line,
  .mobile-copy-precise,
  .mobile-copy-precise .responsive-copy__line {
    max-width: 100%;
    white-space: normal !important;
  }
  .responsive-copy--mobile .responsive-copy__line {
    display: block;
  }

  /* Shared horizontal rhythm. */
  .section,
  .site-main > section:not(.hero):not(.hero--video),
  .personal-page > section,
  .single-menu-page > section,
  .labo-page > section,
  .business-page > section,
  .brand-site-page > section,
  .about-page > section,
  .update-page > section {
    --page-gutter: var(--lp-mobile-gutter);
  }

  .section {
    padding-left: var(--lp-mobile-gutter);
    padding-right: var(--lp-mobile-gutter);
  }

  .section__inner,
  .section__inner--narrow,
  .personal-cta__inner,
  .brand-site-faq__inner,
  .update-eligibility__inner {
    max-width: 100%;
  }

  /* Default information-copy rhythm. We keep labels and display statements out. */
  .section-text,
  .content-body p,
  .personal-problem__body,
  .personal-philosophy__body,
  .personal-labo__body,
  .personal-menu-item__body,
  .personal-voice-card,
  .single-menu-hero__lead,
  .single-service__body,
  .single-service__bridge-mobile-copy,
  .single-service__bridge-mobile-scope,
  .business-question__body,
  .business-approach__body,
  .business-service__detail,
  .business-team__summary,
  .brand-site-prose,
  .brand-site-responsive-prose,
  .brand-site-intro__grid p,
  .brand-site-value__lead,
  .brand-site-value__item p,
  .brand-site-extension__body,
  .brand-site-subsidy__body,
  .brand-site-case__content p,
  .about-hero__lead,
  .about-people__intro,
  .about-person__copy p,
  .about-together__copy p,
  .about-company__copy p,
  .update-hero__lead,
  .update-section-head p,
  .update-plan__body,
  .update-faq__item p,
  .labo-intro__body,
  .labo-program__body,
  .labo-story__change article > div,
  .labo-online__copy > div,
  .labo-photo__copy > div {
    font-family: var(--font-sans) !important;
    font-size: var(--lp-mobile-body) !important;
    line-height: var(--lp-mobile-body-line) !important;
    letter-spacing: .012em !important;
    color: var(--color-soft-ink);
  }

  .site-main p:not([class]) {
    line-height: var(--lp-mobile-body-line);
  }

  /* Paragraph spacing is part of readability; avoid tall rivers of white. */
  .section-text p,
  .content-body p,
  .personal-labo__body p,
  .single-service__body p,
  .brand-site-prose p,
  .brand-site-responsive-prose p,
  .about-person__copy p,
  .labo-intro__body p,
  .labo-program__body p {
    margin-top: 0;
    margin-bottom: .9em;
  }

  /* Shared display hierarchy. */
  .section-title {
    font-size: var(--lp-mobile-h2) !important;
    line-height: 1.44 !important;
    letter-spacing: 0 !important;
  }
  .site-main h3:not(.menu-label__ja) {
    line-height: 1.48;
  }

  /* Keep large editorial statements expressive, but inside the viewport. */
  .personal-gain__list p,
  .labo-results__item > p,
  .brand-site-fit__item h3,
  .business-process__title {
    font-size: var(--lp-mobile-h3) !important;
    line-height: 1.48 !important;
    letter-spacing: 0 !important;
    max-width: 100%;
  }

  /* Body copy should not run edge-to-edge even inside bespoke grids/cards. */
  .personal-page :is(.personal-problem__inner,.personal-philosophy__copy,.personal-labo__copy,.personal-case__content),
  .single-menu-page :is(.single-service__content,.single-menu-guide__head,.single-menu-labo__inner,.single-menu-photo-path__content),
  .business-page :is(.business-question__inner,.business-approach__copy,.business-service__content,.business-team__content),
  .brand-site-page :is(.brand-site-hero__copy,.brand-site-intro__grid,.brand-site-section-head,.brand-site-visual__copy,.brand-site-case__content),
  .about-page :is(.about-hero__content,.about-people__intro,.about-person__copy,.about-together__copy,.about-company__copy),
  .update-page :is(.update-hero__copy,.update-section-head,.update-plan__body) {
    min-width: 0;
    max-width: 100%;
  }

  /* Scope geometry guards to the known ABOUT / BRAND SITE copy only. */
  .brand-site-page .responsive-copy__line,
  .about-page .about-copy__term {
    min-inline-size: 0;
    max-inline-size: 100%;
  }
  .about-page .about-copy__term {
    display: inline-block;
    white-space: normal;
    overflow-wrap: break-word;
  }

  /* Single sessions: name has hierarchy; promise card supports rather than competes. */
  .single-menu-page .single-service__title {
    width: 100%;
    max-width: 100%;
    font-size: clamp(18px, 4.75vw, 20px) !important;
    line-height: 1.38 !important;
    letter-spacing: -.025em !important;
    white-space: nowrap !important;
  }
  .single-menu-page .single-service__tagline {
    width: 100%;
    max-width: 100%;
    padding: 14px 16px 15px;
    background: #f3eee6 !important;
    border: 1px solid rgba(30,29,27,.10) !important;
    border-left: 2px solid var(--color-accent) !important;
    color: var(--color-ink);
    font-family: var(--font-serif) !important;
    font-size: clamp(16px,4.2vw,18px) !important;
    line-height: 1.58 !important;
  }

  /* Brand Me Labo: reduce long-form fatigue. */
  .labo-program__body,
  .labo-intro__body,
  .labo-story__change article > div {
    max-width: 31em;
  }
  .labo-program__item {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }
  .labo-program__name h3 {
    font-size: var(--lp-mobile-h4) !important;
    line-height: 1.52 !important;
  }

  /* v0.2.135 — typography hierarchy tuned for Zen Kaku Gothic New. */
  .site-main :is(.section-text,.content-body,.single-service__body,.brand-site-prose,.brand-site-responsive-prose,.labo-intro__body,.labo-program__body,.about-person__copy,.update-plan__body) {
    font-weight: 400;
    font-kerning: normal;
  }

  /* Display Mincho should feel editorial, not vertically loose. */
  .site-main :is(.hero__title,.page-title,.statement__lead) {
    line-height: 1.38 !important;
  }
  .site-main :is(.section-title,h2) {
    line-height: 1.44 !important;
  }
  .site-main h3:not(.menu-label__ja) {
    line-height: 1.48 !important;
  }

  /* Prevent double-gutter narrowing inside custom mobile content columns. */
  .single-menu-page .single-service__content,
  .personal-page .personal-labo__copy,
  .personal-page .personal-philosophy__copy,
  .brand-site-page .brand-site-section-head,
  .brand-site-page .brand-site-case__content,
  .about-page .about-person__copy {
    padding-left: var(--lp-mobile-gutter) !important;
    padding-right: var(--lp-mobile-gutter) !important;
  }

  /* Reading paragraphs should form compact visual paragraphs, not isolated lines. */
  .site-main :is(.single-service__body,.labo-intro__body,.labo-program__body,.brand-site-prose,.brand-site-responsive-prose,.about-person__copy) p + p {
    margin-top: .15em;
  }

  /* Important statement lists: avoid one/two-character fall-downs without balancing Japanese. */
  .personal-gain__list p,
  .labo-results__item > p {
    font-size: clamp(22px, 5.75vw, 25px) !important;
    line-height: 1.46 !important;
  }

  /* Stable tables / facts: no awkward single-character overflow. */
  .single-service__facts,
  .brand-site-case__facts,
  .brand-site-price,
  .update-plan,
  .labo-program-support__items {
    min-width: 0;
    max-width: 100%;
  }
  .single-service__facts dd,
  .brand-site-case__facts dd,
  .update-plan dd {
    min-width: 0;
    overflow-wrap: break-word;
  }

  /* Sticky CTA remains a conversion device, not a reading obstacle. */
  .mobile-sticky-cta {
    left: 18px !important;
    right: 18px !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
  }
  .mobile-sticky-cta a {
    min-height: 52px !important;
  }
  .mobile-sticky-cta strong {
    font-family: var(--font-serif);
    font-size: clamp(12px,3.35vw,13.5px) !important;
  }

  [id] {
    scroll-margin-top: calc(var(--header-height) + 22px);
  }
}

@media (max-width: 390px) {
  :root {
    --lp-mobile-gutter: 24px;
    --lp-mobile-body: 16px;
    --lp-mobile-body-line: 1.74;
  }
}

@media (max-width: 360px) {
  :root {
    --lp-mobile-gutter: 22px;
    --lp-mobile-body: 15.5px;
    --lp-mobile-body-line: 1.72;
  }
  .mobile-sticky-cta {
    left: 12px !important;
    right: 12px !important;
  }
}

/* =========================================================
   v0.2.136 — mobile editorial polish
   Same Zen Kaku family; distinguish hierarchy by measure, alignment and rhythm.
========================================================= */
@media (max-width: 900px) {
  /* The dark CONTACT copy looked heavier/less refined although it used the
     same font family. Reduce the visual weight instead of swapping fonts. */
  .home .cta .section-text,
  .home .cta .section-text p {
    font-family: var(--font-sans) !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.68 !important;
    letter-spacing: 0 !important;
    font-feature-settings: "palt" 1;
  }
  .home .cta .section-text {
    width: min(100%, 22em);
    margin-left: auto;
    margin-right: auto;
    color: rgba(255,255,255,.72) !important;
  }

  .personal-labo-map {
    grid-template-columns: 1fr;
    margin-top: 26px;
  }
  .personal-labo-map__stage,
  .personal-labo-map__stage--understand,
  .personal-labo-map__stage--apply {
    padding: 24px 2px 22px;
  }
  .personal-labo-map__label {
    margin-bottom: 10px;
    font-size: 9px;
  }
  .personal-labo-map__stage h3 {
    margin-bottom: 12px;
    font-size: 22px !important;
    line-height: 1.42 !important;
  }
  .personal-labo-map__items {
    max-width: 25em;
    font-size: 14px !important;
    line-height: 1.72 !important;
    letter-spacing: .01em !important;
  }
  .personal-labo-map__arrow {
    height: 42px;
    border-top: 1px solid var(--color-line);
    border-bottom: 1px solid var(--color-line);
  }
  .personal-labo-map__arrow::before {
    width: 1px;
    height: 20px;
  }
  .personal-labo-map__arrow::after {
    position: absolute;
    left: 50%;
    bottom: 10px;
    width: 7px;
    height: 7px;
    margin: 0 0 0 -4px;
    border-top: 0;
    border-right: 1px solid rgba(155,131,105,.9);
    border-bottom: 1px solid rgba(155,131,105,.9);
    transform: rotate(45deg);
  }
  .personal-labo-map__loop {
    padding: 18px 0 14px;
    font-size: 12px !important;
    line-height: 1.65 !important;
    letter-spacing: .03em !important;
  }
  .personal-labo-map__note {
    padding: 0 0 22px;
    font-size: 14px !important;
    line-height: 1.72 !important;
    letter-spacing: 0 !important;
    text-align: left;
  }

  /* v0.2.209 — Brand Me Labo reading hierarchy.
     Content and facts stay authored in WordPress; this only restores the
     mobile body/support scale around the existing information architecture. */
  .labo-page .labo-pain-list p {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
    padding-top: 23px;
    padding-bottom: 23px;
    color: rgba(30,29,27,.82);
    font-size: 16px;
    line-height: 1.68;
  }
  .labo-page .labo-pain-list span {
    color: rgba(132,109,87,.88);
    font: 400 12px/1.5 var(--font-latin-ui, Arial, sans-serif);
    letter-spacing: .1em;
  }
  .labo-page :is(.labo-journey__item div, .labo-online__list p, .labo-offer__items p, .labo-program-support__items p, .labo-schedule__lead, .labo-schedule__list strong) {
    font-family: var(--font-sans);
    font-size: var(--lp-mobile-body);
    line-height: 1.7;
  }
  .labo-page :is(.labo-results__lead, .labo-offer__payment-note, .labo-offer__note, .labo-offer__extra > div, .labo-story__quote cite) {
    font-family: var(--font-sans);
    font-size: 14px;
    line-height: 1.72;
  }
}

/* ===== SOURCE: editorial-system.css ===== */
/* =========================================================
   LA PAIX v0.2.159 — EDITORIAL INFORMATION DESIGN SYSTEM
   Purpose:
   - turn long explanations into visual structure
   - use large numerals, rules and whitespace instead of decorative icons
   - keep smartphone reading calm and immediately scannable
   - keep all copy editable in WordPress; theme owns layout only
========================================================= */

:root {
  --lp-ed-rule: rgba(30,29,27,.16);
  --lp-ed-rule-dark: rgba(255,255,255,.18);
  --lp-ed-number: rgba(167,133,96,.22);
  --lp-ed-number-strong: #9f805f;
  --lp-ed-paper: #f7f2ea;
  --lp-ed-paper-2: #efe7dc;
}

/* ---------------------------------------------------------
   01. PERSONAL — choose a path
--------------------------------------------------------- */
.personal-routes__grid--editorial {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1px;
  margin-top: clamp(54px,6vw,82px);
  overflow: hidden;
  background: var(--lp-ed-rule);
  border: 1px solid var(--lp-ed-rule);
}
.personal-routes__grid--editorial .personal-route {
  position: relative;
  min-height: 520px;
  padding: clamp(38px,4.5vw,62px) clamp(30px,3.8vw,52px) clamp(36px,4.5vw,58px);
  overflow: hidden;
  background: #fffdf8;
  isolation: isolate;
}
.personal-routes__grid--editorial .personal-route--labo {
  background: var(--color-deep);
  color: #fff;
}
.personal-routes__grid--editorial .personal-route--update {
  background: #f0e8dd;
}
.personal-route__index {
  position: absolute;
  top: 24px;
  right: 20px;
  z-index: -1;
  color: var(--lp-ed-number);
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: clamp(82px,8vw,132px);
  font-weight: 600;
  line-height: .82;
  letter-spacing: -.085em;
}
.personal-route--labo .personal-route__index {
  color: rgba(255,255,255,.10);
}
.personal-routes__grid--editorial .personal-route__label {
  position: relative;
  z-index: 1;
  margin: 0 0 clamp(74px,7vw,112px);
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .19em;
}
.personal-routes__grid--editorial .personal-route h3 {
  position: relative;
  z-index: 1;
  margin-bottom: 24px;
  font-size: clamp(24px,2.3vw,34px);
  line-height: 1.52;
}
.personal-routes__grid--editorial .personal-route > div p {
  max-width: 31em;
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.78;
  letter-spacing: .01em;
}
.personal-routes__grid--editorial .personal-route--update > div p {
  color: rgba(30,29,27,.66);
}

/* ---------------------------------------------------------
   02. PERSONAL — Brand Me Labo 01 / 02 / 03 map
--------------------------------------------------------- */
.personal-labo-map--editorial {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  margin-top: clamp(34px,4vw,54px);
  border-top: 1px solid var(--lp-ed-rule);
  border-bottom: 1px solid var(--lp-ed-rule);
}
.personal-labo-map--editorial .personal-labo-map__stage {
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  min-height: 270px;
  padding: 26px 26px 30px;
  border-right: 1px solid var(--lp-ed-rule);
  overflow: hidden;
}
.personal-labo-map--editorial .personal-labo-map__stage:last-child {
  border-right: 0;
}
.personal-labo-map__index {
  display: block;
  margin: 0 0 42px;
  color: var(--lp-ed-number-strong);
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: clamp(58px,5.8vw,92px);
  font-weight: 600;
  line-height: .78;
  letter-spacing: -.075em;
}
.personal-labo-map--editorial .personal-labo-map__stage::after {
  content: "/";
  position: absolute;
  top: 25px;
  right: 24px;
  color: rgba(30,29,27,.24);
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: 38px;
  font-weight: 300;
  line-height: 1;
}
.personal-labo-map--editorial .personal-labo-map__label {
  margin-bottom: 12px;
  font-size: 9px;
  letter-spacing: .2em;
}
.personal-labo-map--editorial .personal-labo-map__stage h3 {
  margin: 0 0 14px;
  font-size: clamp(21px,1.8vw,26px);
  line-height: 1.45;
}
.personal-labo-map--editorial .personal-labo-map__items {
  max-width: 27em;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.74;
  letter-spacing: .01em;
}
.personal-labo-map--editorial .personal-labo-map__stage--update {
  background: var(--lp-ed-paper);
}
.personal-labo-map--editorial .personal-labo-map__stage--update h3 {
  max-width: 12em;
  font-size: clamp(19px,1.65vw,24px);
}
.personal-labo-map--editorial .personal-labo-map__note {
  padding: 0;
  text-align: left;
}

/* ---------------------------------------------------------
   03. PERSONAL — 5-step HOW IT WORKS as an editorial rail
--------------------------------------------------------- */
.personal-program__grid--five {
  display: block;
  margin-top: clamp(34px,4vw,60px);
  border-top: 1px solid var(--lp-ed-rule);
}
.personal-program__grid--five .personal-program__item {
  position: relative;
  display: grid;
  grid-template-columns: clamp(110px,12vw,178px) minmax(0,1fr);
  gap: clamp(34px,5vw,84px);
  min-height: 0;
  padding: clamp(34px,4vw,54px) 0;
  border: 0;
  border-bottom: 1px solid var(--lp-ed-rule);
}
.personal-program__grid--five .personal-program__item::after {
  content: "";
  position: absolute;
  left: clamp(112px,12vw,180px);
  top: 30px;
  width: 1px;
  height: calc(100% - 60px);
  background: var(--lp-ed-rule);
  transform: rotate(12deg);
  transform-origin: center;
}
.personal-program__index {
  align-self: start;
  color: var(--lp-ed-number-strong);
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: clamp(58px,6.2vw,96px);
  font-weight: 600;
  line-height: .8;
  letter-spacing: -.08em;
}
.personal-program__content {
  min-width: 0;
  max-width: 690px;
}
.personal-program__content > span {
  display: block;
  margin: 0 0 16px;
  color: var(--color-accent);
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: 9px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .19em;
}
.personal-program__content h3 {
  margin: 0 0 14px;
  font-size: clamp(23px,2.1vw,31px);
  line-height: 1.46;
  font-weight: 400;
}
.personal-program__content > div,
.personal-program__content > div p {
  max-width: 40em;
  margin: 0;
  color: var(--color-soft-ink);
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.78;
  letter-spacing: .01em;
}

/* ---------------------------------------------------------
   04. BRAND SITE — six-step process with oversized numerals
--------------------------------------------------------- */
.brand-site-process__grid {
  display: block !important;
  border-top: 1px solid var(--lp-ed-rule) !important;
}
.brand-site-process__grid article,
.brand-site-process__grid article:not(:nth-child(3n+1)) {
  position: relative;
  display: grid !important;
  grid-template-columns: clamp(150px,17vw,245px) minmax(0,1fr);
  grid-template-areas:
    "number label"
    "number title"
    "number body";
  column-gap: clamp(42px,6vw,98px);
  min-height: 0 !important;
  padding: clamp(38px,4.5vw,64px) 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--lp-ed-rule) !important;
}
.brand-site-process__grid article:nth-child(even) {
  grid-template-columns: minmax(0,1fr) clamp(150px,17vw,245px);
  grid-template-areas:
    "label number"
    "title number"
    "body number";
}
.brand-site-process__grid article > span {
  grid-area: number;
  align-self: start;
  margin: 0 !important;
  color: var(--lp-ed-number) !important;
  font-family: var(--font-latin-ui,Manrope,sans-serif) !important;
  font-size: clamp(92px,12vw,172px) !important;
  font-weight: 600 !important;
  line-height: .72 !important;
  letter-spacing: -.09em !important;
}
.brand-site-process__grid article:nth-child(even) > span {
  text-align: right;
}
.brand-site-process__grid article > p {
  grid-area: label;
  align-self: end;
  margin: 2px 0 14px !important;
  color: var(--color-accent) !important;
  font-family: var(--font-latin-ui,Manrope,sans-serif) !important;
  font-size: 9px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: .18em !important;
}
.brand-site-process__grid h3 {
  grid-area: title;
  max-width: 18em;
  margin: 0 0 14px !important;
  font-size: clamp(24px,2.4vw,35px) !important;
  line-height: 1.48 !important;
}
.brand-site-process__grid article > div {
  grid-area: body;
  max-width: 40em;
  color: var(--color-soft-ink) !important;
  font-family: var(--font-sans);
  font-size: 14px !important;
  line-height: 1.78 !important;
  letter-spacing: .01em;
}
.brand-site-process__grid article > div p { margin: 0; }

/* ---------------------------------------------------------
   Smartphone: one clear visual idea per screenful.
--------------------------------------------------------- */
@media (max-width: 900px) {
  .personal-routes__grid--editorial {
    grid-template-columns: 1fr;
    margin-top: 42px;
  }
  .personal-routes__grid--editorial .personal-route {
    min-height: 0;
    padding: 30px var(--lp-mobile-gutter,26px) 34px;
  }
  .personal-route__index {
    top: 18px;
    right: 18px;
    font-size: clamp(64px,21vw,88px);
  }
  .personal-routes__grid--editorial .personal-route__label {
    margin-bottom: 58px;
    font-size: 9px;
  }
  .personal-routes__grid--editorial .personal-route h3 {
    max-width: 12.5em;
    margin-bottom: 18px;
    font-size: clamp(22px,6.2vw,27px) !important;
    line-height: 1.48 !important;
  }
  .personal-routes__grid--editorial .personal-route > div p {
    max-width: 29em;
    font-size: 15px !important;
    line-height: 1.72 !important;
  }
  .personal-routes__grid--editorial .personal-route .text-link {
    padding-top: 34px;
  }

  .personal-labo-map--editorial {
    grid-template-columns: 1fr;
    margin-top: 30px;
  }
  .personal-labo-map--editorial .personal-labo-map__stage {
    grid-template-columns: 72px minmax(0,1fr);
    grid-template-rows: auto;
    gap: 18px;
    min-height: 0;
    padding: 28px 0 30px;
    border-right: 0;
    border-bottom: 1px solid var(--lp-ed-rule);
    background: transparent;
  }
  .personal-labo-map--editorial .personal-labo-map__stage:last-child {
    border-bottom: 0;
  }
  .personal-labo-map--editorial .personal-labo-map__stage::after {
    display: none;
  }
  .personal-labo-map__index {
    margin: 0;
    font-size: 50px;
    line-height: .82;
  }
  .personal-labo-map__content {
    min-width: 0;
    padding-right: 2px;
  }
  .personal-labo-map--editorial .personal-labo-map__label {
    margin: 2px 0 8px;
  }
  .personal-labo-map--editorial .personal-labo-map__stage h3 {
    margin-bottom: 10px;
    font-size: 21px !important;
    line-height: 1.42 !important;
  }
  .personal-labo-map--editorial .personal-labo-map__items {
    font-size: 14px !important;
    line-height: 1.68 !important;
  }
  .personal-labo-map--editorial .personal-labo-map__stage--update h3 {
    max-width: 16em;
    font-size: 19px !important;
  }

  .personal-program__grid--five {
    margin-top: 30px;
  }
  .personal-program__grid--five .personal-program__item {
    grid-template-columns: 62px minmax(0,1fr) !important;
    gap: 18px !important;
    padding: 30px 0 !important;
  }
  .personal-program__grid--five .personal-program__item::after {
    left: 64px;
    top: 24px;
    height: calc(100% - 48px);
    transform: rotate(8deg);
  }
  .personal-program__index {
    font-size: 46px;
  }
  .personal-program__content > span {
    margin-bottom: 10px;
    font-size: 8px;
  }
  .personal-program__content h3 {
    margin-bottom: 10px;
    font-size: clamp(20px,5.6vw,23px) !important;
    line-height: 1.44 !important;
  }
  .personal-program__content > div,
  .personal-program__content > div p {
    font-size: 14px !important;
    line-height: 1.68 !important;
  }

  .brand-site-process__grid article,
  .brand-site-process__grid article:not(:nth-child(3n+1)),
  .brand-site-process__grid article:nth-child(even) {
    grid-template-columns: 68px minmax(0,1fr) !important;
    grid-template-areas:
      "number label"
      "number title"
      "number body" !important;
    column-gap: 18px !important;
    padding: 30px 0 32px !important;
  }
  .brand-site-process__grid article > span,
  .brand-site-process__grid article:nth-child(even) > span {
    font-size: 48px !important;
    line-height: .82 !important;
    text-align: left !important;
  }
  .brand-site-process__grid article > p {
    margin: 1px 0 9px !important;
    font-size: 8px !important;
  }
  .brand-site-process__grid h3 {
    margin-bottom: 10px !important;
    font-size: clamp(20px,5.6vw,23px) !important;
    line-height: 1.44 !important;
  }
  .brand-site-process__grid article > div {
    font-size: 14px !important;
    line-height: 1.68 !important;
  }
}

@media (max-width: 370px) {
  .personal-labo-map--editorial .personal-labo-map__stage,
  .personal-program__grid--five .personal-program__item,
  .brand-site-process__grid article,
  .brand-site-process__grid article:nth-child(even) {
    grid-template-columns: 54px minmax(0,1fr) !important;
    column-gap: 14px !important;
  }
  .personal-labo-map__index,
  .personal-program__index,
  .brand-site-process__grid article > span {
    font-size: 40px !important;
  }
  .personal-program__grid--five .personal-program__item::after {
    left: 56px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .personal-route__index,
  .personal-labo-map__index,
  .personal-program__index,
  .brand-site-process__grid article > span {
    transform: none !important;
  }
}

/* =========================================================
   v0.2.138 — QUIETER EDITORIAL RHYTHM
   - no decorative diagonal rules
   - tighter semantic heading lines
   - smaller, numbered result lists
   - Brand Me Labo long-form sections become visual rails
========================================================= */

/* 01. PERSONAL HOW IT WORKS — number + content, no faux slash. */
.personal-program__grid--five .personal-program__item,
.personal-program__grid--five .personal-program__item:nth-child(n) {
  grid-template-columns: clamp(88px,9vw,126px) minmax(0,1fr);
  gap: clamp(26px,4vw,58px);
}
.personal-program__grid--five .personal-program__item::after {
  content: none !important;
}
.personal-program__index {
  position: relative;
  padding-bottom: 18px;
  font-size: clamp(48px,5vw,72px);
  letter-spacing: -.07em;
}
.personal-program__index::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 0;
  width: 28px;
  height: 1px;
  background: rgba(159,128,95,.66);
}
.personal-program__content h3 {
  max-width: 17em;
  line-height: 1.34;
}
.personal-program__content h3 .responsive-copy__line {
  line-height: inherit;
}

/* 02. PERSONAL WHAT CHANGES — shorter visual scan, not oversized copy. */
.personal-gain__list {
  counter-reset: lp-gain;
}
.personal-gain__list p {
  counter-increment: lp-gain;
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 18px;
  align-items: start;
  padding: 22px 0;
  font-size: clamp(16px,1.45vw,20px);
  line-height: 1.56;
}
.personal-page .personal-gain__list p::before {
  content: counter(lp-gain, decimal-leading-zero);
  position: static;
  width: auto;
  height: auto;
  margin-top: .18em;
  background: none;
  color: var(--lp-ed-number-strong);
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .13em;
}

/* 03. Brand Me Labo detailed page — THE JOURNEY becomes a clean rail. */
.labo-journey__grid {
  display: block;
  margin-top: clamp(42px,5vw,66px);
  border: 0;
  border-top: 1px solid var(--lp-ed-rule);
  background: transparent;
}
.labo-journey__item {
  position: relative;
  display: grid;
  grid-template-columns: clamp(88px,9vw,126px) minmax(210px,.58fr) minmax(0,1fr);
  gap: clamp(26px,4vw,58px);
  min-height: 0;
  padding: clamp(30px,3.6vw,48px) 0;
  border-bottom: 1px solid var(--lp-ed-rule);
  background: transparent;
}
.labo-journey__item > span {
  min-height: 0;
  margin: 0;
  color: var(--lp-ed-number-strong);
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .14em;
}
.labo-journey__item h3 {
  margin: 0;
  font-size: clamp(20px,1.9vw,27px);
  line-height: 1.42;
}
.labo-journey__item div,
.labo-journey__item div p {
  margin: 0;
  max-width: 38em;
  color: var(--color-soft-ink);
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.7;
}

/* 04. Brand Me Labo fit list — use quiet index structure instead of bullets. */
.labo-fit__list {
  counter-reset: lp-fit;
}
.labo-fit__list p {
  counter-increment: lp-fit;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr);
  gap: 16px;
  padding: 21px 0;
  font-size: 15px;
  line-height: 1.62;
}
.labo-fit__list p::before {
  content: counter(lp-fit, decimal-leading-zero);
  position: static;
  width: auto;
  height: auto;
  margin: .15em 0 0;
  border: 0;
  transform: none;
  color: #c7af93;
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: 9px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .14em;
}

@media (max-width: 900px) {
  /* Authored lines already create the line break; hide the extra BR to avoid
     the double-leading effect visible in v137 screenshots. */
  .responsive-copy--mobile > br {
    display: none !important;
  }

  .personal-program__grid--five .personal-program__item,
  .personal-program__grid--five .personal-program__item:nth-child(n) {
    grid-template-columns: 54px minmax(0,1fr) !important;
    gap: 16px !important;
    padding: 26px 0 28px !important;
  }
  .personal-program__index {
    padding: 1px 0 16px;
    font-size: 38px !important;
    line-height: .86;
  }
  .personal-program__index::after {
    width: 20px;
  }
  .personal-program__content > span {
    margin: 0 0 8px;
  }
  .personal-program__content h3 {
    margin: 0 0 10px;
    font-size: clamp(19px,5.15vw,21px) !important;
    line-height: 1.31 !important;
  }
  .personal-program__content h3 .responsive-copy__line {
    display: block;
    line-height: 1.31 !important;
  }
  .personal-program__content > div,
  .personal-program__content > div p {
    font-size: 14px !important;
    line-height: 1.62 !important;
  }

  .personal-gain__list p {
    grid-template-columns: 38px minmax(0,1fr);
    gap: 12px;
    padding: 19px 0 !important;
    font-size: clamp(17px,4.45vw,19px) !important;
    line-height: 1.48 !important;
    letter-spacing: 0 !important;
  }

  .labo-journey__grid {
    margin-top: 36px;
  }
  .labo-journey__item {
    grid-template-columns: 46px minmax(0,1fr);
    grid-template-areas:
      "label title"
      ". body";
    gap: 8px 14px;
    padding: 24px 0 26px;
  }
  .labo-journey__item > span {
    grid-area: label;
    margin-top: .4em;
    font-size: 8px;
  }
  .labo-journey__item h3 {
    grid-area: title;
    font-size: 20px !important;
    line-height: 1.38 !important;
  }
  .labo-journey__item div {
    grid-area: body;
    font-size: 14px !important;
    line-height: 1.62 !important;
  }

  .labo-fit__list p {
    grid-template-columns: 34px minmax(0,1fr);
    gap: 12px;
    padding: 18px 0;
    font-size: 14.5px !important;
    line-height: 1.58 !important;
  }
}

@media (max-width: 900px) {
  /* Service / product names: keep multi-line names visually connected. */
  .single-menu-page .single-service__title,
  .personal-menu-item__name h3,
  .labo-program__name h3,
  .brand-site-price h3 {
    line-height: 1.34 !important;
  }
  .single-menu-page .single-service__title .responsive-copy__line,
  .personal-menu-item__name h3 .responsive-copy__line,
  .labo-program__name h3 .responsive-copy__line {
    line-height: inherit !important;
  }
}

/* =========================================================
   v0.2.139 — QUIET INFORMATION ARCHITECTURE
   Extend the editorial system without adding decorative noise.
   Long explanations become numbered rails; numerals and short rules
   do the visual work. No diagonal / slash ornaments.
========================================================= */

/* 01. Brand Me Labo map — remove the remaining slash ornament. */
.personal-labo-map--editorial .personal-labo-map__stage::after {
  content: none !important;
}
.personal-labo-map__index {
  position: relative;
  padding-bottom: 18px;
}
.personal-labo-map__index::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 0;
  width: 28px;
  height: 1px;
  background: rgba(159,128,95,.66);
}

/* 02. FOR BUSINESS — 4-step process as a calm editorial rail. */
.business-process__grid {
  display: block !important;
  margin-top: clamp(42px,5vw,70px) !important;
  border: 0 !important;
  border-top: 1px solid var(--lp-ed-rule) !important;
  background: transparent !important;
}
.business-process__grid article {
  display: grid !important;
  grid-template-columns: clamp(82px,9vw,124px) minmax(190px,.55fr) minmax(0,1fr);
  grid-template-areas:
    "number label body"
    "number title body";
  gap: 7px clamp(28px,4vw,58px);
  min-height: 0 !important;
  padding: clamp(30px,3.7vw,50px) 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--lp-ed-rule) !important;
  background: transparent !important;
}
.business-process__grid article > span {
  grid-area: number;
  position: relative;
  align-self: start;
  margin: 0 !important;
  padding: 0 0 17px;
  color: var(--lp-ed-number-strong) !important;
  font-family: var(--font-latin-ui,Manrope,sans-serif) !important;
  font-size: clamp(46px,5vw,70px) !important;
  font-weight: 600 !important;
  line-height: .84 !important;
  letter-spacing: -.07em !important;
}
.business-process__grid article > span::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 0;
  width: 26px;
  height: 1px;
  background: rgba(159,128,95,.66);
}
.business-process__grid article > p {
  grid-area: label;
  margin: 1px 0 7px !important;
  color: var(--color-accent) !important;
  font-family: var(--font-latin-ui,Manrope,sans-serif) !important;
  font-size: 9px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: .18em !important;
}
.business-process__grid h3 {
  grid-area: title;
  max-width: 14em;
  margin: 0 !important;
  font-size: clamp(21px,1.9vw,28px) !important;
  line-height: 1.38 !important;
  font-weight: 400 !important;
}
.business-process__grid article > div {
  grid-area: body;
  align-self: center;
  max-width: 37em;
  color: var(--color-soft-ink) !important;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  line-height: 1.68 !important;
  letter-spacing: .01em;
}

/* 03. SINGLE SESSION — HOW IT WORKS follows the same visual grammar. */
.single-menu-flow__grid {
  display: block !important;
  margin-top: clamp(42px,5vw,70px) !important;
  border: 0 !important;
  border-top: 1px solid var(--lp-ed-rule) !important;
}
.single-menu-flow__item,
.single-menu-flow__item:first-child {
  display: grid !important;
  grid-template-columns: clamp(82px,9vw,124px) minmax(210px,.62fr) minmax(0,1fr);
  grid-template-areas:
    "number title body";
  gap: clamp(26px,4vw,58px);
  align-items: start;
  min-height: 0 !important;
  padding: clamp(30px,3.7vw,50px) 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--lp-ed-rule) !important;
}
.single-menu-flow__item > span {
  grid-area: number;
  position: relative;
  padding-bottom: 17px;
  color: var(--lp-ed-number-strong) !important;
  font-family: var(--font-latin-ui,Manrope,sans-serif) !important;
  font-size: clamp(46px,5vw,70px) !important;
  font-weight: 600 !important;
  line-height: .84 !important;
  letter-spacing: -.07em !important;
  opacity: 1 !important;
}
.single-menu-flow__item > span::after {
  content: "";
  position: absolute;
  left: 2px;
  bottom: 0;
  width: 26px;
  height: 1px;
  background: rgba(159,128,95,.66);
}
.single-menu-flow__item h3 {
  grid-area: title;
  max-width: 14em;
  margin: 0 !important;
  font-size: clamp(21px,1.9vw,28px) !important;
  line-height: 1.38 !important;
  font-weight: 400 !important;
}
.single-menu-flow__item > div {
  grid-area: body;
  max-width: 37em;
  margin: 0 !important;
  color: var(--color-soft-ink);
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  line-height: 1.68 !important;
  opacity: 1 !important;
}

/* 04. BRAND SITE CASE 01 — BEFORE / DIRECTION / CREATIVE as 3 stages. */
.brand-site-case__facts {
  counter-reset: lp-case;
  border-top: 1px solid rgba(242,237,230,.18) !important;
}
.brand-site-case__facts article {
  counter-increment: lp-case;
  display: grid !important;
  grid-template-columns: 42px minmax(92px,.28fr) minmax(0,1fr) !important;
  gap: 18px 22px !important;
  align-items: start;
  padding: 24px 0 !important;
  border-bottom: 1px solid rgba(242,237,230,.16) !important;
}
.brand-site-case__facts article::before {
  content: counter(lp-case, decimal-leading-zero);
  margin-top: .15em;
  color: #b9946d;
  font-family: var(--font-latin-ui,Manrope,sans-serif);
  font-size: 9px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .14em;
}
.brand-site-case__facts article > p {
  margin: .12em 0 0 !important;
  color: rgba(242,237,230,.6) !important;
  font-family: var(--font-latin-ui,Manrope,sans-serif) !important;
  font-size: 8px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: .17em !important;
}
.brand-site-case__facts article > div {
  max-width: 37em;
  color: rgba(242,237,230,.76) !important;
  font-family: var(--font-sans) !important;
  font-size: 13.5px !important;
  line-height: 1.68 !important;
}

/* 05. Mobile rhythm — same block = visibly same block. */
@media (max-width: 900px) {
  .personal-labo-map__index {
    padding-bottom: 14px;
  }
  .personal-labo-map__index::after {
    width: 20px;
  }

  .business-process__grid,
  .single-menu-flow__grid {
    margin-top: 30px !important;
  }
  .business-process__grid article {
    grid-template-columns: 46px minmax(0,1fr) !important;
    grid-template-areas:
      "number label"
      "number title"
      ". body" !important;
    gap: 6px 14px !important;
    padding: 25px 0 27px !important;
  }
  .business-process__grid article > span,
  .single-menu-flow__item > span {
    padding: 1px 0 14px;
    font-size: 36px !important;
    line-height: .86 !important;
  }
  .business-process__grid article > span::after,
  .single-menu-flow__item > span::after {
    width: 18px;
  }
  .business-process__grid article > p {
    margin: 1px 0 6px !important;
    font-size: 8px !important;
  }
  .business-process__grid h3,
  .single-menu-flow__item h3 {
    margin: 0 !important;
    font-size: clamp(19px,5.1vw,21px) !important;
    line-height: 1.31 !important;
  }
  .business-process__grid article > div {
    margin-top: 6px;
    font-size: 14px !important;
    line-height: 1.62 !important;
  }

  .single-menu-flow__item,
  .single-menu-flow__item:first-child {
    grid-template-columns: 46px minmax(0,1fr) !important;
    grid-template-areas:
      "number title"
      ". body" !important;
    gap: 8px 14px !important;
    padding: 25px 0 27px !important;
  }
  .single-menu-flow__item > div {
    margin-top: 3px !important;
    font-size: 14px !important;
    line-height: 1.62 !important;
  }

  .brand-site-case__facts article {
    grid-template-columns: 34px minmax(0,1fr) !important;
    grid-template-areas:
      "number label"
      ". body";
    gap: 7px 12px !important;
    padding: 20px 0 !important;
  }
  .brand-site-case__facts article::before {
    grid-area: number;
    margin-top: .2em;
    font-size: 8px;
  }
  .brand-site-case__facts article > p {
    grid-area: label;
    margin: 0 !important;
    font-size: 8px !important;
  }
  .brand-site-case__facts article > div {
    grid-area: body;
    font-size: 14px !important;
    line-height: 1.62 !important;
  }

  /* Service names and short editorial headlines: slightly tighter than body. */
  .single-service__title,
  .business-service__content h3,
  .brand-site-value__item h3,
  .brand-site-scope__item h3 {
    line-height: 1.28 !important;
  }

  /* Long prose: readable, but not airy. */
  .business-team article > p,
  .business-team__summary,
  .business-message__content > p:last-child,
  .single-menu-labo__body > p,
  .brand-site-case__note {
    font-family: var(--font-sans) !important;
    font-size: 14.5px !important;
    line-height: 1.66 !important;
  }
}

@media (max-width: 370px) {
  .business-process__grid article,
  .single-menu-flow__item,
  .single-menu-flow__item:first-child {
    grid-template-columns: 40px minmax(0,1fr) !important;
    column-gap: 12px !important;
  }
  .business-process__grid article > span,
  .single-menu-flow__item > span {
    font-size: 32px !important;
  }
}


/* ==========================================================================\n   v0.2.141 — MOBILE CLARITY / UPDATE CONTRAST / BEFORE–AFTER COMPARISON\n   ========================================================================== */

/* The shared mobile body rule is intentionally dark on light pages. UPDATE's
   hero is an image-on-dark exception and must keep a high-contrast foreground. */
@media (max-width: 900px) {
  .update-page .update-hero__shade {
    background:
      linear-gradient(0deg, rgba(15,14,12,.92) 0%, rgba(15,14,12,.72) 58%, rgba(15,14,12,.30) 100%) !important;
  }
  .update-page .update-hero__lead,
  .update-page .update-hero__lead p {
    color: rgba(255,255,255,.88) !important;
  }
  .update-page .update-hero__note {
    color: rgba(255,255,255,.74) !important;
  }
  .update-page .update-hero__title {
    color: #fff !important;
  }
}

/* On desktop the transformation spread is intentionally editorial and
   asymmetrical. On phones, comparison wins: BEFORE and AFTER are visible in
   the same viewport so the change reads instantly rather than sequentially. */
@media (max-width: 520px) {
  .transformation-editorial__opening {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) 24px minmax(0,1fr) !important;
    gap: 7px !important;
    align-items: center !important;
  }
  .transformation-editorial__before {
    grid-column: 1 !important;
    width: 100% !important;
    padding: 6px !important;
    justify-self: stretch !important;
    box-shadow: 0 14px 34px rgba(58,48,39,.08) !important;
  }
  .transformation-editorial__hero {
    grid-column: 3 !important;
    margin-top: 0 !important;
    min-width: 0 !important;
  }
  .transformation-editorial__before img,
  .transformation-editorial__hero img {
    width: 100% !important;
    aspect-ratio: 4 / 5 !important;
    object-fit: cover !important;
    object-position: center !important;
  }
  .transformation-editorial__bridge {
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: center !important;
    width: 24px !important;
    min-width: 24px !important;
    padding: 0 !important;
    overflow: visible !important;
    writing-mode: horizontal-tb !important;
    font-size: 0 !important;
    line-height: 1 !important;
  }
  .transformation-editorial__bridge span,
  .transformation-editorial__bridge i {
    display: none !important;
  }
  .transformation-editorial__bridge::before {
    content: "→";
    display: block;
    color: var(--transformation-accent);
    font-family: var(--font-latin-ui,Manrope,sans-serif);
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
  }
  .transformation-editorial__label {
    gap: 3px !important;
    margin: 0 0 8px !important;
  }
  .transformation-editorial__label span {
    font-size: 0 !important;
    letter-spacing: .14em !important;
  }
  .transformation-editorial__before .transformation-editorial__label span::after {
    content: "BEFORE";
    font-size: 8px;
  }
  .transformation-editorial__hero .transformation-editorial__label span::after {
    content: "AFTER";
    font-size: 8px;
  }
  .transformation-editorial__label small {
    font-size: 9px !important;
    line-height: 1.45 !important;
    letter-spacing: .04em !important;
  }
}

/* ==========================================================================\n   v0.2.143 — MOBILE BEFORE/AFTER PRESERVATION + ALL-WORKS EDITORIAL GRID\n   ========================================================================== */

/* Keep the BEFORE collage readable on phones. It is a 6-photo board, not a
   single portrait, so cropping it to 4:5 destroys the evidence of change. */
@media (max-width: 520px) {
  .transformation-editorial__opening {
    grid-template-columns: minmax(0,1.08fr) 20px minmax(0,.92fr) !important;
    gap: 6px !important;
    align-items: stretch !important;
  }
  .transformation-editorial__before,
  .transformation-editorial__hero {
    min-width: 0 !important;
  }
  .transformation-editorial__before {
    padding: 5px !important;
    background: rgba(255,253,249,.88) !important;
  }
  .transformation-editorial__before img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 3 / 4 !important;
    object-fit: contain !important;
    object-position: center !important;
    background: #f7f4ee !important;
  }
  .transformation-editorial__hero img {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
    object-position: center !important;
  }
}

/* The photo portfolio now lives entirely on the page. No horizontal drag,
   accidental modal opening, or hidden second gallery. All saved works are
   visible in one editorial grid. */
.brand-visual-photo-works .selected-visuals__stage--all {
  width: 100% !important;
  margin-left: 0 !important;
  padding: clamp(34px,5vw,70px) 0 18px !important;
  overflow: visible !important;
  cursor: default !important;
  touch-action: auto !important;
}
.brand-visual-photo-works .selected-visuals__track--all {
  width: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(12,minmax(0,1fr)) !important;
  gap: clamp(24px,3.8vw,58px) clamp(16px,2.6vw,38px) !important;
  align-items: start !important;
}
.brand-visual-photo-works .selected-visuals__item--static,
.brand-visual-photo-works .selected-visuals__item--static:nth-child(3n),
.brand-visual-photo-works .selected-visuals__item--static:nth-child(5n),
.brand-visual-photo-works .selected-visuals__item--static:nth-child(10),
.brand-visual-photo-works .selected-visuals__item--static:nth-child(20) {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  grid-column: span 6;
  cursor: default !important;
}
.brand-visual-photo-works .selected-visuals__item--static:nth-child(4n + 1) {
  grid-column: span 7;
}
.brand-visual-photo-works .selected-visuals__item--static:nth-child(4n + 2) {
  grid-column: span 5;
  margin-top: clamp(22px,4vw,64px) !important;
}
.brand-visual-photo-works .selected-visuals__item--static:nth-child(4n + 3) {
  grid-column: span 5;
}
.brand-visual-photo-works .selected-visuals__item--static:nth-child(4n) {
  grid-column: span 7;
  margin-top: clamp(16px,3vw,48px) !important;
}
.brand-visual-photo-works .selected-visuals__item--static:hover,
.brand-visual-photo-works .selected-visuals__item--static:focus-visible {
  transform: none !important;
  outline: none !important;
}
.brand-visual-photo-works .selected-visuals__item--static:hover img {
  transform: none !important;
}
.brand-visual-photo-works .selected-visuals__frame {
  box-shadow: none !important;
  background: #e7e0d6 !important;
}
.brand-visual-photo-works .selected-visuals__caption {
  margin-top: 10px !important;
  gap: 10px !important;
}

/* The yellow cake photograph is intentionally promoted instead of being lost
   as a thumbnail: it works as a strong visual pause in the sequence. */
.brand-visual-photo-works .selected-visuals__item--cake-feature {
  grid-column: 2 / 12 !important;
  margin: clamp(20px,3vw,44px) 0 clamp(10px,2vw,30px) !important;
}
.brand-visual-photo-works .selected-visuals__item--cake-feature .selected-visuals__frame img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

@media (max-width: 767px) {
  .brand-visual-photo-works .selected-visuals__stage--all {
    padding: 26px 0 10px !important;
  }
  .brand-visual-photo-works .selected-visuals__track--all {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 24px 8px !important;
  }
  .brand-visual-photo-works .selected-visuals__item--static,
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(3n),
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(5n),
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(10),
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(20),
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(4n + 1),
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(4n + 2),
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(4n + 3),
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(4n) {
    grid-column: span 1 !important;
    width: 100% !important;
    margin: 0 !important;
    transform: none !important;
  }
  .brand-visual-photo-works .selected-visuals__item--static:nth-child(5n + 1) {
    grid-column: 1 / -1 !important;
    width: min(84%, 330px) !important;
    justify-self: center !important;
  }
  .brand-visual-photo-works .selected-visuals__item--cake-feature {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    margin: 8px 0 12px !important;
  }
  .brand-visual-photo-works .selected-visuals__item--cake-feature .selected-visuals__frame {
    width: 100% !important;
  }
  .brand-visual-photo-works .selected-visuals__caption {
    grid-template-columns: auto minmax(0,1fr) !important;
    gap: 7px !important;
    margin-top: 7px !important;
    padding: 0 1px !important;
  }
  .brand-visual-photo-works .selected-visuals__caption > span {
    font-size: 8px !important;
    line-height: 1.4 !important;
  }
  .brand-visual-photo-works .selected-visuals__caption small {
    font-size: 9px !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
  }
}

/* v0.2.144 — PHOTO WORKS FINAL VISIBILITY
   v0.2.143 introduced the all-on-page portfolio, but an older mobile rule in
   main.css still hid item 11 onward. Keep the editorial system authoritative. */
@media (max-width: 767px) {
  .brand-visual-photo-works .selected-visuals__track--all > .selected-visuals__item--static:nth-child(n) {
    display: block !important;
  }
}

/* =========================================================
   v0.2.148 — PC FINAL COMPOSITION SAFETY PASS
   - no authored desktop title may disappear outside its column
   - prefer semantic line breaks, but allow a long line to wrap before clipping
   - rebalance UPDATE / PERSONAL wide layouts at 1280–2560px
========================================================= */
@media (min-width: 901px) {
  /* Global desktop fail-safe for all responsive-copy headings. <br> still owns
     the intended phrase boundary; white-space:normal only acts when a phrase
     physically cannot fit its available column. */
  :is(
    .section-title,
    .page-title,
    .personal-hero__title,
    .business-hero__title,
    .works-hero__title,
    .single-menu-hero__title,
    .labo-hero__title,
    .brand-visual-hero__title,
    .update-hero__title,
    .about-hero__title,
    .about-manifesto__title,
    .about-message__title,
    .contact-section-title,
    .faq-hero__title,
    .desktop-copy-precise
  ) .responsive-copy--desktop .responsive-copy__line {
    display: inline;
    width: auto;
    max-width: 100%;
    white-space: normal;
    line-break: strict;
    word-break: normal;
    overflow-wrap: normal;
  }

  /* UPDATE HERO: the previous 100svh photograph read oversized on desktop.
     Keep cinematic presence without making the first screen almost all image. */
  .update-page .update-hero {
    min-height: clamp(680px, 78svh, 840px);
  }
  .update-page .update-hero__media img {
    object-position: center 38%;
    transform: none;
  }
  .update-page .update-hero__copy {
    width: min(100%, 780px);
    padding-top: clamp(120px, 10vw, 170px);
    padding-bottom: clamp(68px, 7vw, 104px);
  }

  /* PERSONAL three-route selector: give AFTERCARE more breathing room on the
     right while keeping Brand Me Labo visually central. */
  .personal-routes__grid--editorial {
    grid-template-columns: .98fr 1.04fr 1.08fr;
  }
  .personal-routes__grid--editorial .personal-route:last-child {
    padding-right: clamp(46px, 4.4vw, 70px);
  }
  .personal-routes__grid--editorial .personal-route h3 {
    max-width: 100%;
    font-size: clamp(24px, 2.05vw, 32px);
    line-height: 1.5;
    text-wrap: balance;
  }

  /* Single-session service names used legacy nowrap helpers. Wide screens keep
     them on one line naturally, while narrower PCs may now wrap instead of
     clipping at the service column edge. */
  .single-menu-page .single-service__title,
  .single-menu-page .single-service__title .service-title__keep--full,
  .single-menu-page .single-service__title .responsive-copy__line,
  .single-menu-page .single-service__tagline,
  .personal-menu-item__name h3 .responsive-copy--desktop .responsive-copy__line {
    width: auto !important;
    max-width: 100% !important;
    white-space: normal !important;
  }

  /* Brand Me Labo opening: the old two-line desktop phrase exceeded the left
     grid column. More usable width + a three-phrase composition fixes it. */
  .labo-page .labo-intro__grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(300px, .62fr);
    gap: clamp(64px, 7vw, 112px);
  }
  .labo-page .labo-intro .section-title {
    max-width: 800px;
    font-size: clamp(38px, 3.15vw, 50px);
    line-height: 1.48;
  }

  /* UPDATE headings and information rails. */
  .update-page .update-section-head,
  .update-page .update-intro__grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, .60fr);
    gap: clamp(58px, 7vw, 112px);
  }
  .update-page .update-theme {
    grid-template-columns: 64px minmax(0, 1.18fr) minmax(270px, .48fr);
    gap: clamp(28px, 4vw, 60px);
  }
  .update-page .update-theme h3 {
    max-width: 720px;
    font-size: clamp(30px, 2.9vw, 46px);
    line-height: 1.42;
    text-wrap: balance;
  }
  .update-page .update-item-title__line {
    display: inline;
    white-space: nowrap;
  }
  .update-page .update-boundary__grid > div {
    padding-left: clamp(38px, 4vw, 60px);
    padding-right: clamp(38px, 4vw, 60px);
  }
  .update-page .update-boundary h3 {
    max-width: 100%;
    font-size: clamp(26px, 2.25vw, 35px);
    line-height: 1.5;
    text-wrap: balance;
  }
  .update-page .update-faq__grid {
    grid-template-columns: minmax(420px, .78fr) minmax(0, 1fr);
    gap: clamp(58px, 7vw, 112px);
  }
  .update-page .update-faq .section-title {
    max-width: 500px;
    font-size: clamp(34px, 2.9vw, 45px);
    line-height: 1.48;
  }
  .update-page .update-eligibility__inner h2 {
    max-width: 920px;
    font-size: clamp(34px, 3.1vw, 48px);
    line-height: 1.5;
  }

  /* Other long Brand Me Labo card headlines get a calmer maximum size so a
     verb or particle is not left alone on the next line. */
  .labo-page .labo-scenes__card h3 {
    font-size: clamp(28px, 2.65vw, 40px);
    line-height: 1.5;
    text-wrap: balance;
  }

  /* FINAL PORTRAIT: keep the approved landscape frame but move the focal point
     upward so the face is visible instead of cropping above the neck. */
  .labo-page .labo-photo__image img {
    object-position: center 18%;
  }
}

@media (min-width: 901px) and (max-width: 1320px) {
  /* Mid-size laptops need one extra safety step before typography becomes dense. */
  .personal-routes__grid--editorial .personal-route {
    padding-left: 34px;
    padding-right: 34px;
  }
  .personal-routes__grid--editorial .personal-route:last-child {
    padding-right: 42px;
  }
  .update-page .update-theme {
    grid-template-columns: 52px minmax(0, 1fr) minmax(250px, .52fr);
    gap: 28px;
  }
  .update-page .update-theme h3 {
    font-size: 34px;
  }
  .update-page .update-faq__grid {
    grid-template-columns: minmax(350px, .72fr) minmax(0, 1fr);
    gap: 54px;
  }
}

/* =========================================================
   v0.2.149 — PERSONAL route-card balance
   01 was visually pressing against the divider on 1920px desktop. Give the
   sentence the same breathing room already reserved for AFTERCARE.
========================================================= */
@media (min-width: 901px) {
  .personal-routes__grid--editorial .personal-route:first-child {
    padding-right: clamp(58px, 4.6vw, 76px);
  }
  .personal-routes__grid--editorial .personal-route:first-child h3 {
    max-width: 94%;
    font-size: clamp(24px, 1.98vw, 31px);
  }
  .personal-routes__grid--editorial .personal-route:first-child > div {
    max-width: 94%;
  }
}


/* =========================================================
   v0.2.150 — PERSONAL / Brand Me Labo promise
   Keep the new promise to exactly two authored lines on smartphone widths.
========================================================= */
@media (max-width: 900px) {
  .personal-labo__copy .section-title {
    font-size: clamp(26px, 7vw, 29px) !important;
    line-height: 1.46 !important;
    letter-spacing: -.018em !important;
  }
  .personal-labo__copy .section-title .responsive-copy--mobile .responsive-copy__line {
    white-space: nowrap !important;
    text-wrap: nowrap !important;
  }
  .personal-labo__body,
  .personal-labo__body p {
    line-height: 1.76 !important;
  }
  .personal-labo__body p + p {
    margin-top: 14px !important;
  }
}


/* =========================================================
   v0.2.151 — PERSONAL Brand Me Labo high-value promise
   Preserve two authored mobile lines without edge crowding.
========================================================= */
@media (max-width: 900px) {
  .personal-labo__copy .section-title {
    font-size: clamp(23px, 6.25vw, 26px) !important;
    line-height: 1.48 !important;
    letter-spacing: -.022em !important;
  }
  .personal-labo__copy .section-title .responsive-copy--mobile .responsive-copy__line {
    white-space: nowrap !important;
    text-wrap: nowrap !important;
  }
  .personal-labo__body,
  .personal-labo__body p {
    font-size: 14.5px !important;
    line-height: 1.78 !important;
  }
}


/* =========================================================
   v0.2.156 — DESKTOP SERVICE INDEX
   Keep the six primary destinations calm, while FOR YOU / FOR BUSINESS expose
   the same direct service access as mobile. The panel is intentionally narrow:
   numbered editorial rows, no mega-menu wall, no duplicated marketing copy.
========================================================= */
@media (min-width: 901px) {
  .site-nav > ul.menu > li.menu-item-has-children > a {
    position: relative;
    padding-right: 13px;
  }

  .site-nav > ul.menu > li.menu-item-has-children > a::after {
    content: "";
    position: absolute;
    right: 1px;
    top: 50%;
    width: 4px;
    height: 4px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    opacity: .52;
    transform: translateY(-68%) rotate(45deg);
    transition: opacity .18s ease, transform .22s ease;
  }

  .site-nav > ul.menu > li.menu-item-has-children:hover > a::after,
  .site-nav > ul.menu > li.menu-item-has-children:focus-within > a::after {
    opacity: 1;
    transform: translateY(-35%) rotate(225deg);
  }

  .site-nav > ul.menu > li > .sub-menu {
    width: 338px;
    min-width: 338px;
    padding: 7px 0;
    gap: 0;
    counter-reset: laPaixServiceIndex;
    border: 1px solid rgba(255,255,255,.13);
    border-top-color: rgba(195,174,149,.72);
    background: rgba(17,16,14,.975);
    box-shadow: 0 22px 54px rgba(0,0,0,.2);
  }

  .site-nav > ul.menu > li > .sub-menu > li {
    counter-increment: laPaixServiceIndex;
  }

  .site-nav > ul.menu > li > .sub-menu > li + li {
    border-top: 1px solid rgba(255,255,255,.075) !important;
  }

  .site-nav > ul.menu > li > .sub-menu > li > a {
    min-height: 58px;
    grid-template-columns: 28px minmax(0,1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 11px 16px;
    transition: background .18s ease, padding-left .22s ease;
  }

  .site-nav > ul.menu > li > .sub-menu > li > a::before {
    content: "0" counter(laPaixServiceIndex);
    display: block;
    font-family: var(--font-latin-sans);
    font-size: 7px;
    line-height: 1;
    letter-spacing: .14em;
    opacity: .4;
  }

  .site-nav > ul.menu > li > .sub-menu > li > a:hover,
  .site-nav > ul.menu > li > .sub-menu > li > a:focus-visible {
    padding-left: 20px;
    background: rgba(255,255,255,.055);
    outline: none;
  }

  .site-nav > ul.menu > li > .sub-menu .menu-child__ja {
    font-family: var(--font-ja-serif);
    font-size: 13px;
    line-height: 1.42;
    letter-spacing: .035em;
  }

  .site-nav > ul.menu > li > .sub-menu .menu-child__en {
    font-family: var(--font-latin-ui);
    font-size: 6.5px;
    line-height: 1.25;
    letter-spacing: .14em;
    opacity: .48;
    text-align: right;
  }
}


/* =========================================================
   v0.2.157 — DESKTOP SERVICE INDEX / RELIABLE TARGETING
   Custom WordPress children do not carry the protected fallback's inner spans,
   so give both native and fallback menu items the same quiet readable styling.
========================================================= */
@media (min-width: 901px) {
  .site-nav > ul.menu > li.menu-item-has-children > .sub-menu > li > a {
    font-family: var(--font-ja-serif);
    font-size: 13px;
    line-height: 1.42;
    letter-spacing: .035em;
  }
  .site-nav > ul.menu > li.menu-item-has-children > .sub-menu > li > a > .menu-child__en {
    font-family: var(--font-latin-ui);
  }
  /* Slightly widen the invisible hover bridge so moving diagonally from the
     label into the panel does not accidentally close it. */
  .site-nav > ul.menu > li.menu-item-has-children::after {
    left: -28px !important;
    right: -28px !important;
    height: 20px !important;
  }
}


/* =========================================================
   v0.2.158 — HOME DESKTOP / HOVER SERVICE INDEX
   The TOP full-screen menu is intentionally spacious. FOR YOU / FOR BUSINESS
   reveal a compact service index to the left on hover/focus, so direct access
   is available without turning the first menu view into a mega-menu wall.
========================================================= */
@media (min-width: 901px) {
  .home .site-nav > ul.menu {
    position: relative;
    overflow: visible !important;
  }

  .home .site-nav > ul.menu > li {
    position: relative;
    overflow: visible !important;
  }

  .home .site-nav > ul.menu > li.menu-item-has-children::after {
    content: none !important;
  }

  .home .site-nav > ul.menu > li.menu-item-has-children > a {
    padding-right: 0 !important;
  }

  .home .site-nav > ul.menu > li.menu-item-has-children > a::after {
    content: "+" !important;
    position: static !important;
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    margin-left: 14px;
    border: 0 !important;
    font-family: var(--font-latin-ui);
    font-size: .22em;
    line-height: 1;
    font-weight: 400;
    opacity: .48;
    transform: none !important;
    transition: opacity .18s ease, transform .24s cubic-bezier(.22,.78,.25,1) !important;
  }

  .home .site-nav > ul.menu > li.menu-item-has-children:hover > a::after,
  .home .site-nav > ul.menu > li.menu-item-has-children:focus-within > a::after {
    opacity: 1;
    transform: rotate(45deg) !important;
  }

  .home .site-nav > ul.menu > li > .sub-menu {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    right: auto !important;
    z-index: 90 !important;
    width: min(338px, 31vw) !important;
    min-width: 292px !important;
    display: grid !important;
    gap: 0 !important;
    padding: 0 0 7px !important;
    margin: 0 !important;
    overflow: visible !important;
    background: rgba(15,14,13,.965) !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-top-color: rgba(195,174,149,.78) !important;
    box-shadow: 0 24px 58px rgba(0,0,0,.24) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translate3d(-16px,-50%,0) !important;
    transition: opacity .18s ease, transform .28s cubic-bezier(.22,.78,.25,1), visibility 0s linear .28s !important;
    counter-reset: laPaixServiceIndex;
  }

  .home .site-nav > ul.menu > li > .sub-menu::before {
    content: "SERVICE INDEX";
    display: block;
    padding: 13px 16px 10px;
    border-bottom: 1px solid rgba(255,255,255,.075);
    color: rgba(211,190,164,.82);
    font-family: var(--font-latin-ui);
    font-size: 7px;
    line-height: 1;
    letter-spacing: .2em;
    text-align: left;
  }

  .home .site-nav > ul.menu > li:hover > .sub-menu,
  .home .site-nav > ul.menu > li:focus-within > .sub-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translate3d(0,-50%,0) !important;
    transition-delay: 0s !important;
  }

  .home .site-nav > ul.menu > li > .sub-menu > li {
    overflow: visible !important;
    border: 0 !important;
    counter-increment: laPaixServiceIndex;
  }

  .home .site-nav > ul.menu > li > .sub-menu > li + li {
    border-top: 1px solid rgba(255,255,255,.075) !important;
  }

  .home .site-nav > ul.menu > li > .sub-menu > li > a {
    min-height: 57px !important;
    display: grid !important;
    grid-template-columns: 28px minmax(0,1fr) auto !important;
    gap: 11px !important;
    align-items: center !important;
    justify-content: stretch !important;
    padding: 10px 15px !important;
    color: #f3f0e8 !important;
    font-family: var(--font-ja-serif) !important;
    font-size: 13px !important;
    line-height: 1.42 !important;
    letter-spacing: .03em !important;
    white-space: normal !important;
    transition: background .18s ease, padding-left .22s ease !important;
  }

  .home .site-nav > ul.menu > li > .sub-menu > li > a::before {
    content: "0" counter(laPaixServiceIndex) !important;
    display: block !important;
    font-family: var(--font-latin-ui) !important;
    font-size: 7px !important;
    line-height: 1 !important;
    letter-spacing: .14em !important;
    opacity: .4 !important;
  }

  .home .site-nav > ul.menu > li > .sub-menu > li > a::after {
    content: "→" !important;
    position: static !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    border: 0 !important;
    font-family: var(--font-latin-ui) !important;
    font-size: 10px !important;
    opacity: .4 !important;
    transform: none !important;
  }

  .home .site-nav > ul.menu > li > .sub-menu > li > a:hover,
  .home .site-nav > ul.menu > li > .sub-menu > li > a:focus-visible {
    padding-left: 19px !important;
    background: rgba(255,255,255,.055) !important;
    outline: none !important;
  }

  .home .site-nav > ul.menu > li > .sub-menu .menu-child__ja {
    font-family: var(--font-ja-serif) !important;
    font-size: 13px !important;
    line-height: 1.42 !important;
    letter-spacing: .03em !important;
    text-align: left !important;
  }

  .home .site-nav > ul.menu > li > .sub-menu .menu-child__en {
    display: none !important;
  }
}

/* =========================================================
   v0.2.159 — MOBILE HOME / SERVICE INDEX LANGUAGE
   Touch has no hover, so the PC interaction is translated rather than copied:
   the six top-level destinations remain calm and legible, while tapping the +
   on FOR YOU / FOR BUSINESS unfolds the same numbered SERVICE INDEX language.
========================================================= */
@media (max-width: 900px) {
  .home .site-nav > ul.menu > li.menu-item-has-children {
    overflow: visible !important;
  }

  .home .site-nav > ul.menu > li.menu-item-has-children > a {
    padding-right: 48px !important;
  }

  .home .site-nav .submenu-toggle {
    top: 12px !important;
    right: 0 !important;
    width: 40px !important;
    height: 40px !important;
    color: rgba(243,240,232,.82) !important;
  }

  .home .site-nav .sub-menu {
    counter-reset: laPaixMobileServiceIndex;
    width: 100% !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    background: rgba(255,255,255,.018) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    text-align: left !important;
    transition: max-height .38s cubic-bezier(.22,.78,.25,1), opacity .18s ease !important;
  }

  .home .site-nav .menu-item-has-children.is-submenu-open > .sub-menu {
    max-height: 330px !important;
    margin: 0 0 16px !important;
    border-top: 1px solid rgba(195,174,149,.54) !important;
    border-bottom: 1px solid rgba(243,240,232,.10) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .home .site-nav .sub-menu::before {
    content: "SERVICE INDEX";
    display: block;
    padding: 11px 2px 8px;
    color: rgba(211,190,164,.78);
    font-family: var(--font-latin-ui);
    font-size: 7px;
    line-height: 1;
    letter-spacing: .20em;
    text-align: right;
  }

  .home .site-nav .sub-menu > li {
    counter-increment: laPaixMobileServiceIndex;
    border-top: 1px solid rgba(243,240,232,.075) !important;
  }

  .home .site-nav .sub-menu > li > a {
    min-height: 47px !important;
    display: grid !important;
    grid-template-columns: 27px minmax(0,1fr) !important;
    grid-template-rows: auto auto !important;
    column-gap: 12px !important;
    row-gap: 2px !important;
    align-items: center !important;
    justify-items: stretch !important;
    padding: 8px 2px !important;
    text-align: right !important;
    background: transparent !important;
  }

  .home .site-nav .sub-menu > li > a::before {
    content: "0" counter(laPaixMobileServiceIndex) !important;
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    display: block !important;
    align-self: center !important;
    color: rgba(243,240,232,.38) !important;
    font-family: var(--font-latin-ui) !important;
    font-size: 7px !important;
    line-height: 1 !important;
    letter-spacing: .14em !important;
  }

  .home .site-nav .sub-menu .menu-child__ja {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    color: #f3f0e8 !important;
    font-family: var(--font-ja-serif) !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    letter-spacing: .025em !important;
  }

  .home .site-nav .sub-menu .menu-child__en {
    grid-column: 2 !important;
    grid-row: 2 !important;
    display: block !important;
    justify-self: end !important;
    color: rgba(243,240,232,.54) !important;
    font-family: var(--font-latin-ui) !important;
    font-size: 6.5px !important;
    line-height: 1.2 !important;
    letter-spacing: .14em !important;
    text-align: right !important;
  }
}


/* =========================================================
   v0.2.180 — DESKTOP SERVICE MENU / OPAQUE READING PLANE
   The global desktop header normally uses mix-blend-mode:difference so the
   quiet navigation survives both light and dark artwork. When a service
   submenu opens, that group-level blend also composites the submenu against
   the page below; page copy can therefore appear to bleed through the dark
   panel. While FOR YOU / FOR BUSINESS is expanded by hover or keyboard focus,
   temporarily return the header to normal compositing and give the header +
   submenu one solid deep reading plane. Closed navigation remains unchanged.
========================================================= */
@media (min-width: 901px) {
  body:not(.home) .site-header:has(.site-nav > ul.menu > li.menu-item-has-children:hover),
  body:not(.home) .site-header:has(.site-nav > ul.menu > li.menu-item-has-children:focus-within) {
    mix-blend-mode: normal !important;
    isolation: isolate;
    color: #f5f1ea !important;
    background: #11100e;
  }

  body:not(.home) .site-header:has(.site-nav > ul.menu > li.menu-item-has-children:hover) .site-nav > ul.menu > li > .sub-menu,
  body:not(.home) .site-header:has(.site-nav > ul.menu > li.menu-item-has-children:focus-within) .site-nav > ul.menu > li > .sub-menu {
    background: #11100e !important;
    border-color: rgba(255,255,255,.13) !important;
    border-top-color: rgba(195,174,149,.72) !important;
    box-shadow: 0 22px 54px rgba(0,0,0,.30) !important;
  }
}

/* ===== SOURCE: motion-system.css ===== */
/* =========================================================
   LA PAIX QUIET MOTION SYSTEM — v0.2.174
   High-sense motion without scroll hijacking.
   Layout and content remain usable when motion is unavailable.
========================================================= */
:root {
  --qm-ease: cubic-bezier(.16, 1, .3, 1);
  --qm-ease-soft: cubic-bezier(.22, .78, .24, 1);
  --qm-fast: 360ms;
  --qm-medium: 720ms;
  --qm-slow: 980ms;
  --qm-depth-x: 0px;
  --qm-depth-y: 0px;
  --qm-parallax: 0px;
}

/* Cross-document transition: the header identity feels continuous while the
   page itself changes quietly. Unsupported browsers simply navigate normally. */
@view-transition { navigation: auto; }
.site-brand { view-transition-name: lapaix-brand; }
.site-menu-button { view-transition-name: lapaix-menu; }
@media (prefers-reduced-motion: no-preference) {
  ::view-transition-old(root) {
    animation: qm-page-out 190ms ease-out both;
  }
  ::view-transition-new(root) {
    animation: qm-page-in 420ms var(--qm-ease) both;
  }
  ::view-transition-group(lapaix-brand),
  ::view-transition-group(lapaix-menu) {
    animation-duration: 420ms;
    animation-timing-function: var(--qm-ease);
  }
}
@keyframes qm-page-out {
  to { opacity: .22; filter: blur(.6px); }
}
@keyframes qm-page-in {
  from { opacity: .12; transform: translate3d(0, 7px, 0); filter: blur(.8px); }
  to { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}

/* Headline reveal — v0.2.148 desktop-safe.
   Text is never clipped. The existing .js-reveal opacity/Y motion provides the
   editorial entrance, while this layer only softens focus very slightly. */
html.qm-enabled .qm-title {
  clip-path: none !important;
  overflow: visible;
  transition: filter 420ms ease;
}
html.qm-enabled .qm-title:not(.qm-in) {
  clip-path: none !important;
  filter: blur(.12px);
}
html.qm-enabled .qm-title.qm-in {
  clip-path: none !important;
  filter: blur(0);
}

/* Image mask reveal. We animate individual transform properties so the system
   can coexist with legacy transform rules without changing photo framing. */
html.qm-enabled .qm-media {
  position: relative;
  overflow: hidden;
  clip-path: inset(0 0 7% 0);
  opacity: .78;
  translate: 0 10px;
  transition:
    clip-path var(--qm-slow) var(--qm-ease),
    opacity 620ms ease,
    translate var(--qm-slow) var(--qm-ease);
  will-change: clip-path, opacity, translate;
}
html.qm-enabled .qm-media.qm-in {
  clip-path: inset(0 0 0 0);
  opacity: 1;
  translate: 0 0;
}
html.qm-enabled .qm-media > img,
html.qm-enabled .qm-media > picture > img {
  translate: var(--qm-depth-x) calc(var(--qm-depth-y) + var(--qm-parallax));
  scale: 1.024;
  transition:
    translate 520ms var(--qm-ease-soft),
    scale 1050ms var(--qm-ease),
    filter 520ms ease;
  will-change: translate, scale;
}
html.qm-enabled .qm-media.qm-in > img,
html.qm-enabled .qm-media.qm-in > picture > img {
  scale: 1.006;
}

/* Preserve full-frame / contain imagery. The reveal remains, but the photo is
   never enlarged enough to lose important edges. */
html.qm-enabled :is(
  .transformation-editorial__before,
  .business-service__image--contain,
  .selected-visuals__item--static,
  .personal-hero__media,
  .business-hero__media,
  .works-hero__media,
  .single-menu-hero__media,
  .labo-hero__media,
  .brand-visual-hero__media,
  .update-hero__media,
  .about-hero__media
).qm-media > img {
  scale: 1;
}

/* The yellow cake image is intentionally a visual punctuation mark. It opens
   from both sides instead of behaving like another thumbnail. */
html.qm-enabled .selected-visuals__item--cake-feature.qm-media:not(.qm-in) {
  clip-path: inset(0 8% 0 8%);
  opacity: .68;
  translate: 0 14px;
}
html.qm-enabled .selected-visuals__item--cake-feature.qm-media.qm-in {
  clip-path: inset(0 0 0 0);
  opacity: 1;
  translate: 0 0;
  transition-duration: 1120ms, 720ms, 1120ms;
}

/* Photography portfolio: each item arrives in a short cadence. The delay is
   capped and reset by row in JS, so the user never waits for late content. */
html.qm-enabled .brand-visual-photo-works .selected-visuals__item--static.qm-media {
  transition-delay: var(--qm-stagger, 0ms);
}
html.qm-enabled .brand-visual-photo-works .selected-visuals__item--static.qm-media > img {
  transition-delay: var(--qm-stagger, 0ms);
}

/* Numbered systems. Existing short rules now draw themselves when a stage
   enters the viewport; numbers rise very slightly, preserving the quiet rail. */
html.qm-enabled .qm-step > :is(span, .personal-labo-map__index) {
  transition: opacity 520ms ease, translate 680ms var(--qm-ease);
}
html.qm-enabled .qm-step:not(.qm-in) > :is(span, .personal-labo-map__index) {
  opacity: .35;
  translate: 0 7px;
}
html.qm-enabled .qm-step.qm-in > :is(span, .personal-labo-map__index) {
  opacity: 1;
  translate: 0 0;
}
html.qm-enabled .business-process__grid .qm-step > span::after,
html.qm-enabled .single-menu-flow__grid .qm-step > span::after,
html.qm-enabled .personal-labo-map--editorial .qm-step .personal-labo-map__index::after {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 760ms var(--qm-ease) 90ms;
}
html.qm-enabled .business-process__grid .qm-step.qm-in > span::after,
html.qm-enabled .single-menu-flow__grid .qm-step.qm-in > span::after,
html.qm-enabled .personal-labo-map--editorial .qm-step.qm-in .personal-labo-map__index::after {
  transform: scaleX(1);
}

/* Brand Site / Journey rails don't all use a number-rule pseudo element, so a
   subtle content cadence gives them the same family feeling without adding UI. */
html.qm-enabled .qm-step > :is(h3, div, p) {
  transition: opacity 600ms ease, translate 760ms var(--qm-ease);
}
html.qm-enabled .qm-step:not(.qm-in) > :is(h3, div) {
  opacity: .72;
  translate: 0 5px;
}
html.qm-enabled .qm-step.qm-in > :is(h3, div) {
  opacity: 1;
  translate: 0 0;
}

/* Desktop-only tactile depth. It never changes layout and stays deliberately
   below the threshold where it reads as a gimmick. */
@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
  html.qm-enabled .qm-depth {
    --qm-depth-x: 0px;
    --qm-depth-y: 0px;
  }
  html.qm-enabled .qm-depth:hover > img,
  html.qm-enabled .qm-depth:hover > picture > img {
    filter: saturate(1.018) contrast(1.012);
  }

  /* The main.js magnetic CTA remains the source of button movement. This
     layer gives text links an equally refined but smaller tactile response. */
  html.qm-enabled .text-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    transition: opacity 240ms ease, translate 360ms var(--qm-ease);
  }
  html.qm-enabled .text-link:hover,
  html.qm-enabled .text-link:focus-visible {
    translate: 5px 0;
  }
}

/* Mobile is scroll-led, not hover-led. Movement is shorter and faster so the
   page never feels like it is waiting for animation to finish. */
@media (max-width: 900px) {
  :root {
    --qm-medium: 600ms;
    --qm-slow: 780ms;
  }
  html.qm-enabled .qm-media {
    clip-path: inset(0 0 5% 0);
    translate: 0 7px;
  }
  html.qm-enabled .qm-media > img,
  html.qm-enabled .qm-media > picture > img {
    scale: 1.022;
  }
  html.qm-enabled .qm-media.qm-in > img,
  html.qm-enabled .qm-media.qm-in > picture > img {
    scale: 1.006;
  }
  html.qm-enabled :is(
    .transformation-editorial__before,
    .business-service__image--contain,
    .selected-visuals__item--static,
    .personal-hero__media,
    .business-hero__media,
    .works-hero__media,
    .single-menu-hero__media,
    .labo-hero__media,
    .brand-visual-hero__media,
    .update-hero__media,
    .about-hero__media
  ).qm-media > img {
    scale: 1;
  }
}

/* Progressive scroll-timeline enhancement. This supplements the JS fallback
   only in browsers that implement view timelines; no content depends on it. */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    html.qm-enabled .qm-scroll-accent {
      animation: qm-scroll-accent linear both;
      animation-timeline: view(block);
      animation-range: entry 0% cover 48%;
    }
    @keyframes qm-scroll-accent {
      from { opacity: .72; translate: 0 9px; }
      to { opacity: 1; translate: 0 0; }
    }
  }
}

/* Accessibility and low-power safety. */
@media (prefers-reduced-motion: reduce) {
  html.qm-enabled .qm-title,
  html.qm-enabled .qm-media,
  html.qm-enabled .qm-step,
  html.qm-enabled .qm-step > *,
  html.qm-enabled .qm-media > img,
  html.qm-enabled .qm-media > picture > img,
  html.qm-enabled .text-link {
    clip-path: none !important;
    opacity: 1 !important;
    translate: none !important;
    scale: 1 !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
  }
  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-group(lapaix-brand),
  ::view-transition-group(lapaix-menu) {
    animation-duration: .001ms !important;
  }
}


/* =========================================================
   v0.2.147 — mobile smoothness + fail-safe editorial media
   Touch scrolling must stay native and continuous. Entry motion remains on
   text/steps, but images no longer participate in continuous scroll effects.
========================================================= */
@media (max-width: 900px) {
  /* Disable both the legacy view-timeline drift and QUIET MOTION image depth. */
  .js-image-drift > img {
    animation: none !important;
    translate: 0 0 !important;
    scale: 1 !important;
  }

  html.qm-enabled .qm-media,
  html.qm-enabled .qm-media.qm-in,
  html.qm-enabled .selected-visuals__item--cake-feature.qm-media,
  html.qm-enabled .selected-visuals__item--cake-feature.qm-media.qm-in {
    clip-path: none !important;
    opacity: 1 !important;
    translate: 0 0 !important;
    transition: none !important;
    will-change: auto !important;
  }

  html.qm-enabled .qm-media > img,
  html.qm-enabled .qm-media > picture > img,
  html.qm-enabled .qm-media.qm-in > img,
  html.qm-enabled .qm-media.qm-in > picture > img {
    translate: 0 0 !important;
    scale: 1 !important;
    transition: none !important;
    will-change: auto !important;
  }

  html.qm-enabled .brand-visual-photo-works .selected-visuals__item--static.qm-media,
  html.qm-enabled .brand-visual-photo-works .selected-visuals__item--static.qm-media > img {
    transition-delay: 0ms !important;
  }

  html.qm-enabled .qm-scroll-accent {
    animation: none !important;
  }

  html.qm-enabled .qm-title {
    filter: none !important;
  }
}

/* TOP VISUAL DIRECTION must never become an empty black field. These two
   authored photographs are intentionally excluded from motion/reveal logic. */
.visual-rhythm__item--large,
.visual-rhythm__item--small,
.visual-rhythm__item--large img,
.visual-rhythm__item--small img {
  opacity: 1 !important;
  visibility: visible !important;
}

/* CONTACT: give project-outline placeholders enough real width on desktop.
   The class already exists in markup; make its intended full-row behavior real. */
.lp-contact-form__field--full {
  grid-column: 1 / -1;
}
@media (min-width: 901px) {
  .visual-request-check .lp-contact-form__grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(180px, .65fr);
    column-gap: 30px;
  }
  .visual-request-check .lp-contact-form input[type="text"] {
    min-height: 52px;
    line-height: 1.55;
  }
}

/* =========================================================
   v0.2.150 — MOBILE SIGNATURE MOTION / SMOOTH SCROLL
   The screen recording showed real 80–110ms stalls while touch-scrolling.
   Mobile therefore never moves large image layers during scroll. Surprise is
   created with text choreography, number rails and a 1px editorial scan line.
========================================================= */
@media (max-width: 900px) {
  /* Legacy reveal transforms on photography were still moving the entire
     image wrapper even after parallax was disabled. Keep photography locked
     to the document while the user scrolls. */
  html.has-js main .qm-media.js-reveal,
  html.has-js main .qm-media.js-reveal.is-visible,
  html.has-js main figure.qm-media.js-reveal,
  html.has-js main figure.qm-media.js-reveal.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  /* The fixed conversion bar used backdrop blur. On iOS this forces the page
     behind it to be re-filtered during every scroll frame. A near-solid panel
     looks the same in practice and is much cheaper to composite. */
  .mobile-sticky-cta a {
    background: rgba(20,18,16,.985) !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: 0 8px 20px rgba(15,13,11,.16), 0 0 0 1px rgba(244,241,235,.34) !important;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: no-preference) {
  /* Parent titles no longer perform the legacy 11px reveal. Authored mobile
     lines animate independently, which feels richer without moving a large
     block against the user's finger. */
  html.has-js .qm-title.js-reveal,
  html.has-js .qm-title.js-reveal.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  html.qm-enabled .qm-mobile-title-line {
    opacity: .01;
    translate: 0 14px;
    transition:
      opacity 430ms ease,
      translate 650ms cubic-bezier(.16,1,.3,1);
    transition-delay: calc(var(--qm-line-index, 0) * 72ms + 24ms);
  }
  html.qm-enabled .qm-title.qm-in .qm-mobile-title-line {
    opacity: 1;
    translate: 0 0;
  }

  /* Titles without responsive line spans still receive one clean entrance. */
  html.qm-enabled .qm-title--single {
    opacity: .01 !important;
    translate: 0 12px;
    transition: opacity 430ms ease, translate 650ms cubic-bezier(.16,1,.3,1) !important;
  }
  html.qm-enabled .qm-title--single.qm-in {
    opacity: 1 !important;
    translate: 0 0;
  }

  /* Signature photography stays perfectly still. A one-pixel warm scan moves
     across selected images instead of covering or translating the photo. The
     repaint area is tiny and paint is contained to the image box. */
  html.qm-enabled .qm-mobile-curtain {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    contain: paint;
  }
  html.qm-enabled .qm-mobile-curtain::after {
    content: "";
    position: absolute;
    z-index: 4;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    background: rgba(206,177,143,.94);
    box-shadow: 0 0 9px rgba(206,177,143,.26);
    opacity: 0;
    pointer-events: none;
  }
  html.qm-enabled .qm-mobile-curtain.qm-in::after {
    animation: qm-mobile-scanline 720ms cubic-bezier(.22,.78,.24,1) 70ms both;
  }
  @keyframes qm-mobile-scanline {
    0%   { left: 0; opacity: 0; transform: scaleY(.22); }
    15%  { opacity: .92; transform: scaleY(1); }
    82%  { opacity: .62; transform: scaleY(.84); }
    100% { left: calc(100% - 1px); opacity: 0; transform: scaleY(.48); }
  }

  /* Numbered systems deliver the editorial drama: number first, then content.
     Only small text layers move; no full-width image or section is translated. */
  html.qm-enabled .qm-step > :is(span, .personal-labo-map__index) {
    opacity: .24;
    translate: 0 8px;
    transition: opacity 390ms ease, translate 600ms cubic-bezier(.16,1,.3,1);
  }
  html.qm-enabled .qm-step.qm-in > :is(span, .personal-labo-map__index) {
    opacity: 1;
    translate: 0 0;
  }
  html.qm-enabled .qm-step > :is(h3, div) {
    opacity: .52;
    translate: 0 7px;
    transition: opacity 440ms ease 90ms, translate 640ms cubic-bezier(.16,1,.3,1) 90ms;
  }
  html.qm-enabled .qm-step.qm-in > :is(h3, div) {
    opacity: 1;
    translate: 0 0;
  }

  /* Section labels are small enough to move safely and give each chapter a
     recognisable beat before the larger Japanese copy arrives. */
  html.has-js main .section-label.js-reveal {
    transform: translate3d(-9px,0,0);
    transition-duration: 430ms, 560ms;
  }
  html.has-js main .section-label.js-reveal.is-visible {
    transform: translate3d(0,0,0);
  }

  /* Photo grids remain static on touch devices. The previous per-tile scale /
     rise created too many simultaneous compositor layers in long portfolios. */
  html.qm-enabled .brand-visual-photo-works .qm-mobile-portfolio,
  html.qm-enabled .brand-visual-photo-works .qm-mobile-portfolio.qm-in {
    opacity: 1 !important;
    translate: 0 0 !important;
    scale: 1 !important;
    transition: none !important;
  }

  .button:active,
  .mobile-sticky-cta a:active {
    scale: .986;
    transition-duration: 110ms !important;
  }
}

@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  html.qm-enabled .qm-mobile-curtain::after { display: none !important; }
  html.qm-enabled .qm-mobile-title-line,
  html.qm-enabled .qm-title--single,
  html.qm-enabled .brand-visual-photo-works .qm-mobile-portfolio {
    opacity: 1 !important;
    translate: 0 0 !important;
    scale: 1 !important;
    animation: none !important;
    transition: none !important;
  }
}

/* =========================================================
   v0.2.172 — MOBILE HOME / CONTINUOUS FILM + NATIVE SCROLL
   The page keeps one continuous film plane only. No scroll-direction JS, video
   hand-off, seek, play/pause boundary logic or animated WebP panes are active.
   Slow-scroll stability is handled by removing runtime layout work and full-size
   image decoding from the scroll path, while the liked symmetric film windows
   and immersive full-film beats remain visible through the whole TOP.
========================================================= */

/* Desktop keeps the v146 quiet-motion system. These labels are shared by the
   v164 mobile entrance treatment and are harmless outside HOME. */
.entrance-card__audience-mobile,
.entrance-card__link-mobile { display: none; }

@media (max-width: 767px) {
  html { scroll-behavior: auto !important; }

  body.home {
    --home-film-edge-base: clamp(18px, 5.6vw, 24px);
    --home-film-edge-wide: clamp(26px, 7.8vw, 34px);
    --home-mobile-copy-gutter: clamp(23px, 6.4vw, 28px);
    background: #11100f !important;
  }

  /* Critical iOS stability rule: nothing viewport-fixed remains active on the
     closed HOME page. The header lives in the HERO flow; the fullscreen nav is
     instantiated only while it is actually open. */
  body.home .site-header {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 64 !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
    box-shadow: none !important;
  }
  body.home .site-nav:not(.is-open) {
    display: none !important;
  }
  body.home .site-nav.is-open {
    display: flex !important;
    position: fixed !important;
    inset: 0 !important;
  }

  /* The global conversion bar is intentionally disabled only on mobile HOME.
     HERO and final CONTACT retain explicit consultation paths. This removes the
     second always-on fixed layer while we keep the landing page scroll native. */
  body.home .mobile-sticky-cta { display: none !important; }

  /* v0.2.172 — one continuous film plane for the full mobile TOP.
     This restores the v161 visual language the user preferred: the same live
     film is visible through the symmetric side windows and immersive beats all
     the way to CONTACT. There is no scroll listener, no hand-off, no seek and
     no class switching; the single video simply stays behind the document. */
  body.home .home-film-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    contain: none !important;
    transform: none !important;
  }
  body.home .home-film-backdrop__viewport,
  body.home .home-film-backdrop__video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: 50% 50% !important;
    transform: none !important;
    filter: none !important;
    -webkit-filter: none !important;
    will-change: auto !important;
  }
  body.home .home-film-backdrop__still { display: none !important; }
  body.home .site-main {
    position: relative !important;
    z-index: 1 !important;
    background: transparent !important;
  }
  body.home .hero.hero--video {
    position: relative !important;
    z-index: 2 !important;
    height: var(--top-hero-mobile-h, 100svh) !important;
    min-height: 560px !important;
    overflow: hidden !important;
    background: transparent !important;
    contain: none !important;
  }

  /* Mobile HOME after HERO: keep the liked bilateral film-frame composition,
     but render one static frame only. This is intentionally not an animated
     WebP/video while stability is being locked. */
  /* v0.2.199: the three purpose paths are a required static part of the
     mobile HOME flow. Keep the film stages below untouched and do not make
     this navigation sticky, fixed, or motion-owned. */
  body.home .top-paths { display: grid !important; }
  body.home .home-film-stage {
    --home-local-edge: var(--home-film-edge-base);
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: var(--home-local-edge) !important;
    padding-right: var(--home-local-edge) !important;
    overflow: hidden !important;
    isolation: isolate !important;
    background: transparent !important;
    transform: none !important;
    transition: none !important;
  }
  body.home .home-film-stage--offset { --home-local-edge: var(--home-film-edge-wide); }
  body.home .home-film-stage--immersive {
    --home-local-edge: 0px;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* The local placeholder planes are no longer painted. Their transparent
     slots reveal the single fixed live film underneath instead. */
  body.home .home-local-film,
  body.home .home-local-film--ambient,
  body.home .home-local-film__video,
  body.home [data-home-stage-video] {
    display: none !important;
  }

  /* Reading surface. The two edge windows remain symmetric; immersive beats
     deliberately reveal the entire still. */
  body.home .home-film-stage:not(.home-film-stage--immersive)::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--home-local-edge);
    right: var(--home-local-edge);
    z-index: 1;
    pointer-events: none;
    background: var(--home-local-surface, var(--color-paper));
  }
  body.home .visual-rhythm.home-film-stage--frame { --home-local-surface: #0f0e0c; }
  body.home .role.home-film-stage--frame { --home-local-surface: var(--color-deep); }
  body.home .works-preview.home-film-stage--offset,
  body.home .about-preview.home-film-stage--gallery { --home-local-surface: var(--color-paper); }
  body.home .entrances.home-film-stage--gallery::before { content: none !important; }

  body.home .home-film-stage--immersive::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
    background:
      linear-gradient(180deg, rgba(17,16,15,.24), rgba(17,16,15,.56)),
      linear-gradient(90deg, rgba(17,16,15,.30), rgba(17,16,15,.08) 52%, rgba(17,16,15,.34)) !important;
  }
  body.home .cta.home-film-stage--closing::before {
    background:
      linear-gradient(180deg, rgba(10,9,8,.50), rgba(10,9,8,.76)),
      linear-gradient(90deg, rgba(10,9,8,.38), rgba(10,9,8,.14) 50%, rgba(10,9,8,.42)) !important;
  }
  body.home .home-film-stage > :not(.home-local-film) {
    position: relative;
    z-index: 2;
  }
  body.home .visual-rhythm,
  body.home .statement,
  body.home .entrances,
  body.home .works-preview,
  body.home .role,
  body.home .about-preview,
  body.home .cta { background: transparent !important; }
  body.home .statement.home-film-stage--immersive,
  body.home .cta.home-film-stage--immersive { color: #f5f1e9 !important; }

  /* v0.2.178 — the generic .section-text rule carries a dark ink color.
     On the mobile immersive BRAND STATEMENT that dark ink sits over the live
     film and loses contrast, so the lead explicitly follows the warm-light
     section foreground. Typography, spacing and scroll geometry are untouched. */
  body.home .statement.home-film-stage--immersive .statement__lead {
    color: #f5f1e9 !important;
  }

  /* No scroll-triggered transforms on mobile HOME. The HERO can still play its
     authored load-in; every later section is immediately paint-stable. */
  body.home main .js-reveal,
  body.home main .js-reveal.is-visible,
  body.home main .qm-mobile-title-line,
  body.home main .qm-title--single,
  body.home main .qm-step,
  body.home main .qm-step > *,
  body.home main .qm-media,
  body.home main .qm-mobile-portfolio,
  body.home main .js-image-drift > img {
    opacity: 1 !important;
    transform: none !important;
    translate: 0 0 !important;
    scale: 1 !important;
    animation: none !important;
    transition: none !important;
    will-change: auto !important;
  }
  body.home main .qm-mobile-curtain::after { display: none !important; }

  /* v162–v164 typography and clearer entry language, rebuilt without the old
     experimental compositor rules. */
  body.home .entrance-card__audience-desktop,
  body.home .entrance-card__link-desktop { display: none !important; }
  body.home .entrance-card__audience-mobile {
    display: flex !important;
    align-items: baseline;
    gap: 12px;
    margin: 0;
  }
  body.home .entrance-card__audience-mobile > span {
    color: var(--color-accent);
    font: 400 12px/1.2 Arial, sans-serif;
    letter-spacing: .2em;
  }
  body.home .entrance-card__audience-mobile small {
    color: rgba(255,255,255,.62);
    font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 10px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: .08em;
  }
  body.home .entrance-card__link-mobile { display: inline !important; white-space: nowrap; }
  body.home .entrance-card__body {
    padding-left: clamp(24px, 7.2vw, 30px) !important;
    padding-right: clamp(24px, 7.2vw, 30px) !important;
  }
  body.home .entrance-card .mobile-copy-precise {
    font-size: clamp(14px, 3.72vw, 15px) !important;
    line-height: 1.88 !important;
    letter-spacing: .01em;
  }
  body.home .entrance-card .mobile-copy-precise .responsive-copy--mobile .responsive-copy__line,
  body.home .role-card h3 .responsive-copy--mobile .responsive-copy__line,
  body.home .role-card .mobile-copy-precise .responsive-copy--mobile .responsive-copy__line,
  body.home .visual-rhythm__quote .responsive-copy--mobile .responsive-copy__line {
    white-space: nowrap !important;
  }
  body.home .role-card h3 {
    font-size: clamp(22px, 6.15vw, 25px) !important;
    line-height: 1.46 !important;
    letter-spacing: 0 !important;
    max-width: 100%;
  }
  body.home .role-card .mobile-copy-precise {
    font-size: clamp(13.5px, 3.65vw, 14.5px) !important;
    line-height: 1.88 !important;
  }
  body.home .visual-rhythm__quote,
  body.home .visual-rhythm__copy .visual-rhythm__quote {
    font-size: clamp(21px, 5.85vw, 24px) !important;
    line-height: 1.72 !important;
    max-width: 100% !important;
  }

  /* Restore the internal copy gutter independent of the outside film frame. */
  body.home .works-preview > .section__inner,
  body.home .role > .section__inner,
  body.home .journal-preview > .section__inner,
  body.home .statement > .section__inner,
  body.home .cta > .section__inner,
  body.home .about-preview__copy {
    box-sizing: border-box;
    padding-left: var(--home-mobile-copy-gutter) !important;
    padding-right: var(--home-mobile-copy-gutter) !important;
  }
  body.home .about-preview__image { margin-left: 0 !important; margin-right: 0 !important; }

  body.home .site-footer {
    position: relative !important;
    z-index: 3 !important;
    width: 100% !important;
    margin: 0 !important;
    background: #0f0e0c !important;
  }
}

@media (max-width: 374px) {
  body.home .entrance-card .mobile-copy-precise { font-size: 13.2px !important; }
  body.home .entrance-card__link-mobile { font-size: 13px; letter-spacing: .04em; }
}

/* =========================================================
   v0.2.203 — MOBILE HOME / FIXED FILM VIEWPORT STABILITY
   The remaining hitch was not video decoding. iOS/Chrome emits height-only
   resize events when its browser UI returns on a fast upward swipe. The Hero
   keeps its one-time, width-gated height lock so the foreground document does
   not reflow during that transition. The fixed film must instead use `inset`
   as its only viewport constraint: combining top/bottom insets with that same
   explicit height can make WebKit resolve the fixed and document planes on
   different visual-viewport frames.
========================================================= */
@media (max-width: 767px) {
  body.home .hero.hero--video {
    height: var(--top-hero-mobile-h, 100svh) !important;
  }

  /* `vh` can track the visual viewport on iOS Chromium/WebKit. `svh` is the
     stable small viewport and does not change as the top/bottom browser bars
     animate back in. These cards sit above much of the document, so a height
     change here used to shift everything below them during reverse scrolling. */
  body.home .entrance-card {
    min-height: 76svh !important;
  }

  /* Avoid an extra blend-compositing pass as the header re-enters over HERO. */
  body.home .site-header {
    mix-blend-mode: normal !important;
  }
}


/* =========================================================
   v0.2.179 — DESKTOP HOME / RESTORE FULL-BLEED TOP FILM
   The continuous-film refactor intentionally moved the shared <video> before
   HERO so mobile could keep one decoder alive through the page. On desktop,
   however, that shared wrapper had no non-mobile positioning rule and remained
   an ordinary flex child of .site-main. The result was the recording-visible
   horizontal film strip above an otherwise black HERO.

   Desktop/tablet now treats that same wrapper as the HERO background plane:
   it is removed from flex flow, sized exactly to HERO, and the HERO itself is
   transparent so the original 1920x1080 / 24fps film can fill the viewport.
   No playback, source, crop, typography, or mobile scroll code is changed.
========================================================= */
@media (min-width: 768px) {
  body.home .site-main {
    position: relative;
  }

  body.home .home-film-backdrop {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    width: 100%;
    height: 100svh;
    min-height: 650px;
    margin: 0;
    overflow: hidden;
    background: #000;
    pointer-events: none;
  }

  body.home .home-film-backdrop__viewport {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }

  body.home .home-film-backdrop__video {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: 50% 50%;
    background: #000;
  }

  body.home .home-film-backdrop__still {
    display: none;
  }

  body.home .hero.hero--video {
    position: relative;
    z-index: 1;
    background: transparent;
  }
}

@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
  body.home .home-film-backdrop__video {
    display: none;
  }
  body.home .home-film-backdrop__still,
  body.home .home-film-backdrop__still img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
  }
  body.home .home-film-backdrop__still img {
    object-fit: cover;
    object-position: 50% 50%;
  }
}

/* ===== SOURCE: mobile-native-scroll.css ===== */
/* =========================================================
   LA PAIX MOBILE NATIVE SCROLL — v0.2.174
   iOS / Chrome iOS stabilization layer.
   Mobile scrolling uses the document's native path: no persistent fixed UI,
   no backdrop blur, no reveal transforms and no root overflow clipping.
   Desktop presentation and QUIET MOTION are intentionally untouched.
========================================================= */
@media (max-width: 900px) {
  html {
    scroll-behavior: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: visible !important;
  }
  body,
  .site-main,
  .brand-site-page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: visible !important;
  }

  /* iOS 26 WebKit is especially sensitive to viewport-fixed/sticky layers
     combined with clipping, shadows and backdrop filtering. Keep the header
     in ordinary page flow on mobile. The menu is fixed only while actually open. */
  .site-header,
  body.home .site-header {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    mix-blend-mode: normal !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
    box-shadow: none !important;
  }
  body:not(.home) .site-header {
    background: rgba(255,253,248,.985) !important;
  }

  .site-nav:not(.is-open) {
    display: none !important;
    transform: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
  }
  .site-nav.is-open {
    display: block !important;
    position: fixed !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
  }
  body.home .site-nav.is-open {
    display: flex !important;
    inset: 0 !important;
  }

  /* Persistent conversion bars are removed from the mobile compositor.
     Each page already contains an inline CONTACT / consultation route, so
     conversion remains available without an always-on fixed layer. */
  .mobile-sticky-cta {
    display: none !important;
  }
  .site-footer {
    padding-bottom: max(72px, calc(env(safe-area-inset-bottom) + 52px)) !important;
  }

  /* Sticky content cards are useful on desktop but unnecessary on a narrow
     viewport, and can trigger expensive re-composition in WebKit. */
  .contact-form-section__intro,
  .labo-offer__card {
    position: static !important;
    top: auto !important;
  }

  /* Mobile content is fully visible from first paint. No scroll-triggered
     opacity/translate/clip-path/scan-line layer is allowed to enter or exit
     while the user's finger is moving. */
  html.has-js main .js-reveal,
  html.has-js main .js-reveal.is-visible,
  html.qm-enabled main .qm-title,
  html.qm-enabled main .qm-title.qm-in,
  html.qm-enabled main .qm-media,
  html.qm-enabled main .qm-media.qm-in,
  html.qm-enabled main .qm-step,
  html.qm-enabled main .qm-step.qm-in,
  html.qm-enabled main .qm-step > *,
  html.qm-enabled main .qm-mobile-title-line,
  html.qm-enabled main .qm-title--single,
  html.qm-enabled main .qm-mobile-portfolio,
  main .js-image-drift > img {
    opacity: 1 !important;
    transform: none !important;
    translate: 0 0 !important;
    scale: 1 !important;
    clip-path: none !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
    will-change: auto !important;
  }
  html.qm-enabled main .qm-mobile-curtain {
    contain: none !important;
    isolation: auto !important;
  }
  html.qm-enabled main .qm-mobile-curtain::after {
    display: none !important;
  }

  /* Remove mobile blur/filter surfaces even if an older page-specific rule
     survives in legacy CSS. */
  .site-main *,
  .site-footer * {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  ::view-transition-old(root),
  ::view-transition-new(root),
  ::view-transition-group(lapaix-brand),
  ::view-transition-group(lapaix-menu) {
    animation: none !important;
  }
}

/* ===== SOURCE: scroll-stability.css ===== */
/* =========================================================
   LA PAIX SCROLL STABILITY LOCK — v0.2.176
   ---------------------------------------------------------
   Goal: the browser alone owns vertical scroll position.
   No scroll snapping, no scroll anchoring correction and no
   root rubber-band chaining may push the viewport against the
   user's slow wheel/touch movement.
   v176 also migrates legacy mobile-reactive vh geometry to svh in the
   theme stylesheets so iOS browser-toolbar expansion cannot resize sections.

   This file is intentionally loaded last. It does not change
   copy, spacing, image ratios, prices or page composition.
========================================================= */

/* Programmatic anchors must never animate the viewport. */
html {
  scroll-behavior: auto !important;
  scroll-snap-type: none !important;
}

/* Chromium/WebKit scroll anchoring can counter-move the viewport when
   late image/font/layout geometry settles. The symptom is most visible
   during very slow scrolling: the page advances, then appears to pull a
   few pixels back. La paix reserves its important media geometry in CSS,
   so viewport anchoring is less useful than stable direct input here. */
html,
body,
.site-main {
  overflow-anchor: none !important;
}

@media (max-width: 900px) {
  /* Keep the document on the native vertical scroll path used by v174.
     Do not create a root overflow scroller. We only stop boundary chaining
     / rubber-band feedback from being handed back to the viewport. */
  html,
  body {
    overscroll-behavior-y: none;
    overscroll-behavior-x: none;
  }

  /* Explicitly neutralize any inherited/legacy viewport snap behavior while
     preserving intentional horizontal snapping inside photo galleries. */
  html,
  body,
  .site-main {
    scroll-snap-type: none !important;
  }
}


/* Mobile return-to-top control. It is deliberately a tiny flat fixed layer.
   Visibility is controlled by the small scroll-distance hysteresis in main.js;
   FAQ and footer visibility never suppress a needed return path. */
.page-top-anchor {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
.mobile-back-to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 58;
  display: grid;
  width: 82px;
  min-height: 30px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(15,14,12,.9);
  color: rgba(255,255,255,.86);
  font: 10px/1 var(--font-latin-ui, Arial, sans-serif);
  letter-spacing: .12em;
  text-decoration: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .2s ease;
}
.mobile-back-to-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; }

@media (max-width: 900px) {
  .mobile-back-to-top {
    position: fixed;
    right: 14px;
    bottom: max(14px, calc(env(safe-area-inset-bottom) + 10px));
    z-index: 58;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(30,29,27,.18);
    border-radius: 50%;
    background: rgba(255,253,248,.97);
    color: #1e1d1b;
    font-family: "Times New Roman", serif;
    font-size: 17px;
    line-height: 1;
    letter-spacing: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: none !important;
    transition: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent;
  }
  .mobile-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  body.has-open-menu .mobile-back-to-top,
  body.has-lightbox .mobile-back-to-top {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* ===== SOURCE: mobile-direction-stability.css ===== */
/* =========================================================
   LA PAIX MOBILE DIRECTION STABILITY — v0.2.177
   ---------------------------------------------------------
   Field comparison on iOS isolated the reverse-scroll hitch to the older
   service pages that carry several viewport-height media blocks throughout
   one document. The newer pages that stay smooth are mostly content-driven.

   iOS 26 / Chrome iOS changes the visual viewport when browser chrome is
   restored after scroll direction reverses. Even stable viewport units can
   still participate in style/compositor invalidation on those frames.

   For smartphones only, the affected pages therefore use WIDTH-driven or
   content-driven vertical geometry. Width does not change when the browser
   toolbar expands/collapses. Copy, photo crop, section order and desktop/tablet
   layout remain untouched.
========================================================= */

@media (max-width: 900px) {
  /* TOP: the film HERO is already locked to a pixel height by main.js and is
     intentionally left alone. Remove the remaining viewport-height dependency
     from the long destination cards below it. */
  body.home .entrance-card {
    min-height: clamp(580px, 160vw, 680px) !important;
  }

  /* PERSONAL — replace 58/66/68/72svh surfaces with width/content geometry. */
  .personal-page .personal-hero__media {
    min-height: 0 !important;
    height: clamp(450px, 126vw, 540px) !important;
  }
  .personal-page .personal-philosophy__image,
  .personal-page .personal-labo__image {
    min-height: 0 !important;
    height: clamp(500px, 142vw, 610px) !important;
  }
  .personal-page .personal-labo__intro {
    min-height: 0 !important;
  }
  .personal-page .personal-message {
    min-height: 560px !important;
  }

  /* BUSINESS — same legacy full-height media pattern as PERSONAL. */
  .lapaix-page-business .business-hero,
  .lapaix-page-business .business-approach,
  .lapaix-page-business .business-team {
    min-height: 0 !important;
  }
  .lapaix-page-business .business-hero__media {
    min-height: 0 !important;
    height: clamp(450px, 126vw, 540px) !important;
  }
  .lapaix-page-business .business-approach__image {
    min-height: 0 !important;
    height: clamp(500px, 142vw, 610px) !important;
  }
  .lapaix-page-business .business-team__image {
    min-height: 0 !important;
    height: auto !important;
  }
  .lapaix-page-business .business-service__image:not(.business-service__image--contain) {
    min-height: 0 !important;
    height: clamp(470px, 132vw, 570px) !important;
  }
  .lapaix-page-business .business-message {
    min-height: 560px !important;
  }
}

@media (max-width: 820px) {
  /* SINGLE SESSIONS — media height follows width instead of browser UI height. */
  .single-menu-page .single-menu-hero {
    min-height: 0 !important;
  }
  .single-menu-page .single-menu-hero__media {
    min-height: 0 !important;
    height: clamp(455px, 130vw, 550px) !important;
  }
  .single-menu-page .single-service__image {
    min-height: 0 !important;
    height: clamp(440px, 124vw, 540px) !important;
  }

  /* BRAND ME LABO — the old page has the highest concentration of svh media.
     Keep its editorial proportions but make every mobile vertical surface
     independent from address-bar expansion/collapse. */
  .labo-page .labo-hero {
    min-height: 0 !important;
  }
  .labo-page .labo-hero__image {
    min-height: 0 !important;
    height: clamp(455px, 130vw, 550px) !important;
  }
  .labo-page .labo-promise {
    min-height: 0 !important;
  }
  .labo-page .labo-promise__image {
    min-height: 300px !important;
    height: clamp(330px, 94vw, 420px) !important;
  }
  .labo-page .labo-online,
  .labo-page .labo-photo,
  .labo-page .labo-book {
    min-height: 0 !important;
  }
  .labo-page .labo-online__image {
    min-height: 0 !important;
    height: clamp(410px, 118vw, 510px) !important;
  }
  .labo-page .labo-photo__image {
    min-height: 0 !important;
    height: auto !important;
  }
  .labo-page .labo-results__item--punch {
    min-height: clamp(520px, 150vw, 640px) !important;
  }
  .labo-page .labo-book__visual {
    min-height: 0 !important;
  }
  .labo-page .labo-schedule__image {
    min-height: 0 !important;
    height: clamp(440px, 124vw, 540px) !important;
    max-height: none !important;
  }
}

/* Very small phones keep the same crop logic without reintroducing a height
   relative to browser chrome. */
@media (max-width: 560px) {
  .single-menu-page .single-service__image {
    height: clamp(420px, 122vw, 500px) !important;
  }
  .labo-page .labo-promise__image {
    height: clamp(320px, 92vw, 390px) !important;
  }
  .labo-page .labo-online__image {
    height: clamp(390px, 116vw, 480px) !important;
  }
}


/* v0.2.184 — wrapper spans must inherit the original legend typography on all viewports. */
.contact-page .lp-contact-form__field legend .contact-question__line {
  margin-left: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
}

/* =========================================================
   v0.2.184 — iPhone phrase-safe text + FINAL PORTRAIT contrast
   ---------------------------------------------------------
   This file is the last mobile stylesheet in the dependency chain, so these
   rules intentionally win over older generic wrapping/color systems.
========================================================= */
@supports (word-break: auto-phrase) {
  @media (max-width: 900px) {
    .labo-page,
    .contact-page {
      word-break: auto-phrase !important;
      overflow-wrap: normal !important;
    }
  }
}

@media (max-width: 900px) {
  /* JS inserts these spans once at boot on LABO / CONTACT. Breaks are allowed
     only between phrase spans, never inside the protected phrase itself. */
  .labo-page .ja-phrase,
  .contact-page .ja-phrase,
  .labo-page .labo-schedule__phrase,
  .contact-page .contact-question__line {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }

  .labo-page wbr,
  .contact-page wbr {
    display: inline;
  }

  /* Authored question lines are semantic mobile blocks; they remain inline on
     desktop because this rule only exists in the smartphone layer. */
  .contact-page .lp-contact-form__field legend .contact-question__line {
    display: block;
    max-width: 100%;
    margin-left: 0 !important;
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
  }
  .contact-page .lp-contact-form__field legend .contact-question__required {
    margin-left: 8px !important;
    color: #725f4d !important;
    font-size: 9px !important;
    font-weight: 500 !important;
    letter-spacing: .08em !important;
  }

  /* Schedule values stay editable. The theme only protects each side of the
     existing ｜ separator as a phrase unit. */
  .labo-page .labo-schedule__separator {
    white-space: nowrap;
  }

  /* FINAL PORTRAIT sits on a deep background. The authoritative mobile reading
     system previously forced its body copy to --color-soft-ink (dark), reducing
     contrast. Restore the intended light editorial palette. */
  .labo-page .labo-photo__copy,
  .labo-page .labo-photo__copy > div,
  .labo-page .labo-photo__copy > div p {
    color: rgba(255,255,255,.84) !important;
  }
  .labo-page .labo-photo__copy .section-title {
    color: #fff !important;
  }
  .labo-page .labo-photo__copy .section-label {
    color: #d4baa0 !important;
  }
}

/* ===== SOURCE: v208-photography-visual.css ===== */
/* v0.2.208 — the supplied completed PHOTO / GRAPHY artwork is placed intact. */
.home .top-paths a.top-paths__item--photography { background:#f5f3ef !important; }
.home .top-paths__item--photography::before { content:none !important; -webkit-mask:none !important; mask:none !important; }
.home .top-paths__photography-visual { position:absolute; z-index:1; margin:0; inline-size:min(74%, 980px); inset:50% auto auto 50%; transform:translate(-50%, -50%); }
.home .top-paths__photography-visual img { display:block; inline-size:100%; block-size:auto; filter:none !important; }
.home .top-paths__item--photography .top-paths__number,
.home .top-paths__item--photography .top-paths__copy,
.home .top-paths__item--photography .top-paths__cta,
.home .top-paths__item--photography .top-paths__arrow { z-index:2; }

@media (max-width:900px) {
  .home .top-paths__item--personal .top-paths__copy strong { font-size:clamp(64px,17vw,68px) !important; }
  .home .top-paths__item--business .top-paths__copy strong { font-size:clamp(60px,16vw,66px) !important; }
  .home .top-paths__item--personal .top-paths__number,
  .home .top-paths__item--business .top-paths__number,
  .home .top-paths__item--photography .top-paths__number { font-size:19px !important; line-height:1 !important; }
  .home .top-paths__photography-visual { inline-size:calc(100% - 40px); }
  .home .top-paths__item--photography .top-paths__copy {
    top:calc(50% + 30vw) !important;
    right:62px !important;
    bottom:auto !important;
    left:auto !important;
  }
  .home .top-paths__item--photography .top-paths__arrow {
    top:calc(50% + 30vw) !important;
    right:20px !important;
    bottom:auto !important;
    left:auto !important;
    line-height:1 !important;
    transform:translateY(3px);
  }
}

@media (min-width:901px) {
  .home .top-paths__item--personal .top-paths__copy strong { font-size:clamp(64px,5.5vw,88px) !important; }
  .home .top-paths__item--business .top-paths__copy strong { font-size:clamp(60px,5.1vw,82px) !important; }
  .home .top-paths__item--personal .top-paths__number,
  .home .top-paths__item--business .top-paths__number,
  .home .top-paths__item--photography .top-paths__number { font-size:19px !important; line-height:1 !important; }
  .home .top-paths__item--photography .top-paths__copy {
    top:calc(50% + 39%) !important;
    right:calc(13% + 44px) !important;
    bottom:auto !important;
    left:auto !important;
  }
  .home .top-paths__item--photography .top-paths__arrow {
    top:calc(50% + 39%) !important;
    right:13% !important;
    bottom:auto !important;
    left:auto !important;
    line-height:1 !important;
    transform:translateY(11px);
  }
}

/* v0.2.208 final typesetting: one integrated CTA, no detached arrows. */
.home .top-paths__cta { display:grid !important; grid-template-columns:max-content minmax(28px,1fr) auto; align-items:center; column-gap:12px; inline-size:min(100%,320px); max-inline-size:320px; }
.home .top-paths__cta i { display:block; block-size:1px; background:currentColor; opacity:.55; }
.home .top-paths__cta b { font:400 22px/1 var(--font-latin-display, "Times New Roman", serif); }
.home .top-paths__cta { color:rgba(30,29,27,.72) !important; font:400 12px/1.4 var(--font-sans) !important; }
.home .top-paths__item--personal .top-paths__copy em,
.home .top-paths__item--business .top-paths__copy em { color:rgba(30,29,27,.72) !important; font:400 13px/1.72 var(--font-sans) !important; word-break:normal; overflow-wrap:normal; text-wrap:pretty; }
.home .top-paths__copy em > span { display:block; }
.home .top-paths__item--photography .top-paths__arrow,
.home .top-paths__item--personal .top-paths__arrow,
.home .top-paths__item--business .top-paths__arrow { display:none !important; }

@media (max-width:900px) {
  body.home .top-paths a.top-paths__item--personal .top-paths__number,
  body.home .top-paths a.top-paths__item--business .top-paths__number,
  body.home .top-paths a.top-paths__item--photography .top-paths__number { font:400 24px/1 var(--font-latin-sans,Arial,sans-serif) !important; letter-spacing:.08em !important; }
  .home .top-paths__item--photography .top-paths__photography-visual { inline-size:92vw; inset:calc(50% - 76px) auto auto 50% !important; }
  .home .top-paths__item--photography .top-paths__copy { top:calc(50% + 26vw - 58px) !important; right:4vw !important; }
  .home .top-paths__item--photography .top-paths__cta { position:absolute !important; left:28px !important; right:auto !important; bottom:31px !important; inline-size:min(260px,calc(100% - 102px)); max-inline-size:260px; margin:0 !important; }
}

@media (min-width:901px) {
  body.home .top-paths a.top-paths__item--personal .top-paths__number,
  body.home .top-paths a.top-paths__item--business .top-paths__number,
  body.home .top-paths a.top-paths__item--photography .top-paths__number { font:400 24px/1 var(--font-latin-sans,Arial,sans-serif) !important; letter-spacing:.08em !important; }
  .home .top-paths__item--photography .top-paths__photography-visual { inline-size:min(79%,1040px); }
  .home .top-paths__item--photography .top-paths__copy { top:calc(50% + 41%) !important; right:10.5% !important; }
  .home .top-paths__item--photography .top-paths__cta { display:grid !important; position:absolute !important; left:clamp(48px,5vw,80px) !important; bottom:clamp(62px,6vw,92px) !important; }
}

/* Desktop only: give the quiet service spreads enough typographic weight for wide canvases. */
@media (min-width:901px) {
  .home .top-paths__item--personal .top-paths__copy strong { font-size:clamp(80px,5.5vw,96px) !important; }
  .home .top-paths__item--business .top-paths__copy strong { font-size:clamp(76px,5.1vw,90px) !important; }
  .home .top-paths__item--personal .top-paths__copy small,
  .home .top-paths__item--business .top-paths__copy small { font-size:17px !important; }
  .home .top-paths__item--personal .top-paths__copy em,
  .home .top-paths__item--business .top-paths__copy em { font-size:14px !important; }
  .home .top-paths__item--personal .top-paths__cta,
  .home .top-paths__item--business .top-paths__cta { font:400 13px/1.4 var(--font-sans) !important; }
}

/* ===== SOURCE: v209-mobile-rhythm.css ===== */
/* v0.2.209 — narrow-screen service rhythm.
   The approved v208 composition remains intact: only unused vertical space
   is tightened, and supporting Japanese copy returns to a readable scale. */
@media (max-width: 900px) {
  .home .top-paths a.top-paths__item--personal,
  .home .top-paths a.top-paths__item--business {
    padding-top: 28px;
    padding-bottom: 30px;
    row-gap: 14px;
  }

  .home .top-paths a.top-paths__item--personal {
    min-height: clamp(620px, 164vw, 640px);
  }

  .home .top-paths a.top-paths__item--photography {
    min-height: clamp(580px, 150vw, 610px);
  }

  .home .top-paths a.top-paths__item--business {
    min-height: clamp(570px, 150vw, 590px);
  }

  .home .top-paths__item--personal .top-paths__media,
  .home .top-paths__item--business .top-paths__media {
    margin-top: 18px;
  }

  .home .top-paths__item--business .top-paths__media {
    inline-size: min(69vw, 280px);
    margin-top: 0;
  }

  .home .top-paths__item--personal .top-paths__copy small,
  .home .top-paths__item--business .top-paths__copy small {
    font-size: 14px !important;
    line-height: 1.55 !important;
  }

  .home .top-paths__item--personal .top-paths__copy em,
  .home .top-paths__item--business .top-paths__copy em {
    font-size: 14.5px !important;
    line-height: 1.68 !important;
  }

  .home .top-paths__cta {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .home .top-paths__item--photography .top-paths__copy small {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }
}

/* The navigation is the middle step of the compact mobile footer, between
   its statement and the quiet location/copyright information. */
@media (max-width: 900px) {
  .site-footer__identity { order: 1; }
  .site-footer__nav { order: 2; }
  .site-footer__legal { order: 3; }
  .site-footer__copyright { order: 4; }
}

/* ===== SOURCE: v210-personal-motion.css ===== */
/* v0.2.211 — PERSONAL mobile editorial motion.
   The page is fully readable before this optional layer runs. It uses one-shot
   IntersectionObserver state only; native scrolling remains browser-owned. */
@media (max-width: 900px) and (prefers-reduced-motion: no-preference) {
  html.personal-motion-ready main .personal-page .pm-sequence > .pm-item {
    transition:
      opacity var(--pm-duration, 620ms) cubic-bezier(.16, 1, .3, 1) var(--pm-delay, 0ms),
      translate var(--pm-duration, 620ms) cubic-bezier(.16, 1, .3, 1) var(--pm-delay, 0ms) !important;
  }

  html.personal-motion-ready main .personal-page .pm-sequence:not(.pm-in) > .pm-item {
    opacity: 0 !important;
    translate: 0 8px !important;
  }

  html.personal-motion-ready main .personal-page .pm-sequence.pm-in > .pm-item {
    opacity: 1 !important;
    translate: 0 0 !important;
  }

  /* Only the primary editorial boundaries draw on. Item rules remain quiet. */
  html.personal-motion-ready main .personal-page .pm-rule {
    position: relative;
    border-top-color: transparent;
  }

  html.personal-motion-ready main .personal-page .pm-rule::before {
    content: '';
    position: absolute;
    right: 0;
    top: -1px;
    left: 0;
    height: 1px;
    background: rgba(30,29,27,.18);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 680ms cubic-bezier(.16, 1, .3, 1) 20ms;
  }

  html.personal-motion-ready main .personal-page .pm-rule.pm-in::before { transform: scaleX(1); }

  html.personal-motion-ready main .personal-page .pm-image {
    overflow: hidden;
    transition: clip-path 860ms cubic-bezier(.16, 1, .3, 1) !important;
  }

  html.personal-motion-ready main .personal-page .pm-image:not(.pm-in) { clip-path: inset(0 0 100% 0) !important; }
  html.personal-motion-ready main .personal-page .pm-image.pm-in { clip-path: inset(0 0 0 0) !important; }

  html.personal-motion-ready main .personal-page .pm-image > img {
    /* This narrowly restores the approved one-shot reveal above the mobile
       native-scroll baseline, which otherwise freezes .js-image-drift media. */
    scale: 1.024 !important;
    transition: scale 860ms cubic-bezier(.16, 1, .3, 1) !important;
  }

  html.personal-motion-ready main .personal-page .pm-image.pm-in > img { scale: 1 !important; }

  html.personal-motion-ready main .personal-page .pm-cta {
    position: relative;
    border-bottom-color: transparent;
  }

  html.personal-motion-ready main .personal-page .pm-cta::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 440ms cubic-bezier(.16, 1, .3, 1) calc(var(--pm-delay, 0ms) + 120ms);
  }

  html.personal-motion-ready main .personal-page .pm-sequence.pm-in .pm-cta::after { transform: scaleX(1); }
}

@media (prefers-reduced-motion: reduce) {
  html.personal-motion-ready main .personal-page :is(.pm-item, .pm-image, .pm-image > img) {
    clip-path: none !important;
    opacity: 1 !important;
    scale: 1 !important;
    translate: 0 0 !important;
    transition: none !important;
  }
}

/* ===== SOURCE: v212-bml-editorial.css ===== */
/* v0.2.212 — Brand Me Labo editorial information hierarchy.
   Content, prices, links and owner-managed media remain in their existing
   fields. This layer only establishes a clearer reading order and hierarchy. */

.labo-starting { background: #f6f1e9; }
.labo-starting .labo-intro { padding-bottom: clamp(56px, 7vw, 104px); }
.labo-starting .labo-promise { min-height: min(84svh, 920px); }
.labo-starting .labo-pain-list { margin-top: clamp(44px, 5.5vw, 72px); }
.labo-starting .labo-pain-list p:nth-child(-n + 3) { color: var(--color-deep); font-size: 17px; }
.labo-starting .labo-pain-list p:nth-child(n + 4) { color: var(--color-soft-ink); font-size: 14px; }

.labo-transformation { background: #f9f6f0; }
.labo-transformation .labo-story { background: #e9e1d6; }
.labo-transformation .labo-results { background: #f9f6f0; }
.labo-transformation .labo-results__item:nth-child(-n + 3) > p { color: var(--color-deep); }
.labo-transformation .labo-results__item:nth-child(n + 4):not(.labo-results__item--closing) > p {
  color: var(--color-soft-ink);
  font-size: clamp(18px, 1.65vw, 23px);
}

.labo-program__modules { margin-top: clamp(70px, 9vw, 118px); }
.labo-program__modules .labo-program__list { margin-top: 0; }
.labo-program__modules .labo-program__item { padding-block: 36px; }
.labo-program__modules .labo-program__body { font-size: 14px; line-height: 1.9; }

.labo-support { background: #eee8de; }
.labo-support > .section__inner { padding-top: clamp(78px, 9vw, 132px); padding-bottom: 0; }
.labo-support .labo-program-support { margin-top: 0; }
.labo-support .labo-scenes { background: transparent; }
.labo-support .labo-online { min-height: 0; background: transparent; }
.labo-support .labo-book { min-height: 0; background: #e6ded2; }
.labo-support .labo-book__visual { min-height: 0; }

.labo-offer__facts dl:first-child dd { font-size: clamp(25px, 2.3vw, 34px); line-height: 1.35; }
.labo-photo--optional { background: #26231f; }
.labo-photo__optional-label {
  margin: 0 0 13px;
  color: #d4baa0;
  font: 400 10px/1.4 var(--font-latin-ui, Arial, sans-serif);
  letter-spacing: .16em;
}
.labo-update { border-top: 0; }

/* PHOTOGRAPHY / ESTIMATE: align the copy grid to the established mobile gutter
   without changing its desktop composition or any other brand-visual section. */
@media (max-width: 900px) {
  .brand-visual-page .brand-visual-estimate .section__inner {
    width: min(100% - (var(--mobile-gutter, 22px) * 2), var(--container));
    margin-inline: auto;
  }

  .labo-starting .labo-intro { padding-top: 74px; padding-bottom: 48px; }
  .labo-starting .labo-intro__grid { gap: 24px; }
  .labo-starting .labo-pain-list { margin-top: 40px; }
  .labo-starting .labo-pain-list p { grid-template-columns: 34px minmax(0, 1fr); padding-block: 19px; }
  .labo-starting .labo-pain-list p:nth-child(-n + 3) { font-size: 16px; line-height: 1.78; }
  .labo-starting .labo-pain-list p:nth-child(n + 4) { font-size: 14px; line-height: 1.75; }
  .labo-starting .labo-promise { min-height: 0; }
  .labo-starting .labo-promise__card { padding-block: 58px 66px; }

  .labo-transformation .labo-story { padding-block: 74px 62px; }
  .labo-transformation .labo-story--with-image .labo-story__grid { gap: 38px; }
  .labo-transformation .labo-story__change { margin-top: 34px; }
  .labo-transformation .labo-story__change article { padding: 25px 22px; }
  /* The saved title helper supplies desktop <br>s. On narrow WebKit widths,
     keeping that break can join two protected phrases beyond the text measure.
     Let its existing <wbr>s choose the phrase boundary instead. */
  .labo-transformation .section-title { inline-size: 100%; min-inline-size: 0; max-inline-size: 100%; }
  .labo-transformation .section-title > br { display: none; }
  .labo-transformation .labo-story__content .section-title { font-size: 28px; line-height: 1.58; }
  .labo-transformation .labo-results { padding-block: 72px; }
  .labo-transformation .labo-results__head { margin-bottom: 40px; }
  .labo-transformation .labo-results__item:nth-child(-n + 3) > p { font-size: clamp(23px, 6.1vw, 27px); }
  .labo-transformation .labo-results__item:nth-child(n + 4):not(.labo-results__item--closing) > p { font-size: 17px; line-height: 1.7; }

  .labo-journey { padding-block: 76px; }
  .labo-journey .labo-section-head { gap: 22px; }
  .labo-journey__grid { margin-top: 36px; border-inline: 0; background: transparent; }
  .labo-journey__item {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    column-gap: 14px;
    padding: 23px 0 26px;
    border-inline: 0;
    border-bottom: 1px solid var(--color-line);
    background: transparent;
  }
  .labo-journey__item > span { min-height: 0; padding-top: 5px; }
  .labo-journey__item h3 { margin: 0 0 9px; font-size: 22px; line-height: 1.48; }
  .labo-journey__item div { grid-column: 2; font-size: 14px; line-height: 1.82; }

  .labo-program { padding-block: 76px; }
  .labo-program .labo-section-head { gap: 24px; }
  .labo-schedule { margin-top: 46px; padding-top: 38px; gap: 28px; }
  .labo-schedule__image {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: auto !important;
    aspect-ratio: 1.08 / 1;
  }
  .labo-schedule__list { margin-top: 24px; }
  .labo-schedule__list p { padding-block: 12px; }
  .labo-program__modules { margin-top: 62px; }
  .labo-program__modules .labo-program__item { gap: 10px 15px; padding-block: 24px; }
  .labo-program__modules .labo-program__name h3 { font-size: 22px; line-height: 1.45; }
  .labo-program__modules .labo-program__body { font-size: 13px !important; line-height: 1.8 !important; }

  .labo-support > .section__inner { padding-top: 70px; }
  .labo-support .labo-program-support { padding-block: 0 48px; border-top: 0; }
  .labo-support .labo-program-support h3 { font-size: 27px; }
  .labo-support .labo-scenes { padding-block: 0; }
  .labo-support .labo-scenes .section__inner { padding-block: 52px; }
  .labo-support .labo-scenes__grid { margin-top: 32px; }
  .labo-support .labo-scenes__card { padding: 38px 22px 42px; }
  .labo-support .labo-scenes__card > p { margin-bottom: 30px; }
  .labo-support .labo-online__image { height: auto !important; aspect-ratio: 1.04 / 1; }
  .labo-support .labo-online__copy { padding: 58px var(--mobile-gutter, 22px) 64px; }
  .labo-support .labo-book__visual { padding: 54px 18px 28px; }
  .labo-support .labo-book__copy { padding: 50px var(--mobile-gutter, 22px) 66px; }
  .labo-support .labo-book .section-title { font-size: clamp(34px, 8.8vw, 39px); line-height: 1.48; }

  .labo-offer { padding-block: 76px; }
  .labo-offer__facts { margin-top: 34px; }
  .labo-offer__facts dl:first-child dd { font-size: 27px; }
  .labo-offer__card { padding: 30px 22px; }

  .labo-photo--optional { padding-block: 58px 64px; }
  .labo-photo--optional .labo-photo__inner { gap: 32px; }
  /* Preserve the complete owner-managed portrait on phones. The compactness
     comes from its surrounding editorial spacing, never from a new crop. */
  .labo-photo--optional .labo-photo__image { aspect-ratio: auto !important; }
  .labo-photo--optional .labo-photo__image img { width: 100% !important; height: auto !important; object-fit: contain !important; }
  .labo-photo--optional .labo-photo__copy { padding: 0; }
  .labo-photo--optional .labo-photo__copy .section-title { font-size: clamp(27px, 7vw, 32px); }
  .labo-photo--optional .labo-photo__copy > div { font-size: 14px !important; line-height: 1.9 !important; }

  .labo-update { padding-block: 62px; }
  .labo-update__grid { gap: 24px; }
  .labo-update .section-title { font-size: clamp(28px, 7.2vw, 34px); }
}

@media (min-width: 901px) {
  .labo-support .labo-scenes { padding-top: 0; }
  .labo-support .labo-online { margin-top: clamp(70px, 8vw, 116px); }
  .labo-support .labo-book { margin-top: clamp(70px, 8vw, 116px); }
  .labo-photo--optional { padding-block: clamp(72px, 8vw, 112px); }
  .labo-photo--optional .labo-photo__inner { align-items: center; }
}

/* ===== SOURCE: v213-bml-density-gutter.css ===== */
/* v0.2.213 — Brand Me Labo mobile density and copy-grid alignment.
   Owner-managed fields remain present in the document. This layer only
   changes the mobile reading hierarchy; desktop retains the v212 editorial flow. */

@media (max-width: 900px) {
  :root { --v213-copy-gutter: 28px; }

  /* WHAT CHANGES: lead with the three outcomes that describe the program's
     confidence and direction, then keep the remaining outcomes as one quiet
     supporting sequence. All six saved entries remain available in the DOM. */
  .labo-transformation .labo-results__list {
    display: flex;
    flex-direction: column;
  }
  .labo-transformation .labo-results__item { min-height: 0; padding-block: 22px 24px !important; }
  .labo-transformation .labo-results__item > span { margin-bottom: 13px; }
  .labo-transformation .labo-results__item:nth-child(2) { order: 1; }
  .labo-transformation .labo-results__item:nth-child(4) { order: 2; }
  .labo-transformation .labo-results__item:nth-child(5) { order: 3; }
  .labo-transformation .labo-results__item:nth-child(1) { order: 4; margin-top: 18px; padding-top: 23px !important; border-top: 1px solid var(--color-line); }
  .labo-transformation .labo-results__item:nth-child(3) { order: 5; }
  .labo-transformation .labo-results__item:nth-child(6) { order: 6; }
  .labo-transformation .labo-results__item:nth-child(2) > p,
  .labo-transformation .labo-results__item:nth-child(4) > p,
  .labo-transformation .labo-results__item:nth-child(5) > p {
    color: var(--color-deep);
    font-size: clamp(22px, 5.85vw, 25px);
    line-height: 1.62;
  }
  .labo-transformation .labo-results__item:nth-child(1) > p,
  .labo-transformation .labo-results__item:nth-child(3) > p,
  .labo-transformation .labo-results__item:nth-child(6) > p {
    color: var(--color-soft-ink);
    font-size: 15px;
    line-height: 1.78;
  }
  .labo-transformation .labo-results__item:nth-child(n + 1) > span { color: var(--color-accent); font-size: 10px; }
  .labo-transformation .labo-results { padding-block: 64px 68px; }
  .labo-transformation .labo-results__head { margin-bottom: 32px; }

  /* WHY 3 MONTHS: the five named steps stay legible as one continuous path.
     The long explanatory fields are retained for editor/desktop use instead
     of competing with the program outline on a phone. */
  .labo-journey { padding-block: 66px; }
  .labo-journey__grid { margin-top: 28px; }
  .labo-journey__item {
    grid-template-columns: 82px minmax(0, 1fr);
    column-gap: 12px;
    padding-block: 16px 17px;
  }
  .labo-journey__item > span { padding-top: 4px; font-size: 10px; }
  .labo-journey__item h3 { margin: 0; font-size: 18px; line-height: 1.52; }
  .labo-journey__item div { display: none; }

  /* PROGRAM: 10 sessions remain the primary itinerary. The six modules read
     as three quiet visual clusters (STYLE / MAKEUP / HAIR), while their full
     owner-managed descriptions remain available on desktop. */
  .labo-program { padding-block: 68px; }
  .labo-program .labo-section-head { gap: 20px; }
  .labo-schedule { margin-top: 40px; padding-top: 30px; gap: 24px; }
  .labo-schedule__list { margin-top: 20px; }
  .labo-schedule__list p { padding-block: 10px; }
  .labo-program__modules { margin-top: 46px; }
  .labo-program__modules .labo-program__item { position: relative; gap: 7px 13px; padding-block: 15px; }
  .labo-program__modules .labo-program__item:nth-child(2),
  .labo-program__modules .labo-program__item:nth-child(5),
  .labo-program__modules .labo-program__item:nth-child(6) { padding-top: 39px; }
  .labo-program__modules .labo-program__item:nth-child(2)::before,
  .labo-program__modules .labo-program__item:nth-child(5)::before,
  .labo-program__modules .labo-program__item:nth-child(6)::before {
    position: absolute;
    top: 15px;
    left: 0;
    color: var(--color-accent);
    font: 400 10px/1.2 var(--font-latin-ui, Arial, sans-serif);
    letter-spacing: .16em;
  }
  .labo-program__modules .labo-program__item:nth-child(2)::before { content: "STYLE"; }
  .labo-program__modules .labo-program__item:nth-child(5)::before { content: "MAKEUP"; }
  .labo-program__modules .labo-program__item:nth-child(6)::before { content: "HAIR"; }
  .labo-program__modules .labo-program__name p { margin-bottom: 5px; font-size: 10px; line-height: 1.4; }
  .labo-program__modules .labo-program__name h3 { font-size: 18px; line-height: 1.5; }
  .labo-program__modules .labo-program__body { display: none; }

  /* SUPPORT: LINE and Direction Book keep their visual priority. Work/life
     and online become compact supporting information without removing facts. */
  .labo-support > .section__inner { padding: 62px var(--v213-copy-gutter) 0; }
  .labo-support .labo-program-support { padding-bottom: 42px; }
  .labo-support .labo-program-support h3 { font-size: 25px; line-height: 1.55; }
  .labo-support .labo-scenes .section__inner { padding: 40px var(--v213-copy-gutter) 42px; }
  .labo-support .labo-scenes__grid { margin-top: 23px; gap: 1px; }
  .labo-support .labo-scenes__card { min-height: 0; padding: 25px 20px 27px; }
  .labo-support .labo-scenes__card > p { margin-bottom: 14px; }
  .labo-support .labo-scenes__card h3 { margin: 0; font-size: 20px; line-height: 1.58; }
  .labo-support .labo-scenes__card > div { display: none; }
  .labo-support .labo-online { display: block; min-height: 0; }
  .labo-support .labo-online__image { display: none; }
  .labo-page .labo-online__copy { padding: 48px var(--v213-copy-gutter) 50px !important; }
  .labo-support .labo-online__copy .section-title { font-size: clamp(27px, 7vw, 31px); line-height: 1.56; }
  .labo-support .labo-online__body { font-size: 14px; line-height: 1.82; }
  .labo-support .labo-online__body p + p { display: none; }
  .labo-support .labo-online__list { margin-top: 20px; }
  .labo-support .labo-online__list p { padding-block: 11px; font-size: 14px; line-height: 1.65; }
  .labo-support .labo-book__visual { padding: 46px 18px 22px; }
  .labo-support .labo-book__copy { padding: 42px var(--v213-copy-gutter) 54px; }
  .labo-support .labo-book__body { font-size: 14px; line-height: 1.86; }
  .labo-support .labo-book__list { margin-top: 22px; }

  /* Keep normal BML copy aligned to the shared 28px mobile text grid; dark
     and full-bleed image compositions intentionally retain their own edges. */
  .labo-page .labo-program,
  .labo-page .labo-offer,
  .labo-page .labo-journey,
  .labo-page .labo-results { padding-inline: var(--v213-copy-gutter); }
  .labo-page .labo-offer { padding-block: 68px; }

  /* PHOTOGRAPHY: ordinary copy follows the same 28px text grid. Full-bleed
     photography and dark visual bands are intentionally not targeted. */
  .brand-visual-page .brand-visual-estimate > .section__inner {
    width: calc(100% - (var(--v213-copy-gutter) * 2));
    margin-inline: auto;
  }
}

/* ===== SOURCE: v214-mobile-editorial-grid.css ===== */
/* v0.2.214 — mobile editorial text grid.
   This layer intentionally targets copy wrappers only: full-bleed photography,
   dark background bands and gallery media retain their approved edge treatment. */

@media (max-width: 900px) {
  :root { --v214-mobile-text-gutter: 28px; }

  /* SINGLE SESSIONS: keep the black Brand Me Labo band full-width while its
     heading, body copy and CTA align to the established mobile reading grid. */
  .single-menu-page .single-menu-labo > .single-menu-labo__inner {
    width: calc(100% - (var(--v214-mobile-text-gutter) * 2));
    margin-inline: auto;
    min-width: 0;
  }

  /* PHOTOGRAPHY / PERSONAL PHOTO: photographs intentionally remain full-width.
     Only the section heading and the two following information blocks move to
     the shared text grid. */
  .brand-visual-page .brand-visual-personal-photo__head {
    width: calc(100% - (var(--v214-mobile-text-gutter) * 2));
    margin-inline: auto;
  }
  .brand-visual-page .personal-photo-feature__details,
  .brand-visual-page .personal-photo-feature--wedding .personal-photo-feature__details {
    box-sizing: border-box;
    padding-inline: var(--v214-mobile-text-gutter);
  }
  .brand-visual-page .personal-photo-feature__details p:not(.personal-photo-feature__eyebrow) {
    font-size: 14px;
    line-height: 1.86;
  }
  .brand-visual-page .personal-photo-feature__eyebrow {
    font: 500 11px/1.4 var(--font-latin-ui, Arial, sans-serif) !important;
    letter-spacing: .18em !important;
  }
}

/* ===== SOURCE: v215-single-sessions-art-direction.css ===== */
/* v0.2.217 — SINGLE SESSIONS signature refinement.
   WordPress owns the service content; this local layer gives its three services
   a shared chapter grammar without changing the wider page system. */

@media (min-width: 901px) {
  .single-menu-page .single-service {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(520px, 1fr);
    grid-template-areas:
      "image intro"
      "image content";
    grid-template-rows: auto 1fr;
  }
  .single-menu-page .single-service--reverse {
    grid-template-areas:
      "intro image"
      "content image";
  }
  .single-menu-page .single-service__image {
    grid-area: image;
    min-height: 880px;
  }
  .single-menu-page .single-service__intro {
    grid-area: intro;
    padding: clamp(86px, 8vw, 132px) clamp(44px, 7vw, 110px) 0;
  }
  .single-menu-page .single-service__content {
    grid-area: content;
    display: block;
    padding: 42px clamp(44px, 7vw, 110px) clamp(86px, 8vw, 132px);
  }
  .single-menu-page .single-service__title { margin-top: 46px; }
  .single-menu-page .single-service__details > summary { display: none; }
  .single-menu-page .single-service__details > .single-service__details-content {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
  }
}

@media (max-width: 900px) {
  .single-menu-page {
    --v215-gutter: 28px;
    --v216-photo-inset: clamp(20px, 7vw, 28px);
  }

  /* A compact index reads as an orientation device, not a row of cards. */
  .single-menu-page .single-menu-guide {
    padding-top: 64px !important;
    padding-bottom: 56px !important;
  }
  .single-menu-page .single-menu-guide__head {
    gap: 18px;
  }
  .single-menu-page .single-menu-guide__head .section-title {
    margin-bottom: 0;
  }
  .single-menu-page .single-menu-guide__lead {
    max-width: 31em;
  }
  .single-menu-page .single-menu-guide__grid {
    display: block;
    margin-top: 32px;
    border-left: 0;
  }
  .single-menu-page .single-menu-guide__item {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr);
    column-gap: 14px;
    min-height: 0;
    padding: 24px 0 26px;
    border-right: 0;
    border-left: 0;
    background: transparent;
  }
  .single-menu-page .single-menu-guide__item > p {
    grid-row: 1 / span 2;
    margin: 3px 0 0;
    font-size: 11px;
    letter-spacing: .13em;
  }
  .single-menu-page .single-menu-guide__item h3 {
    margin: 0 0 8px;
    font-size: 21px;
    line-height: 1.4;
  }
  .single-menu-page .single-menu-guide__item div {
    font-size: 14px;
    line-height: 1.72;
  }

  /* MENU & PRICE remains an introduction, rather than a second large chapter. */
  .single-menu-page .single-menu-list {
    padding-top: 25px !important;
  }
  .single-menu-page .single-menu-list__head {
    gap: 7px;
    margin-bottom: 20px;
  }
  .single-menu-page .single-menu-list__head .section-title {
    margin-bottom: 0;
    font-size: clamp(24px, 6.5vw, 28px) !important;
  }

  /* Every menu begins with the same readable chapter sequence. */
  .single-menu-page .single-service,
  .single-menu-page .single-service--reverse {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-top: 0;
    position: relative;
  }
  .single-menu-page .single-service:not(:last-child) {
    padding-bottom: 52px;
  }
  .single-menu-page .single-service__intro {
    padding: 60px var(--v215-gutter) 30px;
    position: relative;
  }
  .single-menu-page .single-service__top {
    display: block;
    padding: 0;
    border: 0;
  }
  .single-menu-page .single-service__top span {
    display: block;
    margin: 0 0 15px;
    color: var(--color-accent);
    font-family: var(--font-serif);
    font-size: clamp(56px, 16vw, 68px);
    font-weight: 400;
    line-height: .82;
    letter-spacing: -.055em;
    opacity: 1;
  }
  .single-menu-page .single-service__top p {
    margin: 0;
    color: var(--color-accent);
    text-align: left;
    font-size: 11px;
    line-height: 1.35;
    letter-spacing: .16em;
  }
  .single-menu-page .single-service__title {
    margin: 23px 0 0;
    padding: 0;
    border: 0;
    color: var(--color-deep);
    font-family: var(--font-serif) !important;
    font-size: clamp(28px, 8.2vw, 34px) !important;
    font-weight: 400;
    line-height: 1.34 !important;
    letter-spacing: -.035em !important;
    white-space: normal !important;
  }
  .single-menu-page .single-service__title::after { content: none; }
  .single-menu-page .single-service__title .responsive-copy__line {
    display: block !important;
    white-space: nowrap !important;
  }
  .single-menu-page .single-service--01 .single-service__title {
    font-size: clamp(29px, 7.7vw, 31px) !important;
    letter-spacing: -.045em !important;
  }
  .single-menu-page .single-service__tagline {
    position: relative;
    margin: 22px 0 0;
    padding: 19px 0 0;
    border: 0 !important;
    border-left: 0 !important;
    background: transparent !important;
    color: var(--color-ink);
    font-family: var(--font-serif) !important;
    font-size: clamp(17px, 4.6vw, 19px) !important;
    line-height: 1.58 !important;
  }
  .single-menu-page .single-service__tagline::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 38px;
    height: 1px;
    background: var(--color-accent);
  }
  /* A short, static axis makes the number, poster image and facts one chapter. */
  .single-menu-page .single-service__intro::after,
  .single-menu-page .single-service__content::before {
    content: '';
    position: absolute;
    width: 1px;
    background: var(--color-accent);
    opacity: .58;
  }
  .single-menu-page .single-service__intro::after {
    top: 60px;
    bottom: 0;
    left: calc(var(--v215-gutter) - 12px);
  }
  .single-menu-page .single-service__content::before {
    top: 0;
    height: 34px;
    left: calc(var(--v215-gutter) - 12px);
  }
  .single-menu-page .single-service--02 .single-service__intro::after,
  .single-menu-page .single-service--02 .single-service__content::before {
    left: auto;
    right: calc(var(--v215-gutter) - 12px);
  }
  .single-menu-page .single-service__image {
    order: initial;
    width: 100%;
    height: clamp(420px, 122vw, 500px) !important;
    margin: 0;
  }
  .single-menu-page .single-service--01 .single-service__image,
  .single-menu-page .single-service--03 .single-service__image {
    width: calc(100% - var(--v216-photo-inset));
    margin-left: var(--v216-photo-inset);
    margin-right: 0;
  }
  .single-menu-page .single-service--02 .single-service__image {
    width: calc(100% - var(--v216-photo-inset));
    margin-left: 0;
    margin-right: var(--v216-photo-inset);
  }
  .single-menu-page .single-service__content {
    display: block;
    order: initial;
    padding: 44px var(--v215-gutter) 0 !important;
    position: relative;
  }
  .single-menu-page .single-service__body {
    max-width: 31em;
    font-size: 14px !important;
    line-height: 1.88 !important;
  }
  .single-menu-page .single-service__facts {
    margin-top: 38px;
  }
  .single-menu-page .single-service__facts > div {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 13px;
    padding: 16px 0;
  }
  .single-menu-page .single-service__facts dt {
    font-size: 11px;
    letter-spacing: .15em;
  }
  .single-menu-page .single-service__facts dd {
    font-size: 14px;
    line-height: 1.72;
    min-width: 0;
    word-break: normal;
    overflow-wrap: break-word;
  }
  .single-menu-page .single-service__fact-unit { white-space: nowrap; }
  .single-menu-page .single-service__facts > div:nth-child(3) dd {
    color: var(--color-deep);
    font-family: var(--font-serif);
    font-size: 17px;
    line-height: 1.35;
  }
  .single-menu-page .single-service__details {
    margin-top: 34px;
    border-top: 1px solid rgba(44, 38, 33, .22);
    border-bottom: 1px solid rgba(44, 38, 33, .22);
  }
  .single-menu-page .single-service__details > summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    color: var(--color-deep);
    font-size: 12px;
    letter-spacing: .08em;
    list-style: none;
  }
  .single-menu-page .single-service__details > summary::-webkit-details-marker { display: none; }
  .single-menu-page .single-service__details > summary i::before { content: '+'; font-style: normal; font-size: 18px; }
  .single-menu-page .single-service__details[open] > summary i::before { content: '−'; }
  .single-menu-page .single-service__details > summary:focus-visible,
  .single-menu-page .single-service__action a:focus-visible { outline: 2px solid var(--color-deep); outline-offset: 4px; }
  .single-menu-page .single-service__details-content {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 8px 0 24px;
  }
  .single-menu-page .single-service__details-content > div > p {
    margin-bottom: 12px;
    font-size: 10px;
  }
  .single-menu-page .single-service__details li {
    padding-top: 9px;
    padding-bottom: 9px;
    font-size: 14px;
    line-height: 1.68;
  }
  .single-menu-page .single-service__action {
    margin-top: 38px;
  }
  .single-menu-page .single-service__action-buttons > .button {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .single-menu-page .single-service__action-buttons > .button::after { content: '→'; margin-left: 18px; }
  .single-menu-page .single-service__action-buttons > .button:active::after { transform: translateX(4px); }
  .single-menu-page .single-service__bridge {
    margin-top: 46px;
  }

  /* Existing booking, FAQ and the dark Labo decision area retain their roles. */
  .single-menu-page .single-menu-photo-path,
  .single-menu-page .single-menu-labo,
  .single-menu-page .single-menu-flow,
  .single-menu-page .single-menu-faq,
  .single-menu-page .single-menu-cta {
    margin-top: 0;
  }
}

@media (max-width: 390px) {
  .single-menu-page { --v215-gutter: 24px; }
}

/* ===== SOURCE: v218-photography-art-direction.css ===== */
/* v0.2.219 — Photography is a portfolio first, with facts kept quiet and legible. */
.brand-visual-page .brand-visual-audiences { display: none; }

@media (max-width: 900px) {
  .brand-visual-page .brand-visual-services { padding-top: 68px; padding-bottom: 64px; }
  .brand-visual-page .brand-visual-services__grid { gap: 0; }
  .brand-visual-page .brand-visual-service { padding-top: 25px; padding-bottom: 27px; }
  .brand-visual-page .brand-visual-service div,
  .brand-visual-page .brand-visual-price__item > p,
  .brand-visual-page .brand-visual-process__grid article > p { font-size: 14px; line-height: 1.8; }
  .brand-visual-page .brand-visual-price { padding-top: 70px; padding-bottom: 76px; }
  .brand-visual-page .brand-visual-price__item strong { font-size: clamp(23px, 6vw, 27px); }
  .brand-visual-page .brand-visual-price__item > p,
  .brand-visual-page .brand-visual-price__note { color: rgba(44,38,33,.74); }

  .brand-visual-page .selected-visuals { padding-top: 78px; padding-bottom: 84px; }
  .brand-visual-page .selected-visuals__stage { overflow: visible; padding: 0; }
  .brand-visual-page .selected-visuals__head { margin-bottom: 40px; }
  .brand-visual-page .selected-visuals__track--all { display: block; }
  .brand-visual-page .selected-visuals__track--desktop { display: none; }
  .brand-visual-page .selected-visuals__float,
  .brand-visual-page .selected-visuals__float:nth-child(n+7) { display: block; width: auto; margin: 0 0 56px; transform: none !important; }
  .brand-visual-page .selected-visuals__item--hero { width: calc(100% - 28px); margin-left: 28px; margin-bottom: 72px; }
  .brand-visual-page .selected-visuals__item--portrait { width: 72%; margin-left: auto; margin-bottom: 60px; }
  .brand-visual-page .selected-visuals__item--wide { width: 100%; margin-bottom: 76px; }
  .brand-visual-page .selected-visuals__item--pair-a { width: 70%; margin-right: auto; margin-bottom: 34px; }
  .brand-visual-page .selected-visuals__item--pair-b { width: 78%; margin-left: auto; margin-bottom: 74px; }
  .brand-visual-page .selected-visuals__item--offset { width: 68%; margin-right: auto; margin-bottom: 62px; }
  .brand-visual-page .selected-visuals__item--large { width: calc(100% - 28px); margin-left: 28px; margin-bottom: 82px; }
  .brand-visual-page .selected-visuals__item--quiet { width: 62%; margin-left: auto; margin-right: auto; margin-bottom: 70px; }
  .brand-visual-page .selected-visuals__item--feature { width: 88%; margin-left: auto; margin-bottom: 78px; }
  .brand-visual-page .selected-visuals__item--closing { width: calc(100% - 28px); margin-right: 28px; margin-bottom: 0; }
  .brand-visual-page .selected-visuals__frame,
  .brand-visual-page .selected-visuals__frame img { display: block; width: 100%; height: auto; }
  .brand-visual-page .brand-visual-personal-photo { padding-top: 58px; padding-bottom: 60px; }
  .brand-visual-page .brand-visual-personal-photo__head { gap: 22px; }
  .brand-visual-page .personal-photo-editorial { gap: 40px; }
  .brand-visual-page .personal-photo-feature__details { padding-left: 28px; padding-right: 28px; }
  .brand-visual-page .personal-photo-feature__eyebrow { font-size: 11px; }

  .brand-visual-page .brand-visual-process { padding-top: 70px; padding-bottom: 72px; }
  .brand-visual-page .brand-visual-process__grid { gap: 0; }
  .brand-visual-page .brand-visual-process__grid article { padding: 20px 0 22px; }
  .brand-visual-page .brand-visual-cta .button { min-height: 48px; }
}

@media (min-width: 901px) {
  .brand-visual-page .selected-visuals__track--mobile { display: none; }
  .brand-visual-page .selected-visuals__track--all { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(28px, 4vw, 72px); align-items: start; }
  .brand-visual-page .selected-visuals__float { width: auto; margin: 0; }
  .brand-visual-page .selected-visuals__item--hero { grid-column: 1 / span 8; }
  .brand-visual-page .selected-visuals__item--portrait { grid-column: 9 / span 4; margin-top: 18vw; }
  .brand-visual-page .selected-visuals__item--wide { grid-column: 3 / span 7; }
  .brand-visual-page .selected-visuals__item--pair-a { grid-column: 1 / span 5; margin-top: 8vw; }
  .brand-visual-page .selected-visuals__item--pair-b { grid-column: 7 / span 6; }
  .brand-visual-page .selected-visuals__item--offset { grid-column: 2 / span 5; }
  .brand-visual-page .selected-visuals__item--large { grid-column: 6 / span 7; }
  .brand-visual-page .selected-visuals__item--quiet { grid-column: 2 / span 4; }
  .brand-visual-page .selected-visuals__item--feature { grid-column: 7 / span 6; }
  .brand-visual-page .selected-visuals__item--closing { grid-column: 2 / span 8; }
  .brand-visual-page .selected-visuals__frame,
  .brand-visual-page .selected-visuals__frame img { display: block; width: 100%; height: auto; }
}

/* ===== SOURCE: v232-mobile-editorial-index.css ===== */
/* =========================================================
   LA PAIX MOBILE EDITORIAL INDEX — v0.2.232
   A single, JS-enhanced mobile index sourced from the editable
   WordPress primary menu. Desktop navigation remains untouched.
========================================================= */

.editorial-index { display: none; }

@media (max-width: 900px) {
  /* Progressive fallback: do not let the historical mobile menu's hidden
     state leave every route without navigation while this enhancement fails. */
  html:not(.has-editorial-index-ready) .site-header {
    position: relative !important;
    display: block !important;
    height: auto !important;
  }

  html:not(.has-editorial-index-ready) .site-nav[data-editorial-index-source] {
    position: static !important;
    display: block !important;
    width: 100% !important;
    box-sizing: border-box;
    margin: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 20px var(--mobile-gutter, 28px) 28px !important;
    color: #1d1b19 !important;
    background: #f7f4ee !important;
    border-bottom: 1px solid rgba(29, 27, 25, .14) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  html:not(.has-editorial-index-ready) .site-nav[data-editorial-index-source] a {
    color: inherit !important;
  }

  html.has-editorial-index-ready .site-nav[data-editorial-index-source] {
    display: none !important;
  }

  body.has-editorial-index-lock {
    overflow: hidden !important;
  }

  .editorial-index {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: block;
    width: 100%;
    height: 100%;
    color: #f3f0e8;
    background: #151411;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 200ms ease, visibility 0s linear 200ms;
  }

  .editorial-index.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
  }

  .editorial-index__scroll {
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding: max(18px, env(safe-area-inset-top)) 0 max(30px, env(safe-area-inset-bottom));
  }

  .editorial-index__bar,
  .editorial-index__content {
    width: min(100%, 680px);
    margin: 0 auto;
    padding-right: var(--mobile-gutter, 28px);
    padding-left: var(--mobile-gutter, 28px);
  }

  .editorial-index__bar {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(243, 240, 232, .22);
  }

  .editorial-index__brand {
    display: inline-flex;
    max-width: min(48vw, 200px);
    align-items: center;
    color: inherit;
    line-height: 1;
  }

  .editorial-index__brand img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 24px;
    filter: brightness(0) invert(1);
  }

  .editorial-index__brand:not(:has(img)) {
    font-family: var(--font-latin-display, "Times New Roman", serif);
    font-size: 24px;
    letter-spacing: .08em;
  }

  .editorial-index__close,
  .editorial-index__back,
  .editorial-index__service-toggle {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
  }

  .editorial-index__close {
    min-width: 48px;
    min-height: 48px;
    margin-right: -12px;
    padding: 0 12px;
    font: 500 10px/1 var(--font-latin-ui, Arial, sans-serif);
    letter-spacing: .2em;
    text-align: right;
  }

  .editorial-index__content {
    position: relative;
    min-height: calc(100% - 48px);
    padding-top: clamp(34px, 7svh, 60px);
  }

  .editorial-index__view {
    transition: opacity 210ms ease, transform 210ms cubic-bezier(.2, .65, .25, 1);
  }

  .editorial-index__main.is-hidden {
    position: absolute;
    width: calc(100% - (var(--mobile-gutter, 28px) * 2));
    opacity: 0;
    pointer-events: none;
    transform: translateY(-9px);
  }

  .editorial-index__service {
    display: none;
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
  }

  .editorial-index__service.is-active {
    display: block;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .editorial-index__eyebrow {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin: 0 0 clamp(24px, 4svh, 36px);
    color: rgba(243, 240, 232, .62);
    font: 500 10.5px/1.2 var(--font-latin-ui, Arial, sans-serif);
    letter-spacing: .19em;
  }

  .editorial-index__count {
    color: rgba(243, 240, 232, .48);
    font-size: 10px;
    letter-spacing: .13em;
  }

  .editorial-index__list,
  .editorial-index__service-list {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .editorial-index__row {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 48px;
    min-height: 64px;
    align-items: center;
  }

  .editorial-index__row.is-contact {
    min-height: 76px;
    margin-top: clamp(24px, 4svh, 38px);
    border-top: 1px solid rgba(243, 240, 232, .22);
  }

  .editorial-index__chapter {
    align-self: start;
    padding-top: 20px;
    color: rgba(243, 240, 232, .58);
    font: 400 12px/1 var(--font-latin-ui, Arial, sans-serif);
    letter-spacing: .11em;
  }

  .editorial-index__link,
  .editorial-index__service-link {
    display: flex;
    min-height: 58px;
    flex-direction: column;
    justify-content: center;
    color: inherit;
    text-decoration: none;
  }

  .editorial-index__link-en {
    display: block;
    font-family: var(--font-latin-display, "Times New Roman", serif);
    font-size: clamp(19px, 5.35vw, 22px);
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.01em;
  }

  .editorial-index__link-ja {
    display: block;
    margin-top: 6px;
    color: rgba(243, 240, 232, .68);
    font-family: var(--font-ja-serif, "Yu Mincho", serif);
    font-size: 11.5px;
    line-height: 1.45;
    letter-spacing: .055em;
  }

  .editorial-index__row.is-current .editorial-index__chapter,
  .editorial-index__row.is-current .editorial-index__link-en {
    color: #fffdf7;
  }

  .editorial-index__row.is-current .editorial-index__chapter::after {
    content: "—";
    display: block;
    margin-top: 7px;
    font-size: 12px;
  }

  .editorial-index__service-toggle {
    width: 48px;
    height: 48px;
    padding: 0;
    color: rgba(243, 240, 232, .84);
    font: 300 25px/1 var(--font-latin-display, "Times New Roman", serif);
  }

  .editorial-index__service-toggle:focus-visible,
  .editorial-index__close:focus-visible,
  .editorial-index__back:focus-visible,
  .editorial-index a:focus-visible {
    outline: 1px solid rgba(255, 253, 247, .92);
    outline-offset: 4px;
  }

  .editorial-index__service-header {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin: 0 0 clamp(26px, 5svh, 42px);
  }

  .editorial-index__back {
    width: 48px;
    height: 48px;
    padding: 0;
    font: 400 20px/1 var(--font-latin-display, "Times New Roman", serif);
  }

  .editorial-index__service-title {
    display: grid;
    gap: 6px;
  }

  .editorial-index__service-index-label {
    color: rgba(243, 240, 232, .56);
    font: 500 10px/1.2 var(--font-latin-ui, Arial, sans-serif);
    letter-spacing: .18em;
  }

  .editorial-index__service-parent {
    color: inherit;
    font-family: var(--font-latin-display, "Times New Roman", serif);
    font-size: 22px;
    letter-spacing: -.01em;
    text-decoration: none;
  }

  .editorial-index__service-item {
    min-height: 66px;
    padding: 11px 0;
  }

  .editorial-index__service-primary {
    display: block;
    font-family: var(--font-ja-serif, "Yu Mincho", serif);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.42;
    letter-spacing: .045em;
  }

  .editorial-index__service-primary.is-latin {
    font-family: var(--font-latin-display, "Times New Roman", serif);
    font-size: 18px;
    line-height: 1.08;
    letter-spacing: -.01em;
  }

  .editorial-index__service-support {
    display: block;
    margin-top: 5px;
    color: rgba(243, 240, 232, .68);
    font-family: var(--font-latin-ui, Arial, sans-serif);
    font-size: 10.5px;
    line-height: 1.35;
    letter-spacing: .12em;
  }

  .editorial-index.is-opening .editorial-index__main:not(.is-hidden) .editorial-index__row,
  .editorial-index.is-opening .editorial-index__service.is-active .editorial-index__service-item {
    animation: editorial-index-entry 220ms both cubic-bezier(.2, .65, .25, 1);
    animation-delay: min(calc(var(--editorial-index-order, 0) * 28ms), 280ms);
  }

  @keyframes editorial-index-entry {
    from { opacity: 0; transform: translateY(9px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

@media (max-width: 900px) and (max-height: 720px) {
  .editorial-index__content { padding-top: 28px; }
  .editorial-index__eyebrow { margin-bottom: 20px; }
  .editorial-index__row { min-height: 58px; }
  .editorial-index__link,
  .editorial-index__service-link { min-height: 54px; }
  .editorial-index__link-ja { margin-top: 4px; }
}

@media (prefers-reduced-motion: reduce) {
  .editorial-index,
  .editorial-index__view,
  .editorial-index.is-opening .editorial-index__main:not(.is-hidden) .editorial-index__row,
  .editorial-index.is-opening .editorial-index__service.is-active .editorial-index__service-item {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* ===== SOURCE: v235-navigation-contract-signature.css ===== */
/* =========================================================
   LA PAIX — v0.2.235 navigation contract / business cue
   ---------------------------------------------------------
   Fragments identify arrivals without changing authored copy or media.
========================================================= */

@media (min-width: 901px) {
  :is(#contact-form, #visual-services, #selected-works, #personal-photo, #case-01, #personal-branding, #corporate, #brand-visual, .faq-group) {
    scroll-margin-top: calc(var(--header-height, 76px) + 28px);
  }
  .lapaix-page-business :is(#business-scope, #business-service-corporate, #business-service-personal, #business-service-brand-site, #business-service-visual) {
    scroll-margin-top: calc(var(--header-height, 76px) + 28px);
  }
}

/* CSS-only arrival cue: it changes no layout property and owns no runtime. */
.lapaix-page-business .business-service { position: relative; }
.lapaix-page-business .business-service::before {
  position: absolute;
  top: -1px;
  left: 0;
  width: 0;
  height: 1px;
  background: rgba(144, 119, 93, .82);
  content: '';
  pointer-events: none;
}
.lapaix-page-business .business-service:target::before {
  animation: lapaix-business-anchor-rule 500ms cubic-bezier(.22, 1, .36, 1) both;
}
@keyframes lapaix-business-anchor-rule { to { width: 100%; } }

/* Existing desktop .js-reveal supplies the one-shot state. Touch widths retain
   v177's immediate, paint-stable media behavior. */
@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
  html.has-js .lapaix-page-business .business-team__image.js-reveal {
    clip-path: inset(0 50% 0 50%);
    opacity: 1;
    transform: none;
    transition: clip-path 700ms cubic-bezier(.22, 1, .36, 1);
    will-change: clip-path;
  }
  html.has-js .lapaix-page-business .business-team__image.js-reveal.is-visible {
    clip-path: inset(0 0 0 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lapaix-page-business .business-service:target::before { width: 100%; animation: none; }
}

@media (max-width: 900px) {
  /* JS adds the ready class only after its one-element observer exists. The
     original image remains fully visible when JavaScript is unavailable. */
  .lapaix-page-business .business-team__image.is-aperture-ready > img {
    position: relative;
    z-index: 1;
  }
  .lapaix-page-business .business-team__image.is-aperture-ready::before,
  .lapaix-page-business .business-team__image.is-aperture-ready::after {
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    width: 50%;
    background: var(--color-paper, #f4efe7);
    content: '';
    pointer-events: none;
    transform: scaleX(1);
  }
  .lapaix-page-business .business-team__image.is-aperture-ready::before {
    left: 0;
    transform-origin: left center;
  }
  .lapaix-page-business .business-team__image.is-aperture-ready::after {
    right: 0;
    transform-origin: right center;
  }
  .lapaix-page-business .business-team__image.is-aperture-opening::before,
  .lapaix-page-business .business-team__image.is-aperture-opening::after {
    will-change: transform;
    transition: transform 690ms cubic-bezier(.22, 1, .36, 1);
  }
  .lapaix-page-business .business-team__image.is-aperture-open::before,
  .lapaix-page-business .business-team__image.is-aperture-open::after {
    transform: scaleX(0);
  }
  .mobile-back-to-top {
    width: 35px;
    height: 35px;
    background: rgba(255, 253, 248, .90);
    font-size: 15px;
  }
  body.has-editorial-index-lock .mobile-back-to-top {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

/* ===== SOURCE: v270-responsive-copy-guard.css ===== */
/*
 * v0.2.270 — responsive-copy visibility guard
 *
 * Mobile composition rules make these two parent wrappers block-level for
 * authored Japanese lines. Keep that geometry, but restore the paired-copy
 * contract: only the mobile span is visible at mobile widths.
 */
@media (max-width:900px) {
  .brand-site-page .brand-site-process .section-title > .responsive-copy--desktop,
  .transformation-editorial__after-grid .transformation-editorial__story .mobile-copy-precise > .responsive-copy--desktop {
    display:none !important;
  }
}

/* ===== SOURCE: v271-pc-japanese-type-final.css ===== */
/*
 * v0.2.271 — PC Japanese composition final
 *
 * Desktop-only corrections for verified phrase splits. Saved WordPress copy,
 * mobile compositions, image geometry and motion remain untouched.
 */
@media (min-width: 901px) {
  /* PERSONAL: only two routes remain; neutralize the retired third-card grid. */
  .personal-page .personal-routes__grid--editorial {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .personal-page .personal-routes__grid--editorial .personal-route,
  .personal-page .personal-routes__grid--editorial .personal-route:first-child,
  .personal-page .personal-routes__grid--editorial .personal-route:last-child {
    padding-inline: clamp(42px, 4.4vw, 70px);
  }
  .personal-page .personal-routes__grid--editorial .personal-route:first-child h3,
  .personal-page .personal-routes__grid--editorial .personal-route:first-child > div {
    max-width: 100%;
  }

  /* WORKS: the precise mobile composition is intentionally mobile-only. */
  .transformation-editorial__after-grid .transformation-editorial__story .mobile-copy-precise > .responsive-copy--mobile {
    display: none !important;
  }

  /* BUSINESS: widen only the text-led half of each asymmetric editorial spread. */
  .lapaix-page-business .business-service--corporate {
    grid-template-columns: minmax(0, 1.08fr) minmax(440px, .92fr);
  }
  .lapaix-page-business .business-service--personal {
    grid-template-columns: minmax(430px, .92fr) minmax(0, 1.08fr);
  }
  .lapaix-page-business .business-service--brand-site {
    grid-template-columns: minmax(410px, .84fr) minmax(0, 1.16fr);
  }
  .lapaix-page-business .business-service--visual {
    grid-template-columns: minmax(0, 1.04fr) minmax(430px, .96fr);
  }
  .lapaix-page-business .business-service__content h3,
  .lapaix-page-business .business-service__content > p:not(.section-label) {
    overflow-wrap: normal;
    word-break: keep-all;
  }
  .lapaix-page-business .business-service__content h3 .mobile-only-break {
    display: initial;
  }
  .lapaix-page-business .business-service--brand-site .business-service__content h3 {
    font-size: clamp(31px, 3.15vw, 52px);
  }

  /*
   * BML: authored desktop phrases need a real editorial measure, rather than
   * inheriting the legacy line-level fail-safe that rebreaks Japanese text.
   * These are the three affected headings only; mobile remains untouched.
   */
  .labo-page--v248 .labo-start .labo-editorial-head {
    grid-template-columns: minmax(0, 1.3fr) minmax(220px, .45fr);
    gap: clamp(48px, 5vw, 80px);
  }
  .labo-page--v248 .labo-start .labo-editorial-head > .section-label {
    grid-column: 1;
    grid-row: 1;
  }
  .labo-page--v248 .labo-start .labo-editorial-head > .section-title {
    grid-column: 1;
    grid-row: 2;
    font-size: clamp(34px, 3.4vw, 54px);
  }
  .labo-page--v248 .labo-start .labo-editorial-head > .labo-editorial-head__body {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: end;
  }
  .labo-page--v248 .labo-one-line > .labo-shell > .labo-editorial-head {
    grid-template-columns: minmax(0, 1.3fr) minmax(220px, .45fr);
    gap: clamp(48px, 5vw, 80px);
  }
  .labo-page--v248 .labo-one-line > .labo-shell > .labo-editorial-head .section-title {
    font-size: clamp(34px, 3.4vw, 54px);
  }
  .labo-page--v248 .labo-start .labo-editorial-head .section-title .responsive-copy__line,
  .labo-page--v248 .labo-one-line > .labo-shell > .labo-editorial-head .section-title .responsive-copy__line,
  .labo-page--v248 .labo-cta .section-title .responsive-copy__line,
  .home-editorial-about h2 .responsive-copy__line {
    display: inline-block !important;
    max-width: 100%;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
  }
  .labo-page--v248 .labo-cta__inner { max-width: 920px !important; }
  .labo-page--v248 .labo-cta .section-title { font-size: clamp(34px, 3.2vw, 48px); }

  /* BML WHY: retain the editorial asymmetry without constraining the thesis to a narrow rail. */
  .labo-page--v248 .labo-why .labo-editorial-head {
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, .7fr);
    gap: clamp(52px, 6vw, 92px);
  }
  .labo-page--v248 .labo-why .labo-editorial-head > .section-label {
    grid-column: 1;
    grid-row: 1;
  }
  .labo-page--v248 .labo-why .labo-editorial-head > .section-title {
    grid-column: 1;
    grid-row: 2;
    max-width: 860px;
    font-size: clamp(34px, 3.35vw, 54px);
    line-height: 1.42;
  }
  .labo-page--v248 .labo-why .labo-editorial-head > .labo-editorial-head__body {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: end;
  }
  .labo-page--v248 .labo-why .section-title .responsive-copy__line,
  .labo-page--v248 .labo-change__results > .section-title .responsive-copy__line {
    display: inline-block !important;
    max-width: 100%;
    overflow-wrap: normal !important;
    word-break: keep-all !important;
  }

  /* BML RESULT: hold the authored two-line thesis at a readable desktop measure. */
  .labo-page--v248 .labo-change__results > .section-title {
    max-width: 920px;
    font-size: clamp(34px, 3.6vw, 54px);
    line-height: 1.42;
  }

  /* BML WHAT CHANGES: six peer outcomes share one text hierarchy on desktop. */
  .labo-page--v248 .labo-change__result,
  .labo-page--v248 .labo-change__result--2,
  .labo-page--v248 .labo-change__result--4,
  .labo-page--v248 .labo-change__result--5 {
    font-family: var(--font-sans);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.8;
  }

  /* TOP ABOUT: the default copy has a deliberate desktop two-line composition. */
  .home-editorial-about h2 { max-width: none; }

  /* Single-session facts: units must never detach from their number. */
  .single-menu-page .single-service__facts dd .single-service__fact-unit { white-space: nowrap; }

  /* PHOTOGRAPHY: the hero is authored as three desktop thought units; item 02 stays whole. */
  .brand-visual-page .brand-visual-process article:nth-child(2) h3 {
    white-space: nowrap;
    word-break: keep-all;
  }
  .brand-visual-page .brand-visual-process__grid article {
    padding-right: clamp(16px, 1.75vw, 28px);
  }
  .brand-visual-page .brand-visual-process__grid article + article {
    padding-left: clamp(16px, 1.75vw, 28px);
  }
  .brand-visual-page .brand-visual-process__grid article h3 {
    max-width: 100%;
    font-size: clamp(25px, 1.9vw, 31px);
    line-height: 1.5;
    letter-spacing: 0;
    overflow-wrap: normal;
    word-break: keep-all;
  }

  /* ABOUT PEOPLE: close only the internal leading of the authored three-line title. */
  .about-page--portrait .about-portrait-people__intro .about-portrait-title {
    line-height: 1.22;
  }
  .about-page--portrait .about-portrait-people__intro .about-portrait-title > .responsive-copy--desktop > br {
    display: none;
  }

  /* BRAND SITE: keep the editorial grid while giving the price lead and FAQ questions their necessary measure. */
  .brand-site-page .brand-site-price .brand-site-section-head--split {
    grid-template-columns: minmax(0, .84fr) minmax(520px, 1.16fr);
  }
  .brand-site-page .brand-site-faq__inner {
    grid-template-columns: minmax(0, .72fr) minmax(560px, 1.08fr);
  }
  .brand-site-page .brand-site-faq__item summary strong {
    overflow-wrap: normal;
    word-break: keep-all;
  }
}

/* BRAND VISUAL: the final grid row owns the single divider before its note. */
.brand-visual-page .brand-visual-price__note {
  margin-top: 34px;
  padding-top: 0;
  border-top: 0;
}
@media (max-width: 900px) {
  .brand-visual-page .brand-visual-price__note {
    margin-top: 26px;
  }
}

/* ABOUT: only ultra-wide desktop receives the additional readable measure. */
@media (min-width: 1600px) {
  .about-page--portrait .about-person--aya .about-person__copy { max-width: 540px; }
}

/* ===== SOURCE: v272-photo-anchor-type-final.css ===== */
/* v0.2.272 — PC photo parity, stable anchors, and final editorial type repair. */
@media (min-width: 901px) {
  /* BML SUPPORT: label and title share the broad editorial reading field. */
  .labo-page--v248 .labo-support > .labo-shell > .labo-editorial-head {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }
  .labo-page--v248 .labo-support > .labo-shell > .labo-editorial-head .section-title {
    max-width: 820px;
    font-size: clamp(34px, 3.4vw, 54px);
    line-height: 1.42;
  }
  .labo-page--v248 .labo-support > .labo-shell > .labo-editorial-head .section-title .responsive-copy__line {
    display: inline-block;
    max-width: 100%;
    overflow-wrap: normal;
    word-break: keep-all;
  }

  /* BML START and WHAT CHANGES: each numbered outcome is a peer. */
  .labo-page--v248 .labo-start__item,
  .labo-page--v248 .labo-start__item--1,
  .labo-page--v248 .labo-start__item--2,
  .labo-page--v248 .labo-start__item--4 {
    color: var(--bml-ink);
    font-family: var(--font-sans);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
  }
  .labo-page--v248 .labo-change__result,
  .labo-page--v248 .labo-change__result--2,
  .labo-page--v248 .labo-change__result--4,
  .labo-page--v248 .labo-change__result--5 {
    color: var(--bml-ink);
    font-family: var(--font-sans);
    font-size: 15px;
    font-weight: 400;
    line-height: 1.8;
  }

  /* ABOUT: responsive-copy lines already own line breaks; suppress their extra desktop <br>. */
  .about-page--portrait .about-portrait-company__copy .about-portrait-title {
    line-height: 1.24;
  }
  .about-page--portrait .about-portrait-together .about-together__copy .about-portrait-title {
    line-height: 1.24;
  }
  .about-page--portrait .about-portrait-message .about-message__title {
    line-height: 1.24;
  }
  .about-page--portrait .about-portrait-company__copy .about-portrait-title > .responsive-copy--desktop > br,
  .about-page--portrait .about-together__copy .about-portrait-title > .responsive-copy--desktop > br,
  .about-page--portrait .about-message__title > .responsive-copy--desktop > br {
    display: none;
  }
}

/* ===== SOURCE: v276-footer-privacy.css ===== */
/* v0.2.276 — the privacy policy remains a quiet legal detail beside the footer copyright. */
.site-footer__meta {
  display: grid;
  gap: 5px;
  justify-self: end;
  justify-items: end;
}

.site-footer__privacy {
  color: rgba(255,255,255,.48);
  font-family: var(--font-latin-ui);
  font-size: 10px;
  line-height: 1.6;
  letter-spacing: .04em;
  text-decoration: none;
}

.site-footer__privacy:hover { color: rgba(255,255,255,.78); }

@media (max-width: 900px) {
  .site-footer__meta {
    order: 4;
    justify-self: start;
    justify-items: start;
  }

  .site-footer__meta .site-footer__copyright { order: 0; }
  .site-footer__meta .site-footer__privacy { order: 1; }
}

/* ===== SOURCE: v279-instagram-links.css ===== */
/* v0.2.279 — quiet Instagram links in the global footer and AYA profile. */
.site-footer__links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.site-footer__instagram {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  color: rgba(255,255,255,.54);
  text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}

.site-footer__instagram svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.site-footer__instagram .site-footer__instagram-dot { fill: currentColor; stroke: none; }
.site-footer__instagram:hover { color: rgba(255,255,255,.86); transform: translateY(-1px); }
.site-footer__instagram:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }

.about-page--portrait .about-person__instagram {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 5px;
  color: #655d55;
  font: 500 10px/1.5 var(--font-latin-ui);
  letter-spacing: .08em;
  text-decoration: none;
  border-bottom: 1px solid rgba(74,68,61,.28);
  padding-bottom: 5px;
}

.about-page--portrait .about-person__instagram i {
  font-style: normal;
  font-size: 12px;
  line-height: 1;
  transition: transform .2s ease;
}

.about-page--portrait .about-person__instagram:hover { color: #2f2b27; border-bottom-color: rgba(47,43,39,.62); }
.about-page--portrait .about-person__instagram:hover i { transform: translate(2px,-2px); }
.about-page--portrait .about-person__instagram:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }

@media (max-width: 900px) {
  .site-footer__links { justify-content: flex-start; gap: 11px; }
  .site-footer__instagram { order: 2; width: 30px; height: 30px; }
  .site-footer__instagram svg { width: 18px; height: 18px; }
  .about-page--portrait .about-person__instagram {
    margin-top: 4px;
    font-size: 10px;
    line-height: 1.6;
    letter-spacing: .07em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer__instagram,
  .about-page--portrait .about-person__instagram i { transition: none; }
}

/* ===== SOURCE: v286-photography-film-type.css ===== */
/* v0.2.286 — PHOTOGRAPHY moving-type prototype.
   The existing TOP film assets are reused. A paper SVG mask punches PHOTO /
   GRAPHY out of the surface, so the film is visible only inside the letters. */
.home .top-paths__item--photography {
  isolation:isolate;
}
.home .top-paths__item--photography .top-paths__photography-film {
  position:absolute;
  z-index:1;
  overflow:hidden;
  margin:0;
  background:#f5f3ef;
}
.home .top-paths__photography-film-still,
.home .top-paths__photography-film-video,
.home .top-paths__photography-film-mask {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
.home .top-paths__photography-film-still {
  z-index:0;
}
.home .top-paths__photography-film-still img,
.home .top-paths__photography-film-video {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.home .top-paths__photography-film-video {
  z-index:1;
  opacity:0;
  transition:opacity .32s ease;
}
.home .top-paths__photography-film.is-playing .top-paths__photography-film-video {
  opacity:1;
}
.home .top-paths__photography-film-mask {
  z-index:2;
  pointer-events:none;
}
.home .top-paths__photography-film-word {
  font-family:"Bodoni 72","Didot","Bodoni MT","Times New Roman",serif;
  font-size:300px;
  font-weight:400;
  letter-spacing:-18px;
}
.home .top-paths__photography-film-word--graphy {
  letter-spacing:-22px;
}
.home .top-paths__item--photography .top-paths__number,
.home .top-paths__item--photography .top-paths__copy,
.home .top-paths__item--photography .top-paths__cta {
  z-index:3 !important;
}

@media (min-width:901px) {
  .home .top-paths a.top-paths__item--photography {
    min-height:clamp(650px,48vw,760px);
    background:#f5f3ef !important;
  }
  .home .top-paths__item--photography .top-paths__photography-film {
    inline-size:min(92%,1380px) !important;
    block-size:min(76%,620px);
    inset:50% auto auto 50% !important;
    transform:translate(-50%,-50%);
  }
  .home .top-paths__item--photography .top-paths__copy {
    top:auto !important;
    right:clamp(52px,5vw,84px) !important;
    bottom:clamp(64px,5.4vw,92px) !important;
  }
  .home .top-paths__item--photography .top-paths__cta {
    left:clamp(48px,5vw,80px) !important;
    bottom:clamp(62px,6vw,92px) !important;
  }
}

@media (max-width:900px) {
  .home .top-paths a.top-paths__item--photography {
    min-height:clamp(650px,172vw,735px);
    padding:28px;
    background:#f5f3ef !important;
  }
  .home .top-paths__item--photography .top-paths__photography-film {
    inline-size:calc(100% - 32px) !important;
    block-size:clamp(390px,112vw,470px);
    inset:46% auto auto 50% !important;
    transform:translate(-50%,-50%);
  }
  .home .top-paths__photography-film-mask {
    transform:scale(1.08);
    transform-origin:center;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__copy {
    right:28px !important;
    bottom:96px !important;
  }
  body.home .top-paths a.top-paths__item--photography .top-paths__cta {
    left:28px !important;
    bottom:31px !important;
  }
}

@media (prefers-reduced-motion:reduce) {
  .home .top-paths__photography-film-video {
    display:none !important;
  }
}

/* ===== SOURCE: v287-mobile-photography-full-film.css ===== */
/* v0.2.287 — mobile PHOTOGRAPHY full-height film.
   Desktop keeps the approved v286 moving-type mask unchanged. */
.home .top-paths__photography-mobile-type {
  display:none;
}

@media (max-width:900px) {
  .home .top-paths a.top-paths__item--photography {
    position:relative;
    min-height:clamp(690px,182vw,790px);
    overflow:hidden;
    padding:28px;
    background:#111 !important;
  }

  /* One uninterrupted film layer from the section's top edge to bottom edge. */
  .home .top-paths__item--photography .top-paths__photography-film {
    inset:0 !important;
    inline-size:100% !important;
    block-size:100% !important;
    transform:none !important;
    background:#111;
  }

  .home .top-paths__photography-film-still,
  .home .top-paths__photography-film-video {
    inset:0;
    width:100%;
    height:100%;
  }

  .home .top-paths__photography-film-still img,
  .home .top-paths__photography-film-video {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }

  /* The desktop punch-out mask is not used on mobile. */
  .home .top-paths__photography-film-mask {
    display:none !important;
  }

  /* Gentle contrast layer; it does not interrupt or crop the moving image. */
  .home .top-paths__photography-film::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    background:linear-gradient(
      180deg,
      rgba(0,0,0,.08) 0%,
      rgba(0,0,0,.02) 42%,
      rgba(0,0,0,.22) 100%
    );
  }

  /* Reference-style large Bodoni/Didot typography over the single film. */
  .home .top-paths__photography-mobile-type {
    position:absolute;
    inset:72px 10px auto 10px;
    z-index:3;
    display:flex;
    flex-direction:column;
    align-items:center;
    color:#f5f3ef;
    font-family:"Bodoni 72","Didot","Bodoni MT","Times New Roman",serif;
    font-size:clamp(92px,27.5vw,124px);
    font-weight:400;
    line-height:.79;
    letter-spacing:-.075em;
    white-space:nowrap;
    pointer-events:none;
  }

  .home .top-paths__photography-mobile-type > span {
    display:block;
  }

  .home .top-paths__photography-mobile-type > span + span {
    margin-top:.08em;
  }

  /* Keep the functional information readable over changing film frames. */
  .home .top-paths__item--photography .top-paths__number,
  .home .top-paths__item--photography .top-paths__copy,
  .home .top-paths__item--photography .top-paths__cta {
    color:#f5f3ef !important;
    text-shadow:0 1px 12px rgba(0,0,0,.22);
  }

  body.home .top-paths a.top-paths__item--photography .top-paths__copy {
    right:28px !important;
    bottom:102px !important;
  }

  body.home .top-paths a.top-paths__item--photography .top-paths__cta {
    left:28px !important;
    bottom:32px !important;
  }

  .home .top-paths__item--photography .top-paths__cta i,
  .home .top-paths__item--photography .top-paths__cta b {
    color:#f5f3ef !important;
    border-color:#f5f3ef !important;
  }
}

@media (max-width:390px) {
  .home .top-paths__photography-mobile-type {
    inset-top:76px;
    font-size:clamp(86px,27vw,105px);
  }
}

@media (prefers-reduced-motion:reduce) {
  /* Existing still remains as the same full-height composition. */
  .home .top-paths__photography-film-video {
    display:none !important;
  }
}

/* ===== SOURCE: v288-mobile-photography-type-fix.css ===== */
/* v0.2.288 — restore intended PHOTO / GRAPHY scale on mobile.
   main.css applies a generic 10px font to every .top-paths span; the two
   typography child spans must explicitly inherit the prototype type style. */
@media (max-width:900px) {
  .home .top-paths__photography-mobile-type > span {
    display:block;
    margin:0 !important;
    color:inherit !important;
    font:inherit !important;
    letter-spacing:inherit !important;
    line-height:inherit !important;
    white-space:inherit !important;
  }

  .home .top-paths__photography-mobile-type > span + span {
    margin-top:.08em !important;
  }
}

@media (max-width:390px) {
  .home .top-paths__photography-mobile-type {
    top:76px;
  }
}

/* ===== SOURCE: v289-mobile-photography-reference-type.css ===== */
/* v0.2.289 — mobile PHOTOGRAPHY typography reset toward the supplied reference.
   Keep the v287 full-height single-film background. Desktop remains untouched.
   PHOTO and GRAPHY are sized independently so both lines occupy almost the same
   visual width, matching the reference rather than forcing one generic size. */
@media (max-width:900px) {
  .home .top-paths__photography-mobile-type {
    inset:34px 0 auto 0 !important;
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    overflow:visible;
    color:#f5f3ef;
    font-family:"Bodoni 72 Poster","Bodoni 72","Didot","Bodoni MT","Times New Roman",serif !important;
    font-weight:400 !important;
    font-style:normal !important;
    line-height:.72 !important;
    letter-spacing:-.055em !important;
    white-space:nowrap;
  }

  .home .top-paths__photography-mobile-type > span {
    display:block;
    width:auto;
    margin:0 !important;
    padding:0 !important;
    color:inherit !important;
    font-family:inherit !important;
    font-weight:inherit !important;
    font-style:inherit !important;
    line-height:.72 !important;
    white-space:nowrap !important;
    transform-origin:50% 50%;
  }

  .home .top-paths__photography-mobile-type > span:first-child {
    font-size:clamp(118px,31.5vw,136px) !important;
    letter-spacing:-.060em !important;
    transform:scaleX(1.00);
  }

  .home .top-paths__photography-mobile-type > span:last-child {
    margin-top:-.015em !important;
    font-size:clamp(106px,28.4vw,124px) !important;
    letter-spacing:-.070em !important;
    transform:scaleX(.98);
  }
}

@media (max-width:390px) {
  .home .top-paths__photography-mobile-type {
    top:32px !important;
  }
}

/* ===== SOURCE: v290-mobile-photography-v286-type.css ===== */
/* v0.2.290 — mobile PHOTOGRAPHY: reuse the exact v286 SVG typography geometry
   over the v287 full-height film. This replaces the v287-v289 HTML approximation. */
.home .top-paths__photography-mobile-svg {
  display:none;
}

@media (max-width:900px) {
  .home .top-paths__photography-mobile-type {
    display:none !important;
  }

  .home .top-paths__photography-mobile-svg {
    position:absolute;
    top:28px;
    left:0;
    z-index:4;
    display:block;
    width:100%;
    height:auto;
    overflow:visible;
    pointer-events:none;
  }

  .home .top-paths__photography-mobile-svg .top-paths__photography-film-word {
    fill:#f5f3ef;
    font-family:"Bodoni 72","Didot","Bodoni MT","Times New Roman",serif;
    font-size:300px;
    font-weight:400;
    letter-spacing:-18px;
  }

  .home .top-paths__photography-mobile-svg .top-paths__photography-film-word--graphy {
    letter-spacing:-22px;
  }
}

@media (max-width:390px) {
  .home .top-paths__photography-mobile-svg {
    top:26px;
  }
}

/* ===== SOURCE: v291-mobile-photography-reference-layout.css ===== */
/* v0.2.291 — mobile PHOTOGRAPHY composition reset.
   The supplied reference is treated as the design source:
   a paper background, a single central visual panel, and oversized PHOTO/GRAPHY
   typography in front. Desktop remains untouched. */
@media (max-width:900px) {
  .home .top-paths a.top-paths__item--photography {
    position:relative;
    min-height:clamp(690px,182vw,795px);
    overflow:hidden;
    padding:28px;
    background:#f5f3ef !important;
  }

  /* The moving image now behaves like the reference photo area, not a full-page background. */
  .home .top-paths__item--photography .top-paths__photography-film {
    inset:36px auto auto 50% !important;
    inline-size:min(76vw,344px) !important;
    block-size:clamp(500px,132vw,590px) !important;
    transform:translateX(-50%) !important;
    overflow:hidden;
    background:#dbe1e8;
    z-index:1;
  }

  .home .top-paths__photography-film-still,
  .home .top-paths__photography-film-video {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
  }

  .home .top-paths__photography-film-still img,
  .home .top-paths__photography-film-video {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }

  /* Remove the "full film background" overlay from v287. */
  .home .top-paths__photography-film::after {
    display:none !important;
  }

  /* Keep the exact approved v290 SVG geometry, but tune the tone closer to the reference. */
  .home .top-paths__photography-mobile-svg {
    top:18px !important;
    left:0;
    z-index:4;
    display:block;
    width:100%;
    height:auto;
    pointer-events:none;
  }

  .home .top-paths__photography-mobile-svg .top-paths__photography-film-word {
    fill:#d9dee5;
    opacity:.98;
  }

  /* The HTML approximation remains hidden on mobile. */
  .home .top-paths__photography-mobile-type {
    display:none !important;
  }

  /* Place utility UI away from the hero typography. */
  .home .top-paths__item--photography .top-paths__number {
    top:26px !important;
    right:28px !important;
    left:auto !important;
    color:#8f8c86 !important;
    text-shadow:none !important;
    z-index:5 !important;
  }

  .home .top-paths__item--photography .top-paths__copy,
  .home .top-paths__item--photography .top-paths__cta {
    color:#1f1c18 !important;
    text-shadow:none !important;
    z-index:5 !important;
  }

  body.home .top-paths a.top-paths__item--photography .top-paths__copy {
    right:28px !important;
    bottom:110px !important;
    left:auto !important;
    max-width:min(56vw,220px);
    text-align:right;
  }

  body.home .top-paths a.top-paths__item--photography .top-paths__cta {
    left:28px !important;
    bottom:34px !important;
  }

  .home .top-paths__item--photography .top-paths__cta i,
  .home .top-paths__item--photography .top-paths__cta b {
    color:#1f1c18 !important;
    border-color:#1f1c18 !important;
  }
}

@media (max-width:390px) {
  .home .top-paths__photography-mobile-svg {
    top:16px !important;
  }

  .home .top-paths__item--photography .top-paths__photography-film {
    inline-size:min(78vw,320px) !important;
    block-size:clamp(470px,128vw,545px) !important;
  }
}

/* ===== SOURCE: v292-mobile-photography-full-reference.css ===== */
/* v0.2.292 — PHOTOGRAPHY mobile reference correction.
   One continuous film fills the complete visual/section, while PHOTO / GRAPHY
   sits directly on top in the v290 SVG geometry. No narrow card, no black frame. */
@media (max-width:900px) {
  .home .top-paths a.top-paths__item--photography {
    position:relative;
    min-height:clamp(690px,182vw,795px);
    overflow:hidden;
    padding:28px;
    background:#111 !important;
  }

  /* Restore one uninterrupted moving image from the top edge to the bottom edge. */
  .home .top-paths__item--photography .top-paths__photography-film {
    inset:0 !important;
    inline-size:100% !important;
    block-size:100% !important;
    transform:none !important;
    overflow:hidden;
    background:#111;
    z-index:1;
  }

  .home .top-paths__photography-film-still,
  .home .top-paths__photography-film-video {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
  }

  .home .top-paths__photography-film-still img,
  .home .top-paths__photography-film-video {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }

  /* No card/frame/secondary mask: the film itself is the reference image plane. */
  .home .top-paths__photography-film::after {
    content:"";
    display:block !important;
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    background:linear-gradient(
      180deg,
      rgba(0,0,0,.04) 0%,
      rgba(0,0,0,0) 46%,
      rgba(0,0,0,.22) 100%
    );
  }

  .home .top-paths__photography-film-mask {
    display:none !important;
  }

  /* Exact v290 SVG typography, enlarged slightly so both lines read edge-to-edge
     like the supplied reference rather than as a small title. */
  .home .top-paths__photography-mobile-svg {
    position:absolute;
    top:24px !important;
    left:-2.5% !important;
    z-index:4;
    display:block !important;
    width:105% !important;
    height:auto !important;
    overflow:visible;
    pointer-events:none;
  }

  .home .top-paths__photography-mobile-svg .top-paths__photography-film-word {
    fill:#f2f0eb !important;
    opacity:.98;
    font-family:"Bodoni 72","Didot","Bodoni MT","Times New Roman",serif !important;
    font-size:300px !important;
    font-weight:400 !important;
    letter-spacing:-18px !important;
  }

  .home .top-paths__photography-mobile-svg .top-paths__photography-film-word--graphy {
    letter-spacing:-22px !important;
  }

  .home .top-paths__photography-mobile-type {
    display:none !important;
  }

  /* Keep site utility information present, but remove the white cut-out/card feeling. */
  .home .top-paths__item--photography .top-paths__number {
    top:28px !important;
    left:28px !important;
    right:auto !important;
    color:rgba(245,243,239,.82) !important;
    text-shadow:0 1px 12px rgba(0,0,0,.18) !important;
    z-index:5 !important;
  }

  .home .top-paths__item--photography .top-paths__copy {
    right:28px !important;
    left:auto !important;
    bottom:106px !important;
    max-width:min(54vw,210px) !important;
    padding:0 !important;
    background:transparent !important;
    color:#f5f3ef !important;
    text-align:right;
    text-shadow:0 1px 14px rgba(0,0,0,.24) !important;
    z-index:5 !important;
  }

  body.home .top-paths a.top-paths__item--photography .top-paths__cta {
    left:28px !important;
    bottom:34px !important;
    color:#f5f3ef !important;
    text-shadow:0 1px 12px rgba(0,0,0,.22) !important;
    z-index:5 !important;
  }

  .home .top-paths__item--photography .top-paths__cta i,
  .home .top-paths__item--photography .top-paths__cta b {
    color:#f5f3ef !important;
    border-color:#f5f3ef !important;
  }
}

@media (max-width:390px) {
  .home .top-paths__photography-mobile-svg {
    top:22px !important;
    left:-3.5% !important;
    width:107% !important;
  }
}

/* ===== SOURCE: v293-mobile-photography-cutout.css ===== */
/* v0.2.293 — reference-faithful mobile PHOTOGRAPHY cut-out.
   One continuous HERO film runs behind the entire section.
   A paper-coloured SVG mask covers it, and PHOTO / GRAPHY are transparent holes
   through which that SAME single film is visible. */

.home .top-paths__photography-mobile-cutout {
  display:none;
}

@media (max-width:900px) {
  .home .top-paths a.top-paths__item--photography {
    position:relative;
    min-height:clamp(690px,182vw,795px);
    overflow:hidden;
    padding:28px;
    background:#f5f3ef !important;
  }

  /* The film itself remains one unbroken layer from the section top to bottom. */
  .home .top-paths__item--photography .top-paths__photography-film {
    inset:0 !important;
    inline-size:100% !important;
    block-size:100% !important;
    transform:none !important;
    overflow:hidden;
    background:#111;
    z-index:1;
  }

  .home .top-paths__photography-film-still,
  .home .top-paths__photography-film-video {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
  }

  .home .top-paths__photography-film-still img,
  .home .top-paths__photography-film-video {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }

  /* Remove all previous mobile overlays/visible text approximations. */
  .home .top-paths__photography-film::after,
  .home .top-paths__photography-film-mask,
  .home .top-paths__photography-mobile-type,
  .home .top-paths__photography-mobile-svg {
    display:none !important;
  }

  /* Paper surface with transparent type cut-outs.
     Video is NOT copied into each line: both words reveal the same single film. */
  .home .top-paths__photography-mobile-cutout {
    position:absolute;
    inset:0;
    z-index:4;
    display:block !important;
    width:100%;
    height:100%;
    pointer-events:none;
  }

  .home .top-paths__photography-cutout-word {
    font-family:"Bodoni Moda","Bodoni 72 Poster","Bodoni 72","Didot","Bodoni MT",serif;
    font-size:410px;
    font-weight:700;
    font-style:normal;
    letter-spacing:-10px;
  }

  .home .top-paths__photography-cutout-word--graphy {
    font-size:390px;
    letter-spacing:-13px;
  }

  /* Utility copy remains legible on the paper portion below the cut-out. */
  .home .top-paths__item--photography .top-paths__number {
    top:28px !important;
    right:28px !important;
    left:auto !important;
    color:#8e8a83 !important;
    text-shadow:none !important;
    z-index:5 !important;
  }

  .home .top-paths__item--photography .top-paths__copy {
    right:28px !important;
    left:auto !important;
    bottom:106px !important;
    max-width:min(54vw,210px) !important;
    padding:0 !important;
    background:transparent !important;
    color:#1f1c18 !important;
    text-align:right;
    text-shadow:none !important;
    z-index:5 !important;
  }

  body.home .top-paths a.top-paths__item--photography .top-paths__cta {
    left:28px !important;
    bottom:34px !important;
    color:#1f1c18 !important;
    text-shadow:none !important;
    z-index:5 !important;
  }

  .home .top-paths__item--photography .top-paths__cta i,
  .home .top-paths__item--photography .top-paths__cta b {
    color:#1f1c18 !important;
    border-color:#1f1c18 !important;
  }
}

@media (max-width:390px) {
  .home .top-paths__photography-cutout-word {
    font-size:420px;
  }

  .home .top-paths__photography-cutout-word--graphy {
    font-size:400px;
  }
}

@media (prefers-reduced-motion:reduce) {
  /* Same mask/composition, but the existing still image shows through the letters. */
  .home .top-paths__photography-film-video {
    display:none !important;
  }
}

/* ===== SOURCE: v294-home-rhythm-service-gateway.css ===== */
/* v0.2.294 — HOME rhythm + three-way service gateway.
   Copy/URLs come from existing TOP HERO settings; spacing/type remain protected. */

/* HOME: moderately shorten the transition from FOR BUSINESS into the
   editorial half. Keep La paix's breathing room; remove only the excess. */
@media (min-width:901px) {
  .home .top-paths {
    padding-bottom:clamp(46px,5.5vw,78px);
  }

  .home-editorial-works {
    padding-top:clamp(66px,8vw,116px);
    padding-bottom:clamp(58px,7vw,98px);
  }

  .home-editorial-statement {
    padding-top:clamp(74px,9vw,130px);
  }
}

@media (max-width:900px) {
  body.home .top-paths a:nth-of-type(3) {
    min-height:clamp(238px,64vw,272px);
  }

  .home .top-paths a:nth-of-type(3) .top-paths__copy {
    margin-top:10%;
  }

  .home .top-paths a:nth-of-type(3) .top-paths__arrow {
    margin-top:calc(10% + 19px) !important;
  }

  .home-editorial-works {
    padding-top:46px;
    padding-bottom:46px;
  }

  .home-editorial-statement {
    padding-top:50px;
  }
}

/* Three primary routes near the end of the experience. */
.service-gateway {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  width:100%;
  background:#f5f3ef;
  border-top:1px solid rgba(30,29,27,.22);
  border-bottom:1px solid rgba(30,29,27,.22);
  color:var(--color-ink);
}

.service-gateway__item {
  position:relative;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 24px;
  gap:16px;
  min-height:clamp(176px,15vw,224px);
  align-items:center;
  padding:clamp(30px,3.5vw,54px);
  color:inherit;
  text-decoration:none;
  background:#f5f3ef;
  transition:background-color .22s ease;
}

.service-gateway__item + .service-gateway__item {
  border-left:1px solid rgba(30,29,27,.22);
}

.service-gateway__item:hover {
  background:#ece9e3;
}

.service-gateway__number {
  align-self:start;
  padding-top:5px;
  color:#806d5d;
  font:400 9px/1 var(--font-latin-ui,Arial,sans-serif);
  letter-spacing:.13em;
}

.service-gateway__copy {
  min-width:0;
}

.service-gateway__copy strong,
.service-gateway__copy small,
.service-gateway__copy em {
  display:block;
}

.service-gateway__copy strong {
  font:400 clamp(21px,2vw,31px)/1.02 var(--font-serif);
  letter-spacing:-.015em;
}

.service-gateway__copy small {
  margin-top:9px;
  color:#5d5953;
  font:400 12px/1.45 var(--font-sans);
  letter-spacing:.025em;
}

.service-gateway__copy em {
  margin-top:24px;
  color:#706b64;
  font:400 11px/1.5 var(--font-sans);
  font-style:normal;
  letter-spacing:.025em;
}

.service-gateway__arrow {
  justify-self:end;
  font:400 19px/1 var(--font-serif);
}

@media (max-width:900px) {
  .service-gateway {
    display:block;
  }

  .service-gateway__item {
    grid-template-columns:30px minmax(0,1fr) 20px;
    gap:10px;
    min-height:126px;
    padding:25px 28px;
  }

  .service-gateway__item + .service-gateway__item {
    border-left:0;
    border-top:1px solid rgba(30,29,27,.22);
  }

  .service-gateway__copy strong {
    font-size:clamp(22px,6.1vw,27px);
  }

  .service-gateway__copy small {
    margin-top:6px;
    font-size:12px;
  }

  .service-gateway__copy em {
    margin-top:13px;
    font-size:10px;
  }

  .service-gateway__item:hover {
    background:#f5f3ef;
  }
}

/* ===== SOURCE: v295-photography-pc-cta-alignment.css ===== */
/* v0.2.295 — PC-only PHOTOGRAPHY CTA bottom-edge alignment.
   Move the CTA down by 2px so its lower edge visually meets the film edge.
   Mobile remains completely unchanged. */
@media (min-width:901px) {
  body.home .top-paths a.top-paths__item--photography .top-paths__cta {
    bottom:calc(clamp(62px,6vw,92px) - 2px) !important;
  }
}
