/* Scalable typography and resilient content widths. */
.wrap { width: min(1280px, calc(100% - 2 * clamp(16px, 4vw, 56px))); }
html { scroll-padding-top: max(110px, 8rem); }
.site-header { height: auto; min-height: 88px; padding-block: 12px; gap: 20px; }
.site-header .desktop-nav { justify-content: flex-end; }
.brand { width: 241px; max-width: calc(100% - 100px); min-width: 0; flex: 0 1 auto; }
.brand-mark { display: block; width: 100%; height: auto; overflow: visible; }
.site-header .wordmark { position: static; display: block; width: auto; height: auto; overflow: visible; opacity: 1; color: inherit; font: 1.625rem/1.15 Georgia, serif; letter-spacing: .045em; white-space: nowrap; }
.site-header:not(.is-scrolled):not(.menu-open) .wordmark { opacity: 1; }
.hero-line { overflow: visible; }
[data-hero-text] { max-width: 100%; overflow-wrap: anywhere; }
.hero-content, .about-main, .section-heading > div, .company-grid > div, .company-table, .company-table dd, .article-card, .service-stage { min-width: 0; }
.about h2, .section-heading h2, .company h2, .article-card h3, .company-table dd, .service-en { overflow-wrap: anywhere; }
.hero-eyebrow { flex-wrap: wrap; }
.hero-description { overflow-wrap: anywhere; }
.site-header .desktop-nav { flex-wrap: wrap; }
.business .services { grid-template-columns: repeat(auto-fit, minmax(min(100%, max(14rem, calc((100% - 66px) / 4))), 1fr)); }
.business .service h3, .business .service-more { overflow-wrap: anywhere; }
.article-meta { flex-wrap: wrap; gap: 6px 14px; }
.article-meta time { white-space: nowrap; color: #857a7d; }
.article-card h3 { font-size: clamp(1.25rem, 1.7vw, 1.5rem); }
.journal-more { margin: 46px auto 0; display: flex; align-items: center; justify-content: center; gap: 36px; min-height: 52px; border: 1px solid #c8c3c4; background: #fff; padding: 12px 26px; font-size: .875rem; cursor: pointer; }
.journal-more[hidden] { display: none; }
.journal-more:hover { background: #f4f4f4; border-color: #9c4c54; }
.article-dialog { width: min(940px, calc(100% - 32px)); max-height: calc(100svh - 32px); overscroll-behavior: contain; }
.dialog-top { position: sticky; top: 0; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 24px; color: #e7bdc1; background: #181617f5; backdrop-filter: blur(15px); font-size: .75rem; letter-spacing: .12em; }
.dialog-top .dialog-close { position: static; display: flex; min-height: 40px; gap: 18px; padding: 0 8px; color: #fff; font-size: .875rem; flex-shrink: 0; }
.dialog-top .dialog-close span:last-child { font-size: 28px; }
.article-cover { position: relative; overflow: hidden; aspect-ratio: 2.5; background: var(--navy); }
.article-cover img { width: 100%; height: 100%; object-fit: cover; }
.article-cover::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, #16151599); pointer-events: none; }
.article-cover > span { position: absolute; z-index: 1; bottom: 21px; left: 34px; color: #e6b9be; font-size: .75rem; letter-spacing: .17em; }
.article-dialog .dialog-inner { padding: 48px clamp(22px, 6vw, 72px) 42px; }
.article-dialog .eyebrow { line-height: 1.8; overflow-wrap: anywhere; }
.article-dates { display: flex; flex-wrap: wrap; gap: 6px 20px; color: #8d8386; font-size: .75rem; margin-top: 13px; }
.article-dates time { color: #94444c; }
.article-dialog h2 { font-size: clamp(1.6rem, 3vw, 2.45rem); line-height: 1.7; font-weight: 500; letter-spacing: .02em; margin-top: 23px; overflow-wrap: anywhere; }
.article-lead { margin-top: 26px; padding-bottom: 33px; border-bottom: 1px solid #e2dfe0; color: #7a7073; font-size: 1rem; line-height: 2.1; }
.article-body { font-size: 1rem; line-height: 2.15; overflow-wrap: anywhere; }
.article-body .news-date { color: #8e4e54; font-size: .8125rem; line-height: 1.9; margin-bottom: 26px; }
.article-body > h3 { margin-top: 0; }
.article-body a { color: #8a343d; text-decoration: underline; text-underline-offset: 3px; }
.editorial-view { margin-top: 43px; padding-top: 32px; border-top: 1px solid #d5828a; }
.editorial-view .view-label { font-size: .75rem; letter-spacing: .14em; color: #9a474f; }
.editorial-view > h3 { margin-top: 12px; font-size: 1.4rem; }
.view-thesis { color: #383334; font-size: 1.0625rem; line-height: 2; margin-top: 14px; }
.article-point { margin-top: 31px; }
.article-point h4 { color: #3c3738; font-size: 1.0625rem; font-weight: 500; line-height: 1.9; margin: 0 0 12px; }
.article-takeaway { margin-top: 38px; padding: 26px 28px; background: #f3f2f2; border-left: 2px solid #b85c65; }
.article-takeaway h3 { margin: 0 0 14px; font-size: 1.125rem; }
.article-takeaway ul { margin: 0; padding-left: 1.2em; }
.article-takeaway li + li { margin-top: 10px; }
.article-sources { border-top: 1px solid #e2dfe0; padding-top: 28px; margin-top: 39px; font-size: .8125rem; line-height: 1.9; color: #887e81; overflow-wrap: anywhere; }
.article-sources h3 { font-size: .9375rem; font-weight: 500; color: #4d4749; }
.article-sources ol { padding-left: 1.5em; margin: 17px 0 22px; }
.article-sources li + li { margin-top: 15px; }
.article-sources a { color: #625b5d; text-decoration: underline; text-underline-offset: 3px; }
.article-sources li > span { display: block; margin-top: 4px; }
.footer-top { flex-wrap: wrap; gap: 25px; }
.footer-statement { overflow-wrap: anywhere; }
.hero-content { padding-top: max(156px, 9rem); }
@media (max-width: 1100px) {
  .brand { width: 210px; }
  .site-header .wordmark { font-size: 1.4rem; }
  .site-header .desktop-nav { gap: 20px; font-size: .8125rem; }
}
@media (max-width: 1000px) { .business .services { grid-template-columns: repeat(auto-fit, minmax(min(100%, max(9rem, calc((100% - 24px) / 2))), 1fr)); } }
@media (max-width: 900px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: flex; align-items: center; gap: 12px; padding: 10px; background: none; border: 0; }
  .menu-lines { display: flex; width: 24px; flex-direction: column; gap: 6px; }
  .menu-lines i { display: block; height: 1px; width: 24px; background: currentColor; }
  .mobile-nav { position: absolute; inset: 88px 0 auto; background: #fff; padding: 20px 24px 32px; box-shadow: 0 15px 25px #12101112; }
  .mobile-nav a { display: block; padding: 17px 0; border-bottom: 1px solid var(--line); font-size: 1rem; }
}
@media (max-width: 800px) {
  .brand { width: 195px; }
  .site-header { min-height: 74px; }
  .site-header .wordmark { font-size: 1.3rem; }
  .mobile-nav { top: 74px; }
  .hero h1 { font-size: clamp(2rem, 12vw, 3.8rem); }
  .hero-content { padding-top: max(138px, 8rem); }
  .article-dialog .dialog-inner { padding-top: 30px; }
  .article-cover { aspect-ratio: 1.85; }
  .article-cover > span { left: 24px; bottom: 17px; }
  .dialog-top { padding-inline: 18px; letter-spacing: .04em; }
  .article-takeaway { padding: 22px; }
}
@media (max-width: 430px) {
  .site-header { padding-inline: 16px; }
  .brand { width: 175px; max-width: calc(100% - 112px); }
  .site-header .wordmark { font-size: clamp(.875rem, 5vw, 1.15rem); letter-spacing: .03em; }
  .company-table > div { grid-template-columns: 84px minmax(0, 1fr); gap: 12px; }
  .article-dialog { width: calc(100% - 16px); }
  .dialog-top > span { max-width: 60%; }
}
@media (max-width: 359px) { .business .services { grid-template-columns: 1fr; } }
.mobile-nav { top: 100%; max-height: max(0px, calc(100svh - var(--header-height, 88px))); overflow-y: auto; overscroll-behavior: contain; }
.menu-toggle[aria-expanded=true] .menu-lines i:first-child { transform: translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded=true] .menu-lines i:last-child { transform: translateY(-3.5px) rotate(-45deg); }

/* Responsive hero sources preserve the original composition without excess zoom. */
.hero-picture{position:absolute;inset:0;z-index:0;display:block;pointer-events:none}.hero-picture .hero-art{inset:0;z-index:auto}
.hero-shade{z-index:1;pointer-events:none}
.hero-content,.hero-bottom,.orbit-caption{z-index:2}
.company-table .representative-role{display:block;color:#776e70;font-size:.8125rem;letter-spacing:.06em}
.company-table .representative-name{display:block;margin-top:4px;font-size:1.1875rem;letter-spacing:.12em}
@media(min-width:1600px){.hero{min-height:900px;height:min(100svh,1100px)}.hero-art{object-position:center}}
@media(max-width:800px){.hero-picture .hero-art{object-position:center;transform:none}}
@media(min-width:2000px){.hero-picture{left:auto;width:2000px}.hero-picture .hero-art{object-fit:contain;transform:none}}
@media(min-width:2000px){.hero-picture{mask-image:linear-gradient(90deg,transparent,#000 18%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%)}}
