@charset "UTF-8";
/* V4: clearer content hierarchy, illustration framing and deliberate text rhythm. */
h1,h2,h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.hero-summary { max-width: 34em; }
.desktop-break { display: none; }
.service-photo.service-illustration { background:#f6f5f2; }
.service-row:first-child .service-illustration img { transform:none; }
.service-illustration img { object-position:center; }
.service-photo-label { border-top:1px solid #e9e7e3; border-right:1px solid #e9e7e3; }
.service-copy h3 { line-height:1.55; }
.service-deliverables { gap:8px; }
.service-deliverables li { background:#fafafa; border-color:#e3e3e3; }
.concept-hero img { aspect-ratio:1.5; object-fit:contain; background:#f6f5f2; }
.concept-hero figcaption { padding-block:15px; }
.connection-heading { grid-template-columns:1.45fr 1fr; gap:30px 65px; }
.connection-heading h2 { font-size:clamp(1.8rem,3.05vw,2.65rem); }
.connection-model p { line-height:1.9; }
.contact-band h2 { font-size:clamp(2rem,3.7vw,3.25rem); line-height:1.6; }
.company-home h2 { font-size:clamp(1.625rem,2.6vw,2.25rem); }
.article-mini-flow { gap:12px; }
.article-mini-flow span { line-height:1.7; padding:10px 6px; }
.process h3 { font-size:1.45rem; }
@media (hover:hover) and (pointer:fine) {
  .service-row:first-child .service-illustration:hover img { transform:scale(1.03); }
}
@media (min-width:1100px) {
  .hero-title-grid { grid-template-columns:1.75fr 1fr; }
  .with-photo .page-hero-grid { grid-template-columns:1.15fr 1fr; gap:60px; }
  .with-photo h1 { font-size:2.7rem; }
}
@media (max-width:980px) {
  .connection-heading { gap:26px; }
  .connection-heading h2 { font-size:2rem; }
  .connection-model>div { padding-inline:22px; }
  .connection-model p { font-size:.8125rem; }
}
@media (max-width:760px) {
  .hero-summary { font-size:.9375rem; line-height:1.9; max-width:29em; }
  .service-copy h3 { font-size:1.75rem; line-height:1.65; }
  .service-copy>p { line-height:1.95; }
  .service-deliverables { margin-top:20px; }
  .concept-hero { margin:32px 0 0; }
  .concept-hero img { aspect-ratio:1.5; }
  .concept-hero figcaption { padding-inline:0; }
  .connection-heading { display:block; }
  .connection-heading h2 { font-size:1.75rem; line-height:1.75; }
  .connection-heading p { margin-top:24px; }
  .connection-model { grid-template-columns:1fr; margin-top:32px; }
  .connection-model>div, .connection-model>div:first-child { display:grid; grid-template-columns:90px 1fr; align-items:center; padding:23px 0; gap:4px 15px; }
  .connection-model>div+div { border-left:0; border-top:1px solid #5b5b5b; }
  .connection-model>div+div:before { display:none; }
  .connection-model .model-en { grid-column:1; font-size:.625rem; }
  .connection-model h3 { grid-column:1; grid-row:2; font-size:1.75rem; margin:0; }
  .connection-model p { grid-column:2; grid-row:1 / 3; font-size:.875rem; }
  .process h3 { font-size:1.25rem; }
  .company-home p { font-size:.9375rem; }
  .company-home p br { display:none; }
  .contact-band h2 { font-size:1.875rem; }
}
@media (max-width:360px) {
  .service-copy h3 { font-size:1.5rem; }
  .connection-heading h2 { font-size:1.5rem; }
  .connection-model>div, .connection-model>div:first-child { grid-template-columns:77px 1fr; gap:4px 10px; }
  .connection-model p { font-size:.8125rem; }
  .contact-band h2 { font-size:1.6rem; }
  .hero-summary { font-size:.875rem; }
}
@media (prefers-reduced-motion:reduce) {
  .service-row:first-child .service-illustration:hover img { transform:none; }
}
