:root {
  --forest-950: #0e2418;
  --forest-900: #163826;
  --forest-800: #1d4a32;
  --forest-700: #2c6042;
  --cream-50: #faf6ec;
  --cream-100: #f4ede0;
  --cream-200: #e6dcc6;
  --paper: #fffdf7;
  --ink: #183025;
  --ink-soft: #526259;
  --copper-600: #a05a2c;
  --copper-500: #b8702f;
  --copper-400: #c98a4b;
  --line: rgba(22, 56, 38, 0.18);
  --line-light: rgba(250, 246, 236, 0.24);
  --font-serif: "Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
  --font-sans: "Noto Sans JP", "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", system-ui, sans-serif;
  --font-latin: "Cormorant Garamond", Georgia, serif;
  --shell: 76rem;
  --gutter: clamp(1.25rem, 4vw, 3.25rem);
  color-scheme: light;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 6rem;
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--cream-50);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.85;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.has-open-menu {
  overflow: hidden;
}

img,
picture {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

[hidden] {
  display: none !important;
}

:focus-visible {
  outline: 3px solid var(--copper-400);
  outline-offset: 4px;
}

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

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.7rem 1rem;
  transform: translateY(-160%);
  background: var(--paper);
  color: var(--forest-950);
  font-weight: 700;
}

.skip-link:focus {
  transform: translateY(0);
}

.not-found {
  display: grid;
  min-height: calc(100vh - 17rem);
  align-items: center;
  padding-block: clamp(5rem, 12vw, 9rem);
  background:
    linear-gradient(rgba(250, 246, 236, 0.93), rgba(250, 246, 236, 0.97)),
    url("/assets/images/bg-003-1440w.jpeg") center / cover;
}

.not-found__inner {
  max-width: 54rem;
}

.not-found h1 {
  max-width: 100%;
  margin-bottom: 0.75rem;
  color: var(--forest-950);
  font-size: clamp(2.4rem, 5.4vw, 4.5rem);
  line-height: 1.25;
  word-break: normal;
  word-break: auto-phrase;
  text-wrap: balance;
}

.not-found__translations {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
  color: var(--copper-600);
  font-family: var(--font-latin);
  font-size: clamp(1.35rem, 3vw, 2rem);
  font-weight: 600;
}

.not-found__translations p,
.not-found__message {
  margin-bottom: 0;
}

.not-found__message {
  max-width: 54rem;
  margin-top: 2rem;
  color: var(--ink-soft);
}

.not-found__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2.5rem;
}

.not-found__links .button--outline {
  border-color: rgba(22, 56, 38, 0.48);
  color: var(--forest-900);
}

.not-found__links .button--outline:hover {
  background: var(--forest-900);
  color: var(--cream-50);
}

@media (max-width: 36rem) {
  .not-found__translations {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
  }

  .not-found__links {
    align-items: stretch;
    flex-direction: column;
  }

  .not-found__links .button {
    justify-content: center;
  }
}

.shell {
  width: min(100% - (var(--gutter) * 2), var(--shell));
  margin-inline: auto;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1,
h2,
h3 {
  font-family: var(--font-serif);
  font-weight: 600;
  letter-spacing: 0.015em;
}

h2 {
  margin-bottom: 1.5rem;
  font-size: clamp(2rem, 3.3vw, 3rem);
  line-height: 1.55;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

h3 {
  font-size: clamp(1.25rem, 2vw, 1.55rem);
  line-height: 1.6;
  word-break: keep-all;
}

.section {
  padding-block: clamp(5rem, 9vw, 8rem);
}

.section-kicker,
.footer-label {
  margin-bottom: 0.85rem;
  color: var(--copper-600);
  font-family: var(--font-latin);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.3;
  text-transform: uppercase;
}

.section-heading {
  margin-bottom: clamp(2.5rem, 5vw, 4.25rem);
}

.section-heading--row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem 3rem;
}

.section-heading--row > div {
  max-width: 52rem;
}

.section-heading--row h2 {
  margin-bottom: 0;
}

.insights-heading {
  min-width: 0;
}

.insights-heading__titles {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 1.35rem;
}

.insights-heading__titles h2 {
  margin-bottom: 0;
}

/* Japanese Insights display headings: prefer phrase-aware, balanced wrapping. */
:lang(ja) :is(.insights-heading__titles h2, .insights-index__hero h1, .insight-card h3, .insights-index__list h2, .insights-post__header h1, .insights-post__content h2) {
  overflow-wrap: normal;
  word-break: normal;
  word-break: auto-phrase;
  text-wrap: balance;
}

/* Keep the short Insights heading intact where auto-phrase is unavailable. */
@supports not (word-break: auto-phrase) {
  @media (max-width: 47.99rem) {
    :lang(ja) :is(.insights-heading__titles h2, .insights-index__hero h1) {
      font-size: clamp(1.5rem, 7.7vw, 2rem);
    }
  }
}

.insights-heading__subtitle {
  margin: 0;
  color: var(--ink-soft);
  font-family: var(--font-serif);
  font-size: clamp(1.15rem, 1.8vw, 1.55rem);
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

@media (max-width: 47.99rem) {
  .insights-heading__titles {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.45rem;
  }

  .insights-heading__subtitle {
    font-size: clamp(1.05rem, 4.2vw, 1.25rem);
  }
}

.section-title-line {
  display: block;
}

.section-title-term {
  white-space: nowrap;
}

.section-link {
  display: inline-flex;
  min-height: 2.75rem;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.8rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid currentColor;
  color: var(--forest-900);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 700;
}

.section-link span {
  color: var(--copper-600);
  transition: transform 160ms ease;
}

.section-link:hover span {
  transform: translateX(0.25rem);
}

.button {
  display: inline-flex;
  min-height: 3.35rem;
  align-items: center;
  justify-content: center;
  padding: 0.8rem 1.65rem;
  border: 1px solid transparent;
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.3;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease;
}

.button--small {
  min-height: 2.65rem;
  padding: 0.6rem 1.25rem;
  font-size: 0.78rem;
}

.button--forest {
  background: var(--forest-900);
  color: var(--cream-50);
}

.button--forest:hover {
  background: var(--forest-800);
}

.button--copper {
  background: var(--copper-600);
  color: var(--cream-50);
}

.button--copper:hover {
  background: var(--forest-700);
}

.button--outline {
  border-color: rgba(250, 246, 236, 0.72);
  color: var(--cream-50);
}

.button--outline:hover {
  background: var(--cream-50);
  color: var(--forest-950);
}

/* Header */

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(22, 56, 38, 0.1);
  background: rgba(250, 246, 236, 0.97);
  backdrop-filter: blur(12px);
}

.site-header__inner {
  display: flex;
  min-height: 5.25rem;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.brand {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
}

.brand__mark {
  display: block;
  flex: 0 0 auto;
  overflow: hidden;
}

.brand__mark--header {
  width: 3.15rem;
  height: 2.58rem;
  background: transparent;
}

.brand__mark picture,
.brand__mark img {
  display: block;
  width: 100%;
  height: 100%;
}

.brand__logo--transparent {
  object-fit: cover;
  object-position: center;
  transform: scale(1.25);
}

.brand__words {
  display: grid;
  line-height: 1.1;
}

.brand__name {
  overflow: hidden;
  color: var(--forest-900);
  font-family: var(--font-latin);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.brand__legal {
  margin-top: 0.18rem;
  color: var(--ink-soft);
  font-size: 0.56rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-header__desktop {
  display: none;
}

.primary-nav ul,
.language-nav ul,
.mobile-menu ul,
.site-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.primary-nav ul,
.language-nav ul {
  display: flex;
  align-items: center;
}

.primary-nav ul {
  gap: 1.8rem;
}

.primary-nav a {
  color: var(--forest-950);
  text-decoration: none;
  font-family: var(--font-latin);
  font-size: 0.92rem;
  font-weight: 600;
}

.primary-nav a:hover,
.primary-nav a[aria-current="page"] {
  color: var(--copper-600);
}

.primary-nav a[aria-current="page"] {
  text-decoration: underline;
  text-decoration-color: var(--copper-400);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.45rem;
}

.language-nav {
  padding-left: 1rem;
  border-left: 1px solid var(--line);
}

.language-nav ul {
  gap: 0.75rem;
}

.language-nav a {
  color: var(--ink-soft);
  text-decoration: none;
  font-size: 0.68rem;
  font-weight: 700;
}

.language-nav a[aria-current="page"] {
  color: var(--copper-600);
}

.menu-toggle {
  display: grid;
  width: 2.85rem;
  height: 2.85rem;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  place-content: center;
  gap: 0.28rem;
}

.menu-toggle span {
  display: block;
  width: 1.15rem;
  height: 1px;
  background: var(--forest-950);
  transition:
    transform 160ms ease,
    opacity 160ms ease;
}

.is-menu-open .menu-toggle span:nth-child(1) {
  transform: translateY(0.33rem) rotate(45deg);
}

.is-menu-open .menu-toggle span:nth-child(2) {
  opacity: 0;
}

.is-menu-open .menu-toggle span:nth-child(3) {
  transform: translateY(-0.33rem) rotate(-45deg);
}

.mobile-menu {
  height: calc(100dvh - 5.25rem);
  overflow-y: auto;
  border-top: 1px solid var(--line);
  background: var(--cream-50);
}

.mobile-menu__inner {
  padding-block: 1.5rem 3rem;
}

.mobile-menu__primary a {
  display: flex;
  min-height: 3.8rem;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 600;
}

.mobile-menu__primary a::after {
  content: "→";
  color: var(--copper-600);
  font-family: var(--font-sans);
  font-size: 0.9rem;
}

.mobile-menu__primary a[aria-current="page"] {
  color: var(--copper-600);
}

.mobile-menu__languages {
  margin-top: 2rem;
}

.mobile-menu__languages > span {
  color: var(--copper-600);
  font-family: var(--font-latin);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.mobile-menu__languages ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 0.8rem;
}

.mobile-menu__languages a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  padding: 0.45rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.78rem;
}

.mobile-menu__languages a[aria-current="page"] {
  border-color: var(--forest-900);
  background: var(--forest-900);
  color: var(--cream-50);
}

/* Hero */

.hero {
  background: var(--forest-950);
}

.hero__stage {
  position: relative;
  width: min(100%, 92rem);
  min-height: clamp(41rem, calc(100vh - 5.25rem), 50rem);
  margin-inline: auto;
  overflow: hidden;
  background: var(--forest-900);
}

.hero__slides,
.hero-slide,
.hero-slide picture,
.hero-slide__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-slide {
  opacity: 0;
  transition: opacity 900ms ease;
}

.hero-slide.is-active {
  z-index: 1;
  opacity: 1;
}

.hero-slide__image {
  object-fit: cover;
  object-position: var(--slide-position, center);
}

.hero__overlay {
  position: absolute;
  z-index: 2;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8, 31, 20, 0.8) 0%, rgba(8, 31, 20, 0.55) 43%, rgba(8, 31, 20, 0.12) 78%),
    linear-gradient(0deg, rgba(8, 31, 20, 0.4) 0%, transparent 52%);
  pointer-events: none;
}

.hero__content {
  position: absolute;
  z-index: 3;
  top: 47%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--cream-50);
}

.hero__eyebrow {
  margin-bottom: 1.25rem;
  color: var(--copper-400);
  font-family: var(--font-latin);
  font-size: clamp(0.82rem, 1.1vw, 1rem);
  font-weight: 700;
  letter-spacing: 0.17em;
  line-height: 1.4;
  text-transform: uppercase;
}

.hero h1 {
  max-width: 18em;
  margin-bottom: 1.75rem;
  color: var(--cream-50);
  font-size: clamp(2.7rem, 4vw, 4rem);
  line-height: 1.42;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.18);
}

.hero__title-line {
  display: block;
}

.hero__title-term {
  white-space: nowrap;
}

.hero__title-accent {
  color: #d49a58;
}

.hero__copy-stage {
  display: grid;
  max-width: 43rem;
  min-height: 9.25rem;
  margin-bottom: 1.5rem;
}

