/* Local visual refinement: image-led, restrained typography and grouped navigation. */
html[data-via-search] { --via-ink:#171717; --via-muted:#666; --via-line:#dededb; --via-space:clamp(24px,5vw,76px); }
.via-search-content { padding:0 var(--via-space) var(--via-space); color:var(--via-ink); }
.via-search-content a { color:inherit; text-decoration:none; }
.via-search-content section { margin:0; padding:0; border:0; scroll-margin-top:80px; }
.via-search-content p,.via-search-content address { font-size:16px; line-height:1.9; }
.via-kicker,.via-search-content .via-kicker { margin:0 0 18px; font-size:12px; line-height:1.5; letter-spacing:.16em; font-weight:500; }
.via-search-content .via-home-story { display:grid; grid-template-columns:1fr 1.12fr; gap:clamp(30px,4vw,72px); align-items:start; padding:clamp(44px,6vw,84px) 0; }
.via-home-story h1 { font:400 clamp(30px,3.4vw,52px)/1.1 Georgia,"Times New Roman",serif; margin:0; letter-spacing:-.025em; }
.via-home-story h1 span { display:block; margin-top:18px; font:400 clamp(21px,2.2vw,29px)/1.4 "PingFang SC","Microsoft YaHei",sans-serif; letter-spacing:.1em; }
.via-story-copy { max-width:600px; min-width:0; }
.via-story-copy p { margin:0 0 25px; color:#555; }
.via-text-link { display:inline-block; font-size:14px; line-height:1.7; padding-bottom:4px; border-bottom:1px solid #888; color:inherit; text-decoration:none; }
.via-search-content .via-section-heading { display:flex; gap:24px; justify-content:space-between; align-items:end; margin-bottom:32px; }
.via-section-heading h2 { font:400 clamp(26px,2.8vw,38px)/1.3 "PingFang SC","Microsoft YaHei",sans-serif; margin:0; }
.via-section-heading .via-kicker { margin-bottom:12px; }
.via-search-content .via-search-services { border-top:1px solid var(--via-line); padding:44px 0 50px; }
.via-service-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.via-service-list article { border-top:1px solid #aaa; padding:20px 0 0; min-width:0; }
.via-service-list .via-service-label { display:flex; gap:14px; margin:0 0 20px; font-size:12px; letter-spacing:.08em; }
.via-service-label span { color:#777; }
.via-service-list h3 { font-size:19px; line-height:1.6; font-weight:500; margin:0 0 12px; }
.via-service-list article > p:last-child { margin:0; color:#656565; font-size:16px; }
.via-search-content .via-home-locations { padding:42px 0 0; border-top:1px solid var(--via-line); }
.via-search-stores { gap:clamp(24px,3vw,44px); }
.via-search-store { min-width:0; }
.via-store-photo { display:block; overflow:hidden; background:#f1f1ef; }
.via-store-photo img { transition:transform .6s; }
.via-store-photo:hover img { transform:scale(1.025); }
.via-store-copy { padding:23px 0 0; }
.via-store-copy .via-store-location { display:flex; align-items:baseline; gap:12px; font-size:14px; line-height:1.7; color:#666; margin:0 0 13px; }
.via-store-location span { color:#171717; font-size:12px; }
.via-store-copy h3,.via-store-copy h3 a { font-size:clamp(18px,1.6vw,22px); line-height:1.55; font-weight:500; overflow-wrap:anywhere; }
.via-store-copy h3 { margin:0 0 16px; }
.via-store-copy address { color:#666; margin:0 0 22px; }
.via-store-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--via-line); padding-top:17px; }
.via-store-actions a { font-size:14px; line-height:1.6; }
.via-search-content a:hover,.via-site-map a:hover,.via-locator-directory a:hover { text-decoration:underline; text-underline-offset:5px; }
html[data-via-search] a:focus-visible,html[data-via-search] summary:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
html[data-via-search="home"] #indexGalleryBG { height:86vh; min-height:480px; }
html[data-via-search] #shopType.show { max-height:240px; }
html[data-via-search] #regionType.show { max-height:150px; }
html[data-via-search] #menuContent a.submenuItem { font-size:16px; line-height:1.7; padding:4px 0; }
/* Keep the sidebar gutter from via-search CSS: never use viewport-wide footer content. */
html[data-via-search] #footer .wrapper,html[data-via-search] .via-footer { box-sizing:border-box; padding:44px var(--via-space) 22px; background:#151515; color:#ddd; }
html[data-via-search] .via-footer { display:block; }
.via-site-map { display:grid; grid-template-columns:1.15fr 1fr 1.3fr 1fr; gap:28px; padding:0 0 32px; border-bottom:1px solid #383838; text-align:left; }
.via-site-map > * { min-width:0; }
.via-site-map a { display:block; color:inherit; text-decoration:none; font-size:14px; line-height:1.7; margin:0 0 10px; overflow-wrap:anywhere; }
.via-site-map .via-map-brand > a { font:400 clamp(22px,2vw,30px)/1.2 Georgia,serif; color:#fff; margin:0 0 14px; }
.via-map-brand p { margin:0; font-size:12px; letter-spacing:.08em; line-height:2; color:#aaa; }
.via-site-map h2 { margin:0 0 19px; color:#fff; font-size:14px; font-weight:500; line-height:1.6; }
.via-site-map h2 span { display:block; margin-top:5px; font-size:12px; font-weight:400; color:#aaa; letter-spacing:.08em; }
html[data-via-search] .via-compliance { display:flex; gap:10px 24px; justify-content:space-between; flex-wrap:wrap; margin-top:20px; padding:0; font-size:12px; line-height:1.8; }
html[data-via-search] .via-compliance a { color:#bbb; }
/* Store finder: photos first, map second, directory available on demand. */
html[data-via-search="shops"] #mainWrapper { padding-top:54px; }
.via-locator-heading { display:flex; align-items:end; justify-content:space-between; gap:28px; width:88%; margin:0 auto 40px; }
.via-locator-heading h1 { font-size:clamp(28px,3vw,44px); line-height:1.3; font-weight:400; margin:0; }
.via-locator-heading nav { display:flex; flex-wrap:wrap; gap:20px; }
.via-locator-heading nav a { color:#222; text-decoration:none; font-size:14px; line-height:1.8; border-bottom:1px solid #999; }
html[data-via-search="shops"] #TWrapper { width:88%; margin:0 auto 32px; }
html[data-via-search="shops"] #shopListTitle { width:88%; margin:0 auto 28px; text-align:left; border:0; font-size:20px; line-height:1.5; }
html[data-via-search="shops"] #shopListTitle span { padding:0; background:none; }
html[data-via-search="shops"] #shopThumbListWrapper { width:88%; margin:0 auto 26px; }
html[data-via-search="shops"] ul#shopThumbList { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; padding:0; margin:0; }
html[data-via-search="shops"] ul#shopThumbList:after { content:none; }
html[data-via-search="shops"] li.shopThumbListItem { display:block; width:auto!important; height:auto!important; padding:0!important; float:none; border:0; text-align:left; }
html[data-via-search="shops"] .itemredirect { height:auto; }
html[data-via-search="shops"] .thumbnail { display:block; width:100%; height:auto; margin:0; aspect-ratio:3/2; object-fit:cover; }
html[data-via-search="shops"] .shopContent { padding:18px 0 0; position:static; }
html[data-via-search="shops"] .thumblistArea1 { margin:0 0 10px; font-size:14px; line-height:1.6; color:#666; }
html[data-via-search="shops"] .thumblistArea2 { margin:0; font-size:20px; line-height:1.55; font-weight:500; overflow-wrap:anywhere; }
.via-locator-directory { width:88%; box-sizing:border-box; margin:34px auto 44px; border-top:1px solid var(--via-line); border-bottom:1px solid var(--via-line); color:#222; }
.via-locator-directory summary { padding:18px 0; cursor:pointer; font-size:14px; line-height:1.6; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.via-locator-directory summary::-webkit-details-marker { display:none; }
.via-locator-directory[open] summary > span { transform:rotate(45deg); }
.via-locator-directory nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; padding:6px 0 25px; }
.via-locator-directory h3 { font-size:14px; margin:0 0 14px; line-height:1.6; font-weight:500; }
.via-locator-directory a { display:block; color:#555; text-decoration:none; font-size:14px; margin-bottom:9px; line-height:1.6; }
html[data-via-search="shops"] #mapWrapper { width:88%; margin:0 auto 50px; }
html[data-via-search="shops"] #googlemap { height:340px; }
.via-map-heading { display:flex; align-items:baseline; gap:20px; margin-bottom:20px; }
.via-map-heading h2 { font-size:22px; font-weight:400; margin:0; line-height:1.5; }
.via-map-heading p { font-size:12px; letter-spacing:.12em; color:#777; margin:0; }
@media(max-width:1100px) {
  .via-site-map { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .via-map-brand { grid-column:1/-1; }
  .via-search-content .via-home-story { gap:30px; }
  .via-service-list { gap:20px; }
}
@media(min-width:768px) and (max-width:1599px) {
  html[data-via-search="shops"] #mainWrapper { padding-top:112px; }
}
/* The original home menu stays visible at narrow widths even when collapsed. */
@media(max-width:1023px) {
  html[data-via-search="home"] #menuWrapper { height:76px; }
  html[data-via-search="home"] #navBtn { top:27px; }
  html[data-via-search="home"] #menuWrapper #menuContent { top:76px; height:calc(100dvh - 76px); background:#fff; visibility:hidden; opacity:0; pointer-events:none; transition:opacity .2s; }
  html[data-via-search="home"] #menuWrapper.active #menuContent { visibility:visible; opacity:1; pointer-events:auto; }
  html[data-via-search="home"] #container { padding-top:76px; box-sizing:border-box; }
  html[data-via-search="home"] #indexGalleryBG { top:0; }
  html[data-via-search="home"] #menuInnerWrapper { height:auto; min-height:0; }
  html[data-via-search="home"] #menuContent #topContentWrapper { width:86%; padding-top:30px; }
}
@media(max-width:767px) {
  .via-search-content .via-home-story { grid-template-columns:1fr; gap:26px; padding:38px 0; }
  .via-home-story h1 { font-size:36px; }
  .via-search-content .via-section-heading { align-items:start; gap:18px; flex-wrap:wrap; margin-bottom:24px; }
  .via-search-content .via-search-services { padding:32px 0; }
  .via-search-services > .via-service-list { grid-template-columns:1fr; gap:25px; }
  .via-service-list article { padding-top:15px; }
  .via-service-list .via-service-label { margin-bottom:10px; }
  .via-search-stores { gap:34px; }
  .via-search-content .via-home-locations { padding-top:32px; }
  .via-site-map { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 22px; }
  .via-site-map section:last-child { grid-column:1/-1; }
  .via-site-map h2 { margin-bottom:14px; }
  html[data-via-search] #footer .wrapper,html[data-via-search] .via-footer { padding:32px 24px 22px; }
  html[data-via-search="home"] #indexGalleryBG { height:72svh; min-height:380px; }
  html[data-via-search="shops"] #mainWrapper { padding-top:92px; }
  .via-locator-heading { display:block; margin-bottom:26px; }
  .via-locator-heading nav { margin-top:20px; }
  html[data-via-search="shops"] #serviceTitle { margin:0 0 14px; }
  html[data-via-search="shops"] #regionListWrapper { margin:0; }
  html[data-via-search="shops"] #regionListWrapper .areaGroup { display:flex; align-items:baseline; gap:14px; margin-bottom:10px; }
  html[data-via-search="shops"] #regionListWrapper .regionTitle { flex:0 0 38px; font-size:16px; line-height:1.8; padding:0; }
  html[data-via-search="shops"] #regionListWrapper .areaGroup.active .districtGroup { display:flex; flex-wrap:wrap; gap:6px 18px; }
  html[data-via-search="shops"] #TWrapper .districtTitle { margin:0; font-size:16px; line-height:1.8; }
  html[data-via-search="shops"] ul#shopThumbList { grid-template-columns:1fr; gap:28px; }
  .via-locator-directory nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  html[data-via-search="shops"] #googlemap { height:280px; }
}
@media(prefers-reduced-motion:reduce) {
  .via-store-photo img { transition:none; }
  .via-store-photo:hover img { transform:none; }
}
