/* Tour Grise V1 multilingual shared additions.
   Keeps the approved FR page CSS intact while adding language switching
   and language-specific typographic safeguards. */
.language-switcher{
  display:inline-flex;
  align-items:center;
  gap:.5em;
  white-space:nowrap;
  font-family:var(--tg-sans,var(--sans,ui-sans-serif,system-ui,sans-serif));
  font-size:11px;
  line-height:1;
  letter-spacing:.08em;
}
.language-switcher a{
  color:inherit;
  text-decoration:none;
  opacity:.62;
  padding:.45rem .05rem;
}
.language-switcher a:hover,
.language-switcher a:focus-visible,
.language-switcher a[aria-current="true"]{opacity:1}
.language-switcher a[aria-current="true"]{font-weight:600}
.language-switcher > span{opacity:.38}

.primary-nav > .language-switcher,
.desktop-nav > .language-switcher{margin-left:clamp(4px,1vw,14px)}

.mobile-nav > .language-switcher{
  margin-top:20px;
  padding-top:8px;
  font-size:14px;
  gap:.8em;
}
.primary-nav.is-open > .language-switcher{
  margin:14px 0 0;
  padding:12px 0 0;
  font-size:14px;
  justify-self:start;
}

/* Simplified Chinese must not mechanically inherit Latin tracking. */
[data-lang="zh"]{
  --zh-serif:"Source Han Serif SC","Noto Serif CJK SC","Songti SC","STSong","SimSun","NSimSun","Source Serif 4",serif;
  --zh-sans:"Source Han Sans SC","Noto Sans CJK SC","PingFang SC","Microsoft YaHei","Source Sans 3",sans-serif;
  font-family:var(--zh-sans);
}
[data-lang="zh"] h1,
[data-lang="zh"] h2,
[data-lang="zh"] h3,
[data-lang="zh"] .editorial-quote,
[data-lang="zh"] .closing-line{
  font-family:var(--zh-serif);
}
/* Brand lockup is language-invariant: TOUR GRISE remains a Latin wordmark
   and must not inherit CJK font metrics on the Chinese site. */
[data-lang="zh"] .brand-name,
[data-lang="zh"] .wordmark-main,
[data-lang="zh"] .footer-wordmark,
[data-lang="zh"] .footer-brand{
  font-family:var(--tg-brand-serif,var(--tg-serif,var(--serif,Georgia,serif)));
}
[data-lang="zh"] .eyebrow,
[data-lang="zh"] .positioning,
[data-lang="zh"] .mission-rule,
[data-lang="zh"] .kicker,
[data-lang="zh"] .button,
[data-lang="zh"] .scroll-cue{
  letter-spacing:.08em;
}
[data-lang="zh"] .hero h1,
[data-lang="zh"] .association-hero h1,
[data-lang="zh"] .pc-hero h1,
[data-lang="zh"] .contact-hero h1{
  letter-spacing:0;
  text-transform:none;
  line-height:1.12;
}
[data-lang="zh"] p,
[data-lang="zh"] li{line-height:1.72}

@media (max-width:1180px) and (min-width:1001px){
  .desktop-nav{gap:16px!important;font-size:12.5px!important}
  .desktop-nav > .language-switcher{margin-left:0;font-size:10px}
}
@media (max-width:980px) and (min-width:640px){
  .primary-nav{gap:14px!important;font-size:12px!important}
  .primary-nav > .language-switcher{margin-left:0;font-size:10px}
}

/* V0.2 — Headline composition refinement.
   Balance display lines without changing approved copy. */
h1,h2,.editorial-quote,.closing-line,
.pc-dark-quote,.contact-hero h1,.contact-contexts h2{
  text-wrap:balance;
  hyphens:none;
  overflow-wrap:normal;
}
[data-lang="fr"] h1,[data-lang="fr"] h2,
[data-lang="en"] h1,[data-lang="en"] h2{
  text-wrap:balance;
}
[data-lang="zh"] h1,[data-lang="zh"] h2,
[data-lang="zh"] .editorial-quote,[data-lang="zh"] .closing-line{
  text-wrap:balance;
  line-break:strict;
  word-break:normal;
}
/* Keep long editorial headings optically contained rather than letting
   browser auto-wrap produce a very short orphan line. */
@media (min-width:1001px){
  [data-lang="en"] .association-hero h1{max-width:19ch}
  [data-lang="zh"] .association-hero h1{max-width:16em}
  [data-lang="en"] .pc-hero h1{max-width:15ch}
  [data-lang="zh"] .pc-hero h1{max-width:11em}
  [data-lang="en"] .pc-dark-grid h2{max-width:18ch}
  [data-lang="zh"] .pc-dark-grid h2{max-width:14em}
}


/* V0.3 — mobile headline balance for the longer English Participate / Cooperate hero. */
@media (max-width:760px){
  [data-lang="en"] .pc-hero h1{font-size:clamp(34px,9.7vw,44px);line-height:1.06}
}