.hero__slide-copy {
  grid-area: 1 / 1;
  align-self: start;
  opacity: 0;
  visibility: hidden;
  transition: opacity 350ms ease;
}

.hero__slide-copy.is-active {
  opacity: 1;
  visibility: visible;
}

.hero__slide-heading {
  margin-bottom: 0.55rem;
  color: var(--cream-50);
  font-family: var(--font-serif);
  font-size: clamp(1.25rem, 1.8vw, 1.65rem);
  font-weight: 600;
  line-height: 1.6;
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.2);
}

.hero__slide-text {
  max-width: 39rem;
  margin: 0;
  color: rgba(250, 246, 236, 0.92);
  font-size: clamp(0.96rem, 1.15vw, 1.04rem);
  line-height: 1.9;
  text-shadow: 0 1px 16px rgba(0, 0, 0, 0.2);
}

.hero__text-break--mobile {
  display: none;
}

.hero__text-break--desktop {
  display: inline;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.hero__controls {
  position: absolute;
  z-index: 4;
  right: 50%;
  bottom: 1.4rem;
  left: 50%;
  display: flex;
  width: min(100% - (var(--gutter) * 2), var(--shell));
  align-items: flex-end;
  justify-content: space-between;
  transform: translateX(-50%);
  color: var(--cream-50);
}

.hero__indicators {
  display: flex;
  gap: 1.65rem;
}

.hero__indicator {
  position: relative;
  min-width: 7.5rem;
  padding: 0 0 0.7rem;
  border: 0;
  border-bottom: 2px solid rgba(250, 246, 236, 0.36);
  background: transparent;
  color: rgba(250, 246, 236, 0.68);
  cursor: pointer;
  text-align: left;
}

.hero__indicator::after {
  position: absolute;
  right: 0;
  bottom: -2px;
  left: 0;
  height: 2px;
  transform: scaleX(0);
  transform-origin: left;
  background: var(--copper-400);
  content: "";
  transition: transform 300ms ease;
}

.hero__indicator.is-active {
  color: var(--cream-50);
}

.hero__indicator.is-active::after {
  transform: scaleX(1);
}

.hero__indicator span {
  margin-right: 0.45rem;
  color: var(--copper-400);
  font-family: var(--font-latin);
  font-size: 0.88rem;
}

.hero__indicator small {
  font-family: var(--font-latin);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.hero__control-buttons {
  display: flex;
  gap: 0.45rem;
}

.hero__control-buttons button {
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  border: 1px solid rgba(250, 246, 236, 0.58);
  border-radius: 50%;
  background: rgba(14, 36, 24, 0.34);
  color: var(--cream-50);
  cursor: pointer;
  place-items: center;
}

.hero__control-buttons button:hover {
  background: var(--cream-50);
  color: var(--forest-950);
}

/* Insights */

.insights {
  background:
    radial-gradient(rgba(92, 67, 36, 0.055) 1px, transparent 1px),
    var(--cream-50);
  background-size: 18px 18px;
}

.preview-notice {
  margin: -1.5rem 0 2.25rem;
  padding: 0.9rem 1rem;
  border-left: 3px solid var(--copper-500);
  background: var(--cream-100);
  color: var(--ink-soft);
  font-size: 0.85rem;
}

.preview-notice strong {
  margin-right: 0.5rem;
  color: var(--copper-600);
}

.insights-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(20rem, 0.75fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.insights-showcase {
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.25rem);
  align-items: start;
  min-width: 0;
  overflow-x: clip;
}

.insights-showcase--with-focus {
  grid-template-columns: minmax(0, 1.7fr) minmax(16rem, 1fr);
}

.insights-showcase--latest-only {
  grid-template-columns: 1fr;
}

.insights-showcase__latest,
.insights-showcase__focus,
.insights-latest-list,
.insight-card,
.insight-card__body {
  min-width: 0;
}

.insights-showcase__heading {
  margin: 0 0 0.85rem;
  color: var(--copper-600);
  font-family: var(--font-latin);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.insights-latest-list {
  display: grid;
  gap: 1rem;
}

.insight-card {
  display: grid;
  grid-template-columns: minmax(8.5rem, 42%) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--paper);
}

.insight-card--row {
  grid-template-columns: minmax(9rem, 34%) minmax(0, 1fr);
  min-height: 9.5rem;
}

.insight-card--focus {
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
}

.insight-card__image {
  position: relative;
  min-height: 100%;
  overflow: hidden;
  background: var(--forest-900);
}

.insight-card--row .insight-card__image {
  height: auto;
  min-height: 0;
  aspect-ratio: 4 / 3;
}

.insight-card--focus .insight-card__image {
  aspect-ratio: 6 / 5;
  min-height: 14rem;
}

.insight-card--featured {
  grid-row: 1 / 3;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
}

.insight-card--featured .insight-card__image {
  aspect-ratio: 16 / 9;
}

.insight-card__image-link,
.insight-card__image picture,
.insight-card__photo,
.insight-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
}

.insight-card__image-link {
  color: inherit;
  text-decoration: none;
}

.insight-card__image-link:focus-visible {
  outline: 2px solid var(--copper-500);
  outline-offset: -4px;
}

.insight-card__photo {
  object-fit: cover;
  transition: transform 400ms ease;
}

.insight-card__photo--crop-lower {
  object-position: center 58%;
}

.insight-card:hover .insight-card__photo {
  transform: scale(1.025);
}

.insight-card__placeholder {
  background: linear-gradient(135deg, var(--forest-900), var(--forest-700));
}

.preview-badge {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  padding: 0.28rem 0.55rem;
  background: rgba(14, 36, 24, 0.9);
  color: var(--cream-50);
  font-size: 0.68rem;
  font-weight: 700;
}

.insight-card__body {
  padding: clamp(1.25rem, 2.5vw, 2rem);
}

.insight-card__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.8rem;
  color: var(--copper-600);
  font-size: 0.73rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.insight-card__meta time {
  color: var(--ink-soft);
  font-weight: 500;
}

.insight-card h3 {
  margin-bottom: 0.7rem;
  font-size: clamp(1.15rem, 1.65vw, 1.5rem);
}

.insight-card--featured h3 {
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
}

.insight-card--row h3 {
  font-size: clamp(1.05rem, 1.4vw, 1.28rem);
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: normal;
}

.insight-card--focus h3 {
  font-size: clamp(1.2rem, 1.7vw, 1.45rem);
  line-height: 1.45;
  overflow-wrap: anywhere;
  word-break: normal;
}

.insight-card h3 a {
  text-decoration: none;
  overflow-wrap: inherit;
}

.insights-title__subject,
.insights-title__subtitle {
  display: block;
  overflow-wrap: normal;
  word-break: auto-phrase;
}

.insights-index__title--partitioned .insights-title__subject,
.insights-index__title--partitioned .insights-title__subtitle {
  display: inline;
}

.insight-card__body > p {
  margin-bottom: 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
  line-height: 1.85;
  overflow-wrap: anywhere;
  word-break: normal;
}

.insight-card--row .insight-card__body {
  display: grid;
  align-content: start;
  padding: clamp(1rem, 2vw, 1.35rem);
}

.insight-card--row .insight-card__body > p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 0.86rem;
  line-height: 1.7;
}

.insight-card--focus .insight-card__body {
  padding: clamp(1.15rem, 2.2vw, 1.6rem);
}

/* Company role */

.role {
  background: var(--paper);
}

.role__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 7rem);
}

.role__content > p:not(.section-kicker) {
  margin-bottom: 2rem;
  color: var(--ink-soft);
  font-size: 1.03rem;
}

.role__visual {
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.role__visual picture,
.role__image {
  width: 100%;
  height: 100%;
}

.role__image {
  object-fit: cover;
  object-position: center;
  filter: saturate(0.82) contrast(0.96);
}

/* Top About heading: keep lead phrase on one line from PC widths */
@media (min-width: 64rem) {
  .home .role__content h2 .section-title-line:first-child {
    white-space: nowrap;
  }
}

@media (max-width: 63.99rem) {
  .home .role__content h2 .section-title-line:first-child .section-title-term {
    white-space: normal;
  }
}

/* Services */

.services {
  background: var(--cream-100);
}

.services-list {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
  list-style: none;
}

.services-list li {
  display: grid;
  grid-template-columns: 4rem minmax(12rem, 0.65fr) minmax(18rem, 1fr) 2.5rem;
  align-items: center;
  gap: 1.5rem;
  padding-block: 1.8rem;
  border-bottom: 1px solid var(--line);
}

.services-list__number {
  color: var(--copper-600);
  font-family: var(--font-latin);
  font-size: 1.45rem;
  font-weight: 600;
}

.services-list h3,
.services-list p {
  margin-bottom: 0;
}

.services-list p {
  color: var(--ink-soft);
  font-size: 0.93rem;
}

.services-list li > a {
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--copper-600);
  text-decoration: none;
  place-items: center;
}

.services-list li > a:hover {
  border-color: var(--forest-900);
  background: var(--forest-900);
  color: var(--cream-50);
}

/* Contact CTA */

.contact-cta {
  padding-block: clamp(4.5rem, 8vw, 6.5rem);
  background: var(--cream-50);
}

.contact-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(11rem, 0.38fr);
  align-items: center;
  gap: 2rem clamp(1.5rem, 3vw, 3rem);
  padding-block: 2.6rem;
  border-top: 2px solid var(--forest-900);
  border-bottom: 1px solid var(--line);
}

.contact-cta__inner > .button {
  justify-self: center;
}

.contact-cta h2,
.contact-cta__title {
  max-width: 100%;
  margin-bottom: 0.8rem;
}

/* Contact CTA titles: one continuous phrase on PC; natural wrap on small screens. */
@media (min-width: 64rem) {
  .contact-cta__title {
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
  }

  /* Japanese titles are shorter; keep strong presence without forcing a break. */
  .contact-cta__title {
    font-size: clamp(1.85rem, 2.55vw, 2.55rem);
  }

  .home--en .contact-cta__title,
  .about-page--en .contact-cta__title,
  .services-page--en .contact-cta__title {
    font-size: clamp(1.55rem, 2.05vw, 2.05rem);
  }

  .home--pt-br .contact-cta__title,
  .about-page--pt-br .contact-cta__title,
  .services-page--pt-br .contact-cta__title {
    font-size: clamp(1.5rem, 1.95vw, 1.95rem);
  }
}

.contact-cta__mobile-break {
  display: none;
}

.contact-cta__inner > div > p:last-child {
  margin-bottom: 0;
  color: var(--ink-soft);
}

/* About page */

.page-hero {
  position: relative;
  overflow: hidden;
  background: var(--forest-900);
  color: var(--cream-50);
}

.page-hero__media,
.page-hero__overlay {
  position: absolute;
  inset: 0;
}

.page-hero__media picture,
.page-hero__image {
  width: 100%;
  height: 100%;
}

.page-hero__image {
  object-fit: cover;
  object-position: center 35%;
  filter: saturate(0.84) contrast(0.96);
}

.page-hero__overlay {
  background:
    linear-gradient(90deg, rgba(9, 31, 21, 0.78) 0%, rgba(9, 31, 21, 0.58) 48%, rgba(9, 31, 21, 0.2) 100%),
    linear-gradient(0deg, rgba(9, 31, 21, 0.38), rgba(9, 31, 21, 0.04) 55%);
}

.page-hero__inner {
  position: relative;
  z-index: 1;
  display: flex;
  min-height: clamp(29rem, 46vw, 35rem);
  flex-direction: column;
  justify-content: flex-end;
  padding-block: clamp(2.6rem, 5vw, 4.25rem);
}

