/* Мобильные ленты и компактные смысловые разделы. */
.rail-controls, .preview-short { display: none; }
.rail-buttons { display: flex; gap: 8px; }
.rail-position { font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.rail-buttons button:disabled { opacity: .35; cursor: default; }
@media (max-width: 760px) {
  html { scroll-padding-top: calc(var(--header-height) + 12px); }
  .section { padding-top: 30px; }
  .section-title { font-size: 31px; margin-top: 9px; line-height: 1.08; }
  .section-heading { display: block; margin-bottom: 20px; }
  .section-intro { max-width: none; margin-top: 15px; font-size: 12px; line-height: 1.6; }
  .eyebrow { font-size: 9px; }
  .portfolio-section { margin-top: 22px; padding-block: 32px; }
  #selected-works .portfolio-toolbar { margin-top: 20px; margin-bottom: 18px; padding-block: 12px; display: block; }
  .filter-list { gap: 7px; }
  .filter-button { padding: 8px 10px; min-height: 40px; font-size: 10px; }
  .filter-count { font-size: 9px; margin-left: 4px; }
  .portfolio-summary { margin-top: 9px; font-size: 10px; }
  #selected-works .featured-grid, .directions-grid { position: relative; display: flex; flex-wrap: nowrap; gap: 20px; width: calc(100% + 18px); margin-inline: -9px; padding: 9px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-padding-inline: 9px; overscroll-behavior-x: contain; scrollbar-width: none; }
  #selected-works .featured-grid::-webkit-scrollbar, .directions-grid::-webkit-scrollbar { display: none; }
  #selected-works .featured-grid .project-card { flex: 0 0 calc(100% - 28px); width: calc(100% - 28px); min-width: 0; scroll-snap-align: start; }
  #selected-works .featured-grid .project-card .project-card-photo { --frame-ratio: 3 / 2; }
  #selected-works .featured-grid .project-card .project-card-title { font-size: 17px; }
  .project-card-topline { padding: 14px 14px 0; }
  .project-card-meta { margin: 12px 14px 14px; padding: 8px 10px; font-size: 10px; }
  .project-card-arrow { width: 29px; height: 29px; font-size: 18px; }
  .rail-controls:not([hidden]) { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 15px; }
  .rail-buttons .icon-button { width: 42px; height: 42px; }
  .section-footnote { margin-top: 17px; padding-top: 13px; font-size: 10px; }
  .section-footnote p + p { margin-top: 4px; }
  .directions-section { padding-block: 24px; }
  .directions-heading { margin-bottom: 16px; }
  .directions-heading .section-intro { margin-top: 12px; font-size: 11.5px; }
  .direction-card { display: block; flex: 0 0 calc(100% - 28px); width: calc(100% - 28px); scroll-snap-align: start; }
  .direction-photo { aspect-ratio: 16 / 9; }
  .direction-copy { padding: 14px 12px 12px; }
  .direction-card h3 { font-size: 19px; line-height: 1.25; }
  .direction-card p { font-size: 11.5px; line-height: 1.6; margin-top: 8px; max-width: none; }
  .directions-caption { font-size: 9px; line-height: 1.5; margin-top: 13px; }
  .materials { margin-top: 0; padding-block: 30px; }
  .materials-grid { grid-template-columns: 1fr; gap: 18px; }
  .materials-copy .section-title { max-width: none; font-size: 31px; }
  .materials-description { font-size: 12px; line-height: 1.6; margin-top: 15px; max-width: none; }
  .material-types { margin-top: 17px; padding: 12px; grid-template-columns: 1fr 1fr; gap: 14px; }
  .material-types h3 { font-size: 12px; line-height: 1.4; }
  .material-types p { font-size: 10px; line-height: 1.5; margin-top: 6px; }
  .materials-photo { order: 2; --frame-ratio: 2 / 1; }
  .materials-photo img { object-fit: contain; }
  .conversation-section { padding-block: 30px; }
  .conversation-layout { grid-template-columns: 1fr; gap: 20px; }
  .conversation-lead { font-size: 12px; line-height: 1.6; margin-top: 14px; max-width: none; }
  .conversation-note { font-size: 10px; line-height: 1.6; margin-top: 13px; }
  .topic { grid-template-columns: 26px minmax(0, 1fr); gap: 10px; padding-block: 13px; }
  .conversation-topics .topic { padding-inline: 12px; }
  .topic-num { font-size: 9px; padding-top: 4px; }
  .topic h3 { font-size: 15px; line-height: 1.4; }
  .topic p { font-size: 11px; line-height: 1.6; margin-top: 4px; max-width: none; }
  .request-section { margin-top: 0; padding-block: 24px; }
  .request-layout { grid-template-columns: 1fr; gap: 12px; }
  .request-copy .section-title { font-size: 28px; }
  .request-copy .section-title br { display: initial; }
  .request-lead { font-size: 11.5px; line-height: 1.6; margin-top: 12px; max-width: none; }
  .request-explanation, .request-call { display: none; }
  .request-form { padding: 16px; }
  .form-fields { grid-template-columns: 1fr; gap: 14px; }
  .form-field label { font-size: 12px; margin-bottom: 7px; }
  .field-required, .field-optional { display: inline; margin-left: 6px; font-size: 9px; }
  .form-field input, .form-field select, .form-field textarea { min-height: 44px; padding: 8px 11px; font-size: 16px; }
  .field-hint { font-size: 9px; margin-top: 5px; }
  .request-details { margin-top: 14px; }
  .request-details summary { padding-block: 12px; font-size: 12px; min-height: 44px; }
  .request-details small { display: inline; font-size: 9px; margin-left: 6px; }
  .form-project-fields { padding-bottom: 15px; }
  .form-consent { margin-top: 14px; }
  .form-consent label { font-size: 11px; line-height: 1.6; gap: 9px; min-height: 44px; }
  .form-submit-row { gap: 8px; margin-top: 14px; }
  .form-submit-row .button { width: 100%; min-height: 44px; padding-block: 10px; font-size: 12px; }
  .form-submit-row p { display: none; }
  .form-submit-row p br { display: none; }
  .form-privacy-link { font-size: 10px; margin-top: 10px; }
  .form-preview-note { padding: 8px 10px; font-size: 10px; line-height: 1.5; margin-bottom: 13px; }
  .preview-wide { display: none; }
  .preview-short { display: inline; }
  .form-status { font-size: 11px; padding: 10px; margin-top: 14px; }
  .contact-section { padding-block: 24px; }
  .contact-heading { margin-bottom: 20px; }
  .contact-heading .section-title { font-size: 31px; margin-top: 9px; }
  .contact-heading .section-title .accent { display: inline; }
  .contact-description { font-size: 12px; line-height: 1.6; margin-top: 14px; max-width: none; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-information { display: grid; grid-template-columns: 1fr 1fr; padding: 17px; gap: 16px 14px; align-items: start; }
  .contact-information > div:first-child { grid-column: 1 / -1; grid-row: auto; }
  .contact-information > div:first-child .eyebrow { display: none; }
  .contact-city { display: inline; font-size: 26px; margin: 0; }
  .contact-address { display: inline; margin: 0 0 0 8px; font-size: 11px; }
  .contact-information .eyebrow { font-size: 8px; }
  .contact-phone { font-size: 16px; line-height: 1.4; margin-top: 6px; letter-spacing: -.045em; }
  .contact-hours { font-size: 10px; line-height: 1.6; margin-top: 6px; }
  .contact-map { min-height: 156px; border-left: 0; border-top: 1px solid #cebca8; }
  .map-placeholder { padding: 14px; gap: 6px; }
  .map-placeholder .eyebrow { display: none; }
  .map-place { font-family: 'Manrope', Arial, sans-serif; font-size: 12px; line-height: 1.4; }
  .map-place br { display: none; }
  .map-load { min-height: 40px; font-size: 11px; padding: 8px 14px; margin: 0; }
  .map-note { font-size: 9px; line-height: 1.4; }
  .map-note br { display: none; }
  .contact-map:has(.map-frame) { min-height: 156px; }
  .map-close { min-height: 40px; top: 8px; right: 8px; }
  .map-status { font-size: 10px; }
  .contact-actions { grid-template-columns: 1fr 1fr; }
  .contact-action { min-height: 56px; padding: 12px 14px; gap: 5px 8px; }
  .contact-action + .contact-action { border-top: 0; border-left: 1px solid #cebca8; }
  .contact-action:nth-child(3) { border-left: 0; }
  .contact-action:nth-child(n+3) { border-top: 1px solid #cebca8; }
  .contact-action-name { font-size: 10px; line-height: 1.4; }
  .contact-action small { display: none; }
  .contact-action .arrow { font-size: 16px; grid-row: 1; }
  .contact-map-footnote { font-size: 9px; line-height: 1.5; margin-top: 11px; }
}
@media (max-width: 360px) {
  .section-title, .materials-copy .section-title, .request-copy .section-title, .contact-heading .section-title { font-size: 28px; }
  .directions-heading .section-title .accent { font-size: 1.14em; }
  .contact-address { font-size: 10px; margin-left: 6px; }
  .contact-phone { font-size: 14px; }
}
