/* Shared responsive and multilingual safety layer. */
html{max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{max-width:100%;overflow-x:clip}
img,svg,video,canvas{max-width:100%;height:auto}
main,main>section,.site-header,.connected-footer{min-width:0;max-width:100%}
:where(h1,h2,h3,p,a,summary,address,small,span){overflow-wrap:break-word}
html[lang="ja"] :where(h1,h2,h3,p,a,summary){word-break:normal;line-break:strict}
html[lang="es"] :where(h1,h2,h3),html[lang="it"] :where(h1,h2,h3){hyphens:auto}
@media(max-width:700px){
  .site-header{width:100%;max-width:100%;padding-inline:16px}.header-tools{min-width:0}
  .mega-menu,.mega-menu__body{max-width:100%;overflow-x:hidden}.mega-menu__primary a{font-size:clamp(30px,10vw,42px);line-height:1.02}
  .manifesto h2,html[data-theme="light"] .manifesto h2{max-width:100%!important;font-size:clamp(39px,12vw,62px)!important;line-height:.94!important;letter-spacing:-.035em!important}
  html[lang="es"] .manifesto h2,html[lang="it"] .manifesto h2{font-size:clamp(32px,9vw,48px)!important}
  html[lang="ja"] .manifesto h2{font-size:clamp(34px,10vw,52px)!important;line-height:1.08!important;letter-spacing:.01em!important}
  .archive-head h2,.objects h2,.studio h2,.contact h2{max-width:100%;font-size:clamp(42px,15vw,74px)!important;line-height:.92!important}
  html[lang="ja"] .archive-head h2,html[lang="ja"] .objects h2,html[lang="ja"] .studio h2,html[lang="ja"] .contact h2{font-size:clamp(38px,12vw,62px)!important;line-height:1.08!important}
  html[lang="es"] .archive-head h2,html[lang="es"] .objects h2,html[lang="es"] .studio h2,html[lang="es"] .contact h2,
  html[lang="it"] .archive-head h2,html[lang="it"] .objects h2,html[lang="it"] .studio h2,html[lang="it"] .contact h2{font-size:clamp(36px,10.5vw,58px)!important}
  .filters{max-width:100%;overflow-x:auto!important;flex-wrap:nowrap!important;justify-content:flex-start!important;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters button{flex:0 0 auto}
  .archive .art-grid,.rail-track{max-width:100%}.art-meta h3,.rail-card h3{overflow-wrap:anywhere}
  .faq-list summary{grid-template-columns:minmax(0,1fr) 34px;gap:12px}.faq-answer__link{max-width:100%;white-space:normal}
  .connected-footer__grid,.connected-footer__bottom{max-width:100%;overflow:hidden}.footer-theme.footer-theme--triple{max-width:100%}
}

@media(max-width:700px){
  .archive-head,.archive-head.reveal{display:block!important;width:100%!important;text-align:center!important}
  .archive-head .section-tag{width:100%!important;margin-inline:auto!important;text-align:center!important}
  .archive-head h2{display:block!important;width:100%!important;max-width:none!important;margin:24px auto 18px!important;text-align:center!important}
  .archive-head h2 span,.archive-head h2 em{display:inline!important}
  .archive-head>p:last-child{max-width:390px!important;margin-inline:auto!important;text-align:center!important}

  /* Mobile about: keep every copy element on one clear centered axis. */
  #studio .studio-copy,
  #studio .studio-copy.reveal{
    width:100%!important;
    max-width:100%!important;
    margin-inline:auto!important;
    padding-inline:16px!important;
    text-align:center!important;
  }
  #studio .studio-copy .section-tag,
  #studio .studio-copy h2,
  #studio .studio-copy>p:not(.section-tag){
    width:100%!important;
    max-width:620px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    text-align:center!important;
    text-wrap:balance;
  }
  #studio .studio-copy h2 span,
  #studio .studio-copy h2 em{margin-left:0!important;text-align:center!important}
  #studio .values{
    width:100%!important;
    justify-items:stretch!important;
    text-align:center!important;
  }
  #studio .values span{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:70px!important;
    padding-inline:38px!important;
    text-align:center!important;
  }

  /* Japanese prose contains unspaced Latin/Japanese runs; give it an inner
     measure and allow safe breaks without changing the displayed copy. */
  html[lang="ja"] #studio .studio-copy{
    overflow:hidden!important;
    padding-left:24px!important;
    padding-right:24px!important;
  }
  html[lang="ja"] #studio .studio-copy>p:not(.section-tag){
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    max-width:34em!important;
    padding-inline:2px!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
    line-break:strict!important;
    font-size:14px!important;
    line-height:1.9!important;
    letter-spacing:.01em!important;
  }
}
@supports not (overflow:clip){html,body{overflow-x:hidden}}

/* Japanese mobile type must wrap inside the viewport and keep mixed-style words legible. */
html[lang="ja"] .manifesto h2 .text-reveal__word{
  display:inline!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
html[lang="ja"] .archive-head h2 em{
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
}
@media(max-width:700px){
  html[lang="ja"] .manifesto h2{
    padding-inline:2px!important;
    overflow-wrap:anywhere!important;
  }
  html[lang="ja"] .archive-head h2{
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:center!important;
    column-gap:.2em!important;
  }
  html[lang="ja"] .objects-title h2{
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  .connected-footer__contact{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    text-align:center!important;
  }
  .connected-footer__contact :where(.footer-eyebrow,h3,address,a){
    width:100%!important;
    margin-inline:auto!important;
    text-align:center!important;
  }
}

/* Language-aware editorial alignment and long-title protection. */
.manifesto>div{width:100%;max-width:1540px;margin-inline:auto!important}
.manifesto h2,
html[data-theme="light"] .manifesto h2{
  width:min(100%,1280px)!important;
  max-width:calc(100vw - 40px)!important;
  margin-inline:auto!important;
  text-align:center!important;
  text-wrap:balance;
}
html[lang="ja"] .manifesto h2{
  width:min(100%,20em)!important;
  font-size:clamp(52px,6.7vw,102px)!important;
  line-height:1.12!important;
  letter-spacing:.025em!important;
  word-break:normal!important;
  line-break:strict;
}
html[lang="ja"] :where(.archive-head h2,.objects h2,.studio h2,.contact h2){
  margin-inline:auto!important;
  text-align:center!important;
  text-wrap:balance;
  line-height:1.12!important;
}
@media(max-width:700px){
  .manifesto h2,html[data-theme="light"] .manifesto h2{
    max-width:100%!important;
    margin-inline:auto!important;
    text-align:center!important;
    text-wrap:balance;
  }
  html[lang="ja"] .manifesto h2{
    width:100%!important;
    max-width:13em!important;
    font-size:clamp(32px,9.4vw,48px)!important;
    line-height:1.18!important;
    letter-spacing:.02em!important;
  }
  html[lang="ja"] .manifesto-grid small{
    display:block;
    width:100%;
    max-width:none;
    text-align:center;
    font-size:clamp(38px,13vw,58px)!important;
    line-height:1!important;
  }
  html[lang="es"] .manifesto h2,html[lang="it"] .manifesto h2{
    font-size:clamp(30px,8.5vw,46px)!important;
    line-height:1.02!important;
  }
}
