.photo-guide { display: grid; gap: 16px; margin: 20px 0; color: #4b3038; }
.photo-guide__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.photo-guide .partner-image-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.photo-guide .partner-image-grid > article { grid-template-columns: minmax(0, 1fr); align-content: start; }
.photo-guide .partner-image-grid > article > * { min-width: 0; max-width: 100%; box-sizing: border-box; }
.partner-photo-grid img { object-fit: contain; background: #f4e5e6; }
.photo-guide__slot { min-width: 0; padding: 18px; border: 1px solid #e7d7da; border-radius: 20px; background: #fffaf7; display: grid; gap: 12px; align-content: start; }
.photo-guide h3, .photo-guide h4, .photo-guide p { margin: 0; }
.photo-guide p, .photo-guide small { line-height: 1.5; }
.photo-guide__catalog { display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 12px; padding: 8px; border: 1px solid #e7d7da; border-radius: 20px; align-items: center; }
.photo-guide__catalog .photo-guide__image { width: 108px; height: 156px; }
.photo-guide__image { display: block; width: 100%; height: 220px; object-fit: contain; border-radius: 16px; background: linear-gradient(135deg,#fffafa,#f4dfe1); }
.photo-guide__catalog strong { overflow-wrap: anywhere; }
.photo-guide__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.photo-guide button, .photo-guide input { font: inherit; max-width: 100%; }
.photo-guide button { min-height: 44px; padding: 10px 14px; border: 1px solid #c8a5ad; background: #fff; color: #652c40; border-radius: 12px; cursor: pointer; }
.photo-guide button:focus-visible { outline: 2px solid #652c40; outline-offset: 3px; }
.photo-guide button:active { transform: scale(.98); }
.photo-guide button:disabled { opacity: .5; cursor: not-allowed; }
.photo-guide__dialog { max-width: min(520px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); overflow: auto; border: 0; border-radius: 24px; padding: 24px; background: #fffaf7; }
.photo-guide__dialog::backdrop { background: #21131b99; }
.photo-guide__full { height: min(65dvh, 560px); width: 100%; object-fit: contain; background: #171219; border-radius: 12px; }
.photo-guide__empty { display: grid; place-items: center; text-align: center; padding: 12px; box-sizing: border-box; }
