.brand img { object-fit: contain; border-radius: 0; }
.foot-logo { object-fit: contain; border-radius: 0; }
.cafe-gallery-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 1.5rem; }
.cafe-kicker { display: block; margin-bottom: .6rem; font-size: .76rem; letter-spacing: .13em; text-transform: uppercase; color: var(--ember); font-weight: 600; }
.cafe-gallery-heading p { max-width: 55ch; margin: .75rem 0 0; color: var(--ash); }
.cafe-map-link { flex-shrink: 0; color: var(--ember); text-underline-offset: .3em; font-size: .94rem; }
.cafe-photo-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.2rem; }
.cafe-photo { margin: 0; background: var(--card); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.cafe-photo a { display: block; position: relative; aspect-ratio: 4/3; overflow: hidden; }
.cafe-photo img { width: 100%; height: 100%; object-fit: cover; }
.cafe-photo figcaption { padding: 1rem; font-size: .92rem; font-weight: 600; }
.cafe-zoom { position: absolute; right: .6rem; bottom: .6rem; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #14170fd9; color: #fff; font-size: 1.25rem; }
.cafe-photo a:hover .cafe-zoom { background: var(--ember); }
.cafe-photo-dialog { position: fixed; inset: 0; width: min(1100px,94vw); max-height: 94dvh; padding: 0; border: 1px solid #ffffff30; border-radius: 16px; background: #14170f; color: #f3f1e7; overflow: auto; }
.cafe-photo-dialog::backdrop { background: #090b08e8; }
.cafe-photo-dialog img { display: block; width: 100%; height: min(76dvh,850px); object-fit: contain; }
.cafe-photo-dialog p { padding: 0 1.25rem; }
.cafe-photo-close { position: sticky; display: block; top: .7rem; margin: .7rem .7rem -46px auto; z-index: 2; width: 44px; height: 44px; border: 1px solid #ffffff70; border-radius: 50%; background: #14170fed; color: white; font: 32px/1 system-ui; cursor: pointer; }
@media(max-width:1100px) { .cafe-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) { .cafe-gallery-heading { display: block; } .cafe-map-link { display: inline-block; margin-top: 1rem; } .cafe-photo-grid { grid-template-columns: 1fr; gap: 1rem; } }
@media(max-width:480px) { .topin { gap: 10px; min-height: 64px; } .topin .brand { min-width: 0; gap: 8px; } .topin .brand img { width: 36px; height: 36px; flex-shrink: 0; } .topin .brand b { font-size: 16px; line-height: 1.2; } .topin .phone { flex-shrink: 0; } .topin .phone::after { font-size: 13px; } }