/* Pre-launch legal closure: real footer legal routes replace placeholders. */
.footer-pending a{color:#d6d0c5;text-decoration:none}
.footer-pending a:hover,.footer-pending a:focus-visible,.footer-pending a[aria-current="page"]{color:#fff}


/* =========================================================
   V0.1.4 — Controlled Simplified Chinese first-view typography
   Source Han Serif CN is materially larger than the Latin faces and can
   complete after Source Han Sans on a cold navigation. Instead of allowing
   an accidental "body first, H1 later" reveal, Chinese hero copy uses a
   deliberate two-stage entrance:
   1) final serif H1
   2) supporting copy / CTA after the final sans face is ready.
   ========================================================= */
html.js.zh-font-stage [data-zh-font-stage] > h1,
html.js.zh-font-stage [data-zh-font-stage] > :not(h1),
html.js.zh-font-stage .hero .scroll-cue{
  opacity:0;
}

html.js.zh-font-stage [data-zh-font-stage] > h1{
  transform:translateY(5px);
  transition:opacity .15s ease,transform .18s ease;
}
html.js.zh-font-stage [data-zh-font-stage] > :not(h1),
html.js.zh-font-stage .hero .scroll-cue{
  transform:translateY(3px);
  transition:opacity .16s ease,transform .18s ease;
}

html.js.zh-font-stage.zh-title-ready [data-zh-font-stage] > h1{
  opacity:1;
  transform:none;
}
html.js.zh-font-stage.zh-copy-ready [data-zh-font-stage] > :not(h1),
html.js.zh-font-stage.zh-copy-ready .hero .scroll-cue{
  opacity:1;
  transform:none;
}

@media (prefers-reduced-motion:reduce){
  html.js.zh-font-stage [data-zh-font-stage] > h1,
  html.js.zh-font-stage [data-zh-font-stage] > :not(h1),
  html.js.zh-font-stage .hero .scroll-cue{
    transition:none!important;
    transform:none!important;
  }
}

/* Cross-language CTA geometry:
   the equivalent action retains the same box size in FR / EN / ZH. */
.hero-copy > .button{
  inline-size:260px;
  max-inline-size:100%;
  white-space:nowrap;
}
.contact-hero-email,
.contact-write,
.pc-contact-action{
  inline-size:184px;
  max-inline-size:100%;
  justify-content:space-between;
  white-space:nowrap;
}

@media (max-width:760px){
  .hero-copy > .button{
    inline-size:228px;
  }
  .contact-hero-email,
  .contact-write,
  .pc-contact-action{
    inline-size:170px;
  }
}


/* =========================================================
   V0.1.5 — Desktop Header Geometry Lock
   Homepage is the canonical desktop header geometry.
   Inner pages keep their own background treatment, but may no longer alter
   header height, shell width, brand size, nav typography or nav spacing.
   ========================================================= */
@media (min-width:1181px){
  :root{
    --tg-header-h:84px;
  }

  .site-header .header-inner{
    width:min(calc(100% - (2 * clamp(20px,4.3vw,68px))),1280px);
    height:84px;
    min-height:84px;
    margin-inline:auto;
    gap:36px;
  }

  .site-header .brand,
  .site-header .wordmark{
    display:inline-flex;
    flex-direction:row;
    align-items:center;
    gap:14px;
    line-height:1;
    white-space:nowrap;
  }

  .site-header .brand-mark{
    width:39px;
    height:39px;
    flex:0 0 39px;
    font-family:var(--tg-brand-serif,var(--tg-serif,var(--serif,Georgia,serif)));
    font-size:11px;
    font-weight:500;
    line-height:1;
    letter-spacing:.08em;
    padding:.03em 0 0 .08em;
  }

  .site-header .brand-name,
  .site-header .wordmark-main{
    font-family:var(--tg-brand-serif,var(--tg-serif,var(--serif,Georgia,serif)));
    font-size:15px;
    font-weight:600;
    line-height:1;
    letter-spacing:.28em;
    white-space:nowrap;
  }

  .site-header .primary-nav,
  .site-header .desktop-nav{
    display:flex;
    align-items:center;
    gap:clamp(18px,2.4vw,38px);
    font-family:var(--tg-sans,var(--sans,ui-sans-serif,system-ui,sans-serif));
    font-size:14px;
    line-height:1;
    letter-spacing:.08em;
    white-space:nowrap;
  }

  .site-header .primary-nav > a,
  .site-header .desktop-nav > a{
    padding-block:12px;
    font-size:inherit;
    line-height:inherit;
    letter-spacing:inherit;
    white-space:nowrap;
  }

  .site-header .primary-nav > .language-switcher,
  .site-header .desktop-nav > .language-switcher{
    margin-left:clamp(4px,1vw,14px);
    font-size:11px;
    line-height:1;
    letter-spacing:.08em;
  }
}


/* =========================================================
   V0.1.6 — Mobile Tap Highlight Normalisation
   Remove Chromium/WebKit's default blue touch highlight while preserving
   keyboard focus-visible outlines and Tour Grise's own interaction states.
   ========================================================= */
:where(a,button,[role="button"],summary,label[for]){
  -webkit-tap-highlight-color:transparent;
}

@media (hover:none) and (pointer:coarse){
  :where(a,button,[role="button"]){
    -webkit-tap-highlight-color:rgba(0,0,0,0);
  }
}
