/* Loaded only on phones; desktop rules remain in style.css. */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 84px; }
body { overflow-wrap: break-word; }
main, section, article, header, footer, nav, div { min-width: 0; }
img, video, iframe, input, select, textarea, button, .button, .text-link { max-width: 100%; }
h1, h2, h3, p, a { overflow-wrap: anywhere; }
h1, h2, .philosophy blockquote { letter-spacing: 0; }
h2, .feature-project__content h2, .final-cta h2 { font-size: 2rem; line-height: 1.12; }
.header { padding-inline: 20px; gap: 16px; }
.menu-toggle { width: 44px; height: 44px; flex: 0 0 44px; }
.mobile-nav { padding: 24px 20px; overflow-y: auto; gap: 12px; }
.mobile-nav a:not(.button) { font-size: 1.5rem; line-height: 1.2; min-height: 44px; }
.button, .text-link { min-height: 44px; }
.button { white-space: normal; text-align: center; }
.button i, .text-link i, summary i, .faq-item button i { flex-shrink: 0; }
.hero {
  height: auto;
  min-height: 680px;
  min-height: min(820px, 100svh);
  padding: 112px 20px 28px;
  flex-direction: column;
  align-items: stretch;
  gap: 36px;
}
.hero__content { width: 100%; margin: auto 0; }
.hero h1 { font-size: 2.25rem; line-height: 1.08; margin-bottom: 20px; }
.hero .eyebrow { letter-spacing: 0; font-size: .625rem; line-height: 1.6; margin-bottom: 20px; }
.hero .eyebrow span { width: 20px; margin-right: 5px; }
.hero__intro { font-size: .9375rem; line-height: 1.7; margin-bottom: 0; }
.hero .hero__image { background-size: cover; background-position: 48% center; transform: none; transition: none; }
.hero__actions { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 24px; }
.hero__actions .button { min-height: 48px; }
.hero__actions .text-link { align-self: flex-start; }
.hero__footer { position: relative; inset: auto; gap: 16px; padding-right: 42px; }
.hero__footer .scroll-cue { display: none; }
.credibility { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; letter-spacing: 0; }
.section { padding: 64px 20px; }
.studio, .services, .faq, .contact, .contact--info-only, .architects__grid, .portfolio__grid, .partnership { grid-template-columns: minmax(0, 1fr); }
.challenges__grid, .process__steps, .footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.challenges__grid article { padding-right: 12px; }
.challenges__grid article + article { padding-left: 12px; }
.challenges__grid article:nth-child(odd) { padding-left: 0; }
.image-frame { height: auto; aspect-ratio: 4 / 5; }
.image-frame img { width: 100%; height: 100%; }
.architect__photo { height: auto; aspect-ratio: 3 / 4; }
.architect__photo img { height: 100%; }
.differentiators { padding: 0; grid-template-columns: minmax(0, 1fr); }
.differentiators__image { min-height: 0; aspect-ratio: 1; }
.differentiators__content { padding: 64px 20px; }
.differentiators__items > div { grid-template-columns: 28px minmax(0, 1fr); gap: 12px; }
.process__steps li { padding-right: 12px; }
.process__steps li:nth-child(odd) { border-right: 1px solid var(--line); }
summary { gap: 12px; font-size: 1.125rem; }
summary span { flex-shrink: 0; }
details p { padding-inline: 0; }
.feature-project { min-height: 500px; padding-block: 64px; }
.feature-project__content { margin-inline: 20px; }
.philosophy { padding: 64px 20px; }
.philosophy blockquote { font-size: 2rem; line-height: 1.15; }
.partnership__mark { font-size: 6rem; letter-spacing: 0; }
.faq-item button { gap: 16px; }
.final-cta { min-height: 0; padding: 64px 20px; }
.contact__data a, .footer a { overflow-wrap: anywhere; }
.footer { padding: 64px 20px 88px; }
.footer__bottom div { flex-wrap: wrap; }
@media (max-width: 350px) {
  .hero h1 { font-size: 2rem; }
  .hero { padding-top: 96px; }
  .challenges__grid, .process__steps { grid-template-columns: minmax(0, 1fr); }
  .challenges__grid article, .challenges__grid article + article, .process__steps li { padding-left: 0; border-right: 0; }
  .process__steps li:nth-child(odd) { border-right: 0; }
}
