:root {
  color-scheme: light dark;
  --paper: #ffffff;
  --surface: #f4f2ee;
  --ink: #071331;
  --muted: #606575;
  --line: #d9d8d4;
  --accent: #aa9650;
  --accent-soft: #e8e0c7;
  --dark: #071331;
  --on-dark: #ffffff;
  --max-width: 1320px;
  --gutter: clamp(1.2rem, 4vw, 4.25rem);
  --serif: "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --sans: Arial, Helvetica, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; scroll-behavior: smooth; }
body {
  max-width: 100%;
  overflow-x: clip;
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.62;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.25em; }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: .75rem;
  left: .75rem;
  padding: .75rem 1rem;
  background: var(--ink);
  color: var(--surface);
  transform: translateY(-150%);
  transition: transform 160ms ease;
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0;
  padding: 1.25rem max(var(--gutter), calc((100% - var(--max-width)) / 2 + var(--gutter)));
  background: var(--dark);
  color: var(--on-dark);
}
.wordmark {
  display: inline-flex;
  align-items: baseline;
  color: var(--on-dark);
  font-family: var(--serif);
  font-size: 1.65rem;
  line-height: 1;
  letter-spacing: .02em;
  text-decoration: none;
}
.wordmark-dot { color: var(--accent); }
.main-nav {
  display: flex;
  gap: clamp(.8rem, 2.4vw, 2.2rem);
  overflow-x: auto;
  padding: .45rem 0;
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  scrollbar-width: none;
}
.main-nav::-webkit-scrollbar { display: none; }
.main-nav a { white-space: nowrap; text-decoration: none; }
.main-nav a:hover { text-decoration: underline; text-underline-offset: .4em; }