.breadcrumb {
  margin-bottom: clamp(2.2rem, 4vw, 3.6rem);
  color: rgba(250, 246, 236, 0.75);
  font-size: 0.75rem;
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumb li + li::before {
  content: "/";
  margin-right: 0.45rem;
  color: var(--copper-400);
}

.breadcrumb a {
  text-decoration-color: rgba(250, 246, 236, 0.45);
  text-underline-offset: 0.2em;
}

.page-hero__eyebrow {
  margin-bottom: 1rem;
  color: var(--copper-400);
  font-family: var(--font-latin);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.14em;
}

:is(.about-page--en, .about-page--pt-br, .services-page--en, .services-page--pt-br) .page-hero__eyebrow {
  display: none;
}

.page-hero h1 {
  max-width: 58rem;
  margin-bottom: 1.4rem;
  font-size: clamp(2.7rem, 5vw, 4.35rem);
  line-height: 1.4;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.page-hero__title-line {
  display: block;
  width: fit-content;
  white-space: nowrap;
}

.page-hero__title-term {
  white-space: nowrap;
}

.page-hero__lead {
  max-width: 48rem;
  margin-bottom: 0;
  color: rgba(250, 246, 236, 0.88);
  font-size: 1rem;
  line-height: 1.9;
}

.page-hero__lead-support {
  white-space: nowrap;
}

.about-role {
  background: var(--paper);
}

.about-role__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(3rem, 8vw, 8rem);
}

.about-role__heading h2,
.company-section__heading h2 {
  margin-bottom: 0;
}

.about-role__body {
  padding-top: 0.35rem;
  border-top: 1px solid var(--line);
}

.about-role__body p {
  margin-bottom: 0;
  padding-block: 1.65rem;
  color: var(--ink-soft);
  font-size: 1.02rem;
}

.about-role__body p + p {
  border-top: 1px solid var(--line);
}

.about-role__body p:nth-child(2) {
  word-break: auto-phrase;
}

.about-role__term,
.contact-cta__term {
  white-space: nowrap;
}

.profile-section {
  background: var(--cream-100);
}

.profile-section__grid {
  display: grid;
  grid-template-columns: minmax(18.75rem, 21.25rem) minmax(0, 1fr);
  align-items: center;
  gap: clamp(3rem, 8vw, 7.5rem);
}

.profile-section__visual {
  width: 100%;
  max-width: 21.25rem;
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--forest-900);
}

.profile-section__visual picture,
.profile-section__image {
  width: 100%;
  height: 100%;
}

.profile-section__image {
  object-fit: cover;
  object-position: 52% center;
  filter: saturate(0.78) contrast(0.97);
}

.profile-section__content h2 {
  margin-bottom: 1.75rem;
}

.profile-section__name {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 1.25rem;
  padding-block: 1.25rem;
  border-top: 2px solid var(--forest-900);
  border-bottom: 1px solid var(--line);
}

.profile-section__name p {
  margin: 0;
}

.profile-section__name p:first-child {
  font-family: var(--font-serif);
  font-size: 1.3rem;
  font-weight: 600;
}

.profile-section__name p:first-child span {
  font-family: var(--font-sans);
  font-size: 0.78rem;
  font-weight: 600;
}

.profile-section__name p:last-child {
  color: var(--copper-600);
  font-family: var(--font-latin);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.profile-section__text {
  margin-top: 1.8rem;
}

.profile-section__text p {
  margin-bottom: 1.2rem;
  color: var(--ink-soft);
}

.profile-section__text p:last-child {
  margin-bottom: 0;
}

.company-section {
  background: var(--paper);
}

.company-section__grid {
  display: grid;
  grid-template-columns: minmax(14rem, 0.62fr) minmax(0, 1.38fr);
  gap: clamp(3rem, 8vw, 8rem);
}

.company-profile {
  margin: 0;
  border-top: 2px solid var(--forest-900);
}

.company-profile > div {
  display: grid;
  grid-template-columns: minmax(7rem, 10rem) minmax(0, 1fr);
  gap: 1.25rem 2.5rem;
  padding-block: 1.35rem;
  border-bottom: 1px solid var(--line);
}

.company-profile dt {
  font-weight: 700;
}

.company-profile dd {
  min-width: 0;
  margin: 0;
  color: var(--ink-soft);
}

.company-profile a {
  overflow-wrap: anywhere;
  text-underline-offset: 0.2em;
}

.about-services {
  padding-block: clamp(4.5rem, 8vw, 6.5rem);
  background: var(--cream-100);
}

.about-services__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(11rem, 0.38fr);
  align-items: center;
  gap: 2rem clamp(1.5rem, 3vw, 3rem);
  padding: clamp(2rem, 4vw, 3.25rem);
  border-left: 0.3rem solid var(--copper-500);
  background: var(--cream-50);
}

.about-services__inner > .button {
  justify-self: center;
}

.about-services h2 {
  margin-bottom: 0.8rem;
}

.about-services__inner > div > p:last-child {
  max-width: 46rem;
  margin-bottom: 0;
  color: var(--ink-soft);
}

/* Services page */

.page-hero--services .page-hero__image {
  object-position: center 54%;
  filter: saturate(0.76) contrast(0.94);
}

.page-hero--services .page-hero__overlay {
  background:
    linear-gradient(90deg, rgba(9, 31, 21, 0.82) 0%, rgba(9, 31, 21, 0.64) 48%, rgba(9, 31, 21, 0.28) 100%),
    linear-gradient(0deg, rgba(9, 31, 21, 0.34), rgba(9, 31, 21, 0.02) 58%);
}

.page-hero--services .page-hero__lead {
  max-width: 45rem;
}

.services-hero__mobile-break {
  display: none;
}

.services-copy-term {
  white-space: nowrap;
}

.services-overview {
  padding-block: clamp(5rem, 9vw, 7.5rem);
  background: var(--paper);
}

.services-overview__grid {
  display: grid;
  grid-template-columns: minmax(16rem, 0.76fr) minmax(0, 1.24fr);
  gap: clamp(3rem, 8vw, 8rem);
}

.services-overview h2 {
  margin-bottom: 0;
}

/* Japanese Services overview title: larger one-line title on PC, natural wrap on smaller widths */
.services-page:not(.services-page--en):not(.services-page--pt-br) .services-overview h2 .section-title-term {
  white-space: normal;
}

@media (min-width: 64rem) {
  .services-page:not(.services-page--en):not(.services-page--pt-br) .services-overview__grid {
    grid-template-columns: minmax(22rem, 1fr) minmax(0, 1.1fr);
    gap: clamp(1.75rem, 3.2vw, 3.25rem);
  }

  .services-page:not(.services-page--en):not(.services-page--pt-br) .services-overview h2 {
    white-space: nowrap;
    font-size: clamp(2.2rem, 2.9vw, 3rem);
  }
}

.services-overview__text {
  padding-top: 0.3rem;
  border-top: 1px solid var(--line);
}

.services-overview__text > p {
  margin-bottom: 0;
  padding-block: 1.2rem;
  color: var(--ink-soft);
  word-break: auto-phrase;
}

.services-overview__text > p + p {
  border-top: 1px solid var(--line);
}

.services-overview__note {
  margin-top: 0;
  padding-top: 0;
  border-top: 1px solid var(--line);
}

/* Same typographic hierarchy as overview body paragraphs above.
   Outer note border marks item 3; internal paragraphs use spacing only. */
.services-overview__note p {
  margin: 0;
  padding-top: 1.2rem;
  padding-bottom: 0;
  color: var(--ink-soft);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.85;
  word-break: auto-phrase;
}

.services-overview__note p + p {
  padding-top: 0.85rem;
}

.services-overview__note p:last-child {
  padding-bottom: 1.2rem;
}

.service-chapter {
  padding-block: clamp(5.5rem, 9vw, 8rem);
  border-top: 1px solid var(--line);
}

.service-chapter--01,
.service-chapter--03 {
  background: var(--cream-50);
}

.service-chapter--02 {
  background: var(--cream-100);
}

.service-chapter__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(25rem, 1.08fr);
  grid-template-areas:
    "header visual"
    "consultations response";
  gap: clamp(3rem, 6vw, 5.5rem) clamp(3rem, 7vw, 7rem);
  align-items: start;
}

.service-chapter--02 .service-chapter__grid {
  grid-template-columns: minmax(25rem, 1.08fr) minmax(0, 0.92fr);
  grid-template-areas:
    "visual header"
    "consultations response";
}

.service-chapter__header {
  grid-area: header;
  align-self: center;
}

.service-chapter__meta {
  display: flex;
  align-items: baseline;
  gap: 0.9rem;
  margin-bottom: 1rem;
  color: var(--copper-600);
  font-family: var(--font-latin);
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1;
}

.service-chapter__meta span:first-child {
  font-size: 2.25rem;
}

.service-chapter__meta span:last-child {
  font-size: 0.9rem;
  text-transform: uppercase;
}

.service-chapter__header h2 {
  margin-bottom: 1.3rem;
  font-size: clamp(2.2rem, 4vw, 3rem);
  line-height: 1.45;
}

.service-chapter__introduction {
  max-width: 36rem;
  margin-bottom: 0;
  color: var(--ink-soft);
  word-break: auto-phrase;
}

.service-chapter__visual {
  grid-area: visual;
  width: 100%;
  margin: 0;
  aspect-ratio: 5 / 4;
  overflow: hidden;
  background: var(--forest-900);
}

.service-chapter__visual picture,
.service-chapter__image {
  width: 100%;
  height: 100%;
}

.service-chapter__image {
  object-fit: cover;
  filter: saturate(0.82) contrast(0.97);
}

.service-chapter__visual--sourcing .service-chapter__image {
  object-position: center 46%;
}

.service-chapter__visual--research .service-chapter__image {
  object-position: 58% center;
}

.service-chapter__visual--coordination .service-chapter__image {
  object-position: 42% center;
}

.service-chapter__consultations,
.service-chapter__response {
  padding-top: 1.6rem;
  border-top: 2px solid var(--forest-900);
}

.service-chapter__consultations {
  grid-area: consultations;
}

.service-chapter__response {
  grid-area: response;
}

.service-chapter__consultations h3,
.service-chapter__response h3 {
  margin-bottom: 1.15rem;
  font-size: 1.2rem;
}

