/* Shared final responsive layer: stable photos and compact privacy choice. */
.photo-slide { grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); }
.photo-slide:not(.photo-slide--rotated) img { width:auto; height:auto; max-width:100%; max-height:100%; min-width:0; min-height:0; object-fit:contain; transform:none; cursor:default; }
.photo-dialog { padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); }
.photo-dialog-caption { overflow-wrap:anywhere; }
.photo-dialog-hint { white-space:normal; }
.cookie-bar { left:auto; right:max(20px,env(safe-area-inset-right)); bottom:max(20px,env(safe-area-inset-bottom)); width:min(360px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:18px; border:1px solid #e9bd78; border-radius:16px; background:#f7e6c9; color:#282016; box-shadow:0 12px 48px #0005; backdrop-filter:none; }
.cookie-bar h4 { color:#282016; font-size:1rem; margin:0 0 6px; }
.cookie-bar p { color:#534330; font-size:.84rem; line-height:1.55; margin:0 0 14px; }
.cookie-bar p a { color:#594018; text-decoration:underline; text-underline-offset:3px; }
.cookie-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.cookie-actions .btn { min-width:0; min-height:44px; padding:10px 8px; border:1px solid #8b6a3e; border-radius:9px; background:transparent; color:#352718; font-size:.78rem; letter-spacing:0; }
.cookie-actions #cookie-accept { background:#352718; color:#fff0d9; border-color:#352718; }
.cookie-actions .btn:hover { background:#eacb98; color:#282016; }
.cookie-actions #cookie-accept:hover { background:#554026; color:#fff; }
.cookie-bar :focus-visible { outline:2px solid #68430e; outline-offset:3px; }
@media (max-width:1100px) {
  .shell { width:calc(100% - 48px); }
  .home-intro > *, .contact-grid > *, .material-layout > * { min-width:0; }
  .m-menu { padding-inline:24px; }
  .field input, .field select, .field textarea { font-size:16px; }
}
@media (max-width:720px) {
  .shell { width:calc(100% - 40px); }
  .home-intro { padding-block:32px 36px; gap:28px; }
  .home-intro h1 { font-size:clamp(2.65rem,11.5vw,4.5rem); line-height:1.08; }
  .home-lede, .material-lede { font-size:1rem; line-height:1.65; }
  .btn-row { gap:10px; }
  .btn-row .btn { min-height:48px; justify-content:center; }
  .home-work-heading { margin-bottom:20px; }
  .home-work-grid, .finish-grid, #zaklad .gallery { display:grid !important; grid-template-columns:minmax(0,1fr); gap:22px; margin-inline:0; padding:0; overflow:visible; }
  .home-work-photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
  .finish-grid > *, #zaklad .gallery > * { width:100%; max-width:none; }
  .finish-grid .photo-frame { aspect-ratio:4/3; }
  .home-work-label { padding-block:12px 0; }
  .gallery-actions { margin-top:20px; }
  .photo-dialog-bar { gap:8px; }
  .photo-dialog-title { font-size:.6rem; }
  .photo-dialog button { width:44px; height:44px; }
  .photo-dialog-caption { font-size:.8rem; line-height:1.5; }
  .cookie-bar { right:16px; left:auto; bottom:max(12px,env(safe-area-inset-bottom)); width:min(360px,calc(100% - 32px)); padding:16px; }
  .field-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
  .field-grid > .field:has(#phone), .field-grid > .field:has(#count) { grid-column:1/-1; }
  .footer-legal { gap:8px 16px; flex-wrap:wrap; }
  .footer-legal a, .footer-legal button { display:inline-flex; align-items:center; min-height:44px; }
}
@media (max-width:380px) {
  .m-menu { padding-inline:16px; }
  .m-tile { padding-inline:10px; gap:8px; font-size:.87rem; }
  .photo-dialog-title { display:none; }
  .btn-row { flex-direction:column; }
}
@media (max-height:500px) and (orientation:landscape) {
  .photo-dialog { padding:8px 16px; }
  .photo-dialog-bar { padding-bottom:6px; }
  .photo-dialog-footer { padding-top:6px; }
  .photo-dialog-hint { display:none; }
}