.eyebrow {
  margin: 0 0 1rem;
  color: var(--accent);
  font-size: .69rem;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.hero {
  display: grid;
  width: 100%;
  min-height: min(600px, calc(100svh - 4.5rem));
  margin: 0 auto;
  padding: clamp(1.8rem, 3.5vw, 2.8rem) max(var(--gutter), calc((100% - var(--max-width)) / 2 + var(--gutter))) clamp(2.5rem, 4vw, 3.25rem);
  gap: 2.2rem;
  align-items: center;
  background: var(--dark);
  color: var(--on-dark);
}
.hero-copy { max-width: 44rem; }
.hero-copy, .activity-copy, .section-heading > * { min-width: 0; }
h1 {
  margin-bottom: 1rem;
  font-size: clamp(3.35rem, 12vw, 5.8rem);
  line-height: .98;
  letter-spacing: .005em;
}
.role { margin-bottom: 1.3rem; font-size: clamp(.92rem, 1.8vw, 1.08rem); }
.lead {
  max-width: 40rem;
  margin-bottom: 1.35rem;
  font-family: var(--serif);
  font-size: clamp(1.06rem, 2.2vw, 1.32rem);
  line-height: 1.52;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: 1.05rem; }
.hero-action {
  display: inline-flex;
  min-height: 2.65rem;
  align-items: center;
  justify-content: center;
  padding: .7rem 1rem;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: #071331;
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
}
.hero-action--ghost { background: transparent; color: var(--on-dark); }
.hero-action:hover { filter: brightness(1.08); }
.sector-list {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sector-list a {
  display: block;
  padding: .48rem .72rem;
  border: 1px solid rgba(255, 255, 255, .32);
  border-radius: 99rem;
  font-size: .68rem;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}
.sector-list a:hover { border-color: var(--accent); background: var(--accent); color: var(--dark); }
.portrait { position: relative; isolation: isolate; width: min(100%, 23rem); margin: 0 auto; }
.portrait::before {
  position: absolute;
  inset: -.65rem;
  z-index: -1;
  border: 1px solid var(--accent);
  border-radius: 14.5rem 14.5rem .75rem .75rem;
  content: "";
}
.portrait img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center;
  border-radius: 14rem 14rem .35rem .35rem;
  background: #050505;
}
.portrait figcaption {
  margin-top: .8rem;
  color: #c7c9d0;
  font-size: .64rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.key-figures {
  display: grid;
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: 0 var(--gutter);
  border-bottom: 1px solid var(--line);
}
.key-figures div {
  display: flex;
  min-height: 5.6rem;
  align-items: baseline;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--line);
  gap: .8rem;
}
.key-figures div:last-child { border-bottom: 0; }
.key-figures strong { color: var(--accent); font-family: var(--serif); font-size: 2rem; font-weight: 400; line-height: 1; }
.key-figures span { color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.international { background: #e9e3d1; color: #071331; }
.international-inner {
  display: grid;
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: clamp(2.7rem, 4.5vw, 4rem) var(--gutter);
  gap: 2rem;
}
.international h2 { max-width: 16ch; }
.international-copy { max-width: 43rem; }
.international-lead { font-family: var(--serif); font-size: clamp(1.2rem, 2.4vw, 1.55rem); line-height: 1.48; }
.international-copy > p:not(.international-lead) { color: #55584f; }
.country-list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.country-list li { padding: .42rem .7rem; border: 1px solid #a59c7d; border-radius: 99rem; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.section {
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: clamp(2.7rem, 4.5vw, 4rem) var(--gutter);
  border-top: 1px solid var(--line);
}
.section-index, .principle-index {
  color: var(--muted);
  font-size: .68rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .13em;
}
.section-index { margin-right: .55rem; }
.section-heading { display: grid; gap: 1.25rem; margin-bottom: clamp(1.7rem, 2.8vw, 2.45rem); }
h2 {
  max-width: 18ch;
  margin-bottom: 0;
  font-size: clamp(2.1rem, 5vw, 3.8rem);
  line-height: 1.13;
  letter-spacing: 0;
}
.journey-grid { display: grid; gap: 2rem; }
.journey-intro { max-width: 42rem; }
.journey-intro p:first-child {
  margin-bottom: 1.25rem;
  font-family: var(--serif);
  font-size: clamp(1.2rem, 2.6vw, 1.58rem);
  line-height: 1.48;
}
.journey-intro p:last-child { margin-bottom: 0; color: var(--muted); }
.timeline { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); }
.timeline li { position: relative; padding: 1.15rem 0 1.15rem 1.25rem; border-bottom: 1px solid var(--line); }
.timeline li::before {
  position: absolute;
  top: 1.55rem;
  left: 0;
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: var(--accent);
  content: "";
}
.timeline-label { margin-bottom: .25rem; color: var(--accent); font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.timeline h3 { margin-bottom: .4rem; font-size: clamp(1.28rem, 2.6vw, 1.65rem); }
.timeline li > p:last-child { max-width: 34rem; margin-bottom: 0; color: var(--muted); font-size: .92rem; }

.principles { background: #efeeeb; color: var(--ink); }
.principles-inner {
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: clamp(2.8rem, 4.5vw, 4.15rem) var(--gutter);
}
.principles .eyebrow { color: var(--accent); }
.principles-heading { margin-bottom: clamp(2rem, 3.5vw, 3rem); }
.principle-grid { display: grid; border-top: 1px solid #b8b6b0; }
.principle-grid article { padding: 1.75rem 0; border-bottom: 1px solid #b8b6b0; }
.principle-index { color: var(--accent); }
.principle-grid h3 { margin-bottom: .55rem; font-size: clamp(1.55rem, 3.4vw, 2rem); }
.principle-grid article > p:last-child { max-width: 28rem; margin-bottom: 0; color: var(--muted); }

.manifesto { background: var(--dark); color: var(--on-dark); }
.manifesto-inner {
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: clamp(2.9rem, 4.7vw, 4.35rem) var(--gutter);
}
.manifesto .eyebrow { color: var(--accent); }
.manifesto h2 { max-width: 20ch; font-size: clamp(2.2rem, 5.3vw, 4.25rem); line-height: 1.09; }
.manifesto em { color: var(--accent); font-weight: 400; }

.companies-heading .heading-note { max-width: 26rem; margin-bottom: 0; color: var(--muted); align-self: end; }
.activity-list { display: grid; gap: clamp(1.4rem, 3vw, 2.6rem); }
.activity-card { display: grid; overflow: hidden; scroll-margin-top: 1rem; border: 1px solid var(--line); background: var(--surface); }
.activity-visual { min-height: 15rem; background: #ddd8cd; }
.activity-visual > img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.activity-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(1.4rem, 3vw, 2.4rem); }
.activity-copy h3 { margin-bottom: .75rem; font-size: clamp(1.9rem, 4vw, 2.8rem); line-height: 1.12; letter-spacing: 0; }
.activity-copy > p:not(.company-type):not(.activity-status) { max-width: 32rem; margin-bottom: 1.4rem; color: var(--muted); }
.activity-logo {
  display: flex;
  width: auto;
  height: auto;
  margin-bottom: .9rem;
  align-items: center;
  justify-content: flex-start;
  overflow: visible;
  border: 0;
  padding: 0;
}
.activity-logo img { width: auto; height: 4.15rem; max-width: 10rem; object-fit: contain; }
.activity-logo--invest, .activity-logo--guestify, .activity-logo--flaw { background: transparent; }
.activity-logo--invest {
  width: 7.6rem;
  min-height: 6.6rem;
  margin-left: auto;
  padding: .65rem 1.2rem;
  background: #0d1526;
}
.activity-logo--invest img { height: 5.25rem; max-width: 100%; }
.activity-logo--guestify {
  width: 9.4rem;
  min-height: 7.1rem;
  padding: .65rem .8rem;
  border: 1px solid #ccd0da;
  background: #fff;
}
.activity-logo--guestify img { width: 100%; height: auto; max-width: none; }
.activity-logo--beauty {
  width: 7.6rem;
  min-height: 6.1rem;
  margin-left: auto;
  padding: .65rem 1rem;
  background: #102f38;
}
.activity-logo--beauty img { height: 4.8rem; max-width: 100%; }
.activity-logo--flaw img { height: 3.8rem; }
.company-type { margin-bottom: .35rem; color: var(--accent); font-size: .66rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.activity-status { display: inline-flex; align-items: center; gap: .5rem; margin: -.15rem 0 1.05rem; color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.activity-status span { width: .48rem; height: .48rem; border-radius: 50%; background: #fcbe16; }
.card-links { display: flex; flex-wrap: wrap; gap: .75rem 1.4rem; margin-top: auto; padding-top: .25rem; }
.card-links a, .text-link { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.card-links .card-link-primary { color: var(--accent); }
.card-links a span, .text-link span { display: inline-block; transition: transform 180ms ease; }
.card-links a:hover span, .text-link:hover span { transform: translate(.15rem, -.15rem); }
.beauty-visual {
  display: grid;
  min-height: 17rem;
  padding: 1.65rem;
  background: #102f38;
  color: #f4ceb1;
  place-items: center;
}
.beauty-visual picture { width: min(40%, 10rem); }
.beauty-visual img { width: 100%; height: auto; }
.beauty-visual span { width: 100%; font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; }
.beauty-visual span:last-child { text-align: right; }
.flaw-visual {
  display: flex;
  min-height: 17rem;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  padding: clamp(1.7rem, 4vw, 3rem);
  background: #383938;
  color: #fffaf0;
}
.flaw-visual::after { width: clamp(4.5rem, 12vw, 8rem); height: .55rem; background: #fcbe16; content: ""; }
.flaw-visual span { font-size: .65rem; letter-spacing: .16em; text-transform: uppercase; }
.flaw-visual strong { color: #fcbe16; font-family: var(--serif); font-size: clamp(3.8rem, 8vw, 6rem); font-weight: 400; letter-spacing: 0; line-height: .98; }

.now { background: #e9e3d1; color: #071331; }
.now-inner {
  display: grid;
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: clamp(3.25rem, 5vw, 4.75rem) var(--gutter);
  gap: 2rem;
}
.now-list { border-top: 1px solid #a59c7d; }
.now-list p { display: grid; margin: 0; padding: 1rem 0; border-bottom: 1px solid #c5bda3; gap: .3rem; }
.now-list span { font-size: .67rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }

.market-context { background: var(--dark); color: var(--on-dark); }
.market-context-inner { width: min(100%, var(--max-width)); margin: 0 auto; padding: clamp(2.8rem, 4.8vw, 4.4rem) var(--gutter); }
.market-context header { display: grid; gap: .8rem; margin-bottom: 2rem; }
.market-context header > p:last-child { max-width: 42rem; margin-bottom: 0; color: #c6c9d1; }
.market-grid { display: grid; border-top: 1px solid rgba(255,255,255,.24); }
.market-grid article { padding: 1.45rem 0; border-bottom: 1px solid rgba(255,255,255,.24); }
.market-grid strong { display: block; margin-bottom: .55rem; color: var(--accent); font-family: var(--serif); font-size: clamp(2.2rem, 5vw, 3.65rem); font-weight: 400; line-height: 1; }
.market-grid h3 { margin-bottom: .55rem; font-size: 1.25rem; }
.market-grid p { max-width: 28rem; margin-bottom: .8rem; color: #c6c9d1; font-size: .88rem; }
.market-grid a { font-size: .63rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; border: 0; clip: rect(0 0 0 0); white-space: nowrap; }
.text-link { display: inline-flex; gap: .6rem; align-items: center; }

.contact { display: grid; padding-top: clamp(1.9rem, 3vw, 2.55rem); padding-bottom: clamp(1.9rem, 3vw, 2.55rem); gap: 1.6rem; }
.contact h2 { max-width: 14ch; font-size: clamp(1.85rem, 3.4vw, 2.65rem); }
.contact-list { display: grid; max-width: 46rem; font-style: normal; }
.contact-list a { display: grid; padding: 1.05rem 0; border-bottom: 1px solid var(--line); gap: .3rem; text-decoration: none; }
.contact-list a:first-child { border-top: 1px solid var(--line); }
.contact-list span { color: var(--muted); font-size: .66rem; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }
.contact-list strong { overflow-wrap: anywhere; font-family: var(--serif); font-size: clamp(1.08rem, 2.5vw, 1.45rem); font-weight: 400; }
.contact-list strong span { color: inherit; font-size: .8em; }

.site-footer {
  display: grid;
  width: min(100%, var(--max-width));
  margin: 0 auto;
  padding: 1.9rem var(--gutter);
  border-top: 1px solid var(--line);
  gap: 1.25rem;
  color: var(--muted);
  font-size: .7rem;
}
.footer-name { margin-bottom: 0; color: var(--ink); font-family: var(--serif); font-size: 1.2rem; }
.legal p, .copyright { margin-bottom: .22rem; }

/* Pages dédiées aux structures */
.detail-page .site-header { border-bottom: 1px solid rgba(255,255,255,.16); }
.detail-hero {
  display: grid;
  min-height: 36rem;
  background: var(--dark);
  color: var(--on-dark);
}
.detail-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2.6rem, 5vw, 5rem) var(--gutter); }
.detail-back { align-self: flex-start; margin-bottom: clamp(2rem, 5vw, 4rem); color: #c7c9d0; font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.detail-hero h1 { margin-bottom: 1.35rem; font-size: clamp(3.5rem, 10vw, 6.8rem); }
.detail-lead { max-width: 35rem; margin-bottom: 0; font-family: var(--serif); font-size: clamp(1.15rem, 2.3vw, 1.55rem); line-height: 1.5; }
.detail-hero-media { position: relative; min-height: 24rem; overflow: hidden; background: #e8e6e0; }
.detail-hero-media > picture:not(.detail-brand) { display: block; width: 100%; height: 100%; }
.detail-hero-media > picture:not(.detail-brand) img { width: 100%; height: 100%; object-fit: cover; }
.detail-brand { position: absolute; z-index: 2; top: 1.35rem; right: 1.35rem; display: grid; place-items: center; }
.detail-brand--invest { width: 9rem; min-height: 8.5rem; padding: .8rem 1.45rem; background: #0d1526; }
.detail-brand--invest img { max-height: 6.9rem; width: auto; }
.detail-brand--guestify { left: 1.35rem; right: auto; width: 11.5rem; min-height: 8rem; padding: .75rem 1rem; border: 1px solid #cdd0d8; background: #fff; }
.detail-brand--guestify img { width: 100%; max-height: 7rem; object-fit: contain; }
.detail-hero-media--beauty { display: grid; min-height: 32rem; padding: 3rem; background: #102f38; color: #f4ceb1; place-items: center; }
.detail-brand--beauty { position: static; width: min(65%, 20rem); }
.detail-brand--beauty img { width: 100%; max-height: 23rem; object-fit: contain; }
.detail-hero-media--beauty > p { width: 100%; margin: 0; font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; }
.detail-hero-media--beauty > p span { float: right; }
.detail-hero-media--flaw { display: grid; min-height: 28rem; padding: 3rem; background: #383938; place-items: center; }
.detail-brand--flaw { position: static; width: min(70%, 22rem); padding: 1.2rem; background: #fff; }
.detail-brand--flaw img { width: 100%; }
.detail-hero--flaw .activity-status { margin-top: 1.2rem; color: #e7e5df; }
.detail-section { display: grid; width: min(100%, var(--max-width)); margin: 0 auto; padding: clamp(3rem, 5vw, 5rem) var(--gutter); gap: 2rem; border-top: 1px solid var(--line); }
.detail-intro-lead { font-family: var(--serif); font-size: clamp(1.25rem, 2.5vw, 1.7rem); line-height: 1.48; }
.detail-intro > div:last-child > p:last-child, .detail-network > div:last-child > p { color: var(--muted); }
.detail-pillars { display: block; }
.detail-pillars > h2 { margin-bottom: 2rem; }
.detail-pillar-grid { display: grid; border-top: 1px solid var(--line); }
.detail-pillar-grid article { padding: 1.6rem 0; border-bottom: 1px solid var(--line); }
.detail-pillar-grid span { color: var(--accent); font-size: .66rem; letter-spacing: .1em; }
.detail-pillar-grid h3 { margin: .55rem 0; font-size: 1.65rem; }
.detail-pillar-grid p { max-width: 28rem; margin-bottom: 0; color: var(--muted); }
.detail-proof { background: var(--dark); color: var(--on-dark); }
.detail-proof > div { width: min(100%, var(--max-width)); margin: 0 auto; padding: clamp(3.2rem, 6vw, 5.6rem) var(--gutter); }
.detail-proof strong { display: block; margin-bottom: .65rem; color: var(--accent); font-family: var(--serif); font-size: clamp(3.4rem, 9vw, 7.5rem); font-weight: 400; line-height: 1; }
.detail-proof h2 { max-width: 20ch; margin-bottom: 1.2rem; }
.detail-proof p { max-width: 42rem; color: #c6c9d1; }
.detail-proof a { font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.detail-proof--flaw { background: #383938; }
.detail-cta { display: grid; width: min(100%, var(--max-width)); margin: 0 auto; padding: clamp(2.8rem, 5vw, 4.6rem) var(--gutter); }
.detail-cta h2 { margin-bottom: 1.5rem; }
.detail-cta > div { display: flex; flex-wrap: wrap; gap: .75rem; }
.detail-cta .hero-action--ghost { color: var(--ink); }

@media (min-width: 720px) {
  .site-header { padding-top: 1.2rem; padding-bottom: 1.2rem; }
  .key-figures { grid-template-columns: repeat(4, 1fr); }
  .key-figures div { justify-content: center; padding-inline: clamp(1rem, 3vw, 2.5rem); border-right: 1px solid var(--line); border-bottom: 0; }
  .key-figures div:first-child { justify-content: flex-start; padding-left: 0; }
  .key-figures div:last-child { justify-content: flex-end; padding-right: 0; border-right: 0; }
  .section-heading { grid-template-columns: minmax(0, 1fr); }
  .principle-grid { grid-template-columns: repeat(3, 1fr); }
  .principle-grid article { padding: 1.55rem clamp(1.1rem, 2.5vw, 2rem); border-right: 1px solid #b8b6b0; }
  .principle-grid article:first-child { padding-left: 0; }
  .principle-grid article:last-child { padding-right: 0; border-right: 0; }
  .activity-card { grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr); min-height: 28.5rem; }
  .activity-card--reverse .activity-visual { order: 2; }
  .activity-card--reverse .activity-copy { order: 1; }
  .activity-visual > img { height: 100%; aspect-ratio: auto; }
  .contact-list a { grid-template-columns: 8.5rem 1fr; align-items: baseline; }
  .site-footer { grid-template-columns: .7fr 2fr auto; align-items: start; }
  .market-grid { grid-template-columns: repeat(2, 1fr); }
  .market-grid article { padding: 1.7rem clamp(1rem, 2.4vw, 2rem); border-right: 1px solid rgba(255,255,255,.24); }
  .market-grid article:nth-child(2n) { border-right: 0; }
  .detail-pillar-grid { grid-template-columns: repeat(3, 1fr); }
  .detail-pillar-grid article { padding: 1.8rem clamp(1.2rem, 2.7vw, 2.2rem); border-right: 1px solid var(--line); }
  .detail-pillar-grid article:first-child { padding-left: 0; }
  .detail-pillar-grid article:last-child { padding-right: 0; border-right: 0; }
}

@media (min-width: 850px) and (max-width: 1049px) {
  .hero {
    grid-template-columns: minmax(0, 1fr) 20rem;
    min-height: 610px;
    gap: 2rem;
  }
  .hero-copy { max-width: 31rem; }
  .hero h1 { font-size: clamp(4.35rem, 8vw, 4.85rem); }
  .hero .lead { font-size: 1.08rem; }
  .portrait { width: 20rem; justify-self: end; }
}

@media (min-width: 1050px) {
  .hero { grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .72fr); }
  .portrait { justify-self: end; }
}

@media (min-width: 900px) {
  .journey-grid { grid-template-columns: minmax(18rem, .8fr) minmax(23rem, 1fr); padding-left: 7%; }
  .international-inner { grid-template-columns: minmax(20rem, .75fr) minmax(25rem, 1fr); }
  .now-inner { grid-template-columns: minmax(18rem, .75fr) minmax(24rem, 1fr); }
  .contact { grid-template-columns: minmax(18rem, .75fr) minmax(24rem, 1fr); }
  .detail-hero { grid-template-columns: minmax(24rem, .9fr) minmax(28rem, 1.1fr); }
  .detail-hero-copy { padding-left: max(var(--gutter), calc((100vw - var(--max-width)) / 2 + var(--gutter))); }
  .detail-intro, .detail-network { grid-template-columns: minmax(20rem, .78fr) minmax(26rem, 1fr); }
}

@media (min-width: 960px) {
  .companies-heading { grid-template-columns: minmax(24rem, 1fr) minmax(16rem, .58fr); }
}

@media (min-width: 541px) and (max-width: 1049px) {
  .site-header { gap: 1rem; }
  .main-nav { gap: clamp(.65rem, 1.7vw, 1.1rem); font-size: .63rem; }
}

@media (max-width: 540px) {
  .site-header { flex-direction: column; align-items: flex-start; gap: .65rem; }
  .main-nav { display: grid; width: 100%; grid-template-columns: repeat(4, auto); justify-content: space-between; gap: .3rem; padding-bottom: 0; font-size: .59rem; letter-spacing: .04em; }
  .hero { min-height: auto; }
  .portrait { width: min(100%, 21rem); }
  .activity-visual { min-height: 15rem; }
  .activity-logo--invest, .activity-logo--beauty { width: 6.6rem; min-height: 5.6rem; }
  .activity-logo--invest img { height: 4.35rem; }
  .activity-logo--beauty img { height: 3.95rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .hero-copy, .portrait { animation: enter 650ms ease-out both; }
  .portrait { animation-delay: 100ms; }
  @keyframes enter { from { opacity: 0; transform: translateY(.75rem); } to { opacity: 1; transform: translateY(0); } }
}

@media (prefers-color-scheme: dark) {
  :root { --paper: #121722; --surface: #1b2130; --ink: #f3f2ee; --muted: #b9bdc7; --line: #363d4d; --accent: #c4ae61; --accent-soft: #3a3525; --dark: #050b1c; --on-dark: #f7f5ef; }
  .principles { background: #1b2130; color: var(--ink); }
  .principle-grid, .principle-grid article { border-color: #444b5c; }
  .now { background: #262719; color: #efede5; }
  .now-list { border-top-color: #7b765d; }
  .now-list p { border-bottom-color: #4e4d3d; }
  .activity-logo--guestify, .activity-logo--flaw { background: #fff; }
  .international { background: #262719; color: #efede5; }
  .international-copy > p:not(.international-lead) { color: #c5c7c0; }
}

@media print {
  :root { color-scheme: light; }
  .site-header, .skip-link { display: none; }
  .hero { min-height: auto; }
  .principles { border-block: 1px solid #999; background: #fff; color: #111; }
}