.service-chapter__consultations ul {
  display: grid;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.service-chapter__consultations li {
  position: relative;
  padding-left: 1.3rem;
  color: var(--ink-soft);
  word-break: auto-phrase;
}

.service-chapter__consultations li::before {
  position: absolute;
  top: 0.78em;
  left: 0;
  width: 0.4rem;
  height: 0.4rem;
  background: var(--copper-500);
  content: "";
  transform: rotate(45deg);
}

.service-chapter__response p {
  margin-bottom: 0;
  color: var(--ink-soft);
  word-break: auto-phrase;
}

.services-process {
  padding-block: clamp(5rem, 9vw, 7.5rem);
  background: var(--paper);
}

.services-process__heading {
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.services-process__heading h2 {
  margin-bottom: 0;
}

.services-process__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  border-top: 2px solid var(--forest-900);
  list-style: none;
}

.services-process__steps li {
  min-width: 0;
  padding: 2rem clamp(1.4rem, 3vw, 2.4rem) 0;
  border-left: 1px solid var(--line);
}

.services-process__steps li:first-child {
  padding-left: 0;
  border-left: 0;
}

.services-process__number {
  display: block;
  margin-bottom: 1rem;
  color: var(--copper-600);
  font-family: var(--font-latin);
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.services-process__steps h3 {
  min-height: 3.2em;
  margin-bottom: 0.8rem;
  font-size: 1.25rem;
}

.services-process__steps p {
  margin-bottom: 0;
  color: var(--ink-soft);
  font-size: 0.95rem;
  word-break: auto-phrase;
}

/* Insights index */

.insights-index__hero {
  padding-block: clamp(2.75rem, 5.5vw, 4.25rem);
  background: var(--forest-900);
  color: var(--cream-50);
}

.insights-index__hero .section-kicker {
  margin-bottom: 0.7rem;
  color: var(--copper-400);
}

.insights-index__hero h1 {
  max-width: 22em;
  margin-bottom: 0;
  font-size: clamp(2rem, 4.2vw, 3.35rem);
  line-height: 1.4;
}

.insights-index__content {
  min-height: 22rem;
  padding-block: clamp(3rem, 6vw, 5.5rem);
  background: var(--cream-50);
}

.insights-index__list {
  border-top: 1px solid var(--line);
}

.insights-index__list article {
  padding-block: 2rem;
  border-bottom: 1px solid var(--line);
}

.insights-index__list article > p {
  color: var(--copper-600);
  font-size: 0.78rem;
}

.insights-index__list h2 {
  margin-bottom: 0.7rem;
  font-size: 1.65rem;
}

.insights-index__list h2 a {
  text-decoration: none;
}

.insights-index__list span,
.insights-empty p {
  color: var(--ink-soft);
}

.insights-empty {
  max-width: 43rem;
  padding: 2.5rem 0;
  border-top: 1px solid var(--line);
}

.insights-empty h2 {
  font-size: 1.8rem;
}

.insights-index__showcase {
  margin-bottom: clamp(2.5rem, 5vw, 3.75rem);
}

.insights-index__all-heading {
  margin-bottom: 1.5rem;
}

.insights-index__all-heading h2 {
  margin-bottom: 0;
  font-size: clamp(1.55rem, 2.4vw, 2rem);
}

/* Insights post */

.insights-post__header {
  padding-block: clamp(2.5rem, 5vw, 4rem) 1.5rem;
  background: var(--cream-50);
}

/* Light-surface breadcrumb: global .breadcrumb colors are for dark page-hero overlays. */
.insights-post__breadcrumb {
  margin-bottom: 1.15rem;
  color: var(--ink-soft);
  font-size: 0.72rem;
}

.insights-post__breadcrumb a {
  text-decoration-color: rgba(22, 56, 38, 0.28);
}

.insights-post__breadcrumb li + li::before {
  color: var(--copper-500);
}

.insights-post__category {
  margin: 1.25rem 0 0.75rem;
  color: var(--copper-600);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.insights-post__header h1 {
  max-width: 18em;
  margin-bottom: 0.85rem;
  font-size: clamp(1.85rem, 3.4vw, 2.75rem);
  line-height: 1.45;
  word-break: normal;
  word-break: auto-phrase;
  overflow-wrap: normal;
}

@media (min-width: 64rem) {
  .insights-post__header h1 {
    max-width: 24em;
    overflow-wrap: normal;
    word-break: auto-phrase;
    text-wrap: wrap;
  }

  :lang(ja) .insight-card--row h3 {
    font-size: clamp(1.02rem, 1.3vw, 1.18rem);
    overflow-wrap: normal;
    word-break: auto-phrase;
    text-wrap: pretty;
  }

  :lang(ja) .insight-card--focus h3 {
    font-size: clamp(1.15rem, 1.6vw, 1.35rem);
    overflow-wrap: normal;
    word-break: auto-phrase;
    text-wrap: wrap;
  }
}

.insights-post__dates {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.insights-post__updated {
  margin-left: 1rem;
}

.insights-post__hero-image {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.insights-post__hero-image picture {
  display: block;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.insights-post__cover {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.insights-post__cover--crop-lower {
  object-position: center 58%;
}

.insights-post__body {
  padding-bottom: clamp(4rem, 8vw, 6.5rem);
}

.insights-post__content,
.insights-post__references,
.insights-post__cta {
  max-width: 64rem;
  margin-inline: auto;
}

.insights-post__content {
  font-size: 1.02rem;
  line-height: 1.95;
}

@media (min-width: 64rem) {
  .insights-post__content {
    font-size: 1.12rem;
    line-height: 1.9;
  }
}

.insights-post__content > * + * {
  margin-top: 1.25rem;
}

.insights-post__editorial-copy > * + * {
  margin-top: 1.25rem;
}

.insights-post__content h2 {
  margin-top: 2.5rem;
  margin-bottom: 0.85rem;
  font-size: clamp(1.35rem, 2vw, 1.7rem);
}

.insights-post__content h3 {
  margin-top: 2rem;
  font-size: 1.15rem;
}

/* Keep in-article photos at intrinsic ratio (avoid HTML height attrs forcing tall boxes). */
.insights-post__content picture {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin-block: 1.75rem;
}

.insights-post__content img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}

.insights-post__figure {
  width: 100%;
  max-width: 100%;
  margin: 1.75rem auto;
}

.insights-post__figure picture,
.insights-post__hero-image > .insights-post__figure {
  margin: 0;
}

.insights-post__figure--standard {
  clear: both;
  max-width: 46rem;
}

.insights-post__figure--weighing {
  max-width: 54rem;
}

.insights-post__editorial-figure--document {
  padding: 0.45rem 0.45rem 0.55rem;
  border: 1px solid var(--line);
  background: rgba(255, 253, 247, 0.62);
}

.insights-post__editorial-pair {
  display: grid;
  grid-template-columns: minmax(0, 36rem) minmax(0, 26rem);
  gap: 2rem;
  align-items: start;
}

.insights-post__editorial-figure {
  width: 100%;
  margin: 0;
}

.insights-post__editorial-figure picture {
  margin: 0;
}

.insights-post__process-figure {
  width: 100%;
  max-width: 52rem;
  margin: 1.75rem auto;
}

.insights-post__process-images {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  gap: 0.25rem;
  height: 26rem;
}

.insights-post__process-images picture {
  height: 100%;
  margin: 0;
  overflow: hidden;
}

.insights-post__process-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.insights-post__process-image--harvest {
  object-position: center 45%;
}

.insights-post__process-image--dried {
  object-position: center;
}

.insights-post__process-caption {
  margin-top: 0.65rem;
  color: var(--ink);
  font-size: 0.82rem;
  line-height: 1.6;
}

.insights-post__process-caption > span {
  display: block;
}

.insights-post__image--document,
.insights-post__image--contain,
.insights-post__image--market {
  object-fit: contain;
}

@media (max-width: 63.99rem) {
  .insights-post__editorial-pair {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }

  .insights-post__process-figure {
    max-width: 46rem;
  }

  .insights-post__process-images {
    grid-template-columns: 1fr;
    height: auto;
  }

  .insights-post__process-images picture:first-child {
    aspect-ratio: 4 / 5;
  }

  .insights-post__process-images picture:last-child {
    aspect-ratio: 3 / 2;
  }
}

.insights-post__image-credit {
  margin: 0.65rem 0 0;
  color: var(--ink-soft);
  font-size: 0.76rem;
  line-height: 1.6;
}

.insights-post__table {
  clear: both;
  margin-block: 1.75rem;
  overflow-x: auto;
}

.insights-post__table table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 0.94rem;
  line-height: 1.75;
}

.insights-post__table caption {
  padding-bottom: 0.85rem;
  color: var(--ink);
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-weight: 700;
  text-align: left;
}

.insights-post__table th,
.insights-post__table td {
  padding: 0.9rem 1rem;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.insights-post__table thead th {
  background: var(--cream-100);
  font-weight: 700;
}

.insights-post__table tbody th {
  width: 28%;
  color: var(--forest-800);
  font-weight: 700;
}

@media (max-width: 47.99rem) {
  .insights-post__content .insights-post__image--market {
    aspect-ratio: 4 / 5;
    object-fit: cover;
  }

  .insights-post__image--market {
    object-position: center 32%;
  }

  .insights-post__table table {
    font-size: 0.84rem;
    line-height: 1.65;
  }

  .insights-post__table th,
  .insights-post__table td {
    padding: 0.75rem 0.6rem;
  }

  .insights-post__table tbody th {
    width: 32%;
  }
}

.insights-post__references {
  margin-top: 3rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--line);
}

.insights-post__references h2 {
  margin-bottom: 0.85rem;
  font-size: 1.15rem;
}

.insights-post__references ul {
  margin: 0;
  padding-left: 1.2rem;
  color: var(--ink-soft);
}

.insights-post__cta {
  margin-top: 3rem;
  padding: clamp(1.5rem, 3vw, 2rem);
  border-top: 1px solid var(--line);
  background: var(--paper);
}

.insights-post__cta h2 {
  margin-bottom: 0.75rem;
  font-size: 1.35rem;
}

.insights-post__cta p {
  margin-bottom: 1.25rem;
  color: var(--ink-soft);
}

/* Footer */

.site-footer {
  padding-top: clamp(3.5rem, 7vw, 5.5rem);
  background: var(--forest-950);
  color: rgba(250, 246, 236, 0.76);
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 0.75fr;
  gap: 3rem;
  padding-bottom: 3.25rem;
}

.brand--footer .brand__name {
  color: var(--cream-50);
  font-family: var(--font-serif);
  font-size: 0.98rem;
}

.brand__mark--footer {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(250, 246, 236, 0.16);
}

.brand__logo--footer {
  object-fit: contain;
  object-position: center;
  transform: scale(1.32);
}

.brand--footer .brand__legal {
  color: rgba(250, 246, 236, 0.55);
}

.site-footer__brand > p,
.site-footer__description {
  max-width: 31rem;
  margin: 1.5rem 0 0;
  font-size: 0.84rem;
  line-height: 1.8;
}

.site-footer__keep {
  white-space: nowrap;
}

.site-footer .footer-label {
  color: var(--copper-400);
}

.site-footer address {
  margin-bottom: 0.7rem;
  font-size: 0.8rem;
  font-style: normal;
}

.site-footer a {
  text-decoration-color: rgba(250, 246, 236, 0.35);
  text-underline-offset: 0.2em;
}

.site-footer__office > a {
  font-size: 0.8rem;
  overflow-wrap: anywhere;
}

.site-footer__nav ul {
  display: grid;
  gap: 0.35rem;
}

.site-footer__nav a {
  font-size: 0.8rem;
  text-decoration: none;
}

.site-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem 2rem;
  padding-block: 1.4rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(250, 246, 236, 0.5);
  font-size: 0.68rem;
}

.site-footer__bottom p {
  margin: 0;
}

@media (min-width: 64rem) {
  /* Desktop/laptop vertical rhythm; preserve the approved sub-64rem layouts. */
  .section {
    padding-block: 6.25rem;
  }

  .section-heading {
    margin-bottom: 3.25rem;
  }

  .home .insights > .shell > .section-heading {
    margin-bottom: 1rem;
  }

  .home:not(.home--en):not(.home--pt-br) .insights-heading__titles h2 {
    font-size: clamp(2.25rem, 3vw, 2.5rem);
  }

  .about-role {
    padding-block: 5.75rem;
  }

  .about-services,
  .contact-cta {
    padding-block: 5.5rem;
  }

  .services-overview,
  .services-process {
    padding-block: 6rem;
  }

  .service-chapter {
    padding-block: 6.5rem;
  }

  .service-chapter__grid {
    row-gap: clamp(3rem, 6vw, 4.5rem);
  }

  .services-process__heading,
  .insights-index__showcase {
    margin-bottom: 3rem;
  }

  .insights-index__content {
    padding-block: 4.5rem;
  }

  .insights-post__body {
    padding-bottom: 5.5rem;
  }

  /* Compact lower-page heroes without changing approved mobile/tablet layouts. */
  .page-hero__inner {
    min-height: 25rem;
    padding-block: 2rem;
  }

  .page-hero .breadcrumb {
    margin-bottom: 1.5rem;
  }

  .page-hero__eyebrow {
    margin-bottom: 0.5rem;
  }

  .page-hero h1 {
    margin-bottom: 0.75rem;
    font-size: clamp(2.7rem, 4vw, 3.75rem);
  }

  .about-page:not(.about-page--en):not(.about-page--pt-br) .page-hero h1,
  .services-page:not(.services-page--en):not(.services-page--pt-br) .page-hero h1 {
    font-size: clamp(2.25rem, 3vw, 2.75rem);
  }

  .page-hero--about .page-hero__inner {
    min-height: 20rem;
    justify-content: flex-start;
    padding-block-start: 4rem;
    padding-block-end: 1rem;
  }

  .page-hero--about .breadcrumb {
    margin-bottom: 0.375rem;
  }

  .page-hero--about .page-hero__eyebrow {
    margin-bottom: 0.25rem;
  }

  .about-page:not(.about-page--en):not(.about-page--pt-br) .page-hero--about .page-hero__inner {
    padding-block-start: 4.25rem;
  }

  .about-page:not(.about-page--en):not(.about-page--pt-br) .page-hero--about .breadcrumb {
    margin-bottom: 0.15625rem;
  }

  .about-page:not(.about-page--en):not(.about-page--pt-br) .page-hero--about .page-hero__eyebrow {
    margin-bottom: 0.21875rem;
    transform: translateY(0.15625rem);
  }

  .about-page:is(.about-page--en, .about-page--pt-br) .page-hero--about .page-hero__inner {
    padding-block-start: 5.75rem;
  }

  .about-page:is(.about-page--en, .about-page--pt-br) .page-hero--about .breadcrumb {
    margin-bottom: 0.5rem;
  }

  .about-page:is(.about-page--en, .about-page--pt-br) .page-hero--about .page-hero__eyebrow {
    display: none;
  }

  .page-hero--about .page-hero__image {
    object-position: center 20%;
  }

  .page-hero--services .page-hero__inner {
    min-height: 20rem;
    justify-content: flex-start;
    padding-block-start: 4rem;
    padding-block-end: 1rem;
  }

  .services-page .page-hero--services.page-hero h1 {
    font-size: clamp(2.25rem, 3vw, 2.75rem);
  }

  .services-page:not(.services-page--en):not(.services-page--pt-br) .page-hero--services .page-hero__inner {
    padding-block-start: 4.25rem;
  }

  .services-page:not(.services-page--en):not(.services-page--pt-br) .page-hero--services .breadcrumb {
    margin-bottom: 0.15625rem;
  }

  .services-page:not(.services-page--en):not(.services-page--pt-br) .page-hero--services .page-hero__eyebrow {
    margin-bottom: 0.21875rem;
    transform: translateY(0.15625rem);
  }

  .services-page:is(.services-page--en, .services-page--pt-br) .page-hero--services .page-hero__inner {
    padding-block-start: 5.75rem;
  }

  .services-page:is(.services-page--en, .services-page--pt-br) .page-hero--services .breadcrumb {
    margin-bottom: 0.5rem;
  }

  .services-page:is(.services-page--en, .services-page--pt-br) .page-hero--services .page-hero__eyebrow {
    display: none;
  }

  .insights-index__hero {
    padding-block: 3.25rem;
  }

  .insights-index__hero h1 {
    font-size: clamp(2rem, 4.2vw, 3.1rem);
  }

  .site-header__inner {
    min-height: 5.75rem;
  }

  .site-header__desktop {
    display: flex;
    align-items: center;
    gap: 1.5rem;
  }

  .menu-toggle {
    display: none;
  }
}

@media (max-width: 64rem) {
  .insights-grid {
    grid-template-columns: minmax(0, 1.2fr) minmax(17rem, 0.8fr);
  }

  .insights-showcase--with-focus {
    grid-template-columns: 1fr;
  }

  .insight-card--focus .insight-card__image {
    aspect-ratio: 16 / 10;
    min-height: 0;
  }

  .hero__indicator {
    min-width: 6.2rem;
  }

  .hero__indicator small {
    display: none;
  }
}

@media (max-width: 47.99rem) {
  .services-hero__mobile-break {
    display: block;
  }

  body {
    font-size: 1rem;
  }

  .section {
    padding-block: 4.5rem;
  }

  .section-heading--row {
    display: grid;
    align-items: start;
  }

  .page-hero__inner {
    width: min(100% - 1rem, var(--shell));
    min-height: 30rem;
    padding-block: 2.25rem 2.8rem;
  }

  .breadcrumb {
    margin-bottom: 2.2rem;
  }

  :is(.about-page--en, .about-page--pt-br, .services-page--en, .services-page--pt-br) .page-hero .breadcrumb {
    margin-bottom: 1rem;
  }

  .page-hero h1 {
    margin-bottom: 1.1rem;
    font-size: clamp(1.8125rem, 7.45vw, 2.5rem);
    line-height: 1.48;
    letter-spacing: 0;
  }

  .page-hero__lead {
    max-width: 35rem;
    font-size: 0.91rem;
    line-height: 1.8;
  }

  .page-hero__image {
    object-position: 58% center;
  }

  .page-hero--services .page-hero__image {
    object-position: center 50%;
  }

  .contact-cta__mobile-break {
    display: block;
  }

  .page-hero__overlay {
    background:
      linear-gradient(0deg, rgba(9, 31, 21, 0.78) 0%, rgba(9, 31, 21, 0.54) 68%, rgba(9, 31, 21, 0.2) 100%),
      linear-gradient(90deg, rgba(9, 31, 21, 0.35), rgba(9, 31, 21, 0.08));
  }

  .hero__stage {
    min-height: 43rem;
  }

  .hero-slide:not(:first-child) {
    display: none;
  }

  .hero-slide__image {
    object-position: 58% center;
  }

  .hero__overlay {
    background:
      linear-gradient(0deg, rgba(8, 31, 20, 0.84) 0%, rgba(8, 31, 20, 0.58) 58%, rgba(8, 31, 20, 0.28) 100%),
      linear-gradient(90deg, rgba(8, 31, 20, 0.28), transparent);
  }

  .hero__content {
    top: auto;
    bottom: 2.5rem;
    transform: translateX(-50%);
  }

  .hero__eyebrow {
    margin-bottom: 0.9rem;
    font-size: 0.72rem;
    letter-spacing: 0.11em;
  }

  .hero h1 {
    max-width: none;
    margin-bottom: 1.2rem;
    font-size: clamp(2.05rem, 9.3vw, 2.5rem);
    line-height: 1.48;
  }

  .hero__copy-stage {
    min-height: 10.75rem;
    margin-bottom: 1.25rem;
  }

  .hero__slide-heading {
    margin-bottom: 0.45rem;
    font-size: 1.2rem;
    line-height: 1.55;
  }

  .hero__slide-text {
    max-width: 34rem;
    font-size: 0.91rem;
    line-height: 1.75;
  }

  .hero__text-break--mobile {
    display: inline;
  }

  .hero__text-break--desktop {
    display: none;
  }

  .hero__actions {
    gap: 0.65rem;
  }

  .hero__actions .button {
    min-height: 3rem;
    padding-inline: 1.15rem;
    font-size: 0.82rem;
  }

  .hero__controls {
    display: none;
  }

  .insights-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .insight-card,
  .insight-card--featured,
  .insight-card--row {
    grid-row: auto;
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
  }

  .insight-card__image,
  .insight-card--featured .insight-card__image,
  .insight-card--row .insight-card__image {
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .insight-card--featured h3,
  .insight-card--row h3,
  .insight-card--focus h3 {
    font-size: clamp(1.2rem, 5.4vw, 1.45rem);
    overflow-wrap: anywhere;
  }

  :lang(ja) .insight-card--row h3 {
    font-size: clamp(1.18rem, 4.9vw, 1.25rem);
    letter-spacing: 0;
    word-break: auto-phrase;
    text-wrap: balance;
  }

  :lang(ja) .insights-post__header h1 {
    letter-spacing: 0;
    text-wrap: wrap;
  }

  :lang(ja) .insights-post:has(.insights-post__cover--crop-lower) .insights-post__header h1 {
    overflow-wrap: break-word;
    word-break: keep-all;
  }

  :lang(ja) .insights-post:has(.insights-post__cover--crop-lower) .insights-post__header h1 :is(.insights-title__subject, .insights-title__subtitle) {
    display: inline;
  }

  .insights-index__list h2 {
    font-size: clamp(1.2rem, 5.4vw, 1.4rem);
    line-height: 1.55;
    letter-spacing: 0;
  }

  .insights-index__title--partitioned .insights-title__subject,
  .insights-index__title--partitioned .insights-title__subtitle {
    display: block;
  }

  .insight-card--row .insight-card__body > p,
  .insight-card--focus .insight-card__body > p {
    display: block;
    overflow: visible;
    -webkit-line-clamp: unset;
    font-size: 0.92rem;
    line-height: 1.75;
  }

  /* Mobile Insights: LATEST newest 1 only; FOCUS remains below when present. */
  .insight-card--latest-secondary {
    display: none;
  }

  .insights-showcase,
  .insights-showcase__latest,
  .insights-showcase__focus,
  .insights-latest-list,
  .insight-card,
  .insight-card__body {
    max-width: 100%;
  }

  .role__grid {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .role__visual {
    order: -1;
    aspect-ratio: 16 / 10;
  }

  .services-list li {
    grid-template-columns: 3rem 1fr 2.5rem;
    gap: 0.8rem 1rem;
    padding-block: 1.5rem;
  }

  .services-list li > p {
    grid-column: 2 / 4;
  }

  .services-list li > a {
    grid-column: 3;
    grid-row: 1;
  }

  .contact-cta__inner {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .contact-cta__inner > .button {
    width: fit-content;
    justify-self: start;
  }

  .about-role__grid,
  .profile-section__grid,
  .company-section__grid,
  .about-services__inner {
    grid-template-columns: 1fr;
  }

  .about-role__grid,
  .company-section__grid {
    gap: 2.5rem;
  }

  .profile-section__grid {
    gap: 2.75rem;
  }

  .profile-section__visual {
    width: min(100%, 18.75rem);
    margin-inline: auto;
  }

  .company-profile > div {
    grid-template-columns: 1fr;
    gap: 0.35rem;
    padding-block: 1.15rem;
  }

  .about-services__inner {
    align-items: start;
    gap: 1.75rem;
  }

  .about-services__inner > .button {
    width: fit-content;
    justify-self: start;
  }

  .services-overview,
  .service-chapter,
  .services-process {
    padding-block: 4.5rem;
  }

  .services-overview__grid {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  .services-overview__text {
    padding-top: 0;
  }

  .service-chapter__grid,
  .service-chapter--02 .service-chapter__grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "header"
      "visual"
      "consultations"
      "response";
    gap: 2.5rem;
  }

  .service-chapter__header {
    align-self: start;
  }

  .service-chapter__meta {
    margin-bottom: 0.8rem;
  }

  .service-chapter__meta span:first-child {
    font-size: 2rem;
  }

  .service-chapter__header h2 {
    margin-bottom: 1rem;
    font-size: clamp(2rem, 9vw, 2.65rem);
  }

  .service-chapter__visual {
    aspect-ratio: 16 / 10;
  }

  .service-chapter__visual--sourcing .service-chapter__image {
    object-position: center 44%;
  }

  .service-chapter__visual--research .service-chapter__image {
    object-position: 55% 42%;
  }

  .service-chapter__visual--coordination .service-chapter__image {
    object-position: 40% center;
  }

  .service-chapter__consultations,
  .service-chapter__response {
    padding-top: 1.4rem;
  }

  .services-process__steps {
    grid-template-columns: 1fr;
  }

  .services-process__steps li,
  .services-process__steps li:first-child {
    padding: 1.7rem 0;
    border-bottom: 1px solid var(--line);
    border-left: 0;
  }

  .services-process__steps h3 {
    min-height: 0;
  }

  .site-footer__grid {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }
}

@media (max-width: 23rem) {
  .brand__legal {
    display: none;
  }

  .brand__name {
    max-width: 8.5rem;
  }

  .hero h1 {
    font-size: 1.95rem;
  }

  .hero__actions {
    display: grid;
  }

  .hero__actions .button {
    width: fit-content;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  [data-hero-autoplay] {
    display: none !important;
  }
}

/* English About only: Latin wrapping and layout containment without changing Japanese pages. */
.about-page--en {
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: none;
}

.about-page--en .shell {
  width: min(100% - (var(--gutter) * 2), var(--shell));
  max-width: 100%;
  box-sizing: border-box;
}

.about-page--en .site-header__inner,
.about-page--en .about-role__grid,
.about-page--en .profile-section__grid,
.about-page--en .company-section__grid,
.about-page--en .about-services__inner,
.about-page--en .contact-cta__inner,
.about-page--en .about-role__heading,
.about-page--en .about-role__body,
.about-page--en .profile-section__content,
.about-page--en .company-section__heading,
.about-page--en .company-profile,
.about-page--en .page-hero__inner {
  min-width: 0;
  max-width: 100%;
}

.about-page--en .site-header__inner {
  gap: 0.75rem;
}

.about-page--en .brand {
  flex: 1 1 auto;
  min-width: 0;
}

.about-page--en .brand__words {
  min-width: 0;
}

.about-page--en .brand__legal {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.about-page--en .menu-toggle {
  flex: 0 0 auto;
}

.about-page--en .page-hero h1 {
  max-width: 100%;
  font-size: clamp(2.15rem, 3.1vw, 3.25rem);
  word-break: normal;
  overflow-wrap: break-word;
}

.about-page--en .page-hero__title-line {
  display: block;
  width: auto;
  max-width: 100%;
  white-space: normal;
}

.about-page--en .page-hero__title-line + .page-hero__title-line {
  margin-top: 0.35rem;
}

.about-page--en .page-hero__lead {
  max-width: min(34rem, 100%);
  word-break: normal;
  overflow-wrap: break-word;
}

.about-page--en .about-role__body,
.about-page--en .profile-section__text,
.about-page--en .about-services__inner > div > p:last-child,
.about-page--en .contact-cta__inner > div > p:last-child {
  max-width: min(38rem, 100%);
  word-break: normal;
  overflow-wrap: break-word;
}

.about-page--en .about-role__body p:nth-child(2) {
  word-break: normal;
}

.about-page--en .section-title-term,
.about-page--en .about-role__term,
.about-page--en .contact-cta__term {
  white-space: normal;
}

.about-page--en .about-role__heading h2,
.about-page--en .about-services h2,
.about-page--en .company-section__heading h2,
.about-page--en .profile-section__content h2 {
  max-width: 100%;
  word-break: normal;
  overflow-wrap: break-word;
}

.about-page--en .profile-section__name p:only-child {
  margin-bottom: 0;
}

.about-page--en .profile-section__content h2 {
  white-space: normal;
}

.about-page--en .about-services__title .section-title-term {
  white-space: nowrap;
}

@media (min-width: 64rem) {
  .about-page--en .page-hero h1 {
    max-width: 100%;
    font-size: clamp(2.35rem, 2.55vw, 2.95rem);
  }

  .about-page--en .page-hero__title-line {
    width: fit-content;
    max-width: 100%;
    white-space: nowrap;
  }

  .about-page--en .page-hero__lead {
    max-width: min(42rem, 82%);
  }

  /* Company Overview: keep one PC line without clipping. */
  .about-page--en .company-section__grid {
    grid-template-columns: minmax(19rem, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 5rem);
  }

  .about-page--en .company-section__heading h2 {
    white-space: nowrap;
    font-size: clamp(2.1rem, 2.7vw, 2.7rem);
  }

  /* About Services band is wide enough for one PC line. */
  .about-page--en .about-services__title {
    white-space: nowrap;
    font-size: clamp(2.05rem, 2.55vw, 2.7rem);
  }

  .about-page--en .about-services__title .section-title-term {
    white-space: nowrap;
  }
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
  .about-page--en .page-hero h1 {
    max-width: min(100%, 34rem);
    font-size: clamp(2rem, 3.2vw, 2.55rem);
  }

  .about-page--en .page-hero__title-line {
    white-space: normal;
  }

  .about-page--en .page-hero__lead {
    max-width: min(30rem, 100%);
  }
}

@media (max-width: 47.99rem) {
  .about-page--en .site-header__inner {
    gap: 0.65rem;
  }

  .about-page--en .site-header .brand__mark--header {
    width: 2.85rem;
    height: 2.35rem;
  }

  .about-page--en .site-header .brand__name {
    max-width: 7.25rem;
    font-size: 1.12rem;
  }

  .about-page--en .site-header .menu-toggle {
    width: 2.65rem;
    height: 2.65rem;
  }

  .about-page--en .page-hero h1 {
    max-width: 100%;
    font-size: clamp(1.5rem, 6.6vw, 2rem);
  }

  .about-page--en .page-hero__title-line {
    width: 100%;
    white-space: normal;
    text-wrap: balance;
  }

  .about-page--en .page-hero__lead,
  .about-page--en .about-role__body,
  .about-page--en .profile-section__text,
  .about-page--en .about-services__inner > div > p:last-child,
  .about-page--en .contact-cta__inner > div > p:last-child {
    font-size: 0.98rem;
  }

  .about-page--en .about-role__heading h2,
  .about-page--en .about-services h2 {
    font-size: clamp(1.45rem, 6.4vw, 1.95rem);
    white-space: normal;
  }

  .about-page--en .company-section__heading h2 {
    white-space: normal;
  }

  .about-page--en .about-services__title {
    white-space: normal;
  }

  .about-page--en .about-services__title .section-title-term {
    white-space: nowrap;
  }

}

/* Portuguese (Brazil) About only: Latin wrapping and layout containment. */
.about-page--pt-br {
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: none;
}

.about-page--pt-br .shell {
  width: min(100% - (var(--gutter) * 2), var(--shell));
  max-width: 100%;
  box-sizing: border-box;
}

.about-page--pt-br .site-header__inner,
.about-page--pt-br .about-role__grid,
.about-page--pt-br .profile-section__grid,
.about-page--pt-br .company-section__grid,
.about-page--pt-br .about-services__inner,
.about-page--pt-br .contact-cta__inner,
.about-page--pt-br .about-role__heading,
.about-page--pt-br .about-role__body,
.about-page--pt-br .profile-section__content,
.about-page--pt-br .company-section__heading,
.about-page--pt-br .company-profile,
.about-page--pt-br .page-hero__inner {
  min-width: 0;
  max-width: 100%;
}

.about-page--pt-br .site-header__inner {
  gap: 0.75rem;
}

.about-page--pt-br .brand {
  flex: 1 1 auto;
  min-width: 0;
}

.about-page--pt-br .brand__words {
  min-width: 0;
}

.about-page--pt-br .brand__legal {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.about-page--pt-br .menu-toggle {
  flex: 0 0 auto;
}

.about-page--pt-br .page-hero h1 {
  max-width: 100%;
  font-size: clamp(2.15rem, 3.1vw, 3.25rem);
  word-break: normal;
  overflow-wrap: break-word;
}

.about-page--pt-br .page-hero__title-line {
  display: block;
  width: auto;
  max-width: 100%;
  white-space: normal;
}

.about-page--pt-br .page-hero__title-line + .page-hero__title-line {
  margin-top: 0.35rem;
}

.about-page--pt-br .about-pt-role-country-pair {
  display: inline;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

.about-page--pt-br .page-hero__lead {
  max-width: min(36rem, 100%);
  word-break: normal;
  overflow-wrap: break-word;
}

.about-page--pt-br .about-role__body,
.about-page--pt-br .profile-section__text,
.about-page--pt-br .about-services__inner > div > p:last-child,
.about-page--pt-br .contact-cta__inner > div > p:last-child,
.about-page--pt-br .contact-cta__support {
  max-width: min(46rem, 100%);
  word-break: normal;
  overflow-wrap: break-word;
}

@media (min-width: 64rem) {
  .about-page--pt-br .contact-cta__support {
    font-size: 0.9375rem;
  }
}

.about-page--pt-br .section-title-term {
  white-space: normal;
}

.about-page--pt-br .about-role__heading h2,
.about-page--pt-br .about-services h2,
.about-page--pt-br .company-section__heading h2,
.about-page--pt-br .profile-section__content h2 {
  max-width: 100%;
  word-break: normal;
  overflow-wrap: break-word;
}

.about-page--pt-br .profile-section__name p:only-child {
  margin-bottom: 0;
}

.about-page--pt-br .profile-section__content h2 {
  white-space: normal;
}

.about-page--pt-br .about-services__title .section-title-term {
  white-space: nowrap;
}

@media (min-width: 64rem) {
  .about-page--pt-br .page-hero h1 {
    max-width: 100%;
    font-size: clamp(2.35rem, 2.55vw, 2.95rem);
  }

  .about-page--pt-br .company-section__grid {
    grid-template-columns: minmax(19rem, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(2.5rem, 5vw, 5rem);
  }

  .about-page--pt-br .company-section__heading h2 {
    white-space: nowrap;
    font-size: clamp(1.95rem, 2.45vw, 2.45rem);
  }

  .about-page--pt-br .about-services__title {
    white-space: nowrap;
    font-size: clamp(1.85rem, 2.35vw, 2.4rem);
  }

  .about-page--pt-br .about-services__title .section-title-term {
    white-space: nowrap;
  }

  .about-page--pt-br .page-hero__title-line {
    width: fit-content;
    max-width: 100%;
    white-space: nowrap;
  }

  .about-page--pt-br .page-hero__lead {
    max-width: min(56rem, 100%);
  }
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
  .about-page--pt-br .page-hero h1 {
    max-width: min(100%, 36rem);
    font-size: clamp(2rem, 3.2vw, 2.55rem);
  }

  .about-page--pt-br .page-hero__title-line {
    white-space: normal;
  }

  .about-page--pt-br .page-hero__lead {
    max-width: min(32rem, 100%);
  }
}

@media (max-width: 47.99rem) {
  .about-page--pt-br .site-header__inner {
    gap: 0.65rem;
  }

  .about-page--pt-br .site-header .brand__mark--header {
    width: 2.85rem;
    height: 2.35rem;
  }

  .about-page--pt-br .site-header .brand__name {
    max-width: 7.25rem;
    font-size: 1.12rem;
  }

  .about-page--pt-br .site-header .menu-toggle {
    width: 2.65rem;
    height: 2.65rem;
  }

  /*
   * Hero title: keep forced <br> off (natural wrap). At ~400px the first
   * phrase is just wider than the default shell, so "Japão" orphans alone.
   * Reclaim a little side gutter and tighten tracking slightly; do not
   * shrink the clamp() size just to force fewer lines.
   */
  .about-page--pt-br .page-hero .shell {
    width: min(100% - 1.5rem, var(--shell));
  }

  .about-page--pt-br .page-hero h1 {
    max-width: none;
    width: 100%;
    font-size: clamp(1.5rem, 6.6vw, 2rem);
    letter-spacing: -0.02em;
  }

  .about-page--pt-br .page-hero__title-line {
    width: 100%;
    white-space: normal;
  }

  .about-page--pt-br .page-hero__lead,
  .about-page--pt-br .about-role__body,
  .about-page--pt-br .profile-section__text,
  .about-page--pt-br .about-services__inner > div > p:last-child,
  .about-page--pt-br .contact-cta__inner > div > p:last-child {
    font-size: 0.98rem;
  }

  .about-page--pt-br .about-role__heading h2,
  .about-page--pt-br .about-services h2 {
    font-size: clamp(1.45rem, 6.4vw, 1.95rem);
    white-space: normal;
  }

  .about-page--pt-br .company-section__heading h2 {
    white-space: normal;
  }

  .about-page--pt-br .about-services__title {
    white-space: normal;
  }

  .about-page--pt-br .about-services__title .section-title-term {
    white-space: nowrap;
  }

}

/* English Services page — scoped adjustments only */
.services-page--en {
  overflow-x: clip;
}

.services-page--en .shell {
  width: min(100% - (var(--gutter) * 2), var(--shell));
  max-width: 100%;
  box-sizing: border-box;
}

.services-page--en .site-header__inner,
.services-page--en .services-overview__grid,
.services-page--en .service-chapter__grid,
.services-page--en .services-process__heading,
.services-page--en .services-process__steps,
.services-page--en .contact-cta__inner,
.services-page--en .page-hero__inner {
  min-width: 0;
}

.services-page--en .brand {
  min-width: 0;
}

.services-page--en .brand__words {
  min-width: 0;
}

.services-page--en .brand__legal {
  overflow-wrap: anywhere;
}

.services-page--en .page-hero h1 {
  max-width: 100%;
  word-break: normal;
  overflow-wrap: break-word;
}

.services-page--en .page-hero__title-line {
  display: block;
  max-width: 100%;
  white-space: normal;
}

.services-page--en .page-hero__title-line + .page-hero__title-line {
  margin-top: 0.35rem;
}

.services-page--en .page-hero__lead,
.services-page--en .services-overview__text,
.services-page--en .service-chapter__introduction,
.services-page--en .service-chapter__response p,
.services-page--en .services-process__steps p,
.services-page--en .contact-cta__inner > div > p:last-child,
.services-page--en .contact-cta__support {
  word-break: normal;
  overflow-wrap: break-word;
}

.services-page--en .section-title-line {
  display: block;
}

.services-page--en .section-title-term {
  white-space: normal;
}

/* Overview title: keep each intentional line intact so "to" stays with "Your Needs". */
@media (min-width: 64rem) {
  .services-page--en .services-overview .section-title-term {
    white-space: nowrap;
  }
}

.services-page--en .service-chapter__header h2,
.services-page--en .services-overview h2,
.services-page--en .services-process__heading h2,
.services-page--en .services-process__steps h3 {
  max-width: 100%;
  word-break: normal;
  overflow-wrap: break-word;
}

/* Localized service names share a quieter scale and balanced wrapping. */
:is(.services-page--en, .services-page--pt-br) .service-chapter__header h2 {
  line-height: 1.38;
  letter-spacing: 0.005em;
  text-wrap: balance;
}

/* Contact support copy: sentence-boundary lines on PC, natural wrap on smaller screens. */
.contact-cta__support {
  margin-bottom: 0;
  color: var(--ink-soft);
  word-break: normal;
  overflow-wrap: break-word;
}

.contact-cta__support-line + .contact-cta__support-line::before {
  content: " ";
}

@media (min-width: 64rem) {
  .contact-cta__support-line {
    display: block;
  }

  .contact-cta__support-line + .contact-cta__support-line::before {
    content: none;
  }
}

@media (min-width: 64rem) {
  .services-page--en .page-hero h1 {
    max-width: 100%;
    font-size: clamp(2.2rem, 2.5vw, 2.85rem);
  }

  .services-page--en .page-hero__title-line {
    width: fit-content;
    max-width: 100%;
    white-space: nowrap;
  }

  .services-page--en .page-hero__lead {
    max-width: min(42rem, 82%);
  }

  .services-page--en .service-chapter--01 .service-chapter__header h2,
  .services-page--en .service-chapter--02 .service-chapter__header h2,
  .services-page--en .service-chapter--03 .service-chapter__header h2 {
    font-size: clamp(2rem, 2.7vw, 2.6rem);
  }
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
  .services-page--en .page-hero h1 {
    max-width: min(100%, 34rem);
    font-size: clamp(1.9rem, 3.1vw, 2.45rem);
  }

  .services-page--en .page-hero__title-line {
    white-space: normal;
  }

  .services-page--en .page-hero__lead {
    max-width: min(32rem, 100%);
  }
}

@media (max-width: 47.99rem) {
  .services-page--en .site-header__inner {
    gap: 0.65rem;
  }

  .services-page--en .site-header .brand__mark--header {
    width: 2.85rem;
    height: 2.35rem;
  }

  .services-page--en .site-header .brand__name {
    max-width: 7.25rem;
    font-size: 1.12rem;
  }

  .services-page--en .site-header .menu-toggle {
    width: 2.65rem;
    height: 2.65rem;
  }

  .services-page--en .page-hero h1 {
    max-width: 100%;
    font-size: clamp(1.5rem, 6.6vw, 2rem);
  }

  .services-page--en .page-hero__title-line {
    width: 100%;
    white-space: normal;
  }

  .services-page--en .page-hero__lead,
  .services-page--en .services-overview__text,
  .services-page--en .service-chapter__introduction,
  .services-page--en .service-chapter__response p,
  .services-page--en .services-process__steps p,
  .services-page--en .contact-cta__inner > div > p:last-child,
  .services-page--en .contact-cta__support {
    font-size: 0.98rem;
  }

  .services-page--en .services-overview h2,
  .services-page--en .service-chapter__header h2,
  .services-page--en .services-process__heading h2 {
    font-size: clamp(1.45rem, 6.2vw, 1.95rem);
  }

  .services-page--en .contact-cta__title {
    font-size: clamp(1.45rem, 6.2vw, 1.85rem);
    white-space: normal;
  }
}

/* Portuguese (Brazil) Services only: Latin wrapping and layout containment. */
.services-page--pt-br {
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: none;
  overflow-x: clip;
}

.services-page--pt-br .shell {
  width: min(100% - (var(--gutter) * 2), var(--shell));
  max-width: 100%;
  box-sizing: border-box;
}

.services-page--pt-br .site-header__inner,
.services-page--pt-br .services-overview__grid,
.services-page--pt-br .service-chapter__grid,
.services-page--pt-br .services-process__heading,
.services-page--pt-br .services-process__steps,
.services-page--pt-br .contact-cta__inner,
.services-page--pt-br .page-hero__inner {
  min-width: 0;
  max-width: 100%;
}

.services-page--pt-br .site-header__inner {
  gap: 0.75rem;
}

.services-page--pt-br .brand {
  flex: 1 1 auto;
  min-width: 0;
}

.services-page--pt-br .brand__words {
  min-width: 0;
}

.services-page--pt-br .brand__legal {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.services-page--pt-br .menu-toggle {
  flex: 0 0 auto;
}

.services-page--pt-br .page-hero h1 {
  max-width: 100%;
  font-size: clamp(2.15rem, 3.1vw, 3.25rem);
  word-break: normal;
  overflow-wrap: break-word;
}

.services-page--pt-br .page-hero__title-line {
  display: block;
  width: auto;
  max-width: 100%;
  white-space: normal;
}

.services-page--pt-br .page-hero__title-line + .page-hero__title-line {
  margin-top: 0.35rem;
}

.services-page--pt-br .page-hero__lead,
.services-page--pt-br .services-overview__text,
.services-page--pt-br .service-chapter__introduction,
.services-page--pt-br .service-chapter__response p,
.services-page--pt-br .services-process__steps p,
.services-page--pt-br .contact-cta__inner > div > p:last-child,
.services-page--pt-br .contact-cta__support {
  max-width: min(46rem, 100%);
  word-break: normal;
  overflow-wrap: break-word;
}

@media (min-width: 64rem) {
  .services-page--pt-br .contact-cta__support {
    font-size: 0.9375rem;
  }
}

.services-page--pt-br .section-title-line {
  display: block;
}

.services-page--pt-br .section-title-term {
  white-space: normal;
}

.services-page--pt-br .services-overview .section-title-term {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

@media (min-width: 48rem) {
  .services-page--pt-br .services-overview__grid {
    grid-template-columns: minmax(17rem, 1fr) minmax(0, 1.1fr);
  }
}

.services-page--pt-br .service-chapter__header h2,
.services-page--pt-br .services-overview h2,
.services-page--pt-br .services-process__heading h2,
.services-page--pt-br .services-process__steps h3 {
  max-width: 100%;
  word-break: normal;
  overflow-wrap: break-word;
}

@media (min-width: 64rem) {
  .services-page--pt-br .page-hero h1 {
    max-width: 100%;
    /* Keep each title line on one row at 1024px+ without clipping the shell. */
    font-size: clamp(2.05rem, 2.5vw, 2.85rem);
  }

  .services-page--pt-br .page-hero__title-line {
    width: fit-content;
    max-width: 100%;
    white-space: nowrap;
  }

  .services-page--pt-br .page-hero__lead {
    max-width: min(42rem, 82%);
  }

  .services-page--pt-br .service-chapter__header h2 {
    font-size: clamp(2rem, 2.7vw, 2.6rem);
  }
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
  .services-page--pt-br .page-hero h1 {
    max-width: min(100%, 36rem);
    font-size: clamp(1.9rem, 3.1vw, 2.45rem);
  }

  .services-page--pt-br .page-hero__title-line {
    white-space: normal;
  }

  .services-page--pt-br .page-hero__lead {
    max-width: min(32rem, 100%);
  }
}

@media (max-width: 47.99rem) {
  .services-page--pt-br .site-header__inner {
    gap: 0.65rem;
  }

  .services-page--pt-br .site-header .brand__mark--header {
    width: 2.85rem;
    height: 2.35rem;
  }

  .services-page--pt-br .site-header .brand__name {
    max-width: 7.25rem;
    font-size: 1.12rem;
  }

  .services-page--pt-br .site-header .menu-toggle {
    width: 2.65rem;
    height: 2.65rem;
  }

  .services-page--pt-br .page-hero h1 {
    max-width: 100%;
    font-size: clamp(1.35rem, 5.9vw, 2rem);
  }

  .services-page--pt-br .page-hero__title-line {
    width: 100%;
    white-space: normal;
  }

  .services-page--pt-br .page-hero__lead,
  .services-page--pt-br .services-overview__text,
  .services-page--pt-br .service-chapter__introduction,
  .services-page--pt-br .service-chapter__response p,
  .services-page--pt-br .services-process__steps p,
  .services-page--pt-br .contact-cta__inner > div > p:last-child {
    font-size: 0.98rem;
  }

  .services-page--pt-br .services-overview h2,
  .services-page--pt-br .service-chapter__header h2,
  .services-page--pt-br .services-process__heading h2 {
    font-size: clamp(1.45rem, 6.2vw, 1.95rem);
  }

  .services-page--pt-br .contact-cta__title {
    font-size: clamp(1.4rem, 5.8vw, 1.8rem);
    white-space: normal;
  }
}

/* English / Portuguese home pages: locale-specific layout. */
.home--pt-br .contact-cta__support {
  max-width: min(46rem, 100%);
}

/* Keep English / pt-BR About titles from crowding the adjacent image. */
.home--en .role__content,
.home--pt-br .role__content {
  max-width: 34rem;
  padding-right: clamp(0.5rem, 1.5vw, 1.25rem);
}

.home--en .role__content h2,
.home--pt-br .role__content h2 {
  max-width: 14em;
  line-height: 1.28;
}

@media (min-width: 64rem) {
  .home--en .role__grid,
  .home--pt-br .role__grid {
    gap: clamp(3.75rem, 8vw, 8.5rem);
  }

  .home--en .role__content h2 .section-title-line,
  .home--en .services h2 .section-title-line,
  .home--pt-br .role__content h2 .section-title-line,
  .home--pt-br .services h2 .section-title-line {
    white-space: nowrap;
  }

  /* Intentional two-line About titles: slightly larger than the prior one-line clamp. */
  .home--en .role__content h2 {
    font-size: clamp(2.35rem, 2.9vw, 3.05rem);
  }

  .home--pt-br .role__content h2 {
    font-size: clamp(2.25rem, 2.75vw, 2.95rem);
  }

  .home--en .services h2 {
    font-size: clamp(2.05rem, 2.6vw, 2.75rem);
  }

  .home--pt-br .services h2 {
    font-size: clamp(1.95rem, 2.45vw, 2.6rem);
  }

  /* English Hero 01: use the full hero measure so PC wraps after "materials,". */
  .home--en .hero__slide-copy:nth-child(1) .hero__slide-text {
    max-width: min(43rem, 100%);
    font-size: clamp(0.97rem, 1.15vw, 1.01rem);
  }

  /* English Hero 03: widen body measure to avoid a one-word final line. */
  .home--en .hero__slide-copy:nth-child(3) .hero__slide-text {
    max-width: min(46rem, 100%);
    text-wrap: pretty;
  }

  /* pt-BR Hero 02 heading: avoid a one-word final line ("produtos"). */
  .home--pt-br .hero__slide-copy:nth-child(2) .hero__slide-heading {
    max-width: min(48rem, 100%);
    font-size: clamp(1.22rem, 1.7vw, 1.52rem);
    text-wrap: balance;
  }

  /* pt-BR Hero 02: widen body measure to avoid a one-word final line. */
  .home--pt-br .hero__slide-copy:nth-child(2) .hero__slide-text {
    max-width: min(46rem, 100%);
    text-wrap: pretty;
  }

  /* English titles are longer, so increase only the EN services column gap. */
  .home--en .services-list li {
    column-gap: 2.75rem;
    row-gap: 1.5rem;
    gap: 1.5rem 2.75rem;
  }

  .home--pt-br .contact-cta__support {
    font-size: 0.9375rem;
  }
}

@media (max-width: 63.99rem) {
  .home--en .role__content h2 .section-title-line,
  .home--en .services h2 .section-title-line,
  .home--pt-br .role__content h2 .section-title-line,
  .home--pt-br .services h2 .section-title-line {
    white-space: normal;
  }

  .home--en .role__content,
  .home--pt-br .role__content {
    max-width: none;
    padding-right: 0;
  }

  .home--en .role__content h2,
  .home--pt-br .role__content h2 {
    max-width: none;
  }
}

/* Insights: Brazil–Japan trade map article. */
.insights-post__title--responsive-divider .insights-title__subject::after {
  content: "——";
}

.insights-post__title--responsive-divider .insights-title__divider {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.trade-map-visual {
  clear: both;
  width: 100%;
  margin: clamp(2.25rem, 5vw, 3.75rem) auto;
}

.trade-map-visual figcaption {
  margin-top: 0.85rem;
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.65;
}

.trade-map-concepts {
  max-width: 52rem;
}

.trade-map-concepts__lead {
  margin: 0 0 1rem;
  color: var(--forest-900);
  font-family: var(--font-serif);
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.65;
}

.trade-map-concepts__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

.trade-map-concepts__panel {
  padding: clamp(1.1rem, 2vw, 1.4rem);
  border: 1px solid var(--line);
  border-radius: 2px;
  background: var(--cream-50);
  font-size: 0.9rem;
  line-height: 1.7;
}

.trade-map-concepts__panel h3 {
  margin: 0;
  color: var(--forest-900);
  font-family: var(--font-serif);
  font-size: 1.05rem;
  line-height: 1.5;
}

.trade-map-concepts__panel p,
.trade-map-concepts__panel dl,
.trade-map-concepts__panel dd {
  margin: 0;
}

.trade-map-concepts__panel > * + * {
  margin-top: 0.8rem;
}

.trade-map-concepts__source,
.trade-map-concepts__supplement {
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1.6;
}

.trade-map-concepts__panel dl > div {
  padding-left: 0.65rem;
  border-left: 2px solid transparent;
}

.trade-map-concepts__panel dl > div + div {
  margin-top: 0.65rem;
}

.trade-map-concepts__panel dt {
  font-size: 0.78rem;
  font-weight: 700;
}

.trade-map-concepts__means {
  color: var(--forest-800);
}

.trade-map-concepts__panel .trade-map-concepts__not {
  border-left-color: var(--copper-600);
}

.trade-map-concepts__not dt {
  color: var(--copper-600);
}

.trade-map-locator {
  max-width: 36rem;
}

.trade-map-locator svg {
  display: block;
  width: 100%;
  height: auto;
}

.trade-map-locator #BRUF path {
  fill: var(--paper);
  stroke: var(--line);
  stroke-width: 0.8px;
  vector-effect: non-scaling-stroke;
}

.trade-map-locator #BRUF :is(
  path[id="15"],
  path[id="31"],
  path[id="32"],
  path[id="35"],
  path[id="41"],
  path[id="42"],
  path[id="51"],
  path[id="52"]
) {
  fill: var(--cream-100);
}

.trade-map-locator .trade-map-country-outline {
  fill: none;
  stroke: var(--forest-800);
  stroke-width: 1.2px;
  vector-effect: non-scaling-stroke;
}

.trade-map-state-labels {
  fill: var(--forest-900);
  font-family: var(--font-sans);
  font-size: 1.05px;
  font-weight: 800;
  text-anchor: middle;
}

.trade-map-state-labels__chip {
  paint-order: stroke;
  stroke: var(--cream-50);
  stroke-width: 0.35px;
  stroke-linejoin: round;
}

.trade-map-locator__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1.2rem;
  margin-top: 0.85rem;
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1.5;
}

.trade-map-locator__legend span {
  display: inline-flex;
  gap: 0.4rem;
  align-items: center;
}

.trade-map-locator__swatch {
  display: inline-block;
  width: 0.8rem;
  height: 0.8rem;
  border: 1px solid var(--line);
  background: var(--paper);
}

.trade-map-locator__swatch--selected {
  background: var(--cream-100);
}

.trade-map-locator__guard {
  margin: 0.7rem 0 0;
  color: var(--forest-900);
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.65;
}

.trade-map-locator__names {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.25rem 1rem;
  margin: 0.85rem 0 0;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
  font-size: 0.78rem;
  line-height: 1.5;
}

.trade-map-locator__names div {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
}

.trade-map-locator__names dt {
  color: var(--forest-900);
  font-weight: 800;
}

.trade-map-locator__names dd {
  margin: 0;
}

.trade-map-locator figcaption > span {
  display: block;
}

.trade-map-coffee {
  max-width: 46rem;
}

.trade-map-coffee__chart {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  font-family: var(--font-sans);
}

.trade-map-coffee__chart--mobile {
  display: none;
}

.trade-map-coffee__heading {
  fill: var(--forest-900);
  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 700;
}

.trade-map-coffee__state,
.trade-map-coffee__value {
  fill: var(--ink);
  font-size: 13px;
}

.trade-map-coffee__value {
  font-weight: 700;
}

.trade-map-coffee__track {
  fill: var(--cream-100);
}

.trade-map-coffee__bar {
  fill: var(--forest-800);
}

.trade-map-coffee__divider {
  stroke: var(--line);
  stroke-width: 1px;
  vector-effect: non-scaling-stroke;
}

.trade-map-coffee__source {
  fill: var(--ink-soft);
  font-size: 12px;
}

.trade-map-coffee__notes {
  margin: 0.35rem 0 0;
  padding-left: 1.4rem;
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1.65;
}

.trade-map-coffee__notes li + li {
  margin-top: 0.25rem;
}

.trade-table--wide table {
  table-layout: auto;
}

.trade-table--t1 table {
  min-width: 58rem;
  table-layout: fixed;
}

.trade-table--t1 :is(th, td):nth-child(1) {
  width: 4.25rem;
  padding-inline: 0.65rem;
  text-align: center;
}

.trade-table--t1 :is(th, td):nth-child(2) {
  width: 5.25rem;
}

.trade-table--t1 :is(th, td):nth-child(3) {
  width: 17rem;
}

.trade-table--t1 :is(th, td):nth-child(4) {
  width: 11.5rem;
}

.trade-table--t1 :is(th, td):nth-child(5) {
  width: 7.25rem;
}

.trade-table--t1 :is(th, td):nth-child(6) {
  width: 12rem;
}

.trade-table--t2 table {
  min-width: 64rem;
}

.trade-table--t2 thead tr:first-child > th:first-child,
.trade-table--t2 tbody > tr > :first-child {
  width: 4.25rem;
  padding-inline: 0.65rem;
  text-align: center;
}

.trade-table--t2 thead tr:nth-child(2) > :is(:nth-child(1), :nth-child(4)),
.trade-table--t2 tbody > tr > :is(:nth-child(2), :nth-child(5)) {
  width: 13rem;
}

.trade-table--t2 thead tr:nth-child(2) > :is(:nth-child(2), :nth-child(5)),
.trade-table--t2 tbody > tr > :is(:nth-child(3), :nth-child(6)) {
  width: 10.75rem;
}

.trade-table--t2 thead tr:nth-child(2) > :is(:nth-child(3), :nth-child(6)),
.trade-table--t2 tbody > tr > :is(:nth-child(4), :nth-child(7)) {
  width: 6.125rem;
}

.trade-table--t1 :is(td:nth-child(4), td:nth-child(5), td:nth-child(6)),
.trade-table--t2 :is(td:nth-child(3), td:nth-child(4), td:nth-child(6), td:nth-child(7)) {
  white-space: nowrap;
}

.trade-share {
  position: relative;
  z-index: 0;
  display: block;
  min-width: 5.5rem;
  padding: 0 0.4rem 0.3rem;
  overflow: hidden;
  background: var(--cream-100);
}

.trade-share::before {
  position: absolute;
  z-index: -1;
  inset: auto auto 0 0;
  width: var(--share);
  height: 0.25rem;
  background: var(--forest-800);
  content: "";
}

.trade-table__group-start {
  border-left: 2px solid var(--line);
}

.trade-table__external-stat > * {
  border-top: 2px solid var(--line);
}

.trade-table__concept-group {
  background: var(--cream-50);
}

.trade-table__concept-group tr:first-child > * {
  border-top: 2px solid var(--line);
}

.trade-table__concept-group tr:last-child > * {
  border-bottom-width: 2px;
}

.trade-table__note {
  margin: 0.65rem 0 0;
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.65;
}

.trade-santos {
  color: inherit;
  font-weight: 800;
}

.trade-table__negative {
  border-left: 2px solid var(--copper-600);
}

.trade-map-facility {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.72fr);
  gap: clamp(2rem, 4vw, 3.5rem);
  margin-block: clamp(2.25rem, 5vw, 3.75rem);
  align-items: center;
}

.trade-map-facility__figure picture {
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
}

.trade-map-facility__figure .trade-map-facility__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.trade-map-nowrap {
  white-space: nowrap;
}

.trade-map-glossary {
  margin-block: clamp(3rem, 6vw, 4.5rem);
  padding: clamp(1.4rem, 3vw, 2rem);
  border-left: 3px solid var(--copper-600);
  background: var(--cream-50);
}

.trade-map-glossary h2 {
  margin: 0 0 0.8rem;
  color: var(--forest-900);
  font-size: clamp(1.2rem, 2.2vw, 1.4rem);
  line-height: 1.55;
}

.trade-map-glossary > p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
  line-height: 1.8;
}

.trade-map-glossary dl {
  margin: 1.15rem 0 0;
}

.trade-map-glossary dl > div {
  padding-block: 0.95rem;
  border-top: 1px solid var(--line);
}

.trade-map-glossary dt {
  color: var(--forest-800);
  font-weight: 700;
  line-height: 1.7;
}

.trade-map-glossary dd {
  margin: 0.3rem 0 0;
  font-size: 0.9rem;
  line-height: 1.8;
}

.trade-map-heading-break {
  display: none;
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
  .trade-map-concepts__panel {
    font-size: 0.84rem;
  }

  .trade-map-locator {
    max-width: 32rem;
  }
}

@media (max-width: 63.99rem) {
  .trade-map-facility {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .trade-map-facility__figure {
    max-width: 40rem;
    margin-inline: auto;
  }

  .trade-map-facility__figure picture {
    aspect-ratio: 3 / 2;
  }
}

@media (max-width: 47.99rem) {
  .trade-map-heading-break {
    display: block;
  }

  .insights-post__title--responsive-divider .insights-title__subject::after {
    content: none;
  }

  .insights-post__title--responsive-divider .insights-title__divider {
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
  }

  .trade-map-concepts__grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .trade-map-concepts__panel {
    font-size: 0.9rem;
  }

  .trade-map-locator__names {
    grid-template-columns: 1fr;
  }

  .trade-map-glossary {
    margin-inline: -0.25rem;
    padding: 1.25rem 1.1rem;
  }

  .trade-map-coffee__chart--wide {
    display: none;
  }

  .trade-map-coffee__chart--mobile {
    display: block;
  }

  .trade-table--cards {
    overflow: visible;
  }

  .trade-table--cards caption {
    display: block;
    width: 100%;
  }

  .trade-table--wide::before {
    position: sticky;
    left: 0;
    display: block;
    width: max-content;
    margin-bottom: 0.45rem;
    color: var(--ink-soft);
    font-size: 0.74rem;
    line-height: 1.5;
    content: "横にスクロールできます　→";
  }

  .trade-table--cards table,
  .trade-table--cards tbody,
  .trade-table--cards tr,
  .trade-table--cards th,
  .trade-table--cards td {
    display: block;
    width: 100%;
  }

  .trade-table--cards thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }

  .trade-table--cards tr {
    margin-top: 0.9rem;
    border: 1px solid var(--line);
    background: var(--cream-50);
  }

  .trade-table--cards tbody th {
    width: auto;
    background: var(--cream-100);
  }

  .trade-table--cards td::before {
    display: block;
    margin-bottom: 0.2rem;
    color: var(--ink-soft);
    font-size: 0.74rem;
    font-weight: 700;
    content: attr(data-label);
  }

  .trade-table--cards .trade-table__negative {
    border-left: 3px solid var(--copper-600);
  }

  .trade-table--t7 .trade-table__negative::before {
    color: var(--copper-600);
  }
}
