.skip-link { position:absolute; left:var(--s4); top:var(--s4); z-index:6; transform:translateY(-160%); padding:var(--s3); background:var(--accent); color:var(--accent-ink); border-radius:var(--radius-sm); }
.skip-link:focus { transform:none; }
.page-shell { max-width:var(--content); margin:auto; padding:0 var(--gutter); }
.site-header { display:flex; align-items:center; justify-content:flex-end; gap:var(--s6); padding:var(--s4) 0; }
.brand { min-height:var(--target); display:flex; align-items:center; gap:var(--s3); text-decoration:none; color:var(--ink); flex-shrink:0; }
.brand-logo { display:block; width:48px; height:48px; flex-shrink:0; object-fit:contain; filter:none; }
.brand-name { font-family:var(--display-font); font-size:var(--text-lg); font-weight:400; letter-spacing:.04em; }
.header-tools { display:flex; align-items:center; gap:var(--s4); }
.hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:center; gap:var(--s10); padding:var(--s6) 0 var(--s10); min-height:var(--hero-min-height); }
.hero-brand { min-width:0; width:100%; max-width:var(--brand-lockup-width); flex-direction:column; align-items:stretch; gap:0; }
.brand-picture { display:block; width:100%; }
.hero-brand .brand-logo { width:100%; height:auto; }
.hero-portraits { display:flex; align-items:center; justify-content:center; padding:var(--s5); isolation:isolate; }
.hero-portrait { width:35%; max-width:224px; background:var(--surface); border:0; padding:var(--s2); border-radius:var(--radius-card); box-shadow:var(--shadow); position:relative; flex-shrink:0; }
.hero-portrait picture { display:block; aspect-ratio:1; border-radius:var(--radius-sm); overflow:hidden; }
.hero-portrait img { width:100%; height:100%; object-fit:contain; }
.hero-portrait:first-child { transform:rotate(-7deg) translateX(8%); z-index:1; }
.hero-portrait:nth-child(2) { width:40%; transform:translateY(-12%); z-index:3; }
.hero-portrait:last-child { transform:rotate(7deg) translateX(-8%); z-index:2; }
.hero-portrait span { display:block; color:var(--muted); font-size:var(--text-xs); padding:var(--s2) 0 var(--s1); }
.gallery-heading { display:flex; justify-content:space-between; align-items:baseline; gap:var(--s4); padding-top:var(--s3); margin-bottom:var(--s6); }
.gallery-heading h2 { font-family:var(--display-font); font-size:var(--text-xl); font-weight:400; }
.gallery-heading p { color:var(--muted); font-size:var(--text-sm); }
.filters { display:flex; flex-direction:column; gap:var(--s4); margin-bottom:var(--s8); }
.filter-panel { display:flex; flex-direction:column; gap:var(--s3); padding:var(--s4) var(--s5); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-card); }
.filter-row { display:grid; grid-template-columns:var(--target) minmax(0,1fr); align-items:start; gap:var(--s3); }
.filter-row+.filter-row { padding-top:var(--s3); border-top:1px solid var(--line); }
.filter-label { display:flex; align-items:center; min-height:var(--target); color:var(--muted); font-size:var(--text-sm); }
.category-filters { display:flex; flex-wrap:wrap; gap:var(--s2); }
.filter-tools { display:flex; flex-wrap:wrap; gap:var(--s3); align-items:center; }
.filter-tools .search-box { min-width:min(100%,320px); }
.filter-status { font-size:var(--text-sm); color:var(--muted); display:flex; justify-content:space-between; align-items:center; gap:var(--s3); min-height:var(--target); }
.portrait-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); column-gap:var(--s5); row-gap:var(--s8); }
.site-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--s3); margin-top:var(--s12); padding:var(--s6) 0 var(--s8); color:var(--muted); font-size:var(--text-xs); border-top:1px solid var(--line); }
.gallery-anchor { scroll-margin-top:var(--s6); }

.store-info { min-width:0; flex:1; }
.store-info strong { color:var(--ink); font-size:var(--text-base); font-weight:500; }
.store-address { font-style:normal; font-size:var(--text-sm); line-height:1.8; max-width:50em; margin-top:var(--s3); text-wrap:pretty; }
.address-label { display:block; margin-bottom:var(--s1); }
.address-landmark { white-space:nowrap; }
.footer-note { font-size:var(--text-sm); }
