/* One content tree, with a dedicated small-screen composition. */
.mobile-hero-actions, .mobile-chapters, .mobile-news-hint { display: none; }
@media (max-width: 900px) {
  html { scroll-padding-top: 88px; }
  .site-header {
    position: sticky; top: 0; z-index: 35; height: 72px; padding-inline: 5.5%;
    background: var(--paper);
    border-bottom: 1px solid #28352a12;
  }
  .site-header .brand { max-width: calc(100% - 64px); gap: 10px; }
  .site-header .brand-name { font-size: 18px; max-height: 62px; overflow: auto; }
  .brand-name small { font-size: 8px; letter-spacing: 1.6px; }
  .brand-logo { width: 47px; height: 39px; }
  .site-header .language { display: none; }
  .menu-toggle { width: 44px; height: 44px; padding: 0; align-items: center; justify-content: center; border: 0; border-radius: 0; gap: 6px; }
  .menu-toggle span { width: 22px; }
  .menu-toggle:hover span:last-child { width: 22px; }
  .home-page { display: grid; grid-template-columns: minmax(0, 1fr); }
  .home-page > * { min-width: 0; }
  .home-intro {
    grid-area: 1 / 1; z-index: 2; width: 100%; padding: 32px 5.5% 100px;
    min-height: max(650px, calc(100svh - 72px)); display: flex; flex-direction: column;
    color: white; pointer-events: none;
  }
  .home-intro a { pointer-events: auto; }
  .intro-kicker {
    align-self: flex-start; padding: 0; border: 0;
    background: none; font-size: 11px; letter-spacing: 1px; gap: 9px;
  }
  .intro-en { display: none; }
  .hero-heading { margin: clamp(38px, 8svh, 85px) 0 26px; display: block; }
  .headline { font-size: clamp(32px, 9.8vw, 62px); line-height: 1.45; font-weight: 500; margin-bottom: 25px; max-width: 11em; }
  .hero-aside { display: block; }
  .hero-aside p { max-width: 30em; font-size: 13px; line-height: 2; color: #ffffffed; margin: 0; }
  .hero-aside .explore-link, .home-intro .intro-bottom { display: none; }
  .mobile-hero-actions { display: flex; flex-wrap: wrap; gap: 26px; order: 3; }
  .mobile-hero-actions a {
    min-height: 46px; padding: 10px 0; border: 0; border-bottom: 1px solid #ffffff70; border-radius: 0;
    font-size: 12px; display: flex; align-items: center; gap: 20px;
  }
  .mobile-hero-actions a:first-child { border-color: var(--brand); color: white; }
  .hero-wordmark { order: 4; margin-top: auto; padding: 42px 0 0; font-size: 10vw; color: #ffffffb8; overflow: visible; gap: 2%; }
  .hero-wordmark.wordmark-long { font-size: 5.2vw; }
  .hero-wordmark .asterisk { display: none; }
  .landscape-shell { grid-area: 1 / 1; height: auto; min-height: 0; max-height: none; margin: 0; border-radius: 0; }
  .landscape-frame { position: absolute; inset: 0; height: auto; }
  .hero-slide:after { background: linear-gradient(180deg, #0a221cc4 0%, #0a221c7a 42%, #0a221c20 70%, #0a221cb3 100%); }
  .hero-image { object-position: 55% center; height: 115%; top: -7.5%; }
  .landscape-overlay { display: none; }
  .photo-caption { left: 5.5%; right: 5.5%; height: 73px; gap: 12px; }
  .slide-selectors { gap: 10px; }
  .slide-selectors button { gap: 0; min-width: 44px; }
  .slide-selectors button > span { display: none; }
  .slide-selectors i { width: 28px; }
  .slide-selectors [aria-pressed="true"] i { width: 56px; }
  .slide-pause { min-width: 48px; font-size: 11px; }
  .section-space { padding-block: 72px; }
  .section-label { margin-bottom: 38px; gap: 15px; font-size: 11px; }
  .section-label span:first-child { color: var(--brand-text); }
  .section-label span:last-child { font: 8px/1.8 Arial, sans-serif; text-align: right; letter-spacing: 1px; }
  .kinetic-type { font-size: 12vw; padding-top: 48px; line-height: 1.12; }
  .brand-story { margin-top: -1px; background-image: none; }
  .about-layout { grid-template-columns: 1fr; gap: 38px; padding-bottom: 30px; }
  .about-title { padding-top: 265px; }
  .brand-canvas { top: -22px; left: -4%; width: 108%; height: 285px; }
  .about-title h2 { font-size: clamp(34px, 10vw, 62px); line-height: 1.35; margin-bottom: 26px; }
  .about-copy { background: none; padding: 26px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; }
  .about-copy h2 { font-size: 22px; line-height: 1.5; }
  .about-copy p { font-size: 14px; line-height: 2; }
  .about-copy blockquote { font-size: 13px; margin-bottom: 0; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); border: 0; gap: 0 24px; padding-top: 18px; }
  .stats > div { border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 25px 0; background: none; min-width: 0; }
  .stats > div:first-child { grid-column: 1/-1; background: none; border-top: 1px solid var(--line); }
  .stats strong { color: var(--leaf); font-size: clamp(32px, 10vw, 70px); overflow-wrap: anywhere; }
  .stats > div:first-child strong { color: var(--brand-text); font-size: clamp(52px, 16vw, 90px); }
  .stats > div:first-child span { color: #233325; }
  .stats span { font-size: 11px; margin-top: 15px; }
  .stats p { grid-column: 1/-1; text-align: center; font-size: 11px; }
  .stats p small { display: block; margin: 5px 0 0; }
  .section-heading { align-items: start; flex-direction: column; gap: 22px; margin-bottom: 36px; }
  .section-heading h2 { font-size: clamp(34px, 9.8vw, 60px); margin-bottom: 0; }
  .section-heading .overline { font-size: 11px; margin-bottom: 16px; }
  .circle-arrow { width: 46px; height: 46px; font-size: 22px; }
  .more-link { font-size: 12px; }
  .business-card {
    position: relative; top: auto; aspect-ratio: auto; height: auto; min-height: min(700px, calc(100svh - 170px - env(safe-area-inset-bottom)));
    max-height: none; margin-bottom: 28px; border-radius: 2px; box-shadow: none;
  }
  .business-card.mobile-sticky { position: sticky; top: 88px; }
  .business-card-content { position: relative; inset: auto; min-height: inherit; padding: 25px; gap: 140px; }
  .business-card-top { border: 0; padding: 0; font-size: 11px; }
  .business-card-top span:first-child { padding: 0 0 12px; background: none; border: 0; border-bottom: 1px solid #ffffff50; border-radius: 0; }
  .business-card-top span:last-child { display: none; }
  .business-card:after { background: linear-gradient(0deg, #071b12e8, #071b1240 70%, #071b1250); }
  .business-card h3 { font-size: clamp(29px, 8.7vw, 46px); line-height: 1.4; }
  .business-card p { max-width: none; font-size: 13px; line-height: 1.9; margin-bottom: 25px; }
  .industry-number { top: 74px; right: 25px; bottom: auto; font-size: 76px; opacity: .35; }
  .business-card .more-link { justify-content: space-between; width: 100%; }
  .business-card .more-link .circle-arrow { background: none; color: white; border-color: #ffffff70; }
  .moving-type { display: none; }
  .responsibility-section { border-radius: 0; }
  .responsibility-grid { gap: 32px; }
  .responsibility-grid h2 { font-size: clamp(34px, 9.8vw, 60px); }
  .section-description { font-size: 14px; }
  .commitments { display: grid; gap: 0; }
  .commitments a, .commitments a:last-child { background: none; border: 0; border-top: 1px solid #c7864b40; border-radius: 0; padding: 28px 0; gap: 15px; }
  .commitments a:hover { padding-inline: 0; }
  .commitments a > span { color: var(--brand-text); }
  .commitments h3 { font-size: 23px; }
  .commitments p { font-size: 12px; line-height: 1.9; margin-bottom: 0; }
  .responsibility-sign { display: none; }
  .home-page .news-grid {
    display: grid; grid-auto-flow: column; grid-auto-columns: 87%; grid-template-columns: none;
    gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: 0;
    padding-bottom: 18px; scrollbar-width: thin; scrollbar-color: var(--brand) #eee8db;
  }
  .home-page .news-card, .home-page .news-card:last-child { min-width: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; overflow: hidden; scroll-snap-align: start; background: none; }
  .home-page .news-card > a { display: flex; flex-direction: column; height: 100%; padding: 0 0 23px; gap: 0; }
  .home-page .news-card > a:before { display: none; }
  .home-page .news-image { width: 100%; aspect-ratio: 1.5; order: -1; }
  .home-page .news-meta { margin: 21px 0 12px; font-size: 10px; }
  .home-page .news-card h3 { font-size: 21px; line-height: 1.65; margin: 0 0 12px; }
  .home-page .news-card p { display: block; margin: 0; font-size: 13px; line-height: 1.9; }
  .mobile-news-hint { display: flex; justify-content: space-between; align-items: center; font-size: 10px; color: var(--muted); margin: 15px 0 0; }
  .contact-strip { padding-top: 54px; border-radius: 0; }
  .contact-strip > .wrap { flex-direction: column; align-items: flex-start; gap: 24px; }
  .contact-strip h2 { font-size: 32px; line-height: 1.45; }
  .contact-word.wrap { flex-direction: row; align-items: center; font-size: 14vw; margin-top: 38px; }
  .home-view .site-footer { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
  .footer-contact { padding: 24px 0 0; border: 0; border-top: 1px solid #526b4225; border-radius: 0; }
  .footer-contact a { font-size: clamp(23px, 7.4vw, 36px); }
  .footer-nav { gap: 20px; font-size: 13px; }
  .mobile-chapters {
    display: flex; position: fixed; z-index: 32; left: 0; right: 0; bottom: 0;
    max-width: none; margin-inline: auto; gap: 0; padding: 0 5.5% env(safe-area-inset-bottom); border: 0; border-top: 1px solid var(--line); border-radius: 0;
    background: var(--paper); box-shadow: none;
    transition: transform .35s, opacity .35s, visibility .35s;
  }
  .mobile-chapters a { flex: 1; min-width: 0; min-height: 48px; display: grid; place-items: center; border-radius: 0; border-top: 2px solid transparent; font-size: 12px; }
  .mobile-chapters a[aria-current="location"] { border-top-color: var(--brand); color: var(--brand-text); }
  .has-mobile-nav .mobile-chapters:not(.is-shown), .menu-is-open .mobile-chapters { visibility: hidden; opacity: 0; transform: translateY(130%); }
  .menu-dialog { height: 100dvh; max-height: 100dvh; padding: 22px 6% calc(28px + env(safe-area-inset-bottom)); overflow-y: auto; }
  .menu-content { display: flex; flex-direction: column-reverse; gap: 36px; padding-top: 32px; }
  .menu-content nav a { font-size: clamp(25px, 7vw, 40px); padding-block: 19px; }
  .menu-content nav a:before { color: var(--brand-text); font-size: 11px; }
  .menu-intro { padding: 23px 0; background: none; border-top: 1px solid var(--line); border-radius: 0; }
  .menu-intro > a { font-size: 25px; }
  .inner-hero h1 { font-size: clamp(34px, 10vw, 62px); font-weight: 600; }
  .inner-summary, .rich-content { font-size: 15px; line-height: 2; }
  .inner-cover { width: 89%; border-radius: 2px; overflow: hidden; }
}
@media (max-width: 900px) and (prefers-reduced-motion: reduce) {
  .business-card.mobile-sticky { position: relative; top: auto; }
  .mobile-chapters { transition: none; }
  .hero-image { transition: none; }
}
