.community-section { padding-block: clamp(3rem, 6vw, 6rem); }
.community-heading { max-width: 760px; margin: 0 auto 2.5rem; text-align: center; }
.community-heading h2 { margin: .25em 0 .6em; }
.community-intro { margin-inline: auto; line-height: 1.7; }
.stockist-tools { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.25rem; }
.stockist-tools label { display: grid; gap: .5rem; flex: 1; max-width: 560px; }
.stockist-tools input { width: 100%; min-width: 0; box-sizing: border-box; padding: .85rem 1rem; font: inherit; color: #222; background: #fff; border: 1px solid #888; border-radius: 2px; }
.stockist-count { margin: 0 0 .9rem; white-space: nowrap; font-size: .85rem; }
.stockist-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, 1fr); border: 1px solid #8886; }
.stockist-map-panel { min-width: 0; position: relative; background: #ece9e2; color: #222; }
.stockist-map { height: 480px; z-index: 0; font-family: sans-serif; }
.stockist-map-start { min-height: 480px; padding: 2rem; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 1rem; background: repeating-linear-gradient(0deg, transparent, transparent 39px, #00000006 40px), repeating-linear-gradient(90deg, transparent, transparent 39px, #00000006 40px); }
.stockist-map-error { padding: .75rem 1rem; font: 14px/1.5 sans-serif; margin: 0; }
.stockist-results { min-width: 0; max-height: 480px; overflow-y: auto; overscroll-behavior: contain; }
.stockist-list { list-style: none; margin: 0; padding: 0; }
.stockist-item { padding: 1.1rem 1.4rem; border-bottom: 1px solid #8884; }
.stockist-item:last-child { border-bottom: 0; }
.stockist-item h3 { font-family: inherit; font-size: 1rem; line-height: 1.4; margin: 0 0 .4rem; }
.stockist-item p { font-size: .85rem; line-height: 1.6; margin: 0 0 .5rem; }
.stockist-location-link { font-size: .8rem; text-decoration: underline; text-underline-offset: .2em; }
.stockist-empty { padding: 1.4rem; }
.stockist-source { display: inline-block; margin-top: 1rem; font-size: .8rem; }
.partner-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); gap: 1.2rem; margin: 0; padding: 0; list-style: none; }
.partner-grid li > * { display: flex; height: 100%; flex-direction: column; gap: .7rem; text-align: center; text-decoration: none; }
.partner-logo { display: grid; place-items: center; aspect-ratio: 1; background: #fff; padding: 12px; border: 1px solid #ddd; }
.partner-logo img { display: block; width: 100%; height: 100%; max-width: 180px; max-height: 180px; object-fit: contain; }
.partner-name { font: 12px/1.5 sans-serif; }
.community-section :focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.community-section [hidden] { display: none !important; }
.stockist-map .leaflet-control-attribution a, .stockist-map .leaflet-popup-content a { color: #12628a; }
.stockist-map .leaflet-control-zoom a { color: #222; }
[data-producer-id="valduc"] .community-heading h2 { color: #fff200; font-size: clamp(2.4rem, 5vw, 4rem); font-family: var(--font-heading); }
[data-producer-id="valduc"] .community-heading h2::after { content: ''; display: block; width: 64px; height: 3px; margin: .55em auto 0; background: linear-gradient(90deg, #fff200 45%, transparent 45%, transparent 55%, #ee3031 55%); }
[data-producer-id="valduc"] .stockist-layout { border-color: #fff20055; }
[data-producer-id="valduc"] .stockist-item h3 { color: #fff200; }
/* Valduc partners keep their original colours on warm paper cards. */
[data-producer-id="valduc"] .partner-section { max-width: 1180px; }
[data-producer-id="valduc"] .partner-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 32px 20px; }
[data-producer-id="valduc"] .partner-grid li { width: calc((100% - 6 * 20px) / 7); }
[data-producer-id="valduc"] .partner-grid li > * { gap: 14px; color: #bdbab4; transition: color .2s; }
[data-producer-id="valduc"] .partner-logo { grid-template: minmax(0, 1fr) / minmax(0, 1fr); aspect-ratio: 4 / 3; min-height: 0; padding: 14px 16px; background: #f4f1ea; border: 0; box-shadow: 0 0 0 1px #fff20000; transition: box-shadow .25s, translate .25s; }
[data-producer-id="valduc"] .partner-logo img { mix-blend-mode: multiply; }
[data-producer-id="valduc"] .partner-name { font: 400 .62rem/1.5 var(--text); letter-spacing: .12em; text-transform: uppercase; text-wrap: balance; }
[data-producer-id="valduc"] .partner-grid a:hover { color: #fff; }
[data-producer-id="valduc"] .partner-grid a:hover .partner-logo { translate: 0 -4px; box-shadow: 0 0 0 1px #fff200, 0 12px 24px #0008; }
/* On Valduc's story pages, labels stand on the slate as badges with yellow captions, as on the source. */
[data-producer-id="valduc"][data-page-layout="chapters"] .partner-grid { gap: 44px 24px; }
[data-producer-id="valduc"][data-page-layout="chapters"] .partner-grid li { width: calc((100% - 3 * 24px) / 4); max-width: 240px; }
[data-producer-id="valduc"][data-page-layout="chapters"] .partner-logo { aspect-ratio: 1; padding: 0; background: none; box-shadow: none; }
[data-producer-id="valduc"][data-page-layout="chapters"] .partner-logo img { max-width: 168px; max-height: 168px; mix-blend-mode: normal; }
[data-producer-id="valduc"][data-page-layout="chapters"] .partner-name { color: #fff200; font-size: .74rem; letter-spacing: .06em; text-transform: none; }
[data-producer-id="valduc"][data-page-layout="chapters"] .partner-grid a:hover .partner-logo { box-shadow: none; }
[data-producer-id="valduc"][data-page-layout="chapters"] .partner-grid a:hover .partner-name { color: #fff; }
@media (max-width: 700px) {
  .stockist-tools { display: block; }
  .stockist-count { margin: .75rem 0 0; }
  .stockist-layout { grid-template-columns: 1fr; }
  .stockist-map { height: 340px; }
  .stockist-map-start { min-height: 300px; }
  .stockist-results { max-height: 320px; }
  .partner-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem .6rem; }
  .partner-logo { padding: 6px; }
  [data-producer-id="valduc"] .partner-grid { gap: 22px 12px; }
  [data-producer-id="valduc"] .partner-grid li { width: calc((100% - 2 * 12px) / 3); }
  [data-producer-id="valduc"][data-page-layout="chapters"] .partner-grid { gap: 32px 16px; }
  [data-producer-id="valduc"][data-page-layout="chapters"] .partner-grid li { width: calc((100% - 16px) / 2); }
}
/* Dense address lists keep body type even when the producer selects a decorative heading face. */
html[data-custom-heading-font] body .stockist-item h3 { font-family: inherit; font-weight: 700; }
.page-content > .community-section { grid-column: 1 / -1; }

/* Only the basemap tiles are recolored. Labels, controls and attribution keep their own contrast. */
[data-producer-id="valduc"] .stockist-map {
  --stockist-marker-stroke: #fff200;
  --stockist-marker-fill: #ee3031;
  background: #242424;
}
[data-producer-id="valduc"] .stockist-map .leaflet-tile-pane { filter: grayscale(1) invert(1) brightness(.8) contrast(.9); }
[data-producer-id="valduc"] .stockist-map-panel { background: #242424; color: #f4f0e8; }
[data-producer-id="valduc"] .stockist-tools input { color: #f4f0e8; background: #242424; border-color: #fff20066; }
[data-producer-id="valduc"] .stockist-map .leaflet-bar { border: 1px solid #fff20088; border-radius: 0; box-shadow: 0 3px 12px #0006; }
[data-producer-id="valduc"] .stockist-map .leaflet-bar a { background: #191919; color: #fff200; border-color: #fff20055; border-radius: 0; }
[data-producer-id="valduc"] .stockist-map .leaflet-bar a:hover,
[data-producer-id="valduc"] .stockist-map .leaflet-bar a:focus-visible { background: #ee3031; color: #fff; }
[data-producer-id="valduc"] .stockist-map .leaflet-bar a.leaflet-disabled { color: #888; background: #292929; }
[data-producer-id="valduc"] .stockist-map .leaflet-control-attribution { background: #191919f2; color: #f4f0e8; }
[data-producer-id="valduc"] .stockist-map .leaflet-control-attribution a,
[data-producer-id="valduc"] .stockist-map .leaflet-popup-content a { color: #fff200; }
[data-producer-id="valduc"] .stockist-map .leaflet-popup-content-wrapper { background: #191919; color: #f4f0e8; border-radius: 2px; border-top: 3px solid #ee3031; }
[data-producer-id="valduc"] .stockist-map .leaflet-popup-tip { background: #191919; }
[data-producer-id="valduc"] .stockist-map .leaflet-popup-content strong { color: #fff200; }
[data-producer-id="valduc"] .stockist-map a.leaflet-popup-close-button { color: #f4f0e8; }
[data-producer-id="valduc"] .stockist-map .leaflet-interactive:hover { stroke: #fff; stroke-width: 3; }
/* A dedicated map page already has the section gutter on its content container. */
.page-content > .stockist-section { padding: 0; width: 100%; max-width: none; }
[data-theme] .page-content.community-page { display: block; padding-top: 2rem; }
[data-theme] .community-page > .community-section { padding: 0; }
[data-theme] .community-page .community-heading { margin-bottom: 1.5rem; }
