/* D-DIN, contrastes francs et photographies industrielles. */
@font-face { font-family: 'D-DIN'; src: url('assets/fonts/D-DIN.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'D-DIN'; src: url('assets/fonts/D-DIN-Bold.woff2') format('woff2'); font-style: normal; font-weight: 700; font-display: swap; }
:root { --paper: #ffffff; --ink: #101820; --muted: #55616b; --line: #d8dfe3; --sage: #f2f4f5; --accent: #a8b6c1; --sans: 'D-DIN', Arial, Helvetica, sans-serif; --serif: var(--sans); }
html[lang="zh-Hans"] { --sans: 'D-DIN', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans CJK SC', 'WenQuanYi Micro Hei', Arial, sans-serif; }
body { font-size: 18px; line-height: 1.65; font-synthesis: none; background: #fff; }
h1, h2, h3, h4 { font-family: var(--sans); font-weight: 700; font-kerning: normal; text-transform: uppercase; }
h1 em, h2 em { font-style: normal; font-weight: inherit; }
h1, h2, h3 { overflow-wrap: anywhere; }
.site-header { height: 88px; padding-inline: 4.8%; max-width: none; background: #0c1014; color: #fff; }
.brand-lockup { gap: 23px; }
.wordmark { font-weight: 700; }
.eac { font-size: 33px; letter-spacing: -.8px; }
.deal { font-size: 20px; letter-spacing: -.2px; font-weight: 700; }
.brand-dot { color: #a8b6c1; }
.brand-divider { height: 25px; background: #59636c; }
.desktop-nav { gap: 22px; font-size: 14px; font-weight: 700; text-transform: uppercase; }
.desktop-nav a { display: inline-flex; align-items: center; min-height: 44px; }
.site-header .desktop-nav a:after { background: #fff; }
.header-contact { font-size: 14px; font-weight: 700; text-transform: uppercase; min-height: 44px; }
.menu-toggle { min-width: 44px; min-height: 44px; justify-content: center; align-items: flex-end; }
.site-header .menu-toggle span { background: #fff; }
.site-header .mobile-nav { background: #0c1014; color: #fff; border-color: #343e47; }
.mobile-nav a { display: flex; align-items: center; min-height: 44px; }
.site-header .mobile-nav button { background: #fff; color: #101820; }
.language-picker { display: flex; align-items: center; gap: 9px; flex-shrink: 0; }
.language-picker label { display: block; margin: 0; font-size: 12px; line-height: 1.3; }
.language-picker select { width: 139px; min-height: 44px; padding: 8px 6px; border: 1px solid #778f9f; border-radius: 0; font-size: 15px; background: #fff; color: #101820; }
.site-header .language-select:focus-visible { outline-color: #fff; }
.dialog-language { padding-right: 35px; margin-bottom: 20px; flex-wrap: wrap; }
.dialog-language select { font-size: 16px; width: 157px; }
.hero { height: auto; min-height: clamp(650px, calc(100svh - 88px), 860px); max-height: none; display: flex; flex-direction: column; border-radius: 0; margin: 0; max-width: none; background: #0c1014; color: #fff; }
.hero-image { object-position: 62% 52%; }
.hero-shade { background: linear-gradient(90deg, #081016cc, #0b15194d 57%, #0b151900 88%), linear-gradient(180deg, #0b121773, transparent 32%), linear-gradient(0deg, #0812179c, transparent 35%); }
.hero-topline { top: 32px; left: 5.2%; right: 5.2%; font-size: 11px; letter-spacing: 1.1px; }
.hero-topline i { background: #fff; width: 4px; height: 4px; }
.hero-number { font-size: 11px; color: #fff; opacity: .8; }
.hero .hero-content { position: relative; inset: auto; transform: none; max-width: 940px; width: 89.6%; margin: clamp(132px, 12vw, 185px) 5.2% 0; }
h1 { font-size: clamp(62px, 6.1vw, 88px); line-height: 1.02; letter-spacing: -.9px; }
.hero h1 { overflow-wrap: normal; word-break: normal; hyphens: none; }
h1 > span { display: block; }
h1 em { color: #fff; }
.hero-content p { max-width: 530px; font-size: 18px; font-weight: 400; line-height: 1.6; margin-block: 27px 30px; color: #f3f6f8; }
.button { min-height: 50px; border-radius: 0; font-size: 15px; font-weight: 700; text-transform: uppercase; padding: 13px 24px; justify-content: center; gap: 0; }
.button:hover { transform: none; }
.button-cream { background: #fff; color: #101820; }
.button-cream:hover { background: #dce3e8; }
.button-green { background: #101820; color: #fff; }
.button-green:hover { background: #303d47; }
.hero .hero-bottom { position: relative; inset: auto; margin: auto 5.2% 0; padding: 64px 88px 24px 0; font-size: 11px; letter-spacing: .7px; }
.hero-bottom a { min-height: 44px; font-size: 13px; letter-spacing: 0; text-decoration: underline; text-underline-offset: 6px; }
.hero-bottom .scroll-label { display: inline; }
.values-strip { padding-block: 30px; font-size: 14px; font-weight: 700; text-transform: uppercase; }
.values-strip i { display: block; width: 3px; height: 3px; border-radius: 50%; background: #8595a2; }
.section-shell { max-width: 1310px; padding-inline: 60px; }
.eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 1px; }
.section-index { color: #71818e; }
.intro { padding-block: 84px 88px; }
.intro-main { grid-template-columns: 1fr 1fr; gap: 12%; margin-top: 28px; }
h2 { font-size: clamp(35px, 3.4vw, 49px); line-height: 1.07; letter-spacing: -.35px; }
h2 em { color: #5e6e7c; }
.intro-copy { font-size: 18px; line-height: 1.7; max-width: 510px; }
.intro-copy p + p { margin-top: 18px; }
.intro-copy .quality-copy { border-left: 2px solid #8595a2; padding-left: 19px; color: #101820; }
.text-link { min-height: 44px; max-width: 100%; overflow-wrap: anywhere; justify-content: flex-start; gap: 0; font-size: 15px; font-weight: 700; text-transform: uppercase; margin-top: 22px; padding-block: 8px; border-color: #8595a2; line-height: 1.45; }
.text-link:hover { color: #516a7d; }
.section-heading { margin-bottom: 34px; }
.section-heading > div { min-width: 0; }
.section-heading h2 { margin-top: 22px; }
.heading-aside { max-width: 320px; font-size: 17px; line-height: 1.65; }
.realisations-section { padding-block: 76px 80px; background: #f2f4f5; }
.realisation-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(38px, 6vw, 82px); align-items: center; }
.realisation-photo { min-width: 0; margin: 0; }
.realisation-photo img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: contain; background: #e8ecef; }
.realisation-photo figcaption { margin-top: 14px; font-size: 13px; line-height: 1.5; color: #55616b; }
.realisation-copy { min-width: 0; max-width: 490px; }
.realisation-copy h2 { margin-block: 22px 25px; max-width: 13ch; }
.realisation-copy > p:not(.eyebrow) { font-size: 18px; line-height: 1.7; max-width: 440px; }
.realisation-copy .button { margin-top: 31px; }
.expertise-section { padding-block: 0 87px; }
.expertise-layout { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 64px; }
.expertise-visual { border-radius: 0; min-height: 490px; }
.expertise-visual img { object-position: 54% center; }
.image-caption { font-size: 11px; line-height: 1.55; letter-spacing: .7px; }
.expertise-list { border-top-color: #aab8c3; }
.expertise-list details { border-color: #d8dfe3; }
.expertise-list summary { gap: 19px; min-height: 94px; }
.expertise-list h3 { min-width: 0; font-size: 26px; font-weight: 700; letter-spacing: 0; line-height: 1.15; }
.service-number { font-size: 11px; color: #71818e; }
.service-content { padding: 0 8px 29px 38px; }
.service-content p { font-size: 18px; line-height: 1.65; max-width: 410px; }
.service-tags { font-size: 11px; letter-spacing: .5px; color: #647889; }
.service-content .text-link { font-size: 15px; }
.process-section { padding-block: 62px 66px; background: #f2f4f5; }
.process-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 60px; align-items: end; }
.process-intro { font-size: 17px; line-height: 1.65; color: var(--muted); }
.process-steps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; list-style: none; padding: 0; margin: 0; border-top: 1px solid #a8b6c1; }
.process-steps li { min-width: 0; padding-top: 20px; }
.process-step-number { display: block; font-size: 29px; line-height: 1.2; font-weight: 700; color: #647889; }
.process-steps h3 { font-size: 20px; line-height: 1.2; min-height: 3.6em; margin: 14px 0 11px; }
.process-steps p { font-size: 16px; line-height: 1.6; color: var(--muted); }
.process-followup { display: flex; justify-content: space-between; align-items: flex-start; gap: 35px; margin-top: 26px; }
.process-note { font-size: 15px; line-height: 1.65; color: var(--muted); max-width: 780px; }
.process-followup .text-link { margin-top: 0; flex-shrink: 0; }
.companies-section { background: #0c1014; color: #fff; padding-block: 77px 83px; }
.companies-section h2 em { color: #bec7cd; }
.companies-section .heading-aside { color: #bec7cd; }
.companies-section .section-index { color: #9aaab7; }
.companies-heading { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 58px; align-items: end; }
.companies-intro { font-size: 18px; line-height: 1.65; color: #bec7cd; max-width: 390px; }
.company-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; align-items: stretch; }
.company-card-top { min-height: 45px; align-items: flex-start; }
.company-card { padding: 34px 36px 25px; border-radius: 0; min-height: 470px; }
.company-eac { background: #171d23; color: #fff; border: 1px solid #343e47; }
.company-deal { background: #fff; color: #101820; margin-top: 0; border: 1px solid #fff; }
.company-label { font-size: 16px; line-height: 1.4; font-weight: 700; letter-spacing: .45px; text-transform: uppercase; opacity: 1; }
.company-wordmark { height: 94px; min-height: 94px; font-size: 84px; font-weight: 700; letter-spacing: -1.9px; margin-block: 32px 18px; }
.company-wordmark span { color: #93a5b3; }
.company-wordmark sup { font-size: 35px; }
.deal-large { font-size: 62px; letter-spacing: -1px; line-height: 1; padding-top: 17px; }
.company-card p { font-size: 18px; line-height: 1.6; margin-bottom: 28px; opacity: 1; }
.company-card .company-anchor { font-size: 16px; font-weight: 700; margin-bottom: 16px; }
.company-eac .company-description { color: #bec7cd; }
.company-deal .company-description { color: #55616b; }
.company-description { flex: 1; }
.company-link { min-height: 48px; font-size: 16px; text-transform: uppercase; padding-top: 16px; font-weight: 700; }
.company-link:focus-visible { opacity: 1; }
.company-deal .company-link { border-color: #c7d0d7; }
.representations-block { margin-top: 52px; scroll-margin-top: 110px; }
.representations-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 38px; align-items: end; margin-bottom: 27px; }
.representations-heading h3 { font-size: 32px; line-height: 1.15; margin-top: 16px; }
.representations-heading > p { max-width: 470px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.representation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; align-items: stretch; }
.representation-card { min-width: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid #cbd4db; border-top: 3px solid #536573; padding: 30px 32px; }
.representation-logo { height: 82px; display: flex; align-items: center; justify-content: flex-start; margin-bottom: 24px; }
.representation-logo img { width: min(250px, 100%); height: auto; max-height: 82px; object-fit: contain; object-position: left center; }
.representation-logo-makeen img { width: min(235px, 100%); }
.representation-brand { font-size: 13px; line-height: 1.5; color: #536573; margin-bottom: 12px; }
.representation-card h4 { font-size: 28px; line-height: 1.15; min-height: 2.3em; margin-bottom: 20px; overflow-wrap: anywhere; }
.representation-description { font-size: 18px; line-height: 1.65; }
.representation-scope { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid #d8dfe3; }
.representation-scope dt { font-size: 12px; line-height: 1.5; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; margin-bottom: 8px; color: #536573; }
.representation-scope dd { margin: 0; font-size: 17px; line-height: 1.6; }
.representation-notes { font-size: 15px; line-height: 1.6; color: #55616b; margin-top: 18px; }
.representation-notes p + p { margin-top: 7px; }
.representation-source { margin-top: auto; padding-top: 27px; color: #55616b; font-size: 13px; line-height: 1.6; }
.representations-block > .text-link { margin-top: 25px; }
.commitments { padding-block: 85px 89px; }
.commitment-intro { gap: 60px; }
.commitment-intro h2 { font-size: 42px; letter-spacing: -.3px; }
.commitment-intro .eyebrow { margin-top: 8px; }
.commitment-grid { margin-top: 35px; padding-top: 29px; gap: 65px; }
.commitment-icon { color: #71818e; font-size: 12px; letter-spacing: .5px; margin-bottom: 18px; }
.commitment-grid h3 { font-weight: 700; font-size: 22px; }
.commitment-grid p { font-size: 18px; max-width: 315px; line-height: 1.65; }
.contact-section { background: #0c1014; color: #fff; border-radius: 0; margin: 0; max-width: none; padding-top: 72px; }
.contact-orbit { display: none; }
.contact-inner .eyebrow { color: #bec7cd; font-size: 11px; letter-spacing: .8px; }
.contact-inner h2 { font-size: clamp(40px, 4vw, 58px); line-height: 1.07; letter-spacing: -.4px; margin-block: 26px 23px; }
.contact-inner h2 em { color: #bec7cd; }
.contact-inner > p:not(.eyebrow) { font-size: 18px; line-height: 1.65; color: #c7d0d7; }
.contact-inner .button { margin-top: 26px; }
.contact-bottom { font-size: 11px; margin-top: 47px; letter-spacing: .7px; gap: 25px; color: #adbcc8; }
.site-footer { flex-wrap: wrap; background: #0c1014; color: #fff; padding: 35px 4.8% 105px; max-width: none; }
.site-footer p, .prototype-note { font-size: 11px; color: #bec7cd; }
.photo-credits { flex: 0 0 100%; order: 5; margin-top: 10px; padding-top: 18px; border-top: 1px solid #343e47; min-width: 0; }
.photo-credits summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; max-width: 100%; cursor: pointer; list-style: none; font-size: 14px; color: #bec7cd; }
.photo-credits summary::-webkit-details-marker { display: none; }
.photo-credits summary::after { content: '+'; font-size: 22px; }
.photo-credits[open] summary::after { content: '−'; }
.site-footer .photo-credits p { display: block; max-width: 900px; margin-top: 14px; font-size: 15px; line-height: 1.6; color: #bec7cd; }
.photo-credits ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 35px; list-style: none; margin: 25px 0 0; padding: 0; }
.photo-credits li { min-width: 0; }
.photo-credits li > span { display: block; font-size: 12px; color: #9aaab7; }
.photo-credits .photo-credit-source { display: flex; align-items: center; min-height: 44px; font-size: 16px; line-height: 1.45; color: #bec7cd; }
.photo-credits a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; line-height: 1.45; text-decoration: underline; text-underline-offset: 5px; overflow-wrap: anywhere; }
.back-top { width: auto; height: auto; min-height: 44px; border: 0; border-bottom: 1px solid #738594; border-radius: 0; font-size: 13px; white-space: nowrap; }
dialog { border-radius: 0; padding: 42px; background: #fff; color: #101820; }
.dialog-close { min-width: 44px; min-height: 44px; }
.dialog-heading h2 { font-size: 35px; letter-spacing: -.1px; }
.dialog-note { font-size: 17px; }
label { font-size: 15px; }
input, select, textarea { font-size: 17px; border-radius: 0; border-color: #778f9f; background: #fff; }
.request-result h3 { font-size: 27px; font-weight: 700; }
.request-result p { font-size: 17px; line-height: 1.6; }
.request-result pre { font-size: 16px; line-height: 1.55; background: #f2f4f5; }
.quote-origin, .quote-label { font-size: 12px; line-height: 1.5; color: #55616b; margin-bottom: 10px; }
.quote-translation { border-top: 1px solid #d8dfe3; margin-top: 20px; padding-top: 17px; }
.quote-translation > p:last-child { font-size: 18px; line-height: 1.65; text-transform: none; font-weight: 400; }
@media (max-width: 1100px) {
  .site-header { height: 84px; padding-inline: 30px; }
  .brand-lockup { gap: 17px; }
  .desktop-nav { gap: 18px; font-size: 13px; }
  .header-contact { display: none; }
  .hero { min-height: clamp(640px, calc(100svh - 84px), 860px); }
  h1 { font-size: 68px; }
  .section-shell { padding-inline: 45px; }
  h2 { font-size: 43px; }
  .intro-main { gap: 8%; }
  .expertise-layout { gap: 38px; }
  .expertise-list h3 { font-size: 24px; }
  .expertise-list summary { gap: 15px; }
  .process-heading { gap: 38px; }
  .process-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
  .process-steps h3 { min-height: 2.4em; }
  .company-card { padding-inline: 28px; }
  .companies-heading { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 35px; }
  .deal-large { font-size: 52px; }
  .company-wordmark:not(.deal-large) { font-size: 76px; }
  .commitment-intro h2 { font-size: 38px; }
  .commitment-grid { gap: 34px; }
}
@media (min-width: 801px) and (max-width: 1000px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: flex; flex-direction: column; gap: 6px; padding: 10px 0 10px 10px; background: none; }
  .menu-toggle span { width: 24px; height: 1px; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-nav { display: flex; position: absolute; top: 100%; left: 18px; right: 18px; z-index: 10; max-height: calc(100svh - 180px); overflow-y: auto; border: 1px solid #343e47; padding: 25px; flex-direction: column; gap: 19px; }
}
@media (max-width: 800px) {
  .site-header { height: 80px; padding-inline: 27px; }
  .mobile-nav { top: 100%; }
  .site-header .mobile-nav { max-height: calc(100svh - 195px); }
  .hero { min-height: clamp(660px, calc(100svh - 80px), 820px); }
  .hero .hero-content { max-width: none; width: 86%; margin: 118px 7% 0; }
  .hero-topline { left: 7%; right: 7%; }
  .hero .hero-bottom { margin-inline: 7%; padding-top: 52px; padding-right: 0; padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px)); }
  .hero-topline { font-size: 11px; top: 25px; max-width: 310px; line-height: 1.5; letter-spacing: .7px; }
  .hero-shade { background: linear-gradient(90deg, #081016c7, #0b171b58), linear-gradient(0deg, #081217b3, transparent 45%); }
  h1 { font-size: clamp(48px, 9.1vw, 70px); line-height: 1; letter-spacing: -.4px; }
  .hero-content p { font-size: 18px; max-width: 380px; }
  .values-strip { font-size: 13px; padding-block: 26px; }
  .section-shell { padding-inline: 33px; }
  .intro { padding-block: 65px 69px; }
  .realisations-section { padding-block: 60px 65px; }
  .realisation-layout { grid-template-columns: minmax(0, 1fr); gap: 33px; }
  .realisation-photo { width: min(100%, 520px); }
  .realisation-copy { max-width: 560px; }
  .realisation-copy h2 { max-width: none; margin-block: 20px 22px; }
  .intro-main { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  h2, .section-heading h2 { font-size: 38px; letter-spacing: -.1px; }
  .intro-copy, .intro-copy p { font-size: 18px; }
  .expertise-section { padding-bottom: 68px; }
  .expertise-layout { grid-template-columns: minmax(0, 1fr); gap: 29px; }
  .expertise-visual { min-height: 390px; }
  .expertise-list h3 { font-size: 25px; }
  .expertise-list summary { min-height: 88px; }
  .service-content p { max-width: none; font-size: 18px; }
  .process-heading { display: block; }
  .process-intro { margin-top: 22px; max-width: 560px; }
  .process-followup { display: block; }
  .process-followup .text-link { margin-top: 18px; }
  .companies-section { padding-block: 66px; }
  .companies-heading { display: block; }
  .companies-intro { max-width: 560px; margin-top: 24px; }
  .company-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px; }
  .company-card { padding: 27px 23px; min-height: 500px; }
  .company-wordmark:not(.deal-large) { font-size: 70px; }
  .deal-large { font-size: 44px; padding-top: 21px; margin-bottom: 18px; }
  .company-card p { font-size: 17px; }
  .representations-block { margin-top: 38px; }
  .representations-heading { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .representations-heading h3 { font-size: 29px; }
  .representation-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .representation-card h4 { min-height: 0; }
  .commitments { padding-block: 67px; }
  .commitment-intro h2 { font-size: 37px; margin-top: 24px; }
  .commitment-grid { margin-top: 31px; gap: 24px; }
  .commitment-grid p { font-size: 17px; }
  .contact-section { padding-top: 61px; }
  .contact-inner h2 { font-size: 41px; }
  .contact-bottom { margin-top: 39px; }
  .site-footer { padding-inline: 30px; }
  .photo-credits ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 500px) {
  #accueil { scroll-margin-top: 32px; }
  .site-header { height: 132px; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: 44px 44px; gap: 8px 20px; padding: 16px 23px 12px; }
  .site-header > .brand-lockup { grid-row: 1; grid-column: 1; justify-self: start; }
  .site-header > .menu-toggle { grid-row: 1; grid-column: 2; }
  .site-header > .language-picker { grid-row: 2; grid-column: 1 / -1; justify-self: start; }
  .site-header .language-picker select { width: 174px; font-size: 16px; }
  .site-header .mobile-nav { max-height: calc(100svh - 245px); }
  .site-header .eac { font-size: 30px; }
  .site-header .deal { font-size: 18px; }
  .brand-lockup { gap: 17px; }
  .hero { min-height: max(710px, calc(100svh - 132px)); }
  .hero .hero-content { margin-top: 114px; }
  h1 { font-size: clamp(37px, 9.8vw, 48px); line-height: 1.03; letter-spacing: -.3px; }
  .hero-content p { font-size: 17px; line-height: 1.6; margin-block: 24px 26px; max-width: 310px; }
  .hero-topline { font-size: 11px; letter-spacing: .5px; max-width: 250px; }
  .hero .hero-bottom { font-size: 11px; letter-spacing: 0; }
  .hero-bottom > a { max-width: 125px; line-height: 1.3; text-align: right; }
  .hero-content .button { font-size: 15px; padding-inline: 21px; }
  .values-strip { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; padding: 23px 27px; font-size: 13px; text-align: center; }
  .values-strip i { display: none; }
  .section-shell { padding-inline: 27px; }
  .eyebrow { font-size: 11px; letter-spacing: .7px; }
  .intro { padding-block: 59px 61px; }
  h2, .section-heading h2 { font-size: 33px; letter-spacing: 0; }
  .intro-copy, .intro-copy p { font-size: 17px; line-height: 1.7; }
  .text-link { font-size: 15px; }
  .expertise-visual { min-height: 360px; }
  .expertise-list summary { gap: 12px; min-height: 87px; }
  .expertise-list h3 { font-size: 24px; }
  .service-number { font-size: 11px; }
  .service-content { padding-left: 29px; }
  .service-content p { font-size: 17px; }
  .process-section { padding-block: 53px 56px; }
  .process-steps { grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 0; }
  .process-steps li { display: grid; grid-template-columns: 37px minmax(0, 1fr); gap: 17px; border-top: 1px solid #a8b6c1; padding: 20px 0; }
  .process-step-number { font-size: 26px; }
  .process-steps h3 { min-height: 0; margin: 0 0 9px; }
  .process-followup { margin-top: 10px; }
  .image-caption { font-size: 11px; letter-spacing: .6px; left: 22px; right: 22px; bottom: 22px; }
  .company-grid { grid-template-columns: minmax(0, 1fr); }
  .companies-intro { font-size: 17px; }
  .company-card { min-height: 0; padding: 26px 25px; }
  .company-deal { margin-top: 0; }
  .company-wordmark:not(.deal-large) { font-size: 82px; }
  .deal-large { font-size: 57px; padding-top: 15px; }
  .company-card p { font-size: 17px; }
  .company-card .company-anchor { font-size: 16px; }
  .representations-block { scroll-margin-top: 150px; }
  .representation-card { padding: 25px 23px; }
  .representation-logo { height: 70px; margin-bottom: 21px; }
  .representation-logo img { max-height: 70px; }
  .representation-card h4 { font-size: 26px; }
  .representation-description, .representation-scope dd { font-size: 17px; }
  .commitment-intro h2 { font-size: 33px; }
  .commitment-grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .commitment-grid article { grid-template-columns: 23px 1fr; column-gap: 15px; }
  .commitment-grid h3 { font-size: 23px; }
  .commitment-grid p { font-size: 17px; }
  .commitment-icon { font-size: 12px; padding-top: 6px; }
  .contact-section { padding-inline: 23px; }
  .contact-inner .eyebrow { font-size: 11px; letter-spacing: .6px; line-height: 1.6; }
  .contact-inner h2 { font-size: 35px; }
  .contact-inner > p:not(.eyebrow) { font-size: 17px; }
  .contact-bottom { display: block; font-size: 11px; }
  .contact-bottom > span:first-child { display: block; font-size: 11px; letter-spacing: .5px; margin-bottom: 12px; }
  .site-footer { padding: 28px 26px 108px; }
  .site-footer .prototype-note { font-size: 11px; }
  .photo-credits ul { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  dialog { padding: 37px 25px; }
  .dialog-heading h2 { font-size: 31px; }
}
