html { scroll-padding-top: 80px; }
body { overflow-wrap: break-word; }
main, main > section, .wrap > *, .grid-2 > *, .grid-3 > * { min-width: 0; }
a:focus-visible, summary:focus-visible { outline: 3px solid #2997ff; outline-offset: 4px; }
.skip-link { position: fixed; top: 8px; left: 12px; z-index: 60; padding: 12px; color: #111; background: #fff; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.site-header { position: fixed; inset: 0 0 auto; z-index: 40; height: 64px; color: #fff; background: #151515; border-bottom: 1px solid #3c3c3c; }
.site-header__inner { width: min(1380px, calc(100% - 40px)); height: 100%; margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 24px; }
.site-brand { display: flex; align-items: center; gap: 12px; color: #fff; font-size: 13px; font-weight: 600; white-space: nowrap; }
.site-brand img { width: 112px; height: auto; object-fit: contain; }
.business-switch { display: flex; gap: 2px; padding: 3px; border: 1px solid #505050; border-radius: 6px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.business-switch a { display: flex; align-items: center; min-height: 36px; padding: 0 10px; color: #d3d3d3; border-radius: 3px; }
.business-switch .is-current { background: #454545; color: #fff; }
.site-links { display: flex; justify-content: flex-end; align-items: center; gap: 18px; font-size: 13px; white-space: nowrap; }
.site-links a { display: inline-flex; align-items: center; min-height: 44px; color: #d3d3d3; }
.site-links a:hover, .site-menu a:hover { color: #fff; text-decoration: underline; text-underline-offset: 5px; }
.site-menu { display: none; justify-self: end; }
.site-menu summary { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; cursor: pointer; list-style: none; border-radius: 4px; }
.site-menu summary::-webkit-details-marker { display: none; }
.site-menu summary:hover { background: #333; }
.ui-icon { display: inline-block; width: 20px; height: 20px; flex: 0 0 20px; vertical-align: middle; }
.site-menu .icon-close, .site-menu[open] .icon-menu { display: none; }
.site-menu[open] .icon-close { display: inline-block; }
.site-menu nav { position: absolute; top: 63px; left: 0; right: 0; padding: 12px max(20px, calc((100% - 1180px) / 2)); background: #151515; border-bottom: 1px solid #505050; max-height: calc(100svh - 140px); overflow-y: auto; }
.site-menu nav a { display: flex; align-items: center; min-height: 48px; padding: 10px 0; border-bottom: 1px solid #3c3c3c; color: #eee; font-size: 16px; }
.site-menu nav a:last-child { border-bottom: 0; }
.hero { padding: 0 18px; min-height: 86svh; }
.hero h1 { max-width: 900px; font-size: 64px; line-height: 1.16; }
.hero-content, .hero > .hero-copy { padding-top: 112px; padding-bottom: 64px; }
.hero > img { transform: none; }
.hero-note { margin: 18px 0 0; color: #dedede; font-size: 14px; line-height: 1.7; }
.hero .hero-note { max-width: 640px; font-size: 14px; }
.hero .hero-note a { text-decoration: underline; text-underline-offset: 4px; }
.kicker { color: #66666c; }
.hero .kicker, .hero .eyebrow { color: #dedede; }
.dark .kicker, .black .kicker, .detail-band .kicker { color: #bbb; }
h2 { font-size: 44px; line-height: 1.2; }
.copy-panel h2, .detail-copy h2 { font-size: 38px; }
.contact-info h2 { font-size: 32px; line-height: 1.3; }
.faq-item h3, .card h3, .answer h3 { font-size: 23px; line-height: 1.4; }
.case-copy h3 { font-size: 36px; line-height: 1.25; }
.brand-card h3 { font-size: 28px; }
.stat strong { font-size: 32px; line-height: 1.2; }
.row small { color: #b7b7ba; }
.contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.contact-actions a { display: inline-flex; gap: 8px; align-items: center; justify-content: center; min-height: 46px; padding: 10px 16px; border: 1px solid #777; border-radius: 6px; color: #fff; font-size: 15px; }
.contact-actions a:first-child { border-color: #0071e3; background: #0071e3; }
.contact-actions a:hover { border-color: #fff; }
.mobile-contact { display: none; }
.case-record { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 32px; border-top: 1px solid #d1d1d5; border-bottom: 1px solid #d1d1d5; }
.case-record > div { min-width: 0; padding: 22px 16px; }
.case-record dt { margin-bottom: 10px; color: #6e6e73; font-size: 14px; }
.case-record dd { margin: 0; font-size: 17px; line-height: 1.6; font-weight: 600; }
.case-evidence { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 32px 0; }
.case-evidence figure { margin: 0; min-width: 0; }
.case-evidence img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; background: #ededee; }
.case-evidence .portrait { aspect-ratio: 3 / 4; max-height: 560px; }
.case-evidence figcaption, .media-caption { margin: 0; padding: 12px 0; color: #6e6e73; font-size: 14px; line-height: 1.7; }
.case-evidence__text { align-self: center; }
.case-evidence__text p, .selection-list p { color: #626267; font-size: 17px; line-height: 1.8; }
.case-evidence__text h3 { font-size: 26px; }
.selection-list { margin: 0; border-top: 1px solid #d1d1d5; }
.selection-list > div { display: grid; grid-template-columns: minmax(160px, .4fr) minmax(0, 1fr); gap: 32px; padding: 26px 0; border-bottom: 1px solid #d1d1d5; }
.selection-list dt { font-size: 21px; line-height: 1.5; font-weight: 600; }
.selection-list dd { margin: 0; }
.selection-list p { margin: 0 0 8px; }
.selection-list p:last-child { margin-bottom: 0; }
.image-note { margin: 22px 0 0; color: #6e6e73; font-size: 14px; line-height: 1.6; }
.dark .media-caption, .detail-band .image-note { color: #bbb; }
.case-feature { background: #fff; }
.case-media img, .media-card img { object-fit: contain; }
.media-card img { aspect-ratio: auto; height: auto; }
.case-banner { height: auto; min-height: 0; }
.case-banner img { height: auto; }
.case-gallery figure { min-height: 0; }
.case-gallery img { height: auto; }
.case-copy, .copy-panel, .detail-copy, .contact-info, .large-media, .detail-photo { border-radius: 0; }
.case-facts { border-radius: 0; background: transparent; border-top: 1px solid #ddd; }
.case-fact { background: transparent; }
.contact, .contact-card, .contact-grid { background: #111; }
.contact-card, .contact-grid { gap: 0; border-radius: 0; }
footer { color: #b2b2b7; }
@media (max-width: 1250px) {
  .site-links { display: none; }
  .site-menu { display: block; }
}
@media (max-width: 960px) {
  .case-feature .case-media { min-height: 0; }
  .case-feature .case-media img { height: auto; object-fit: contain; }
  .case-record { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero h1 { font-size: 52px; }
}
@media (max-width: 720px) {
  body { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
  .site-header__inner { width: calc(100% - 24px); grid-template-columns: auto 1fr auto; gap: 8px; }
  .site-brand img { width: 80px; }
  .site-brand span { display: none; }
  .business-switch { justify-self: center; font-size: 11px; padding: 2px; }
  .business-switch a { padding: 0 6px; min-height: 36px; }
  .hero { min-height: calc(88svh - 58px); }
  .hero h1 { font-size: 38px; }
  .hero-content, .hero > .hero-copy { width: 100%; padding: 104px 0 42px; }
  .hero .actions { gap: 16px; align-items: center; }
  .hero .actions .button { width: auto; min-height: 46px; }
  .hero .hero-note { font-size: 13px; }
  h2 { font-size: 32px; }
  .copy-panel h2, .detail-copy h2, .contact-info h2, .case-copy h3 { font-size: 28px; }
  .case-record { margin: 0 18px 28px; }
  .case-record > div { padding: 18px 8px; }
  .case-record dd { font-size: 15px; }
  .case-evidence { grid-template-columns: 1fr; margin: 28px 18px; }
  .selection-list { margin: 0 18px; }
  .selection-list > div { grid-template-columns: 1fr; gap: 12px; }
  .image-note { margin-left: 18px; margin-right: 18px; }
  .mobile-contact { display: grid; grid-template-columns: 1fr 1fr; position: fixed; inset: auto 0 0; z-index: 30; min-height: 58px; padding: 7px 12px calc(7px + env(safe-area-inset-bottom)); gap: 10px; color: #fff; background: #151515; border-top: 1px solid #505050; }
  .mobile-contact a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; font-size: 14px; border-radius: 5px; }
  .mobile-contact a:first-child { background: #0071e3; }
  .mobile-contact a:last-child { border: 1px solid #686868; }
  .contact-actions a { flex: 1 1 140px; }
}
@media (max-width: 360px) { .hero h1 { font-size: 32px; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
